Máster en Ingeniería de Software Proyecto Final de Máster – MRF Framework INSTRUCCIONES PARA REALIZAR LA ESTIMACIÓN DE ESFUERZO Versión 1.0 | 30-SEP -2008 Instrucciones para Realizar la Estimación de Esfuerzo Método Puntos de Casos de Uso El método de estimación de puntos de casos de uso permite, a partir de un conocimiento general de los requerimientos de un sistema (basado en casos de uso identificados), realizar la estimación de esfuerzo de manera similar al tradicional método de puntos de función. Aún cuando el método no cuenta con suficiente información empírica de su efectividad en la estimación de esfuerzo para un proyecto, lo consideramos más adecuado por ajustarse más a la realidad de los entornos típicos de desarrollo orientados a objetos. Explicación En términos generales el conteo de puntos de casos de uso es similar al enfoque de conteo de puntos de función. El punto de partida es el modelo de casos de uso que incluye la cantidad de casos de uso y de actores identificados. Factores de peso Para la asignación de factor de peso para los actores, necesitamos clasificarlos en: Simple.- Un actor simple es un sistema con el cual interactuará el sistema a desarrollar a través de una interfaz definida; Intermedio.- Un actor intermedio es un humano que utiliza el sistema a través de línea de comandos, o, una máquina con la cual se conecta el sistema a través de un protocolo determinado; Complejo.- Un actor complejo es un humano que interactúa con el sistema a través de una interfaz gráfica (GUI); En cada celda correspondiente a la columna Número, ingresamos el total de actores de cada tipo. Si hace falta emitir algún comentario aclaratorio se utiliza la columna correspondiente. Para la asignación de factor de peso para los casos de uso, identificando la cantidad de escenarios de cada uno, necesitamos clasificarlos en: Simple.- Un caso de uso simple tiene entre 1 y 3 escenarios; Intermedio.- Un caso de uso intermedio tiene entre 4 y 7 escenarios; Complejo.- Un caso de uso complejo tiene más de 7 escenarios; En cada celda correspondiente a la columna Número, ingresamos el total de casos de uso de cada tipo. Si hace falta emitir algún comentario aclaratorio se utiliza la columna correspondiente. Basado en PP-Instrucciones-10EE-1.0 Página 1 Máster en Ingeniería de Software Proyecto Final de Máster – MRF Framework INSTRUCCIONES PARA REALIZAR LA ESTIMACIÓN DE ESFUERZO Versión 1.0 | 30-SEP -2008 Factores de peso técnicos Para los factores de peso técnicos la escala de asignación para cada factor es 0 ó 5 en la columna número. Para cada factor se debe justificar la razón de la asignación. Factores de peso ambientales del equipo Para los factores de peso ambientales del equipo la escala de asignación para cada factor es 0, 3 ó 5 en la columna número. Para cada factor se debe justificar la razón de la asignación. De igual manera es necesario indicar con 1 si hay experiencia o estabilidad del factor ambiental del equipo, o un 0 si no la hay en la columna correspondiente. Explicación de Resultados Los puntos de casos de uso ajustados se basan en la aplicación del factor de complejidad técnica (TCF) y el factor ambiental (EF) a los puntos de casos de uso no ajustados (UUCP). UCP = UUCP * TCF * EF Posteriormente se juzga la experiencia del equipo de desarrollo y su estabilidad, para lo cual la evaluación considera: Valor < 3 20 Horas Persona por Punto de Caso de Uso 3 < Valor < 5 28 Horas Persona por Punto de Caso de Uso 5 < Valor 36 Horas Persona por Punto de Caso de Uso Para obtener el esfuerzo en Horas Persona demandadas para el proyecto multiplicamos los Puntos de Casos de Uso por el Número de Horas Persona por Punto de Caso de Uso. Las horas persona estimadas no cubren todo el ciclo de vida del proyecto, y es recomendable ajustar el Factor de Ajuste de Contingencia (0%-100%) con sentido común de modo que se obtenga un valor apropiado de la estimación. Posteriormente convertimos las Horas Persona en Meses Persona, utilizando una jornada laboral típica de 37 horas semanales (este valor se puede ajustar según la realidad de cada organización). Finalmente aplicamos el método COCOMO Modo Orgánico utilizando los meses persona como entrada a su fórmula para obtener la duración en meses del proyecto y el tamaño promedio del equipo de desarrollo. Notas aclaratorias respecto al método COCOMO El rango básico de estimación comprende desde el diseño del producto hasta integración y pruebas. Esto quiere decir que no considera la gestión de requerimientos, implantación, gestión del proyecto, aseguramiento de la calidad y gestión de la configuración. Para el efecto el esfuerzo resultante debe ser ajustado. Basado en PP-Instrucciones-10EE-1.0 Página 2 Máster en Ingeniería de Software Proyecto Final de Máster – MRF Framework INSTRUCCIONES PARA REALIZAR LA ESTIMACIÓN DE ESFUERZO Versión 1.0 | 30-SEP -2008 De acuerdo a estudios realizados por el SEI en varios proyectos de desarrollo de software, el tamaño del producto tiende a crecer 1. Las estimaciones realizadas para las primeras fases llegan a tener un crecimiento en promedio de hasta el 68%, y en la medida que el proyecto avanza este crecimiento se reduce, en codificación en promedio hasta 20%, pruebas 8%. En tal virtud, lo recomendable es aplicar un factor de contingencia que prevea el crecimiento del tamaño del software. Watts Humprey2 propuso las reglas para aplicar estos factores bajo las siguientes consideraciones: Fase a Estimar Contingencia Mínima (%) Contingencia Máxima (%) Requerimientos 100 200 Diseño de Alto Nivel 75 150 Diseño Detallado 50 100 Implementación 25 50 Pruebas Funcionales 10 25 Pruebas de Sistema 0 10 La propuesta inicial es considerar un factor de contingencia máximo del 100% para el esfuerzo total estimado. Esto se debe aplicar con sentido común en base a la realidad de cada proyecto, teniendo en cuenta que una subestimación representará pérdidas económicas, mientras que una sobrestimación representará pérdida de competitividad a la empresa. La forma de tener una base que justifique los ajustes del factor de contingencia es establecer una base de datos histórica de estimaciones que permita comparar los resultados de las estimaciones con los datos reales. Distribución de Esfuerzo por Iteraciones y Disciplinas Tomando como referencia la propuesta de RUP en cuanto a la distribución de esfuerzos para las diferentes disciplinas en las fases del proyecto, es necesario ajustar los porcentajes de esfuerzo requeridos en cada iteración. El MRF Framework propone un ciclo de vida del proyecto basado en 6 iteraciones, que obedece a un proyecto intermedio estándar. Bajo esta consideración se ha realizado la distribución de esfuerzo por iteración. En caso de que el proyecto sea más sencillo o complejo, o que haya riesgos percibidos que requieran modificar el ciclo de vida, los ajustes 1 Landis. Software Engineering Institute, 2004, <http://www.sei.cmu.edu/sema/pdf/baumert.pdf> 2 Humprey, Watts. Managing the Software Process. Boston: Addison-Wesley, 1989. Basado en PP-Instrucciones-10EE-1.0 Página 3 Máster en Ingeniería de Software Proyecto Final de Máster – MRF Framework INSTRUCCIONES PARA REALIZAR LA ESTIMACIÓN DE ESFUERZO Versión 1.0 | 30-SEP -2008 correspondientes al factor de distribución de esfuerzo deberán ser realizados en la hoja de factores de distribución de esfuerzo. De igual manera se ha realizado una distribución de esfuerzo por disciplina para cada una de las iteraciones. Estos factores incluyen el esfuerzo adicional requerido para hacer una adecuada gestión de la calidad y gestión de la configuración, que no siempre están siendo calendarizadas en los proyectos. Los factores de ajustes pueden ser modificados en base a la realidad de cada proyecto. En la hoja distribución de esfuerzo se sintetiza el resultado de la estimación. Tenemos el total de horas persona estimadas del proyecto, distribuidas por iteración y por disciplina. El gerente de proyecto durante la planificación deberá distribuir estas horas teniendo como guía la plantilla del WBS propuesta y elaborar los cronogramas respectivos. Finalmente aplicamos el método COCOMO Modo Orgánico utilizando los meses persona como entrada a su fórmula para obtener la duración en meses del proyecto y el tamaño promedio del equipo de desarrollo. Basado en PP-Instrucciones-10EE-1.0 Página 4