domingo, 2 de enero de 2011

Calidad del Software

Conceptos de calidad

El American Heritage Dictionary, define la calidad como «una característica o atributo de algo». Como un atributo de un elemento, la calidad se refiere a las características mensurables -cosas que se pueden comparar con estándares conocidos como longitud, color, propiedades eléctricas, maleabilidad, etc.-. Sin embargo, el software en su gran extensión, como entidad intelectual, es más difícil de caracterizar que los objetos físicos.

No obstante, existen las medidas de características de un programa. Entre estas propiedades se incluyen complejidad ciclomática, cohesión, número de puntos de función, líneas de código y muchas otras. Cuando se examina un elemento según sus características mensurables, se pueden encontrar dos tipos de calidad: calidad del diseño y calidad de concordancia.

La calidad de diseño se refiere a las características que especifican los ingenieros de software para un elemento. El grado de materiales, tolerancias y las especificaciones del rendimiento contribuyen a la calidad del diseño. Cuando se utilizan materiales de alto grado y se especifican tolerancias más estrictas y niveles más altos de rendimiento, la calidad de diseño de un producto aumenta, si el producto se fabrica de acuerdo con las especificaciones.

La calidad de concordancia es el grado de cumplimiento de las especificaciones de diseño durante su realización.

Una vez más, cuanto mayor sea el grado de cumplimento, más alto será el nivel de calidad de concordancia.

Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados, y con las características implícitas que se espera de todo software desarrollado profesionalmente.


La tendencia de la calidad

Hoy en día los responsables expertos de compañías de todo el mundo industrializado reconocen que la alta calidad del producto se traduce en ahorro de coste y en una mejora general. Sin embargo, esto no era siempre el caso. La tendencia de la calidad comenzó en los años cuarenta con el influyente trabajo de W. Edwards Deming. Mediante las ideas de Deming como piedra angular, los japoneses han desarrollado un enfoque sistemático para la eliminación de las causas raíz de defectos en productos.

A lo largo de los años setenta y ochenta, su trabajo emigró al mundo occidental y a veces se llama «gestión total de calidad (GTC). Aunque la terminología difiere según los diferentes países y autores, normalmente se encuentra una progresión básica de cuatro pasos que constituye el fundamento de cualquier programa de GTC.


Garantía de calidad del software

La garantía de calidad consiste en la auditoría y las funciones de información de la gestión. El objetivo de la garantía de calidad es proporcionar la gestión para informar de los datos necesarios sobre la calidad del producto, por lo que se va adquiriendo una visión más profunda y segura de que la calidad del producto está cumpliendo sus objetivos. Por supuesto, si los datos proporcionados mediante la garantía de calidad identifican problemas, es responsabilidad de la gestión afrontar los problemas y aplicar los recursos necesarios para resolver aspectos de calidad.


Revisiones del software

Las revisiones del software son un «filtro» para el proceso de ingeniería del software. Esto es, las revisiones se aplican en varios momentos del desarrollo del software y sirven para detectar errores y defectos que puedan así ser eliminados. Las revisiones del software sirven para «purificar» las actividades de ingeniería del software que suceden como resultado del análisis, el diseño y la codificación.


Revisiones técnicas formales

Una revisión técnica formal (RTF) es una actividad de garantía de calidad del software llevada a cabo por los ingenieros del software (y otros). Los objetivos de la

RTF son:

· Descubrir errores en la función, la lógica o la implementación de cualquier representación del software

· Verificar que el software bajo revisión alcanza sus requisitos

· Garantizar que el software ha sido representado de acuerdo con ciertos estándares predefinidos

· Conseguir un software desarrollado de forma uniforme

· Hacer que los proyectos sean más manejables.

Además, la RTF sirve como campo de entrenamiento, permitiendo que los ingenieros más jóvenes puedan observar los diferentes enfoques de análisis, diseño e implementación del software. La RTF también sirve para promover la seguridad y la continuidad, ya que varias personas se familiarizarán con partes del software que, de otro modo, no hubieran visto nunca.



Fiabilidad del software

La fiabilidad del software, a diferencia de otros factores de calidad, puede ser medida o estimada mediante datos históricos o de desarrollo. La fiabilidad del software se define en términos estadísticos como «la probabilidad de operación libre de fallos de un programa de computadora en un entorno determinado y durante un tiempo específico» [MUS87]. Por ejemplo, un programa X puede tener una fiabilidad estimada de 0,96 durante un intervalo de proceso de ocho horas. En otras palabras, si se fuera a ejecutar el

Programa X 100 veces, necesitando ocho horas de tiempo de proceso (tiempo de ejecución), lo probable es que funcione correctamente (sin fallos) 96 de cada 400 veces.



Prueba de errores para el software

En los años sesenta, un ingeniero industrial japonés, Shigeo Shingo, que trabajaba en Toyota, desarrolló una técnica de garantía de calidad que conducía a la prevención

y/o a la temprana corrección de errores en el proceso de fabricación. Denominado poku-yoke (prueba de errores), el concepto de Shingo hacía uso de dispositivospoku-yoke -mecanismos que conducen:

(1) a la prevención de un problema de calidad potencial antes de que éste ocurra, o

(2) a la rápida detección de problemas de calidad si se han introducido ya-.

Nosotros encontramos dispositivos poka-yoke en nuestra vida cotidiana (incluso si nosotros no tenemos conciencia de este concepto). Por ejemplo, el interruptor de arranque de un coche no trabaja si está metida una marcha en la transmisión automática (un dispositivo de prevención); un pitido de aviso del coche sonará si los cinturones de seguridad no están bien sujetos (un dispositivo de detección de fallos).

Un dispositivo de poku-yoke presenta un conjunto de características comunes:

  • Es simple y barato -si un dispositivo es demasiado complicado y caro, no será efectivo en cuanto a costo-;
  • Es parte del proceso - esto es, el dispositivo pokuyoke está integrado en una actividad de ingeniería
  • Está localizado cerca de la tarea del proceso donde están ocurriendo los errores -por consiguiente proporciona una realimentación rápida en cuanto a la corrección de errores se refiere-.


El estándar de calidad iso 9001

Es el estándar, que ha sido adoptado por más de 130 países para su uso, se está convirtiendo en el medio principal con el que los clientes pueden juzgar la competencia de un desarrollador de software. Uno de los problemas con el estándar ISO 9001 está en que no es específico de la industria: está expresado en términos generales, y puede ser interpretado por los desarrolladores de diversos productos como cojinetes de bolas (rodamientos), secadores de pelo, automóviles, equipamientos deportivos y televisiones, así como por desarrolladores de software. Se han realizado muchos documentos que relacionan el estándar con la industria del software, pero no entran en una gran cantidad de detalles. El objetivo de esta sección es describir lo que significa el ISO 9001 en términos de elementos de calidad y técnicas de desarrollo.

Para la industria del software los estándares relevantes son:

ISO 9001. Quality Systems- Model for Quality Assurance in Design, Development, Production, Installation and Servicing. Este es un estándar que describe el sistema de, calidad utilizado para mantener el desarrollo de un producto que implique diseño.

ISO 9000-3. Guidelines for Application of ISO 9001 to the Development, Supply and Maintainance of Software. Este es un documento específico que interpreta el ISO 9001 para el desarrollador de software.

ISO 9004-2. Quality Management and Quality System Elements -Part 2-. Este documento proporciona las directrices para el servicio de facilidades del software como soporte de usuarios.

Los requisitos se agrupan bajo 20 títulos:

  • Responsabilidad de la gestión.
  • Inspección, medición y equipo de pruebas
  • Sistema de calidad.
  • Inspección y estado de pruebas.
  • Revisión de contrato.
  • Acción correctiva.
  • Control de diseño.
  • Control de producto no aceptado.
  • Control de documento.
  • Tratamiento, almacenamiento, empaquetamiento y entrega.
  • Compras.
  • Producto proporcionado al comprador.
  • Registros de calidad.
  • Identificación y posibilidad de seguimiento del producto,
  • Auditorías internas de calidad
  • Formación
  • Control del proceso
  • Servicios.
  • Inspección y estado de prueba.
  • Técnicas estadísticas.


Fuente:

Roger Pressman, Ingenieria del Software un enfoque practico, Edición V.

No hay comentarios:

Publicar un comentario