Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metricas SW
Metricas SW
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
Conceptos básicos
La teoría de la representación de la medición establece tanto los principios
generales de la medición como su validez. Esta teoría trata de expresar:
• Mundo formal de forma numérica
• las entidades del mundo real (o mundo empírico)
• la correspondencia entre ambos mundos
Las entidades en la Ingeniería del Software son los procesos, los recursos
(personal, oficinas, etc.)
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Conceptos básicos
El estándar ISO/IEC 15939 define:
Entidad: objeto que va a ser caracterizado mediante una medición de sus atributos
Atributo : característica medible de una entidad, ejemplo: atributos del código fuente
pueden ser las líneas de código o su complejidad
Medición : es el proceso por el que se asignan números o símbolos a atributos de entidades
del mundo real para describirlos según unas reglas definidas de antemano
Medida : es la evaluación cuantitativa del grado en el cual un producto o proceso software
posee un atributo determinado, por ejemplo: a la entidad Código fuente de XY
componente
MÉTRICAS DE SOFTWARE
Conceptos básicos
El estándar ISO/IEC 15939 define:
Entidad: objeto que va a ser caracterizado mediante una medición de sus atributos
Atributo : característica medible de una entidad, ejemplo: atributos del código fuente
pueden ser las líneas de código o su complejidad
Medición : es el proceso por el que se asignan números o símbolos a atributos de entidades
del mundo real para describirlos según unas reglas definidas de antemano
Medida : es la evaluación cuantitativa del grado en el cual un producto o proceso software
posee un atributo determinado, por ejemplo: a la entidad Código fuente de XY
componente.
Líneas de código Complejidad
1500 Alta
Escala: conjunto de valores que permite establecer relaciones
entre medidas. Con frecuencia dicho conjunto es continuo, está ordenado y viene
delimitado por un punto inicial y otro final
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
Escala de ratio : Este tipo de escalas es el que más información proporciona y por tanto el
que permite llevar a cabo análisis más interesantes y completos. Tienen un valor inicial de
referencia o cero absoluto, y permiten definir ratios coherentes con los valores de la escala,
por lo que se pueden comparar los valores estableciendo proporciones. El ejemplo clásico
es el de la escala Kelvin de medición de temperaturas. En la Ingeniería del Software, un
ejemplo de este tipo de escalas es la longitud de un programa en líneas de código, que
permite decir que un programa es el doble de largo o la mitad de largo que otro.
Escala absoluta : Escalas con las características de las escalas anteriores, si bien consisten
simplemente en la cuenta sin transformación del número de entidades. El número de
programadores involucrado en un desarrollo, algo que sólo se puede medir contando, es un
ejemplo de escala absoluta.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Medidas indirectas: son aquellas que se derivan de una o más medidas de otros atributos.
Se definen y calculan, por tanto, a partir de otras medidas. Un ejemplo de medida indirecta
es la densidad de defectos de un módulo, que se define como el número de defectos del
módulo dividido por su tamaño.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Medidas objetivas: una medida cuyo valor no depende del observador. Ejemplo tamaño del
producto por numero de líneas de código.
Medidas subjetivas: son aquellas en las que la persona que realiza la medición puede
introducir factores de juicio en el resultado. No obstante, el interés de estas medidas está
en que incluyen percepciones, opiniones y juicios que en ciertos casos resultan valiosos.
Ejemplo: nivel de experticia de un desarrollador
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
Atributos internos. Los atributos internos de un producto, proceso o recurso son aquellos
que se pueden medir directamente a partir de dicho producto, proceso o recurso. En un
modulo software, por ejemplo, podemos medir directamente el numero de defectos que se
han encontrado en el mismo.
Atributos externos. Los atributos externos de productos, procesos o recursos son aquellos
que los relacionan con el entorno. Se miden por medio de métricas indirectas y se deducen
en función de atributos internos. Como atributos externos se suelen considerar los
relacionados con la calidad.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
Es útil medir por separado las líneas comentadas (CLOC) para calcular esfuerzo,
productividad, etc. La longitud total será:
LOC = NCLOC + CLOC
También puede se útil calcular la densidad de comentarios:
CLOC/LOC
Para propósitos tales como la prueba es importante conocer cuanto código ejecutable se
produce, para ello se mide el número de sentencias ejecutables (ES), ignorando los
comentarios, declaraciones de datos y cabeceras.
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
Herramientas: SonarQube
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
• Los atributos externos sólo son medibles cuando el producto está completo.
• La mayoría están relacionados con algún aspecto de la calidad
• Los modelos de calidad recogen atributos denominados factores de
calidad(atributos de alto nivel)
• Los factores de calidad puede descomponerse en atributos de bajo nivel
denominados criterios de calidad.
• Los criterios de calidad pueden asociarse con un conjunto de atributos de bajo
nivel medibles directamente obteniendo las métricas de calidad.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
• Funcionalidad
• Fiabilidad
• Eficiencia
• Usabilidad
• Mantenibilidad
• Portabilidad
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
ET: medida de los recursos necesarios para mover el sistema a otro entorno ( Target
Environment ).
ER: medida de los recursos necesarios para crear el sistema en el entorno residente ( Re
sident Environment )
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
MÉTRICAS DE SOFTWARE
Medición de recursos
Los recursos son las entidades que se requieren en las actividades de proceso. Los recursos
incluyen cualquier entrada en la producción de software: personal, materiales,
herramientas, métodos, coste, productividad, .....
• El coste generalmente se mide, a partir del resto de los recursos, pudiéndose ver como
el coste de las entradas afecta al coste de las salidas
• La productividad es otro atributo externo importante que depende del proceso de
desarrollo. Normalmente se mide de la forma:
cantidad de salida/ cantidad de entrada
• La productividad de un recurso de software se mide en función de la proporción entre lo
que entra y sale de un proceso de producción de software.
• Ecuación de productividad: tamaño de software/ esfuerzo
• Unidades más utilizadas:
• Tamaño: líneas de código, PF,....
• Esfuerzo: personas-mes, persona-día,....
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Medición de recursos
Productividad
• La medición de la productividad en función del número de líneas de código puede
presentar problemas:
• Dependencia de la técnica de contar
• Dependencia del lenguaje de programación
• Penalización del buen estilo de programación ...
• Para solventar esos problemas algunos autores han propuesto medir la productividad a
partir de la funcionalidad
• Ventajas de los puntos de función:
• Reflejan mejor el valor de la salida
• Pueden usarse en cualquier momento del ciclo de vida
• Se pueden utilizar para medir el progreso comparando los puntos de función
completados frente a los incompletos
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Medición de recursos
Equipos
• La estructura del equipo del proyecto es un factor clave en la productividad.
• El factor particular que afecta a la productividad es la complejidad de las
comunicaciones: complejidad causada por el número de individuos implicados y el
método de comunicación requerido entre los miembros de un proyecto (Grady/Caswell).
• La experiencia del equipo se calcula hallando la media de las medidas de experiencia
individual.
• Algunos métodos como COCOMO utilizan escalas de medida ordinales (muy baja, baja,
nominal, alta y muy alta) para cada uno de los atributos de personal: experiencia en la
aplicación, en el lenguaje, en el uso de herramientas, ...
• La productividad del equipo no sólo depende de las productividades individuales de
sus miembros, sino también de la comunicación entre ellos.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Medición de recursos
Métodos y herramientas
• El modelo COCOMO incluye dos guías de coste: uso de herramientas y uso de técnicas
modernas de programación con escalas de medida (muy baja, baja, nominal, alta, muy
alta)
• Fenton propone la siguiente escala para evaluar el uso de herramientas por cada
diseñador:
0 No se usan herramientas.
1 Las herramientas sirven de ayuda en el 20% de la documentación.
2 Las herramientas se usan para documentar al menos el 50% del diseño de alto nivel.
3 Las herramientas se usan para documentar al menos el 50% del diseño de alto nivel
y diseño detallado.
4 Las herramientas se usan para el diseño y la generación automática de código de al
menos el 50% del sistema.
5 Las herramientas se usan para el diseño y la generación automática de código de al
menos el 90% del sistema.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Puntos de Función(FPA)
Puntos de Función(FPA)
Puntos de Función(FPA)
Puntos de Función(FPA)
¿Como realizar la medición?
Puntos de Función(FPA)
¿Resumen Tips?
• Actualizar(EI)
• Insertar(EI)
• Eliminar(EI)
• Listar(EO)
• Informes o reportes(EO)
• Buscar(EQ)
• Tablas de DB (ILF)
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Puntos de Función(FPA)
Tabla de ponderaciones para EI, EQ y EO
Una vez obtenidos los diferentes elementos del sistema se utilizan las
siguientes tablas para asignar pesos en función del número de atributos que
tengan y el número de archivos a los que afecte.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Puntos de Función(FPA)
Tabla de ponderaciones para ILF y EIF
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Puntos de Función(FPA)
Valores estándar (IFPUG) International Function Point User Group
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
PFSA
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
PFTif: Total Puntos de Función para los archivos internos del sistema.
PFTef: Total Puntos de Función para los archivos externos del sistema.
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Puntos de Función(FPA)-Ejemplo
Puntos de Función(FPA)-Ejemplo
Puntos de Función(FPA)-Ejemplo
Supongamos que luego de evaluar los factores, los niveles de complejidad fueron
los siguientes:
Calculo de PFSA –Puntos de función sin ajustar
Componente Tipo de Componente Nivel de Complejidad
Ingreso de clientes EI Bajo
Modificación del EI Medio
cliente
Listado de clientes EQ Bajo
Reportes de EO Medio
Clientes por ciudad
Tabla de clientes ILF Medio
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Puntos de Función(FPA)-Ejemplo
Asignar los puntos de función no ajustados a cada uno:
Componente Tipo de Nivel de Puntos de
Componente Complejidad Función
Ingreso de EI Bajo 3
clientes
Modificación EI Medio 4
del cliente
Listado de EQ Bajo 3
clientes
Reportes de EO Medio 5
Clientes por
ciudad
Tabla de ILF Medio 10
clientes
Entonces el número de puntos de función no ajustado es de PFSA 25
INGENIERIA DE SOFTWARE II
MÉTRICAS DE SOFTWARE
Puntos de Función(FPA)-Ejemplo
Calculo de Puntos de función Ajustados PFA
Podemos aplicar un factor de ajuste, basado en 14 características generales de
sistema definidas por el IFPUG-FPA.
PFA=PFSA* [0.65+[0.01*ACT]]
La obtención de ACT se realiza a través de la siguiente tabla:
Puntos de Función(FPA)-Ejemplo
Calculo de Puntos de función Ajustados PFA
PFSA=25
PFA=25* [0.65+[0.01*32]]
PFA=25* 0,97=24,25
Estimar horas hombre (o días hombre) a partir de los puntos de función
Con los puntos de función puedes calcular las horas hombre aplicando un factor
de conversión, pues no necesariamente un punto función equivale a una hora
hombre.
HH=PFA*Horas PF promedio
Por ejemplo supongamos que hemos determinado que nuestra organización
toma 3 horas en producir 1 punto de función, entonces:
HH=24,25*3=72,75 o 9 días si se consideran 8 horas de trabajo diarias.