29 de noviembre de 2012

Métricas de Calidad de Software

¿Qué pasa si no medimos?
  • No sabemos si estamos mejorando
  • No podemos establecer metas
¿Qué se puede medir?
  • El proceso del software (para mejorarlo).
  • El proyecto del software (para ayudar a estimar, control de calidad, evaluación de productividad, control de proyectos).
  • Calidad del producto (para ayudar el la toma de decisiones tácticas a medida que el proyecto evoluciona).
Medidas, métricas e indicadores
  • Medida: Indicación cuantitativa de extensión, cantidad, dimensiones, capacidad y tamaño de algunos atributos de un proceso o producto.
  • Medición: Es el acto de determinar una medida.
  • Métrica: Medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado.
  • Indicador: Es una métrica o una combinación de métricas que proporcionan una visión profunda del proceso del SW, del proyecto del SW o del producto en sí.

MÉTRICAS

¿Qué miden?
  • Productividad
  • Calidad
Beneficios
  • Futuras Estimaciones
Medidas
  • Directas
  • Indirectas

Mediciones del Software

Las mediciones del mundo físico se pueden clasificar de dos maneras:
  • Medidas directas: Ej. Longitud de un tornillo :
  • Medidas indirectas: Ej. Calidad de los tornillos producidos, medidos contando los artículos defectuosos
Las métricas del SW, se categorizan de forma similar:
  • Directas: líneas de código producidas (LDC), velocidad de ejecución, tamaño de memoria
  • Indirectas: funcionalidad, calidad, complejidad.

Costos y métricas de calidad
  • Defecto y fallo: son sinónimos dentro del contexto del proceso del software. Implican un problema de calidad que es descubierto una vez entregado el software al cliente.
  • Error: Problema de calidad detectado por los ingenieros u otros dentro del proceso del software.

Indicadores Proyecto/Proceso
  • Indicadores de proceso: Permiten a una organización de ingeniería del software tener una visión profunda  de la eficacia de un proceso ya existente. (las métricas del proceso se recopilan de todos los proyectos y durante un largo período de tiempo).
  • Indicadores de proyecto: Permiten al gestor de proyectos del SW 
                                                    1. evaluar el estado de un proyecto en curso; 
                                                    2. seguir la pista de los riesgos potenciales;
                                                    3. detectar la áreas de problemas antes de que se conviertan en críticas;
                                                    4. ajustar el flujo y las tareas del trabajo;
                                                    5. evaluar la habilidad del equipo.

Métricas
  • Por término general, para la evaluación de la calidad, es más habitual centrarse en medidas del producto que en medidas del proceso.
  • Una métrica es una asignación de un valor a un atributo (tiempo, complejidad, etc.) de una entidad software, ya sea un producto (código) o un proceso (pruebas).

Principios de Medición
  • Los objetivos de la medición deben establecerse antes de empezar la recogida de los datos.
  • Todas la métricas deben definirse sin ambigüedades.
  • La métricas deben obtenerse basándose en una teoría válida para el dominio de la aplicación.
  • Siempre que sea posible, automatizar la recogida de los datos y el análisis.
  • Aplicar técnicas estadísticas válidas para establecer relaciones entre los atributos internos y características  externas de la calidad del producto.
  • Establecer directrices de interpretación y recomendación.

Características de las Métricas
  • Simples y fáciles de calcular
  • Empírica e intuitivamente persuasivas
  • Consistentes y objetivas
  • Independientes del lenguaje de programación
  • Eficaz mecanismo para realimentar la calidad

Etapas del Proceso de Medición
  • Formulación: la obtención de medidas y métricas apropiadas para la representación del SW que se desea desarrollar.
  • Colección: mecanismo empleado para acumular datos necesarios para obtener las métricas formuladas.
  • Análisis: cálculo de las métricas.
  • Interpretación: evaluación de los resultados.
  • Realimentación: recomendaciones obtenidas a través de la interpretación de las métricas obtenidas por el  equipo de desarrollo.

Métricas

Para la evaluación de las características del SW, utilizaremos métricas. Clasificación:
  • Clasificación 1:
                                 - Métricas de producto.
                                  - Métricas de proceso.
  • Clasificación 2:
                                  - Métricas basadas en atributos internos del producto:
                                                 * Medidas de estructuración de un programa.
                                                * Métricas de complejidad.
                                                 * Métricas de cobertura de pruebas.
                                                 * Métricas de calidad del diseño.

                                  - Métricas basadas en atributos externos del producto:
                                                  * Métricas de portabilidad.
                                                 * Métricas de defectos.
                                                  * Métricas de usabilidad.
                                                  * Métricas de mantenibilidad.
                                                  * Métricas de fiabilidad. 

                                  - Métricas basadas en código fuente:
                                                 * Nº de líneas de código.
                                                 * Nº de líneas de comentario.
                                                 * Nº de instrucciones.
                                                 * Densidad de documentación.

                                  - Métricas basadas en estructura de diseño:
                                                *  Relacionadas con el control intramodular.
                                                * Relacionadas con el acoplamiento entre clases.
                                                * Métricas para sistemas orientados a objetos:
                                                * Acoplamiento.
                                                * Herencia.
                                                * Cohesión.

No hay comentarios:

Publicar un comentario