Medición de software

El marco para la medición de software se basa en tres principios:

  • Clasificación de las entidades a examinar
  • Determinación de objetivos de medición relevantes
  • Identificar el nivel de madurez que ha alcanzado la organización.

Clasificación de las entidades a examinar

En ingeniería de software, existen principalmente tres clases de entidades. Ellos son -

  • Processes
  • Products
  • Resources

Todas estas entidades tienen entidades internas y externas.

  • Internal attributesson aquellos que pueden medirse puramente en términos del proceso, producto o recursos en sí. Por ejemplo: tamaño, complejidad, dependencia entre módulos.

  • External attributesson aquellos que sólo pueden medirse con respecto a su relación con el medio ambiente. Por ejemplo: el número total de fallas experimentadas por un usuario, el tiempo que lleva buscar en la base de datos y recuperar información.

Los diferentes atributos que se pueden medir para cada una de las entidades son los siguientes:

Procesos

Los procesos son colecciones de actividades relacionadas con el software. A continuación se muestran algunos de los atributos internos que se pueden medir directamente para un proceso:

  • La duración del proceso o una de sus actividades

  • El esfuerzo asociado con el proceso o una de sus actividades.

  • El número de incidentes de un tipo específico que surgen durante el proceso o una de sus actividades.

Los diferentes atributos externos de un proceso son costo, controlabilidad, efectividad, calidad y estabilidad.

Productos

Los productos no son solo los elementos que la administración se compromete a entregar, sino también cualquier artefacto o documento producido durante el ciclo de vida del software.

Los diferentes atributos internos del producto son tamaño, esfuerzo, costo, especificación, longitud, funcionalidad, modularidad, reutilización, redundancia y corrección sintáctica. Entre estos, el tamaño, el esfuerzo y el costo son relativamente fáciles de medir que los demás.

Los diferentes atributos del producto externo son usabilidad, integridad, eficiencia, capacidad de prueba, reutilización, portabilidad e interoperabilidad. Estos atributos describen no solo el código, sino también los otros documentos que respaldan el esfuerzo de desarrollo.

Recursos

Estas son entidades requeridas por una actividad de proceso. Puede ser cualquier entrada para la producción de software. Incluye personal, materiales, herramientas y métodos.

Los diferentes atributos internos de los recursos son edad, precio, tamaño, velocidad, tamaño de la memoria, temperatura, etc. Los diferentes atributos externos son productividad, experiencia, calidad, usabilidad, confiabilidad, comodidad, etc.

Determinación de objetivos de medición relevantes

Una medida en particular será útil solo si ayuda a comprender el proceso o uno de sus productos resultantes. La mejora en el proceso o los productos se puede realizar solo cuando el proyecto tiene metas claramente definidas para los procesos y productos. Se puede utilizar una comprensión clara de los objetivos para generar métricas sugeridas para un proyecto determinado en el contexto de un marco de madurez de procesos.

El paradigma objetivo-pregunta-métrica (GQM)

El enfoque GQM proporciona un marco que incluye los siguientes tres pasos:

  • Enumerar los principales objetivos del proyecto de desarrollo o mantenimiento.

  • Derivar las preguntas de cada objetivo que deben responderse para determinar si se están cumpliendo los objetivos.

  • Decidir qué se debe medir para poder responder adecuadamente a las preguntas

Para usar el paradigma GQM, primero expresamos los objetivos generales de la organización. Luego, generamos las preguntas de manera que se conozcan las respuestas para que podamos determinar si se están cumpliendo las metas. Posteriormente, analice cada pregunta en términos de qué medida necesitamos para poder responder a cada pregunta.

Las metas típicas se expresan en términos de productividad, calidad, riesgo, satisfacción del cliente, etc. Las metas y las preguntas deben construirse en términos de su audiencia.

Para ayudar a generar los objetivos, preguntas y métricas, Basili & Rombach proporcionaron una serie de plantillas.

  • Purpose - Caracterizar, evaluar, predecir, motivar, etc.) el (proceso, producto, modelo, métrica, etc.) para comprender, evaluar, gestionar, ingeniar, aprender, mejorar, etc. Example: Caracterizar el producto para aprenderlo.

  • Perspective - Examinar (costo, efectividad, corrección, defectos, cambios, medidas del producto, etc.) desde el punto de vista del desarrollador, gerente, cliente, etc. Example: Examinar los defectos desde el punto de vista del cliente.

  • Environment - El entorno consta de lo siguiente: factores de proceso, factores de personas, factores de problemas, métodos, herramientas, limitaciones, etc. Example: Los clientes de este software son aquellos que no tienen conocimiento sobre las herramientas.

Medición y mejora de procesos

Normalmente, la medición es útil para:

  • Comprender el proceso y los productos
  • Establecer una línea de base
  • Acceder y predecir el resultado

Según el nivel de madurez del proceso dado por SEI, el tipo de medición y el programa de medición serán diferentes. A continuación se muestran los diferentes programas de medición que se pueden aplicar en cada uno de los niveles de madurez.

Level 1: Ad hoc

En este nivel, las entradas están mal definidas, mientras que las salidas se esperan. La transición de entrada a salida no está definida y no está controlada. Para este nivel de madurez del proceso, se necesitan mediciones de línea base para proporcionar un punto de partida para la medición.

Level 2: Repeatable

En este nivel, las entradas y salidas del proceso, las limitaciones y los recursos son identificables. Un proceso repetible puede describirse mediante el siguiente diagrama.

Las medidas de entrada pueden ser el tamaño y la volatilidad de los requisitos. El producto puede medirse en términos de tamaño del sistema, los recursos en términos de esfuerzo del personal y las limitaciones en términos de costo y cronograma.

Level 3: Defined

En este nivel, se definen las actividades intermedias y se conocen y comprenden sus entradas y salidas. En la siguiente figura se describe un ejemplo sencillo del proceso definido.

La entrada y la salida de las actividades intermedias se pueden examinar, medir y evaluar.

Level 4: Managed

En este nivel, la retroalimentación de las primeras actividades del proyecto se puede utilizar para establecer prioridades para las actividades actuales y más tarde para las actividades del proyecto. Podemos medir la efectividad de las actividades del proceso. La medición refleja las características del proceso general y de la interacción entre las principales actividades.

Level 5: Optimizing

En este nivel, las medidas de las actividades se utilizan para mejorar el proceso eliminando y agregando actividades del proceso y cambiando la estructura del proceso de forma dinámica en respuesta a la retroalimentación de la medición. Por tanto, el cambio de proceso puede afectar a la organización y al proyecto, así como al proceso. El proceso actuará como sensores y monitores, y podemos cambiar el proceso significativamente en respuesta a las señales de advertencia.

En un nivel de madurez dado, podemos recopilar las medidas para ese nivel y todos los niveles por debajo de él.

Identificar el nivel de madurez

La madurez del proceso sugiere medir solo lo que es visible. Por lo tanto, la combinación de madurez del proceso con GQM proporcionará las medidas más útiles.

  • A level 1, es probable que el proyecto tenga requisitos mal definidos. En este nivel, la medición de las características de los requisitos es difícil.

  • A level 2, los requisitos están bien definidos y se puede recopilar información adicional, como el tipo de cada requisito y el número de cambios en cada tipo.

  • A level 3, las actividades intermedias se definen con criterios de entrada y salida para cada actividad

El análisis de objetivos y preguntas será el mismo, pero la métrica variará con la madurez. Cuanto más maduro sea el proceso, más ricas serán las medidas. El paradigma GQM, junto con la madurez del proceso, se ha utilizado como base para varias herramientas que ayudan a los gerentes a diseñar programas de medición.

GQM ayuda a comprender la necesidad de medir el atributo y la madurez del proceso sugiere si somos capaces de medirlo de manera significativa. Juntos proporcionan un contexto para la medición.