Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de...

30
1 CIMAT Zacatecas CIMAT Septiembre 27, 2007 Dr. Ricardo Valerdi [email protected] Estimación de Costos de Proyectos de Software

Transcript of Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de...

Page 1: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

1CIMAT Zacatecas

CIMATSeptiembre 27, 2007

Dr. Ricardo [email protected]

Estimación de Costos de Proyectos de Software

Page 2: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

2CIMAT Zacatecas

Agenda1.Descripción del modelo

2.Explicación de los factores de tamaño y costo;

3.Oportunidades y Limitaciones;

COCOMO;

Page 3: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

3CIMAT Zacatecas

Page 4: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

4CIMAT Zacatecas

• 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)

Organizaciones Afiliadas (34)

Page 5: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

5CIMAT Zacatecas

Principales DefinicionesCalibració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óndel costo

Estimación del costo: predicción del esfuerzo y duraciónde un proyecto de software

Factor: un parámetro que tiene influencia en la cantidadde esfuerzo de software

Paramétrico: una ecuación aproximada por un grupo de parámetros

Escala de valores: un rango de valores que representanel impacto matemático de un factor

SLOC: Líneas de Código (Software Lines of Code)

Page 6: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

6CIMAT Zacatecas

¿Cuánto cuesta el software?

• Necesidad de estimar el esfuerzo y tiemporequeridos para desarollar sistemas de software– Las estimaciones basadas principalmente en

el modelado del proyecto actual y sucomparación con proyectos anteriores

– Podemos usar modelos económicos comoCOCOMO para estimar el costo

Page 7: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

7CIMAT Zacatecas

Modelos de Costo• El uso de modelos es tan antiguo como la ingeniería

– Antes de construir el producto, los ingenieros construyenmodelos y aprenden de ellos

– Antes de comprometer el dinero y los recursos, los ejecutivosnecesitan información del costo

• Algunas características deseables de un modelo– Comprensible– Preciso– Predictivo– Barato– Sencillo– Realista

Page 8: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

8CIMAT Zacatecas

Ejemplos de Modelos de CostoNombre 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 Software

Page 9: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

9CIMAT Zacatecas

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

Page 10: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

10CIMAT Zacatecas

Constructive Cost Model (Modelo Construc-tivo 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 utilizadoEn 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

Historia de COCOMO

Page 11: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

11CIMAT Zacatecas

COQUALMO1998

COCOMO 811981

COPROMO1998

COSoSIMO2004

Legend:Model has been calibrated with historical project data and expert (Delphi) dataModel is derived from COCOMO IIModel has been calibrated with expert (Delphi) data

COCOTS2000

COSYSMO2002

CORADMO1999

iDAVE2003

COPLIMO2003

COPSEMO1998

COCOMO II2000

DBA COCOMO2004

COINCOMO2004

SecurityExtension 2004

Costing SecureSystem 2004

Modelos de Software

Extensiones de Software

Modelos Independientes

Fecha indica año de publicación del modelo

Evolución de la familia COCOMO

Page 12: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

12CIMAT Zacatecas

Permite estimar el esfuerzo, costo y duración de cualquier proyecto de softwareEs 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 programadoresComplejidad del productoRestricciones de tiempo de ejecución, memoria,

equipos de trabajo …Etc …

COCOMO II

Page 13: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

13CIMAT Zacatecas

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

Page 14: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

14CIMAT Zacatecas

COCOMO IITamaño

Multiplicadoresde Esfuerzo

Esfuerzo

Calibración

SLOC; Function Points; Application Points

- Atributos de Producto- Atributos de Plataforma- Atributos de Personal- Atributos de Proyecto

Concepto Operacional COCOMO II

DuraciónFactores de Escala

Page 15: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

15CIMAT Zacatecas

Relación Matemática de Estimaciónde Costo en COCOMO

Donde: A = constante derivado a través de los resultados de proyectosanterioresSize = tamaño del software SF = factores de escalaEM = multiplicador de esfuerzo

Page 16: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

16CIMAT Zacatecas

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

Page 17: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

17CIMAT Zacatecas

Factores de EscalaFactores

de Escala

Muy Bajo

Bajo

Normal

Alto

Muy Alto

Extra Alto

PREC

Extremadamente nuevo

Muy nuevo Novedoso de alguna manera

Familiar Muy familiar Extremadamente familiar

SFj: 6.20 4.96 3.72 2.48 1.24 0.00 FLEX Riguroso Relajación

ocasional Alguna

relajación Conformidad

general Alguna

conformidad Metas generales

SFj: 5.07 4.05 3.04 2.03 1.01 0.00 RESL Poco (20%) Algo (40%) A menudo

(60%) Generalmente

(75%) Casi

Siempre (90%)

Siempre (100%)

SFj: 7.07 5.65 4.24 2.83 1.41 0.00

TEAM Interacciones muy difíciles

Interacciones algo difíciles

Interacciones cooperativas

básicas

Bastante cooperativos

Altamente cooperativos

Alto nivel de interacción

SFj: 5.48 4.38 3.29 2.19 1.10 0.00

PMAT SW-CMM Nivel

1 Bajo SW-CMM

Nivel 1 Alto SW-CMM

Nivel 2 SW-CMM

Nivel 3 SW-CMM

Nivel 4 SW-CMM Nivel

5 SFj: 7.80 6.24 4.68 3.12 1.56 0.00

O la madurez estimada del proceso (EMPL)

Page 18: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

18CIMAT Zacatecas

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

Page 19: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

19CIMAT Zacatecas

• 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

Multiplicadores de Esfuerzo

Page 20: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

20CIMAT Zacatecas

• 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

Multiplicadores de Esfuerzo

Page 21: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

21CIMAT Zacatecas

Proceso de estimación con COCOMO II

Paso 1: Estimartamaño

Paso 2: Establecer factores de escala y esfuerzo

Paso 3: Estimaresfuerzo ytiempo

Paso 4: Necesidadde más ajustes

Paso 5: Asignaresfuerzo al plan de trabajo

NO

SI

Page 22: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

22CIMAT Zacatecas

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

Page 23: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

23CIMAT Zacatecas

Solución 1• Esfuerzo = 568.61 personas·mes• Tiempo de desarrollo = 29.7 meses• Personal necesario = 19.75 personas ≈ 20

personas

Page 24: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

24CIMAT Zacatecas

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

Page 25: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

25CIMAT Zacatecas

Procedimiento de EstimaciónPaso 1: Estimar el tamaño del trabajo

Paso 2: Estimar el esfuerzo utilizandouna 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

Requisitos

Page 26: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

26CIMAT Zacatecas

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

Page 27: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

27CIMAT Zacatecas

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

Page 28: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

28CIMAT Zacatecas

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

Page 29: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

29CIMAT Zacatecas

Limitaciones de COCOMO II

1. Factores cualitativos son difíciles de modelar

2. Calibración utilizando proyectosexitosos

3. Es fácil manipular el modelo paraobtener los resultados deseados

Page 30: Estimación de Costos de Proyectos de Software - … · Estimación de Costos de Proyectos de Software. CIMAT Zacatecas 2 Agenda ... de un proyecto de software Factor: un parámetro

30CIMAT Zacatecas

ContactoRicardo ValerdiMassachusetts Institute of [email protected]+1 (617) 253-8583http://web.mit.edu/rvalerdi/www