Documente Academic
Documente Profesional
Documente Cultură
MEDICIÓN Y ANÁLISIS
Mayo 2009
NOTA DE EDICIÓN
Esta guía ha sido desarrollada por el Laboratorio Nacional de Calidad del Software de
INTECO. Esta primera versión ha sido editada en Mayo del 2009.
El presente documento cumple con las condiciones de accesibilidad del formato PDF (Portable Document Format).
Se trata de un documento estructurado y etiquetado, provisto de alternativas a todo elemento no textual, marcado de
idioma y orden de lectura adecuado.
Para ampliar información sobre la construcción de documentos PDF accesibles puede consultar la guía disponible en la
sección Accesibilidad > Formación > Manuales y Guías de la página http://www.inteco.es.
1. PROPÓSITO 9
Figura 4 Ejemplo de preguntas y métricas relacionadas con una meta ............................ 25
Tabla 1 Beneficios del proceso de medición a nivel de proyecto y organizativo .............. 13
Con esta guía avanzada se pretende principalmente dar a conocer en qué consiste el
proceso de medición y análisis, es decir, los pasos a seguir para definir y utilizar de forma
eficiente las métricas. Va dirigida a empresas del sector de las TIC como ayuda y referencia
para que puedan definir sus indicadores como apoyo para su gestión interna.
También se hará una clasificación de las métricas en función de su nivel de uso (métricas de
producto, proyecto, proceso organizativo) dando ejemplos de distintas métricas en los
diferentes modelos, y se propondrá un modelo que contemple los contenidos que debería
tener una ficha que recoja y muestre los contenidos de cada una de las métricas o
indicadores.
Por último se dará el enfoque que dos importantes metodologías como son SPICE y
CMMI® dan a la medición y análisis y un listado de artefactos relacionados con este
proceso.
En general, la medición persigue tres objetivos fundamentales [1]: entender qué ocurre
durante el desarrollo y el mantenimiento, controlar qué es lo que ocurre en nuestros
proyectos y mejorar nuestros procesos y productos.
Las métricas son un buen medio para entender, monitorizar, controlar, predecir y probar el
desarrollo software y los proyectos de mantenimiento. En definitiva la medición nos ayuda a:
Las métricas de software son importantes a nivel de proyecto ya que ayudan al jefe de
proyecto a hacer mejor su trabajo. Las métricas de software proporcionan información
objetiva al jefe de proyecto ayudándole a:
• Reducir las actividades que no aportan valor • Identificar las oportunidades de mejora.
al producto que se está desarrollando. Mejorar el flujo de trabajo de los procesos.
Una vez que se han definido las necesidades de información de la organización, se puede
identificar un conjunto de medidas común que cubra estas necesidades. Una necesidad de
información se asocia a un concepto medible.
Un concepto medible es una relación abstracta entre atributos de una o más entidades, y
una necesidad de información [ISO 15939]. Es decir, es la relación entre una propiedad
medible, física o abstracta de una o más entidades, y una necesidad de información. Una
entidad puede ser un proceso, un producto, un servicio, un proyecto, o un recurso concreto.
En software hay tres clases de entidades cuyos atributos podemos querer medir:
Para dejar claro la diferencia entre estos términos vamos a ver un ejemplo.
- Una necesidad de información para una empresa podría ser evaluar la fiabilidad de
los enlaces de una página web.
Otros ejemplos de conceptos medibles son la calidad, coste, accesibilidad, calidad en uso,
relación de productividad de un equipo de desarrollo frente a un grado de productividad
objetivo, idoneidad de la tecnología…
Entidad -Una entidad puede pertenecer a una o más Una entidad puede ser un
categorías de entidad. proceso, un producto, un
servicio, un proyecto o un
-Una medición se realiza sobre los atributos de una
recurso en concreto.
entidad.
Categoría de -Una categoría puede incluir a una o varias Procesos, servicios, proyectos,
entidad categorías de entidades. recursos, programas,
componentes software…
-Tiene uno o varios atributos
Atributo -Solo puede pertenecer a una categoría de entidad. “Tamaño de código fuente”
podría ser atributo de la
-Una medición se realiza sobre los atributos de una
categoría de entidad
entidad
“programas”.
-Está relacionado con uno o más conceptos
medibles.
Se realiza
sobre
Medición
Usa Produce
Métrica Medida
(valor)
Una métrica puede estar definida para uno o más atributos y puede expresarse en una
unidad. Por ejemplo, la métrica “líneas de código” puede ser definida para realizar
mediciones del “tamaño” de un “módulo en C” y para realizar mediciones del “tamaño” de un
“programa en Java”.
Una unidad es una cantidad particular, definida y adoptada por convención, con la que se
pueden comparar otras cantidades de la misma clase para expresar sus magnitudes
respecto a esa cantidad particular [ISO 15939]. Por ejemplo, podemos considerar como
unidades: Líneas de código, Páginas, Persona-mes, LOC, bytes, palabras, links…
Las métricas del software es un término que se asigna a un amplio rango de actividades
diversas, por ejemplo:
Una métrica directa es una métrica de un atributo que no depende de ninguna métrica de
otro atributo, es decir una métrica de la cual se pueden realizar mediciones sin depender de
ninguna otra métrica y cuya forma de medir es un método de medición.
Por el contrario, una métrica indirecta es una métrica de un atributo que se deriva de una o
más métricas de otros atributos. Las mediciones de dicha métrica utilizarán las medidas
obtenidas en mediciones de otras métricas directas o indirectas.
La forma de medir una métrica indirecta es una función de cálculo. Además, una métrica
indirecta puede usarse en una función de cálculo. Por ejemplo, como métricas indirectas
podemos enumerar:
Las métricas no pueden interpretar por sí solas un concepto medible. De ahí la necesidad de
indicadores.
Los indicadores pueden servir de base para cuantificar conceptos medibles para una
necesidad de información, y ofrecen información para la toma de decisiones. Un indicador
podría ser, por ejemplo, la productividad de los programadores.
Otro concepto muy relacionado con los términos que se acaban de definir es construcción
de medición. La construcción de medición describe cómo los atributos de software
relevantes son cuantificados y convertidos en indicadores que proporcionan una base para
tomar decisiones. Una construcción de medida única puede involucrar: métricas directas,
métricas indirectas e indicadores.
Hemos estado tratando hasta ahora conceptos medibles y qué medir, pero ¿cómo medir?
Pues bien, la forma de medir está a elección de la organización. Se podría seguir un
método de medición que es una secuencia lógica de operaciones, descritas de forma
Además, un método de medición puede usar instrumentos de medición. Por ejemplo una
herramienta que sirva para contar líneas de código es un instrumento de medición que
asiste al método de medición contar líneas de código.
Algunos ejemplos podrían ser: contar líneas de código, anotar cada día las horas dedicadas
por los programadores al proyecto o valorar el grado de dificultad de un problema.
Métrica -Está definida para uno o más atributos La métrica “líneas de código”
puede definirse para realizar
-Se expresa en una unidad
mediciones del tamaño de un
módulo.
Escala -Una escala y una forma de medir están definidas -El nivel de madurez CMMI: 1,
para realizar medición de uno o varios atributos 2, 3, 4, 5.
Necesidad de
información
Sub Concepto
Modelo calidad Concepto
medible
medible
Categoría entidad
Atributo Unidad
Expresada en
tiene
Métrica Escala
Entidad Tipo de Escala
Sub Entidad
Método
Función de
medición
cálculo
Instrumento Forma de
medición medir
Últimamente ha aparecido un gran número de métricas para capturar atributos del software
de una forma cuantitativa. Sin embargo, muy pocas métricas han sobrevivido a la fase de
definición y por lo tanto de utilización en la industria. Esto se debe a múltiples problemas,
entre ellos:
Para evitarlo es necesario contar con un método de definición de métricas y con una base
para su formalización. Existen distintos métodos que ayudan en la definición de métricas. En
este apartado nos centraremos en el enfoque que GQM da a la definición de métricas.
El enfoque GQM (Goal-Question-Metric) proporciona una manera útil para definir métricas
tanto del proceso como de los resultados de un proyecto. Según este método, un programa
de medición puede ser más satisfactorio si se diseña orientado a las metas u objetivos que
se quieren alcanzar.
Este método fue originariamente definido por Basili y Weiss (1984) y extendido
posteriormente por Rombach (1990) como resultado de muchos años de experiencia
práctica e investigación académica.
GQM define una meta, refina esta meta en preguntas y define métricas que intentan dar
información para responder a estas preguntas. Las preguntas ayudarán a medir si se está
alcanzando la meta definida, por lo tanto se considerarán preguntas que sean
potencialmente medibles.
GQM se puede aplicar a todo el ciclo de vida del producto, procesos y recursos.
GQM sigue un proceso de seis pasos donde, los tres primeros tratan de identificar las
métricas a partir de las metas del negocio y los tres últimos se basan en la recopilación de
los datos de las medidas y su utilización eficaz en la toma de decisiones.
Nivel Cualitativo (Operacional)
Paso 2 Acotar
Generación de Preguntas Objetivos de medida
Respuestas generan
Nivel Cuantitativo
Paso 3 Definir
Métricas
Especificación de Medidas
Paso 4 Generar
Preparar Recolección de Plan de medición
datos
Paso 5
Objetivos •Reutilización de datos
Recolectar, Validar
y Almacenar los datos •Generación informes
Paso 6 Objetivos
•Evaluar objetivos logrados
Analizar los datos •Lecciones aprendidas
En la figura anterior se mencionan distintos niveles, que son los que caracterizan al método
GQM:
- Nivel Conceptual – Goals: Los objetivos identifican lo que queremos lograr respecto
a los productos, procesos o recursos.
Objetos de la medición:
o Recursos: elementos que los procesos utilizan para producir sus salidas.
o Subjetivos: si dependen tanto del objeto que se está midiendo como del punto
de vista desde el que se captan (por ejemplo, el nivel de satisfacción del
usuario).
Para cada meta, puede haber varias preguntas y la misma pregunta se puede ligar a
múltiples metas. De la misma forma, para cada pregunta puede haber múltiples métricas y
una métrica puede ser aplicable a más de una pregunta.
Questions
¿Cuál es la efectividad del ¿Cuál es la efectividad de ¿Cuál es la calidad de los
Aseguramiento de la la eliminación de productos en el
Calidad? defectos? desarrollo?
Metrics
Nº puertas de calidad Eficiencia de revisiones Nº defectos introducidos Tamaño producto
planificadas en cada fase (LOC,Nº páginas)
Nº puertas de calidad Eficiencia de pruebas
implementadas Nº defectos detectados
en cada fase
Efectividad de la
contención de defectos en Densidad de defectos
fase del desarrollo
- Calendario y progreso: esta categoría trata los objetivos de los hitos del proyecto y
completitud de unidades de trabajo individuales. Un proyecto que se sale de la
agenda, normalmente puede cumplir sus objetivos de entrega sólo eliminando
funcionalidades o sacrificando la calidad del producto.
- Satisfacción del cliente: esta categoría se ocupa del grado en que los productos o
servicios entregados por el proyecto cumplen las expectativas del cliente. Los
indicadores de satisfacción pueden obtenerse de la retroalimentación del cliente y de
los niveles que sean requeridos el soporte de clientes.
Se han utilizado diferentes enfoques para implementar métricas sobre proyectos software
aunque no todos son efectivos. Algunos de estos enfoques se han basado en la definición
detallada de métricas que se puedan aplicar de forma ecuánime a cada proyecto de la
organización. Otros sin embargo optan por la compra de herramientas de análisis y métricas
automatizadas de un proveedor externo sin conocimiento alguno acerca con los procesos de
la organización. Pero realmente para que una métrica tenga éxito y ayude a cumplir los
objetivos del proyecto en un entorno cambiante, hay que tener muy en cuenta las
necesidades de información.
Necesidad de
información
Concepto
medible
Construcción
métrica
Procedimiento
medición
Plan medición
Producto
Indicador
Métrica
indirecta
Métrica
directa
Atributo
Todo lo que puede realmente ser medido incluye atributos específicos de procesos y
productos software, como tamaño, esfuerzo y número de defectos.
‐ Aumentar la exactitud, asegurando que todos los aspectos esenciales del enfoque
de medición estén definidos de una manera adecuada.
‐ Maximizar el valor de las métricas base creando patrones de métricas derivadas e
indicadores que puedan ser fácilmente reconocidos, reutilizados y adaptados.
‐ Documentar la relación entre las necesidades de información y cómo se
satisfacen estas necesidades.
‐ Reducir la redundancia de métricas, ayudando a identificar un conjunto de
métricas base (primitivas) que puedan servir para distintos propósitos.
Un plan de medición podría tratar una única necesidad de información, pero en la mayoría
de los casos dirige varias de ellas. El plan define:
Diseño de la
Concepto medible construcción de
medición
Entidades Atributos
Existen distintas clasificaciones de las métricas del software. A más alto nivel las métricas
del software se pueden clasificar en 3 niveles: métricas de producto y servicio, métricas de
proceso y métricas de proyecto.
Las métricas de producto y de servicio describen las características del producto, como
tamaño, complejidad, características de diseño o rendimiento, y el nivel de calidad del
servicio prestado.
Las métricas de proceso se pueden utilizar para mejorar el desarrollo y el mantenimiento
del software. Las métricas del proceso dependen esencialmente del entorno de desarrollo.
Un ejemplo de este tipo de métricas es el tiempo empleado para desarrollar un elemento
software que dependa de factores externos tales como la capacidad del personal, la
metodología empleada…
Las métricas de proyecto describen las características propias del proyecto y de su
ejecución. Algún ejemplo puede ser el tamaño en punto de función (PF), esfuerzo estimado,
distribución de esfuerzo por fase del ciclo de vida, distribución de duración por fase del ciclo
de vida.
Vamos a entrar en cada uno de estos niveles en más profundidad clasificando distintos tipos
de métricas en cada uno de dichos niveles:
Gestión de proyectos
Progreso adecuado
Cumplimiento de tiempos
Cumplimiento de hitos
Cumplimiento de costes
Cumplimiento de alcance
Cumplimiento de RR.HH.
Existencia de seguimiento
En realidad, las medidas que recopila un equipo de proyecto y que convierte en métricas
para utilizarse durante un proyecto, también pueden transmitirse a los que tienen la
responsabilidad de mejorar el proceso del software. Por esta razón, se utilizan muchas
métricas similares tanto en el domino del proceso como en el del proyecto.
Producto físico
Número de componentes
Líneas de código
Tamaño
Puntos función
Volumen de software
Número de llamadas
Reutilización
Volumen de reutilización
Ratio de reutilización
Desarrollo de productos
Código muerto
Cobertura de pruebas
Calidad de pruebas
Densidad de defectos
Servicios
Reparos en explotación
Grado de satisfacción
Grado de satisfacción del cliente
Ahora vamos a describir algunas de las métricas que se podrían tomar en este nivel sobre la
calidad de un producto:
La calidad de producto se mide normalmente por la densidad de defectos y el tiempo
medio de fallo. La primera métrica mide los defectos relativos al tamaño del software
(líneas de código, puntos función, etc.) y la segunda mide el tiempo que trascurre entre la
detección de fallos.
La densidad de defectos de un producto o el número esperado de defectos en un
determinado periodo de tiempo es importante para estimar el coste y recursos de la fase de
mantenimiento del ciclo de vida del software. En esta métrica el numerador es el número de
defectos. Sin embargo, desde el punto de vista del usuario, todos los problemas que
encuentre al utilizar el software, no solamente los defectos, son problemas con el software.
Estos problemas que no son defectos pueden ser problemas de usabilidad, documentación
o información que no está clara, o incluso errores de los usuarios. Por eso, otra métrica
importante relacionada con la calidad del producto es la que mide los problemas
encontrados por el cliente al utilizar el producto.
También existe una métrica directamente relacionada con la satisfacción del cliente. La
satisfacción del cliente, normalmente, se mide mediante encuestas realizadas al cliente, que
puntúa en una escala de cinco puntos: muy satisfecho, satisfecho, neutral, insatisfecho, muy
insatisfecho.
Algunos de los parámetros que se evalúan en las encuestas de satisfacción del cliente son:
capacidad, funcionalidad, usabilidad, rendimiento, fiabilidad, mantenibilidad, documentación
/información y servicio.
Todas las métricas que se mencionaron en el apartado anterior están relacionadas con el
producto final, pero cuando finaliza el desarrollo de un producto software y se lanza al
mercado, comienza la fase de mantenimiento dentro del ciclo de vida del producto.
Durante esta fase, las métricas que se suelen recoger son:
- la llegada de defectos por intervalo de tiempo
- las incidencias del cliente (que pueden ser defectos o no) por intervalo de tiempo
Sin embargo, el número de defectos o problemas que llegan viene determinado por el
proceso de desarrollo antes de la fase de mantenimiento. Ya no se puede hacer mucho para
alterar la calidad del producto en esta fase. Por tanto, estas dos métricas, aunque son
importantes, no reflejan la calidad del mantenimiento del software. Lo que se debe hacer en
esta fase de mantenimiento es corregir los defectos lo antes posible y hacerlo con buena
calidad. Estas acciones, pueden mejorar en gran medida la satisfacción del cliente. En este
sentido, las siguientes métricas de mantenimiento son muy importantes.
*Criterios de análisis:
*Datos históricos
Nombre
Variable I
Nombre
Variable II
Nombre
Variable III
…..
…..
Nombre
Metas
… …. …. ….
*Responsables y firmas:
Versión: *Fecha:
Una vez que se han definido unos objetivos a nivel de la organización y se han especificado
unas métricas que proporcionarán información cuantitativa sobre los objetivos fijados, hay
que desarrollar mecanismos para la recolección de datos.
Dentro del plan de medición ya definido se tienen que contemplar todos los procedimientos
detallados para la recolección de datos:
6.1.1. Checklist
100
90
80
70
% Defectos
60
50
40
30
20
10
0
Severidad 1 Severidad 2 1 Severidad 3 Severidad 4
Un diagrama de dispersión es una herramienta útil para identificar una relación potencial
entre dos variables. En una relación causa-efecto, el eje X se utiliza para la variable
independiente y el eje Y para la variable dependiente.
Cada punto de un diagrama de dispersión representa una observación de ambas variables.
Estos diagramas están orientados a la toma de decisiones basadas en datos (por ejemplo si
se planifica una acción en la variable X y se espera algún efecto en la variable Y).
Se debe utilizar un diagrama de dispersión cuando se quiera presentar el coeficiente de
correlación entre dos variables ya que es un método muy sensible a los valores atípicos y
muestra claramente cualquier valor atípico en la relación.
Los tipos de correlación que se pueden producir son:
X Y
Posible correlación negativa provocará una tendencia de parece condicionada por algún
disminución en Y otro aspecto distinto de X
Plataforma 1
Semanas
Comenzados Completos ----- Planificados
Toda organización desea prosperar y alcanzar el éxito dentro de su área profesional. Para
ello, debe establecer una serie de metas u objetivos de negocio a alcanzar, es decir, definir
claramente qué es lo que la empresa debe conseguir para mejorar y garantizar que los
procesos organizativos conducen a la empresa hacia el éxito buscado.
Una vez que han analizado su misión, identificado a los agentes implicados y definido sus
metas, necesitan una forma de medir el progreso hacia dichas metas.
Una de las claves para la gestión efectiva es monitorizar regularmente los factores críticos
que determinan el éxito del negocio. Para ello, las empresas necesitan una serie de medidas
clave que les permitan saber cómo se está desarrollando el negocio. La forma en la que
muchas empresas hacen esto es mediante los Key Performance Indicators (KPIs). El mayor
valor de los KPIs es la posibilidad de ayudar a crear una cultura de mejora continua y de
trabajo en equipo dentro de la compañía. Los KPIs proporcionan una oportunidad para
mantener a todos los implicados (dirección, empleados, proveedores) centrados en lo que
se necesita hacer para mejorar el rendimiento y mantener el negocio.
Existen herramientas que permiten monitorizar, controlar y gestionar los procesos de una
organización a través de indicadores de rendimiento alineados con los objetivos
estratégicos, los cuadros de mando. En este apartado se abarcarán dichas herramientas y
se detallarán algunos de los tipos de uso más extendido como son los dashboards y los
scorecards. Por último se expondrán una serie de mejores prácticas que se pueden tener
en cuenta a la hora de construir cuadros de mando.
Dashboard Scorecard
80
60
40
20
0
Mario Luis Ana Pedro Laura
40
20
0
Mario Luis Ana Pedro Laura
Esta segunda figura muestra los mismos datos con contexto. En este caso, se ve de
forma clara en el gráfico que ninguno de los empleados ha llegado este mes al objetivo
de ventas propuesto.
Dar contexto a los datos puede parecer un paso obvio, pero es la práctica más omitida
entre los desarrolladores de cuadros de mando. En la mayoría de los casos, el contexto
se olvida porque la persona que crea el cuadro de mando ha trabajado tanto con los
datos que sabe cuando éstos son buenos o malos. Esta suposición, sin embargo, no
puede aplicarse al usuario final ya que puede traer falsas conclusiones.
5. Establecer la distribución de los datos
La distribución incluye el diseño y el emplazamiento de controles dentro de un cuadro de
mandos. La distribución tiene un gran impacto ya que determina si un usuario puede o
no usar el cuadro de mandos fácilmente, y debería ofrecer un orden lógico y fluido con
respecto a los datos específicos que se muestran. El cuadro de mandos debería cumplir
también con la regla de 3 y 10 segundos; en 3 segundos el usuario debería tener una
idea de todo el rendimiento global, y en 10 segundos el usuario debería tener una idea
general de por qué se está consiguiendo ese rendimiento. Por ejemplo, si un usuario
estuviera mirando un cuadro de mandos de marketing bien diseñado, a los 3 segundos
sabría qué campañas se están desarrollando en la empresa actualmente y cómo se está
haciendo cada una, y en 10 segundos sabría qué campañas se están haciendo mejor y
quizás tendría alguna idea de por qué. Si el cuadro de mandos no es demasiado intuitivo
como para cumplir con la regla de 3 a 10 segundos entonces no será útil.
6. Establecer la estética visual
La estética visual incluye animación, paletas, efectos 2D y 3D, y la apariencia real de los
controles. Está muy relacionado con la distribución de un cuadro de mandos pero afecta
a la apariencia estética de cuestiones específicas dentro de un cuadro de mandos más
que al diseño general. Mientras que la estética visual es importante a la hora de hacer un
cuadro de mandos atractivo, los desarrolladores deben tener cuidado con que los
efectos visuales no interfieran con la usabilidad y la eficiencia del cuadro de mandos.
Proceso de medición
orientado a la
ISO 9000-3 información ISO/IEC 15939
CMMI
M&A
PSM proporciona una serie de mejores prácticas utilizadas por profesionales de la medición
dentro de la adquisición de sistemas y del software y comunidades de ingeniería.
PSM define un proceso general de medición y análisis que se detalla a continuación en el
siguiente gráfico:
Resultados de
análisis y medición
de rendimiento
Acciones de mejora Evaluar el proceso
de medición
Métricas Descripción
ACTIVIDAD TAREAS
oCalendario y progreso
oRecursos y costes
Futuro
oTamaño de producto y estabilidad
Necesidades de inf ormación oCalidad de producto
oEjecución de proceso
Presente oEf ectividad de la tecnología
oSatisf acción del cliente
Proyecto Organización
En este apartado vamos a ver una serie de acciones a llevar a cabo para tener éxito en la
definición e implantación de métricas en una organización.
La primera tarea para planificar un programa de medición, como ya hemos visto, es definir
las necesidades de información de la organización. Para ello, será necesario formar a la
dirección y trabajar con ellos para identificar y priorizar sus necesidades de información.
Una vez que se han definido las necesidades de información de la organización, se puede
identificar un conjunto de medidas comunes que cubran estas necesidades. Esto quedará
recogido en un plan de medición organizacional que, además, describirá el repositorio donde
se almacenarán los datos y el proceso a seguir por cada proyecto para incorporar los datos
a este repositorio. Este conjunto de medidas será requerido para cada proyecto, pudiendo
realizarse adaptaciones para proyectos específicos. Al tratarse de un conjunto común de
medidas, se puede comenzar la implantación del programa a pequeña escala, a modo de
piloto, para extenderlo posteriormente a todo el departamento de TI.
A la hora de decidir qué medidas recoger se pueden tener en cuenta varios factores:
- ¿Qué datos existen y están disponibles para ser analizados?
- ¿Qué datos nuevos serían relativamente fáciles de obtener?
- ¿Qué medidas contribuirían de forma inmediata a la toma de decisiones?
La segunda fase de un programa de medición involucra a los proyectos. Los responsables
de proyectos tienen unas necesidades de información específicas a nivel de proyecto,
aparte de las definidas por la organización. El proceso de medición, por tanto, debe cubrir
tanto las medidas requeridas por la organización (adaptadas, si es necesario) como aquellas
10.1. CMMI®
CMMI® es un modelo de madurez de mejora de procesos para el desarrollo y
mantenimiento de productos y servicios. Consiste en una serie de mejores prácticas que
dirigen las actividades de desarrollo y mantenimiento que cubren el ciclo de vida del
producto.
El área de proceso Medición y Análisis (MA) es de la categoría Soporte, es decir, las
prácticas de MA se utilizan para satisfacer las necesidades de información de los proyectos,
de los productos, de la organización y las relacionadas con el desempeño de los procesos.
El objetivo principal del área de proceso MA en el modelo CMMI es desarrollar y poner en
marcha el sistema de medición de la organización de manera que pueda satisfacer sus
propias necesidades de información. Esto implica:
• La especificación de los objetivos de MA de forma que estén alineados a las metas y
necesidades de información.
• La especificación de métricas, técnicas de análisis y mecanismos para la recolección,
almacenaje, reporte y retroalimentación de la información para su posterior
implementación.
• Dar resultados objetivos que puedan ser utilizados para tomar decisiones informadas
y tomar acciones correctivas.
El área de proceso tiene dos metas específicas y prácticas específicas asociadas a cada
una de las metas:
Los resultados de las mediciones, las cuales SP2.2 Analizar datos de las mediciones
soportan las metas y necesidades de información,
son proporcionados. SP2.3 Almacenar datos y resultados
Las relaciones entre las prácticas específicas están demostradas en el siguiente gráfico:
Alinear las Actividades de Medición y Análisis
Especificar
Establecer Especificar Procedimientos de Especificar
Objetivos de Recogida y
Mediciones Procedimientos de
Medición Almacenamiento
de Datos Análisis
Almacenar Analizar
Comunicar Datos y Datos de Recoger Datos de
Resultados Resultados Mediciones Mediciones
En esta sección se van a proponer una serie de artefactos que pueden ser de utilidad a la
hora de implementar el proceso de medición y análisis en la organización. Con el término
artefactos nos referimos a procesos/procedimientos, plantillas, herramientas, listas de
control (checklist), etc., es decir, todo tipo de elementos que ayudarán a llevar a cabo las
prácticas del proceso de medición y análisis.
Algunos de los documentos que pueden servir de apoyo a una organización en las tareas de
medición y análisis son:
- Proceso de medición y análisis: Documento donde se describe el proceso de
medición y análisis especificando las distintas partes del mismo, así como
determinando cuáles son los criterios de entrada y de salida, los elementos de
entrada y de salida para el proceso, cómo validar el proceso y métricas a recoger
sobre la ejecución del proceso.
- Guía para medición del esfuerzo: Documento que recoge buenas prácticas y
recomendaciones para medir el esfuerzo necesario para estimar, planificar,
monitorizar y controlar el proyecto.
- Guía para medición de defectos: Documento que recoge buenas prácticas y
recomendaciones para medir el número de defectos encontrados durante las
revisiones y pruebas de los productos.
- Guía de métricas por nivel de CMMI: Documento que muestra algunas métricas
que pueden tomarse sobre las áreas de proceso del nivel 2 de madurez de CMMI®.
- Definición de métricas: Plantilla para definir una serie de métricas en el proyecto.
- Validación de datos: Plantilla para realizar un análisis sobre la validez de los datos
recogidos.
- Cuestionario satisfacción de cliente: Plantilla para realizar un cuestionario de
satisfacción del cliente sobre distintos aspectos del proyecto.
- Informe satisfacción de cliente: Plantilla para generar informes periódicos sobre la
satisfacción del cliente.
- Consolidación de métricas: Plantilla para la consolidación de las métricas
recogidas durante todas las fases del proyecto.
- Checklist de medición y análisis: Lista de comprobación para asegurar que se está
siguiendo adecuadamente el proceso definido para la medición y análisis en el
proyecto, según las prácticas del modelo CMMI®.
Algunos ejemplos de estos artefactos pueden encontrarse en el servicio online de
‘Repositorio documental de procesos’. Así mismo, en el servicio online ‘Directorio de
herramientas’ pueden encontrarse herramientas de soporte para la implementación del
Chrissis M, M. Konrad, S. Shrum, CMMI® Second Edition. Guidelines for Process Integration
and Product Improvement, Addison-Wesley, 2007
Fenton, Norman; Pfleeger, E. and Shari, Lawrence. Software Metrics: A Practical And
Rigorous Approach. London, UK: Thomson, 1996
Florac William, Anita D. Carleton, Measuring the Software Process: Statistical Process
Control for Software Process Improvement, The SEI Series in Software Engineering
Florac W., R. Park, A Carleton, Practical Software Measurement: Measuring for Process
Management and Improvement, MU/SEI-97-HB-003, 1997
Grady, R.B., and D.L. Caswell, Software Metrics: Establising a Company-Wide Program,
1986
Heztzel, B., Making Software Measurement Work: Bulding an Effective measurement
Program, 1993
John McGarry, David Card, Cheryl Jones, Beth Layman, Elizabeth Clark, Joseph Dean, Fred
Hall, “Practical Software Measurement: Objective Information for Decision Makers”
Jones, C., Applied Software Measurement, Assuring Productivity and Quality, 1997
McGarry, J., D.Card, C.Jones, B.Layman, e.Clark, J.Dean, y F.Hall, Practical Software
Measurement, Objective Information for Decision Makers, 2001
Stephen H. Kan, Metrics and models in Software Quality Engineering, 2003
Enlaces
What is the Balanced scorecard? -
http://www.balancedscorecard.org/BSCResources/AbouttheBalancedScorecard/tabid/55/Def
ault.aspx
Cuadros de mando (Dashboards y Scorecards) - http://bi.abast.es/dashboards.shtml
Balanced scorecard - http://www.coursework4you.co.uk/balanced_scorecard.htm
Best Practices for Building Digital Dashboards -
http://www.dundas.com/Dashboards/BestPractices3.aspx
ISO/IEC JTC1/SC7 /N3302, 2005-07-08 - http://www.jtc1-sc7.org
Practical Software and Systems Measurement - http://www.psmsc.com/
Implementing a Successful Measurement Program: Tried and True Practices and Tools -
http://www.psmsc.com/Downloads/Other/Implementing_a_SuccessfulMeasurementProgram.
pdf
Software Metrics - http://www.softwaremetrics.com/
Total Metrics - http://www.totalmetrics.com/
The Accounting Blog – Key Performance Indicators - http://www.vanilla-
accounting.com/blog/archives/000056.php
14.1.1. Tamaño
Los puntos función son independientes de la tecnología porque miden los sistemas desde una perspectiva
funcional. El número de puntos función de un sistema permanecerá constante independientemente del lenguaje
de programación, método de desarrollo o plataforma utilizada. La única variable es la cantidad de esfuerzo
necesario para entregar un conjunto de puntos función, por tanto, el análisis de puntos función se puede utilizar
para comparar si una herramienta, un entorno o un lenguaje es más productivo que otros dentro de una
organización o entre distintas organizaciones. Esto supone uno de los valores más importantes del análisis de
puntos función.
El análisis de puntos función, además, proporciona un mecanismo para realizar un seguimiento y control de
cambios de alcance. Se puede comparar el número de puntos función al final de las fases de requisitos,
análisis, diseño, codificación y pruebas.
El proceso para calcular el número de puntos función sería: identificar Puntos función
las funciones disponibles para el usuario, categorizar estas funciones
en componentes (entradas, salidas, consultas, interfaces y ficheros
lógicos internos), asignar una complejidad a cada función (alta, media,
baja). En función del tipo de componente y la complejidad se le
asignará un número de FP sin ajustar. Este número debe calibrarse
con 14 elementos que dependen del entorno, puntuando cada uno de
los factores según el grado de influencia en una escala del 0 al 5. Una
vez puntuados, se utiliza la siguiente ecuación para calcular el factor
*Criterios de análisis:
Al comparar el número de puntos función al final de la especificación de requisitos y/o diseño con el número de
puntos función entregados, si el número de puntos función ha crecido indica que ha habido cambios de alcance.
El volumen de este crecimiento indicará también lo bien que se han tomado los requisitos y/o se han
comunicado al equipo de proyecto. Si el volumen de cambios de alcance disminuye en el tiempo significará que
la comunicación con el usuario ha mejorado.
14.1.2. Complejidad
Es una métrica independiente del lenguaje que se basa en el diagrama de flujo determinado por las estructuras
de control de un determinado código. De dicho análisis se puede obtener una medida cuantitativa de la
dificultad de crear pruebas automáticas del código y también es una medición orientativa de la fiabilidad del
mismo.
*Criterios de análisis:
Para que el programa pueda ser fácilmente probado y mantenible, se recomienda que ningún módulo tenga una
complejidad ciclomática superior a 10.
Esta métrica permite mejorar la calidad de los productos entregados al cliente ampliando el conocimiento
acerca del número de defectos encontrados respecto al tamaño del producto que se entrega al cliente.
Repositorio donde se registran las Número de defectos encontrados FP: Puntos función
incidencias del cliente durante revisiones del cliente y
KLOC: Miles de líneas de código
pruebas de aceptación; Tamaño
del producto.
*Criterios de análisis:
Si el valor es mayor del previsto, puede ser debido a que los requisitos/escenarios de uso no han sido bien
entendidos, las revisiones han sido ineficientes o la cobertura de pruebas inadecuada. Si el valor es menor del
previsto, indicará que ha mejorado el proceso de desarrollo, o la utilización de herramientas o reutilización de
componentes ha sido exitosa.
Disponer de una línea base que permita a los gerentes estimar el Planificación del proyecto
esfuerzo para cada fase individual de un proyecto o propuesta nueva,
mejorando la efectividad de costes.
Permite conocer el esfuerzo dedicado a cada fase del proyecto con respecto al esfuerzo total del proyecto.
*Criterios de análisis:
Se puede utilizar un gráfico circular para analizar la distribución del esfuerzo en cada fase del proyecto. Un
gráfico de control permitirá monitorizar y comparar esta distribución por fases entre distintos proyectos de una
organización.
Conocer las incidencias abiertas que superan el SLA Ejecución del proyecto
Relaciona el índice de llegada de incidencias con el ritmo al que éstas se van corrigiendo
Herramienta para registro de Número de incidencias abiertas SLA: Acuerdo del nivel de servicio
incidencias que superan el SLA, número de
incidencias abiertas
*Criterios de análisis:
Se puede analizar mediante un gráfico de tendencias. Si el índice de trabajo acumulado disminuye, mejorará la
productividad. El objetivo es que sea cercano a 0.
14.2.3. Costes
*Criterios de análisis:
Se podrían usar gráficos de barras para comparar el % de coste de calidad con la meta establecida a nivel de
proyecto.
Usar gráficos de control para monitorizar el % de costes de calidad en los distintos proyectos de la
organización.
Se puede analizar la tendencia de la métrica como:
Índice de ‘Esfuerzo de evaluación + Esfuerzo prevención’ con respecto a ‘Esfuerzo fallos’. Debe aproximarse a
1.
Índice de ‘CQ’ con respecto a ‘Esfuerzo total’. Debe ser menor del 50%.
14.2.4. Productividad
El tamaño del código se puede Tamaño del producto, esfuerzo FP: Puntos función
obtener a través de una real para la fase de codificación y
LOC: Líneas de código
herramienta de inspección de para la fase de pruebas unitarias.
código. El esfuerzo dedicado se
obtendrá del parte de horas de los
recursos involucrados.
*Criterios de análisis:
Utilizar un gráfico de barras para comparar la productividad conseguida con respecto al objetivo fijado para el
proyecto. Mediante un gráfico de control se pueden comparar los resultados de distintos proyectos. Una
productividad relativamente baja en una fase inicial puede atribuirse a la curva de aprendizaje.
14.2.5. Seguimiento
Se puede utilizar en todos los niveles de la gestión de proyecto para medir los valores actuales frente a los
planificados. Se recomienda utilizar para el análisis un gráfico de tendencias desde el inicio hasta el fin del
proyecto.
Asegurar la conformidad con el nivel de servicio acordado (SLA). Útil Problemas en explotación
para estimar SLA's en proyectos nuevos
Permite conocer el porcentaje de peticiones, con respecto al total recibidas, que han sido respondidas dentro
del nivel de servicio acordado (SLA)
*Criterios de análisis:
Se puede analizar mediante un gráfico de tendencias. El tiempo de respuesta debería reducirse a medida que
el proyecto avanza y el equipo tiene mejor conocimiento de la aplicación.
Permite conocer la puntuación media que otorga el cliente en una encuesta de satisfacción sobre el
proyecto/producto.
Sum(Puntuación dada en cada pregunta de la encuesta)/(Nº total de Escala de puntuación (1-5 por
preguntas de la encuesta - Nº preguntas contestadas como N/A) ejemplo)
*Criterios de análisis:
En proyectos largos, analizar la tendencia en las valoraciones de los clientes para identificar áreas de mejora.
Analizar tanto las puntuaciones cuantitativas como las cualitativas.
14.4. PROCESO
Permite conocer el porcentaje de defectos totales del producto que se detectaron durante las pruebas y
revisiones, antes de la entrega del producto.
*Criterios de análisis:
Cuanto más alto sea el valor, más efectivo será el proceso de desarrollo y menos defectos se trasmitirán a
producción.