Métricas para la Estimación de Proyectos de Software

Download Report

Transcript Métricas para la Estimación de Proyectos de Software

Métricas para la Estimación
de Proyectos de Software
Prof. Gabriel Matonte
Introducción
“No debe perderse de vista que lo
que intentamos hacer no es una
rama de la brujería, sino una rama
de la Ingeniería de Software. No
se busca preparar gurús sino
ingenieros, no se apela a oscuros
mecanismos sino a datos
numéricos en información medible”
Ing. Juan Grompone
Introducción

La gestión de pryectos es una rama de la
ingeniería que:





Emplea metodologías bien definidas
Realiza medidas repetibles y confiables
Estima costos y tiempos
Da lementos para la gestión de proyectos
Replantea resultados para ajustar la
información disponible.
Introducción: Tipos de proyectos



Proyectos nuevos: Se busca analizar,
costos, tiempos y cantidad de personas.
Es el caso más dificil de todos.
Replanteo de proyectos viejos: Se
busca afinar las metodologías de
estimación. Es la principal fuente de
información.
Ampliaciones de Proyectos: Es una
caso intermedio donde se desea tener
buena precisión en plazos y costos.
Introducción:Tamaño de los Proyectos

Proyectos Pequeños: Consisten solamente en
implementación. No tienen costos indirectos
importantes.

Proyectos Medianos: Es un caso intermedio entre
los otros 2.

Proyectos Grandes: Poseen implementación,
pero hay mas cosas. Poseen gerencia de
proyecto, control de calidad, capacitación de
personal, hay un plan de mantenimiento, hay
documentación importante interna y externa. Se
genera información para mercadeo.
Introducción:Tamaño de los Proyectos

Proyectos Pequeños:




Menos de un año de desarrollo
Menos de 25 meses-persona de esfuerzo
Menos de 3 personas en el equipo de trabajo
Proyectos Grandes:



Más de 3 años de desarrollo
Más de 100 meses-persona de esfuerzo
Más de 10 personas en el equipo de trabajo
Visión cuantitativa del desarrollo


En un proyecto nuevo es complejo determinar la
cantidad de personas necesarias, módulos,líneas
de código,etc. Solo existe una visión externa
de lo necesario.
En conclusión la información que falta es:
costos, tiempos y personas.
Lo ideal sería disponer de una métrica
aplicada sobre los datos externos, que
midiera lo que hace falta. Luego con
estimadores obtener costos, tiempos y
personal.
Los datos externos de un proyecto

Las metodologías deben basarse
solamente en lo que el usuario ve de su
sistema informático:




Datos de entrada al sistema: Ingresos por
pantalla y otras formas informáticas.
Datos de salida del sistema: listados y otras
formas informáticas
Datos almacenados en el sistema y la manera
de consultarlos
Comunicación del sistema con otros sistemas
informáticos
Modelos de Estimación

Son resultado de 2 elementos:


Una idea, acerca del proceso de fabricación
de software
Una ecuación empírica ajustada a partir de
casos de estudio reales.
Modelos de EstimaciónClasificaciónes

Según el tipo de resultados:


Modelos estáticos
Modelos dinámicos
Los estáticos dan estimaciones globales o
promedio, los dinámicos los complementan y
relizan estimaciones a lo largo del desarrollo.
Modelos de EstimaciónClasificaciónes

Según la cantidad de variables básicas:


Modelos de una variable
Modelos de varias variables
Varían entre la sencillez y la precisión, según la
situación elijo una u otras.
Métricas Empíricas de Proyectos



Las métricas teóricas solo se aplican a algorítmos, o
sistemas de tiempo real.
Para los demás casos, se utilizan métricas empíricas
de proyectos.
Se basan en características internas o externas del
proyecto:





El tamaño final del proyecto
La cantidad de módulos
El tamaño del progrma ejecutable final
La cantidad de líneas de código (importante medida
interna)
La medida de las funcionalidades (medida importante
externa)
Puntos Funcionales



Creada en 1979 por Allan J. Albrecht de
IBM
Es de las pocas métricas orientadas a los
datos externos del proyecto.
Pretende medir las funcionalidades que ve
el usuario.
Puntos Funcionales

Se basa en 5 funcionalidades básicas:





Número de diferentes tipos de entradas
externas
Número de diferentes tipos de salidas
externas
Número de consultas
Número de archivos lógicos usados
Número de interfaces a otros sistemas
Puntos Funcionales
Puntos Funcionales





Entradas de usuario. Son entradas que proporcionan
diferentes datos a la aplicación. No confundirlos con las
peticiones de usuario.
Salidas de usuario. Son reportes, pantallas o mensajes
de error que proporcionan información. Los elementos
de un reporte, no se cuentan de forma separada.
Peticiones de usuario. Es una entrada interactiva que
produce la generación de alguna respuesta del software
en forma de salida interactiva.
Archivos. Son los archivos que pueden ser parte de una
base de datos o independientes.
Interfaces externas. Son los archivos que se usan para
transmitir información a otro sistema
2) Ponderación
►Responder
a cada una de las siguientes catorce preguntas y
asignarles un valor entre 0 y 5, donde 0 es no influencia, 1 es
incidental, 2 es moderado, 3 es medio, 4 es significativo y 5
es esencial.
1.¿Requiere
el sistema copias de seguridad y de recuperación
2.¿Requiere
comunicación de datos?
fiables?
3.¿Existen
4.¿Es
funciones de procesamiento distribuido?
crítico el rendimiento?
5.¿Se
ejecutará el sistema en un entorno operativo existente y
fuertemente utilizado?
6.¿Requiere
7.¿Requiere
entrada de datos interactiva?
la entrada de datos interactiva que las
transacciones de entrada se lleven a cabo sobre múltiples
pantallas u operaciones?
8. ¿Se actualizan los archivos maestros de forma
interactiva?
9. ¿Son complejas las entradas, las salidas, los archivos o
las peticiones?
10. ¿Es complejo el procesamiento interno?
11. ¿Se ha diseñado el código para ser reutilizable?
12. ¿Están incluidas en el diseño la conversión y la
instalación?
13. ¿Se ha diseñado el sistema para soportar múltiples
instalaciones en diferentes organizaciones?
14. ¿Se ha diseñado la aplicación para facilitar los cambios
y para ser fácilmente utilizada por el usuario?
►Sumar
los puntos asignados a cada respuesta y obtener
un total F que indica un valor de ajuste de complejidad.
Cálculo

El punto de función PF se calcula con la
siguiente ecuación: PF = T * (0.65 + 0.01 * F).

Métricas
Errores por PF.
Defectos por PF.
Costo por PF.
Página de documentación por PF.
PF por hombre-mes.





Funcionalidad de los
lenguajes de programación

La tabla siguiente
proporcional
estimaciones
informales del
número de líneas de
código que se
necesitan para
construir un punto de
función en varios
lenguajes de
programación:
Puntos Funcionales



Según valores tomaados de bibliografía
específica, se escriben 620 líneas de
código por mes.
Luego se hacen los cálculos necesarios
para calcular costos, o el cálculo deseado.
Existe una normalización de esta métrica
a cargo de la International Function Point
Users Group (IFPUG).