370 likes | 702 Views
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
E N D
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
Tamaño del producto Esfuerzo Necesario. Secuenciación de los esfuerzos Estimación de Esfuerzo y Planificación
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], horas-hombre [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 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 herramientasCASE 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) + Complejo
Estimación de Esfuerzo Método COCOMO Clásico • 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. • Semiacoplado: proyectos intermedios en complejidad y tamaño. La experiencia en este tipo de proyectos es variable, y las restricciones intermedias. • 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 • 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 Método para Puntos de Función
Estimación de Esfuerzo Puntos de Función • Entradas Información que llega a la aplicación desde el exterior • SalidasInformación elaborada por la aplicación que es transmitida al usuario. • ConsultasEntradas que producen inmediatamente una salida • Archivos Lógicos o InternosAgrupaciones de datos, tal y como los percibe el usuario • Interfaces ExternasArchivos 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)
Estimación de Esfuerzo Puntos de Función • 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 Factores de Complejidad
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. • Simple • Mediano • Complejo • Pantallas • Reportes • Módulos X
Estimación de Esfuerzo Puntos de Objeto (Productividad en OP/mes)