Criterios de Calidad


1- Factores de Calidad

Los factores que determinan la calidad se pueden clasificar en 2 grandes grupos:

1- Factores que se pueden medir directamente (Ej. errores / unidad de tiempo)

2- Factores que sólo pueden ser medidos indirectamente (Ej. facilidad de mantenimiento)

En ambos casos, se puede obtener una medida. Pero estas medidas deben ser comparadas con alguna referencia o indicador para poder llegar a una indicación de la realidad

Mc Call clasifica los factores de calidad en:

1- Características Operacionales

2- Capacidad de Soportar Cambios

3- Adaptabilidad a nuevos entornos

1- Características Operacionales

2- Capacidad de Soportar Cambios

3- Adaptabilidad de nuevos entornos

2- Métricas de Calidad

Es difícil desarrollar medidas directas de los anteriores factores de calidad. Por eso, se definen un conjunto de métricas para cada uno de los factores de calidad. Generalmente estas métricas definidas por MacCall solo pueden ser medidas en forma subjetiva.

Las métricas pueden estar listas de comprobaciones para obtener el grado de los atributos específicos del software. El esquema de graduación propuesto por McCall va en una escala de 0 (bajo) a 10 (alto).

En este esquema se usan las siguientes métricas:

La relación entre los factores de calidad del software y las métricas se muestran en la siguiente tabla:

 

 

Aseguramiento de la calidad de Software

 

Calidad de Software

 

Calidad de Software

Es la concordancia con los requerimientos 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 esperan de todo software desarrollado profesionalmente.

Existen 3 puntos importantes de la definición de calidad de software:

  1. los requerimientos del software son los fundamentos desde los que se mide la calidad
  2. los estándares específicos definen un conjunto de criterios de desarrollo que guían la forma de aplicación de la ingeniería de software
  3. existen requerimientos implícitos que no se mencionan

Un producto de alta calidad requiere menos mantenimiento y facilita tanto el desarrollo como el mantenimiento de la productividad. Con la medición de la calidad se pueden lograr estos objetivos. En lo que se refiere al mantenimiento, la medición de la calidad del software ayuda a identificar problemas de confiabilidad y a mejorar las técnicas para identificar las necesidades de mantenimiento.

Confiabilidad

Es la probabilidad de operación libre de fallas de un programa de computadora en un entorno determinado y durante un tiempo específico.

El fallo es cualquier no concordancia con los requerimientos del software. Hay distintos grados de fallos, estos pueden ser simplemente desconcertantes o catastróficos.

La confiabilidad del software se encuentra en un etapa de formación de desarrollo y es la caracterísitca de rendimiento más costosa de conseguir y difícil de conseguir y de difícil de garantizar. La naturaleza del proyecto ayuda para la formulación de estimaciones de costo y el esfuerzo que asegure la confiabilidad requerida.

Los modelos de confiabilidad del software se usan para caracterizar y predecir el comportamiento importante para directores e ingenieros.

La generación de fallos depende del código desarrollado, tales como tamaño y las características del proceso de desarrollado tales como las tecnologías y herramientas de ingeniería de software usadas.

La eliminación de fallos depende del tiempo y del perfil operativo. Los modelos de confiabilidad del software son generalmente procesos aleatorios. Estos modelos se pueden dividir en 2 grandes categorías:

  1.  modelos que predicen la confiabilidad como una función cronológica del tiempo
  2. modelos que predicen la confiabilidad como una función del tiempo de procesamiento transcurrido

Control de Calidad

El costo de corregir y detectar errores producidos en las primeras fases de desarrollo de software es mayor a medida que nos encontramos más alejados de éstas. A causa de esto, la propuesta de control de calidad es empujar las tareas relacionadas con la calidad desde las primeras fases del proyecto. Esto permite encontrar los errores en forma temprana sin que se sigan propagando en las siguientes fases.

Otro motivo para el control de calidad es que la prueba de software no puede garantizar que encuentre todos los errores. Los programadores profesionales pueden y deben producir software el cual esté libre de errores desde el comienzo. Esto puede ser llevado a cabo a través del control de calidad.

La garantía de calidad de software engloba:

  1. métodos y herramientas de análisis, diseño, codificación y prueba
  2. revisiones y técnicas formales que se aplican en cada fase de la ingeniería de software
  3. una estrategia de prueba multiescalada
  4. el control de la documentación del software y de los cambios efectuados
  5. un procedimiento que asegure un ajuste a los estándares de desarrollo
  6. mecanismos a medida y de información

- Objetivos

  1. descubrir errores en la función, la lógica o la implementacíón del software
  2. verificar que el software bajo revisión alcanza sus requerimientos
  3. garantizar el uso de estándares predefinidos
  4. conseguir que el software se desarrolle de forma uniforme
  5. hacer que los proyectos sean más manejables

- Directrices de la revisión

  1. revisar el producto no productor
  2. fijar agenda y mantenerla
  3. enunciar problemas no resueltos
  4. limitar el debate y las impugnaciones
  5. tomar notas
  6. limitar el número de participantes
  7. desarrollar una lista de comprobaciones para cada producto que pueda ser revisado
  8. disponer de recursos y planificación de tiempos
  9. entrenar los participantes
  10. reparar las revisiones anteriores

Tareas que se deben llevar a cabo en un plan de GCS:

  1. revisión del diseño del sistema
  2. revisión de requerimientos de software
  3. revisión del diseño preliminar
  4. revisión del diseño detallado (a nivel módulos)
  5. revisión del plan de prueba de integración
  6. revisión del código
  7. revisión de los procedimientos
  8. auditorías de los estándares de documentación
  9. auditorías del control de configuración
  10. auditorías de prueba
  11. recolección, evaluación y análisis de los datos de defectos
  12. certificación de herramientas
  13. mantenimiento de registros