4. MÉTRICAS DEL SOFTWARE
MCC Irma Ardón
¿POR QUÉ MEDIR EL SOFTWARE?
Calidad del producto
Productividad del equipo de desarrollo
Asegurar beneficios
Facilitar las pruebas
Justificar capacitación y nuevas herramientas
2
INSPECCIÓN PROMEDIO: 100
LÍNEAS POR HORA => PRUEBAS AUTOMATIZADAS
Analizadores Sintácticos
Métodos Formales
Herramientas
Bancos de Pruebas
ANALIZADORES SINTÁCTICOS…
Datos
1. Utilizadas antes de su inicialización 2. Declaradas pero nunca utilizadas 3. No declaradas
4. Asignadas dos veces pero nunca utilizadas entre asignaciones
5. Límites de los vectores
Control. Código inalcanzable
Entrada/Salida. Salidas duplicadas Interfaz
1. Tipo y número de parámetros 2. Valores retornados que no se
utilizan
3. Métodos que nadie invoca Almacenamiento
4. Apuntadores libres
5. Aritmética de apuntadores
…ANALIZADORES SINTÁCTICOS
HERRAMIENTAS…
JUnit (Java)
CPPUnit (C++)
DUnit (Delphi)
pyUnitPerf (python)
accessUnit (Access)
Neunit (cualquier lenguaje Unix)
CUnit (C)
http://xprogramming.com/articles/software_testing/
…HERRAMIENTAS…
ETester (Eiffel)…
Checkstyle: Comprueba que el código cumpla reglas de estilo
PMD: Detecta código no utilizado
FindBugs: Búsqueda de errores comunes en la escritura de aplicaciones Java
Simian: Detecta código duplicado
…HERRAMIENTAS LIBRES .NET
Nant
NAntContrib
NUnit
NDoc
CruiseControl.NET
FxCop
BANCOS DE PRUEBAS (PHP)
http://www.simpletest.org
http://www.polar-consultores.es/portalPolar/archivos/ficheros/1200569154230.pdf
WEBSERVER STRESS TOOL
Simula cualquier número de usuarios simultáneos accediendo al servidor web
Permite saber cuánto tiempo tendrán que esperar los clientes al visitar el sitio web y
cómo el servidor web se desempeña bajo una carga pesada
http://www.freedownloadmanager.org/es/downloads/ban co_de_pruebas_gratis/
NEOLOAD
¿Cuántos usuarios soporta mi sitio?
¿Cómo responde a la sobrecarga?
¿Cuáles son los tiempos de respuesta?
ESTRUCTURA GENERAL DE UN BANCO DE PRUEBAS
Códig o Fuent
e
Informe de Ejecución
Programa de Prueba
Resultados de la Prueba
Prediccione s de la Prueba
Especificació n
Datos de Prueba
Informe de Resultados de la Prueba Analizado
r dinámico
Administrado r de Pruebas
Simuladore s
Generador de Datos de
Prueba
Pre-decidor
Comparador de Archivos
Generador de Informes
MÉTRICAS
Tipos y ejemplos
14
Factores de Calidad del Software (McCALL)
Revisión Revisión
Facilidad de MantenimientoFacilidad de Mantenimiento
Flexibilidad Flexibilidad
Facilidad de Prueba Facilidad de
Prueba
Transición Transición
Portabilidad Portabilidad
Reutilización Reutilización
Interoperabilida d
Interoperabilida d
Operación Operación
Corrección Corrección
Fiabilidad Fiabilidad
Usabilidad Usabilidad
15
Orientadas Al Tamaño Del Código
Productividad = KLDC en personas−mes (por proyecto, RF o site)
Calidad = errores por KLDC
Costo = Inversión por KLDC
Documentación = Páginas por KLDC
También aplican a puntos de función (PF)…
PUNTOS DE FUNCIÓN (PF)…
Cantidad de:
Entradas
Salidas
Archivos
Consultas
Interfaces
de un SI
17
…Ajuste de los PF de un Software (Pressman)
PF = PF * (0.65 + 0.01 * F)
Donde:
F = 46 (SI de complejidad media)
18
Fórmulas…
Fiabilidad: TMEF = TMDF + TMDR
Donde:
TMEF. Tiempo medio entre fallas TMDF. TM de fallo
TMDR. TM de reparación
19
…Fórmulas
Disponibilidad = TMDF / (TMDF + TMDR)
EJEMPLO: Un sistema falla después de estar nueve días en funcionamiento y repararlo
llevó dos días
¿Cuál es el porcentaje de disponibilidad?
¿Cuál el tiempo medio entre fallas?
20
De Desempeño
Autonomía del usuario
Independencia del software
Tiempo de atención al cliente
Facilidad de expansión
Independencia del hardware
Fórmulas…
Eficacia de la Eliminación De Defectos EED = E / (E + D)
Donde:
E. Número de errores encontrados antes de la entrega al cliente
D. Número de defectos encontrados después de la entrega
22
…Fórmulas
Capacidad del Equipo de Desarrollo por Fase
CEDF = Ei / (Ei + Ei+1)
Donde:
Ei. Número de errores encontrados en la fase iesima
Ei + 1. Número de errores encontrados en la fase i + 1
23
Otras Métricas:
Cantidad y tipo de requisitos o errores por proyecto
Costo de corrección de errores
Horas/Hombre totales, y por fase
Uso de componentes estándares
Duración del proyecto
24
Fórmulas…
Líneas de Código Fuente:
SLOC = PF * SLOC_Lenguaje Donde:
PF. Puntos de Función
SLOC_Lenguaje. Lineas promedio por FP (60 OO)
Comparar lo analizado y el tamaño del código final
25
ACTIVIDADES DE LA MEDICIÓN DE SI
26
Definición Definición
Recolección Recolección
Análisis Análisis Interpretación
Interpretación Realimentació
n
Realimentació n
EJEMPLO. Definición…
27
Una empresa desarrolladora de software tiene la siguiente meta
estratégica:
Reducir el costo de
mantenimiento en un 30% para el 3er trimestre del año
…EJEMPLO. Definición…
28
a. ¿Cuál es el gasto mensual por mantenimiento?
b. ¿Qué fracción de los costos de mantenimiento está siendo invertida en cada aplicación a la que se le brinda soporte?
c. ¿Cuál es el monto gastado en mantenimiento adaptativo, perfectivo y correctivo?
d. ¿En qué fase se detectan los errores?
…EJEMPLO. Definición
29
a. GastoMensualXmantto b. CostoMttoPorApp
Por app:
c. GastosAdaptación, GastosPerfección,GastosCorrección d. ErroresPorFase