Estimación de Costos de Proyectos de Software

Anuncio
Estimación de Costos de Proyectos de Software
CIMAT
Septiembre 27, 2007
Dr. Ricardo Valerdi
rvalerdi@mit.edu
CIMAT Zacatecas
1
Agenda
1.Descripción del modelo
COCOMO;
2.Explicación de los factores de
tamaño y costo;
3.Oportunidades y Limitaciones;
CIMAT Zacatecas
2
CIMAT Zacatecas
3
Organizaciones Afiliadas (34)
•
Commercial Industry (15)
– Daimler Chrysler, Freshwater Partners, Galorath, Group
Systems.Com, Hughes, IBM, Cost Xpert Group, Microsoft,
Motorola, Price Systems, Rational, Reuters Consulting, Sun,
Telcordia, Xerox
•
Aerospace Industry (6)
– BAE, Boeing, Lockheed Martin, Northrop Grumman,
Raytheon, SAIC
•
Government (8)
– DARPA, DISA, FAA, NASA-Ames, NSF, OSD/ARA/SIS,
US Army Research Labs, US Army TACOM
•
FFRDC’s and Consortia (4)
– Aerospace, JPL, SEI, SPC
•
International (1)
– Chung-Ang U. (Korea)
CIMAT Zacatecas
4
Principales Definiciones
Calibración: el procedimiento que permite determinar
con suficiente exactitud el valor de los errores del
modelo
CER: relación matemática que ayuda con la estimación
del costo
Estimación del costo: predicción del esfuerzo y duración
de un proyecto de software
Factor: un parámetro que tiene influencia en la cantidad
de esfuerzo de software
Paramétrico: una ecuación aproximada por un grupo de
parámetros
Escala de valores: un rango de valores que representan
el impacto matemático de un factor
SLOC: Líneas de Código (Software Lines of Code)
CIMAT Zacatecas
5
¿Cuánto cuesta el software?
• Necesidad de estimar el esfuerzo y tiempo
requeridos para desarollar sistemas de
software
– Las estimaciones basadas principalmente en
el modelado del proyecto actual y su
comparación con proyectos anteriores
– Podemos usar modelos económicos como
COCOMO para estimar el costo
CIMAT Zacatecas
6
Modelos de Costo
• El uso de modelos es tan antiguo como la ingeniería
– Antes de construir el producto, los ingenieros construyen
modelos y aprenden de ellos
– Antes de comprometer el dinero y los recursos, los ejecutivos
necesitan información del costo
• Algunas características deseables de un modelo
–
–
–
–
–
–
Comprensible
Preciso
Predictivo
Barato
Sencillo
Realista
CIMAT Zacatecas
7
Ejemplos de Modelos de Costo
Nombre
Diseñador
Constructive Cost Model
USC
PRICE-Hardware
PRICE Systems
PRICE-Software
PRICE Systems
Raytheon SE Resource Forecasting Tool
Raytheon
SEER-Hardware
Galorath
SEER-Software Engineering Model
Galorath
Small Satellite Cost Model
The Aerospace Corporation
Unmanned Satellite Cost Model
Los Angeles Air Force Base
Hardware
CIMAT Zacatecas
Software
8
Ventajas de Usar Modelos
• Ayudar a entender un problema complejo a través de
análisis y simulación
• Investigar y comparar soluciones alternativas
• Comunicar idas acerca de un problema o una solución
• Demonstrar al cliente que el sistema es viable
• Detectar errores y omisiones en el diseño
• Generar un plan de implementación
• Negociar cambios al sistema y cuantificar los impactos
económicos
CIMAT Zacatecas
9
Historia de COCOMO
ƒConstructive Cost Model (Modelo Constructivo de Costo)
ƒDesarrollado en 1981 por el Dr. Barry Boehm en
UCLA/TRW
ƒSoftware Engineering Economics (1981)
ƒEs el modelo de estimación de costos más utilizado
ƒEn 2000 se publicó la versión COCOMO II
ƒSoftware Cost Estimation with COCOMO II (2000)
ƒEl equipo liderado por Boehm (Centro de Ingeniería
en Sistemas y Software) pretende mejorar, ampliar y
adaptar modelos a los nuevos estándares de
desarrollo de software
CIMAT Zacatecas
10
Evolución de la familia COCOMO
Modelos de Software
COCOMO 81
1981
COQUALMO
1998
COCOMO II
2000
iDAVE
2003
Extensiones de Software
DBA COCOMO
2004
COINCOMO
2004
COPLIMO
2003
Modelos Independientes
COCOTS
2000
COSYSMO
2002
COSoSIMO
2004
Costing Secure
System 2004
COPSEMO
1998
COPROMO
1998
Security
Extension 2004
CORADMO
1999
Legend:
Model has been calibrated with historical project data and expert (Delphi) data
Model is derived from COCOMO II
Model has been calibrated with expert (Delphi) data
CIMAT Zacatecas
Fecha indica año de publicación del modelo
11
COCOMO II
ƒPermite estimar el esfuerzo, costo y duración de
cualquier proyecto de software
ƒEs un modelo algorítmico basado en una serie de
fórmulas matemáticas que producen una estimación
en función de un conjunto de variables ƒ(x1, x2,... xn):
ƒ Líneas de código (lógicas en lugar de físicas)
ƒ Capacidad de analistas y programadores
ƒ Complejidad del producto
ƒ Restricciones de tiempo de ejecución, memoria,
equipos de trabajo …
ƒEtc …
CIMAT Zacatecas
12
Parámetros de COCOMO II
• El parámetro principal para la estimación de
costo es “Software Lines of Code”
– La estimación cubre únicamente un conjunto definido
de fases
•
•
•
•
Incepción
Elaboración
Construción
Transición
– Incluye todos los costos directos del proyecto, pero
no los indirectos
– El esfuerzo se mide en “Person-Month”
• 1 PM = 19 persona-días = 152 persona-horas
CIMAT Zacatecas
13
Concepto Operacional COCOMO II
SLOC;
Function Points;
Application Points
Tamaño
Factores de Escala
COCOMO II
Duración
Multiplicadores
de Esfuerzo
- Atributos de Producto
- Atributos de Plataforma
- Atributos de Personal
- Atributos de Proyecto
CIMAT Zacatecas
Esfuerzo
Calibración
14
Relación Matemática de Estimación
de Costo en COCOMO
Donde:
A = constante derivado a través de los resultados de proyectos
anteriores
Size = tamaño del software
SF = factores de escala
EM = multiplicador de esfuerzo
CIMAT Zacatecas
15
Tamaño del Software
• Alternativa #1: Líneas de Código
– Líneas de código fuente
– Líneas de código fuente entregadas
• Productividad es diferente en Basic, Java, C++,
etc.
• Alternativa #2: Puntos de Función
– Una vez calculados,
se convierten a líneas de código
CIMAT Zacatecas
16
Factores de Escala
Factores
de
Escala
PREC
Muy Bajo
Extremadamente Muy nuevo
nuevo
SFj:
FLEX
6.20
Riguroso
SFj:
RESL
5.07
Poco (20%)
SFj:
7.07
Interacciones
muy difíciles
TEAM
SFj:
PMAT
SFj:
CIMAT Zacatecas
Bajo
4.96
Relajación
ocasional
4.05
Algo (40%)
Normal
Novedoso de
alguna
manera
3.72
Alguna
relajación
3.04
A menudo
(60%)
5.65
4.24
Interacciones Interacciones
algo difíciles cooperativas
básicas
5.48
4.38
3.29
SW-CMM Nivel
SW-CMM
SW-CMM
1 Bajo
Nivel 1 Alto
Nivel 2
7.80
6.24
4.68
O la madurez estimada del proceso (EMPL)
Alto
Muy Alto
Extra Alto
Familiar
Muy familiar
Extremadamente
familiar
2.48
Conformidad
general
2.03
Generalmente
(75%)
0.00
Metas generales
2.83
Bastante
cooperativos
1.24
Alguna
conformidad
1.01
Casi
Siempre
(90%)
1.41
Altamente
cooperativos
2.19
SW-CMM
Nivel 3
3.12
1.10
SW-CMM
Nivel 4
1.56
0.00
SW-CMM Nivel
5
0.00
0.00
Siempre (100%)
0.00
Alto nivel de
interacción
17
Multiplicadores de Esfuerzo
• Atributos de Producto
– RELY: Confiabilidad requirida
– DATA: Tamaño de la base de datos
– DOCU: Documentación necesaria
– CPLX: Complejidad del producto
– RUSE: Reusabilidad requerida
CIMAT Zacatecas
18
Multiplicadores de Esfuerzo
• Atributos de Plataforma
– TIME: Restricciones de tiempo de ejecución
– STOR: Restricciones de almacenamiento
– PVOL: Cambio de plataforma
• Atributos de Personal
–
–
–
–
–
–
ACAP: Capacidad de los analistas
AEXP: Experiencia de los analistas
PCAP: Habilidad de los programadores
PEXP: Experiencia en este tipo de plataforma
LEXP: Experiencia con el lenguaje de software
PCON: Continuidad de personal
CIMAT Zacatecas
19
Multiplicadores de Esfuerzo
• Atributos de Proyecto
– TOOL: Herramientas que soportan las actividades de
análisis y diseño
– SITE: Coordinación entre sitios
– SCED: Compresión o extensión de la duración del
proyecto
CIMAT Zacatecas
20
Proceso de estimación con COCOMO II
Paso 1: Estimar
tamaño
SI
Paso 2: Establecer
factores de escala y
esfuerzo
Paso 3: Estimar
esfuerzo y
tiempo
CIMAT Zacatecas
Paso 4: Necesidad
de más ajustes
NO
Paso 5: Asignar
esfuerzo al plan
de trabajo
21
Ejercicio 1
• Estimar el esfuerzo y el tiempo de desarrollo
para un proyecto con 100 KSLOC
– La sumatoria de los multiplicadores de esfuerzo son
1.0
– La sumatoria de los factores de escala es de 24
CIMAT Zacatecas
22
Solución 1
• Esfuerzo = 568.61 personas·mes
• Tiempo de desarrollo = 29.7 meses
• Personal necesario = 19.75 personas ≈ 20
personas
CIMAT Zacatecas
23
Lista de Actividades de Trabajo
(Work Breakdown Structure)
DESARROLLAR SOFTWARE
• Determinar Requisitos Software
• Desarrollar software (usando un paradigma selec.)
– Diseño de Arquitectura (especificación de
– Implantación
– Integración y Pruebas
• Realizar Gestión de Proyectos
– Planificación y seguimiento
– Gestión de riesgos
• Mantener Control de Configuración
– Control de versiones/línea base
– Actividades del CCC
• Realizar Aseguramiento de la Calidad
CIMAT Zacatecas
24
Procedimiento de Estimación
Requisitos
Paso 1: Estimar el
tamaño del trabajo
Paso 2: Estimar el esfuerzo utilizando
una primera aproximación (WBS, etc.)
Paso 3: Estimar el esfuerzo
utilizando una segunda
aproximación (COCOMO,etc.)
Paso 4: Comparar estimaciones, conciliar
diferencias y generar la estimación final
CIMAT Zacatecas
25
Ejercicio 2 (I)
• La empresa aseguradora “El Castañazo” está
pensando construir un nuevo software para la
gestión de sus pólizas de seguro para el que
se ha estimado un tamaño de 184 puntos de
función
• El lenguage de programación que se utilizará
para su programación es Visual Age 2.0
• Determinar esfuerzo, duración y personal
necesario para desarrollar el proyecto,
teniendo en cuenta que se deben considerar
los siguientes factores de escala
CIMAT Zacatecas
26
Ejercicio 2 (II)
•
•
•
•
•
•
•
Todo el código que se desarrolle para este proyecto es de nueva
elaboración
La organización se encuentra en el nivel 1 de madurez de su
capacidad
Es la primera vez que se va a utilizar el entorno de programación
Visual Age 2.0
Se han desarrollado varias aplicaciones para la gestión de
polizas de seguro
El equipo de proyecto estará formado por 6 personas de las
cuales 3 son de nueva contratación
Existe una necesidad muy alta de que el software cumpla con
los requisitos pre-establecidos para el software a construir
El factor de escala RESL no deberá ser tenido en cuenta para la
realización de estimaciones
CIMAT Zacatecas
27
Solución 2
• PREC(A), FLEX(MB), TEAM(B), RESL(N),
PMAT(VL)
• Esfuerzo = 13.9 personas·mes
• Tiempo de desarrollo = 8.7 meses
• Personal necesario = 1.6 personas ≈ 2 personas
• Productividad = 277.8 SLOC/p·m
CIMAT Zacatecas
28
Limitaciones de COCOMO II
1. Factores cualitativos son difíciles de
modelar
2. Calibración utilizando proyectos
exitosos
3. Es fácil manipular el modelo para
obtener los resultados deseados
CIMAT Zacatecas
29
Contacto
Ricardo Valerdi
Massachusetts Institute of Technology
rvalerdi@mit.edu
+1 (617) 253-8583
http://web.mit.edu/rvalerdi/www
CIMAT Zacatecas
30
Descargar