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