Estimacion_software

Download Report

Transcript Estimacion_software

Estimaciones en el
Desarrollo de Software
Aspectos Cuantitativos del Software


Al ser una actividad de ingeniería, el
conocimiento cualitativo por sí solo no sirve.
Se debe expresar en cifras para así:





Conocer
Evaluar
Mejorar y
Proyectar
Lo anterior permitirá mejorar:



Rentabilidad
Calidad del Producto y
Productividad del Proceso de Software.
Estimación de Esfuerzo

El primer paso hacia el mejoramiento de un
grupo de desarrollo de software es:


La medición del estado actual de la
productividad.
¿Qué se debe medir o cuantificar?



Proceso productivo
Tamaño del producto
Calidad del producto
Estimación de Esfuerzo y Planificación
Tamaño del producto
Esfuerzo Necesario.
Secuenciación de los
esfuerzos
Estimación de Esfuerzo
Conceptos Fundamentales
 Esfuerzo de Desarrollo (ED): Medida del
“esfuerzo” (RRHH-Tiempo) que involucra el
desarrollo del producto.
 Se expresa en [hombres-tiempo]
 Se representa por: meses-hombres [MM], horashombre [HH]


El ED puede ser usado para conocer el número
de personas a incorporar en el proyecto.
A partir del ED se facilita la estimación del
Tiempo de Desarrollo.
Estimación de Esfuerzo
Conceptos Fundamentales
 Tiempo de Desarrollo (TD): Estimación del
tiempo que se empleará para el desarrollo
del producto.
Estimación de Esfuerzo
Tamaño del Producto
• Líneas de Código (LOC)
• Puntos de Función
• Puntos de Objeto
Estimación de Esfuerzo
Tamaño - Líneas de Código
Línea de Código
Línea en el archivo fuente SIN
contar los comentarios y no
importa si hay más de una
instrucción por línea – Boehm
Estimación de Esfuerzo
Tamaño - Líneas de Código
Categoría
Programadores Duración
Trivial
1
Pequeño
1
Media
2–5
Grande
Muy grande
Gigante
5 – 20
100 – 1000
1000-5000
0–4
semanas
1 – 6 meses
0,5 – 2
años
2 – 3 años
4 – 5 años
5 – 10 años
Líneas de
código
Ejemplo
< 1k
Utilidad de ordenación
1k – 3k
Biblioteca de funciones
3k – 50k
Compilador de C
50k – 100k
100k – 1M
> 1M
SO pequeño
Grandes SO
Sistema de Distribución
Estimación de Esfuerzo
Tamaño - Líneas de Código
Problemas con las líneas de código
•
Dependen del Lenguaje de Programación
•
Dependen del estilo de codificación
•
Actualmente no es una medida válida, pues se
usan ambientes de desarrollo y herramientas
CASE que generan código.
Estimación de Esfuerzo
Método COCOMO Clásico

COCOMO (COnstructive COst MOdel)

Modelo que calcula el esfuerzo (y el
costo) del desarrollo de software en
función del tamaño del programa,
expresado en la cantidad de líneas
estimadas de código.
 Es un modelo de estimación de costo y
esfuerzo mediante factores.
Estimación de Esfuerzo
Método COCOMO Clásico
ED = Esfuerzo = a KLOC b (persona x mes)
TD = Tiempo de desarrollo = c ED d (meses)
Proyecto de software
Orgánico
Semiacoplado
Empotrado
+ Complejo
a
2,4
3
3,6
b
1,05
1,12
1,2
c
2,5
2,5
2,5
d
0,38
0,35
0,32
Estimación de Esfuerzo
Método COCOMO Clásico
1. Orgánico: proyectos relativamente sencillos, menores
de 50.000 líneas de código. Se tiene experiencia en
proyectos similares y se encuentra en un entorno
estable.
2. Semiacoplado: proyectos intermedios en complejidad y
tamaño. La experiencia en este tipo de proyectos es
variable, y las restricciones intermedias.
3. Empotrado: proyectos bastante complejos, en los que
apenas se tiene experiencia y en un entorno de gran
innovación técnica. Se trabaja con unos requisitos muy
restrictivos y de gran volatilidad.
Estimación de Esfuerzo
Método COCOMO Clásico
Ejemplo con COCOMO Clásico Orgánico
50KLOC
146 personas x mes
11,1 meses
~ 13 personas en equipo por 11 meses
~ $85.000.000 ($600.000 promedio).
~ 16 LOC Diarias
Estimación de Esfuerzo
Método COCOMO Clásico
Ejemplo con COCOMO Clásico SemiAcoplado
50KLOC
240 personas x mes
10 meses
~ 24 personas en el equipo por 10 meses
~ $144.000.000 ($600.000 promedio).
~ 9.5 LOC Diarias
Estimación de Esfuerzo
Puntos de Función

Medida del tamaño del producto. Asociada a la
funcionalidad mínima de un producto determinado.
 No
existe acuerdo en cuanto a que es un PF. Pueden
ser trozos de código, módulos, formularios, etc.
 Un PF es independiente de las características físicas
y técnicas aplicadas en el desarrollo del producto.
 Los PF son propios de cada organización y de cada
grupo de trabajo.
Estimación de Esfuerzo
Puntos de Función
Método para Puntos de Función





Identificar los componentes del Sistema
Asignar pesos a las componentes (3 a 15)
Calcular el valor funcional
Ajustarlo según ciertas características de la
aplicación
Calcular el esfuerzo de desarrollo
Estimación de Esfuerzo
Puntos de Función

Entradas
Información que llega a la aplicación desde el exterior

Salidas
Información elaborada por la aplicación que es transmitida al
usuario.

Consultas
Entradas que producen inmediatamente una salida

Archivos Lógicos o Internos
Agrupaciones de datos, tal y como los percibe el usuario

Interfaces Externas
Archivos a los que accede la aplicación con el único objetivo de
obtener información.
Estimación de Esfuerzo
Puntos de Función
Cálculo de los Puntos de función sin ajustar (PFSA)
Simple
Cantidad
Entradas
Salidas
Consultas
Fic. Lógicos
Fic. Interfaz
Media
* Peso
Cantidad
Compleja
* Peso
Cantidad
*3
*4
*4
*5
*3
*4
*7
* 10
*5
*7
Total puntos de función sin ajustar (PFSA)
* Peso
*6
*7
*6
* 15
* 10
Total
Estimación de Esfuerzo
Puntos de Función
Factores de Complejidad



Son catorce factores que completan la visión
externa de la aplicación.
No están recogidos en la funcionalidad de la
aplicación.
Toman un valor entre 0 y 5
Estimación de Esfuerzo
Puntos de Función
#
Factor de Complejidad
1
Comunicación de Datos.
2
Proceso Distribuido.
3
Rendimiento
4
Configuración Operacional compartida
5
Ratio de Transacciones
6
Entrada de Datos EN-LÍNEA
7
Eficiencia con el Usuario Final
8
Actualizaciones EN-LÍNEA
9
Complejidad del Proceso Interno
Valor
(0..5)
10 Reusabilidad del Código
11 Contempla la Conversión e Instalación
12 Facilidad de Operación (back up, etc.)
13 Instalaciones Múltiples
14 Facilidad de Cambios
Factor de Complejidad Total (FCT)
 Valori
Estimación de Esfuerzo
Puntos de Función
Cálculo de los Puntos de Función Ajustados
 PFA = PFSA * (0,65 + (0.01 * FC))
 Cada factor de complejidad afecta en +/- 2,5%
en los PFSA
 PFSA * 65% <= PFA <= PFSA * 135%
Estimación de Esfuerzo
Puntos de Función
Estimación de Esfuerzo de Desarrollo
 Partimos de los datos históricos de la Organización
correspondiente a cuanto esfuerzo realiza por punto de
función (HH/PF) según el lenguaje o plataforma de
desarrollo
ED = PFA * Promedio_Organización(Lenguaje)
 Ejemplo: La organización tiene como promedio 4 HH/PF
cuando se programa en JAVA, y se estiman 1500 PFA,
entonces ED = 1500 * 4 = 6000 HH = 31,25 MH
Estimación de Esfuerzo
Puntos de Objeto
 El número de puntos de objeto en un programa se
calcula en función de las pantallas, los reportes y los
componentes de procesamiento (módulos).
 Se evalúa la complejidad de cada elemento en función
de las vistas, secciones y tablas de datos que
referencia.
 El número de puntos de objetos se corrige en función de
la reutilización de componentes.
• Pantallas
• Reportes
• Módulos
X
• Simple
• Mediano
• Complejo
Estimación de Esfuerzo
Puntos de Objeto
Estimación de Esfuerzo
Puntos de Objeto
(Productividad en OP/mes)