Neotect S.A. Estimación Esfuerzo de Análisis de las Metodologías COCOMO II y Puntos de Casos de Uso Ángela Archila Edison Molano Gustavo Gutiérrez Jesús Larrota Wolfgand Kook 25/03/2010 Estimación de Esfuerzo 2010 Tabla de contenido 1 Proyecto Seleccionado .......................................................................................................... 3 2 COCOMO II ............................................................................................................................ 4 2.1 Aplicación de la Metodología ........................................................................................ 4 2.2 Resultados ..................................................................................................................... 6 2.3 Análisis de la Metodología ..............................................Error! Bookmark not defined. 2.3.1 Ventajas ................................................................................................................. 8 2.3.2 Desventajas ........................................................................................................... 9 Conclusiones y Recomendaciones ........................................................................................ 9 3 Puntos de Caso de Uso ........................................................................................................ 11 3.1 Aplicación de la Metodología ...................................................................................... 11 3.1.1 Actores ................................................................................................................ 11 3.1.2 Casos de Uso ....................................................................................................... 11 3.1.3 Factores de Ajuste Técnicos ................................................................................ 11 3.1.4 Factores de Ajuste de Ambiente ......................................................................... 12 3.2 Resultados ................................................................................................................... 13 3.3 Análisis de la Metodología .......................................................................................... 13 3.3.1 Factores Críticos .................................................................................................. 13 3.3.2 Ventajas ............................................................................................................... 14 3.3.3 Desventajas ......................................................................................................... 14 3.3.4 Sensibilidad a la Subjetividad .............................................................................. 14 3.3.5 Conclusiones y Recomendaciones ...................................................................... 14 2 Estimación de Esfuerzo 2010 1 Proyecto Seleccionado El proyecto elegido para la estimación es CreditScore, un proyecto que fue solicitado para la materia de Modelos y Estándares en Procesos de Software en el marco de la Especialización en Construcción de Software, y que será desarrollado en Windows Form en java. Este consiste en lo siguiente, de acuerdo al enunciado de dicho proyecto: “El Banco de Los Alpes desea contratar con su equipo de desarrollo, la construcción de una herramienta para calcular el riesgo crediticio (CreditScore) tanto de sus clientes actuales como de sus potenciales clientes. En general, el riesgo de crédito es un número generado por un algoritmo matemático basado en información de los reportes de crédito históricos y de comparaciones con respecto a muchos otros usuarios. El número resultado es una predicción altamente efectiva de cómo es probable que un cliente se comportará en el pago de sus deudas. Entre más alto sea el número, más facilidad para obtener un crédito tendrá el cliente. Existen muchos modelos para calcular el riesgo de crédito, uno de ellos es FICO. Su escala de valores está entre 300 y 850. La gran mayoría de personas tendrán valores entre 600 y 800. Un valor de 720 o superior le brindará mejores condiciones de crédito (mejor tasa de interés). Usted debe construir una herramienta que le permita a los analistas de crédito, ingresar todos los datos requeridos de una persona para calcular su riesgo de crédito usando una versión para Colombia basada en FCO. La fórmula para el cálculo del rango de crédito está dada por los siguientes porcentajes: 35% Historia de pagos 30% Montos adeudados 15% Duración del crédito 10% Nuevos créditos 10% Tipo de crédito Sin embargo, no solo la información financiera cuenta, también el nivel de estudio, el género, el estrato socioeconómico, la profesión, el estado civil y número de hijos, etc. Se debe construir una herramienta fácil de usar para los analistas de crédito. La tecnología seleccionada para el desarrollo es Java / Swing”. 3 Estimación de Esfuerzo 2010 2 COCOMO II Se utilizó USC herramienta que implementa el modelo de COCOMO II desarrollada por la universidad del Sur de California. 2.1 Aplicación de la Metodología El modelo a su vez presenta tres sub modelos basado en la diferentes necesidades del software, el sub modelo seleccionado por los encargados del proyecto es el de “Diseño Anticipado”. El Diseño Anticipado puede utilizarse para obtener estimaciones muy aproximadas de un proyecto aun cuando no está definida su arquitectura completamente y se conoce muy poco sobre el tamaño del producto que se va a desarrollar, la naturaleza de la plataforma objetivo, la naturaleza del personal involucrado en el proyecto ó especificaciones detalladas del proceso que se va a realizar. Para ello iniciamos con una estimación del tamaño del producto, a través del método PROBE. Esta estimación dio lugar a una cantidad de líneas de código (LOC): 4 Estimación de Esfuerzo 2010 Clase Descripción LoC Conexión Respuesta - DAO Pregunta – DAO Sección – DAO Scoring – DAO Cuestionario – DAO Cliente – DAO Respuesta - TO Pregunta – TO Sección – TO Scoring – TO Cuestionario – TO Cliente – TO Scoring BO PanelCuestionario Cuestionario – BO Cliente – BO Secciones – BO Preguntas – BO Respuestas – BO Panel Cliente Panel Historial Pagos Panel Montos Adeudados Panel Duración Créditos Panel Nuevos Créditos Panel Tipo Crédito Interfaz Credit Scoring TOTAL Clase de conexión a datos Insertar, Buscar, Listar, Actualizar, Borrar. Insertar, Buscar, Listar, Actualizar, Borrar. Insertar, Buscar, Listar, Actualizar, Borrar. Insertar, Buscar, Listar, Actualizar, Borrar. Insertar, Buscar, Listar, Actualizar, Borrar. Insertar, Buscar, Listar, Actualizar, Borrar. Encapsulamiento de entidades Encapsulamiento de entidades Encapsulamiento de entidades Encapsulamiento de entidades Encapsulamiento de entidades Encapsulamiento de entidades Métodos de lógica de negocio Métodos de lógica de negocio Métodos de lógica de negocio Métodos de lógica de negocio Métodos de lógica de negocio Métodos de lógica de negocio Métodos de lógica de negocio Paneles. Interfaz gráfica. Paneles. Interfaz gráfica. Paneles. Interfaz gráfica. Paneles. Interfaz gráfica. Paneles. Interfaz gráfica. Paneles. Interfaz gráfica. Frame principal. Interfaz gráfica. 150 100 100 100 100 100 100 90 90 90 90 90 90 250 230 50 50 50 50 50 100 100 100 100 100 100 150 2770 2.2 Resultados Una vez obtenidas las líneas de código, de acuerdo a las líneas guía del Diseño Anticipado. De acuerdo a ello pudimos obtener la siguiente información: 5 Estimación de Esfuerzo 2010 En total, la tabla nos indica entre 4 y 8,9 meses hombre (Esto es, entre 640 y 1424 horas hombre) para el desarrollo del proyecto, con una alta probabilidad de un esfuerzo de 6 meses hombre (960 horas hombre). 2.3 Análisis de la Metodología Según nuestros cálculos determinamos los siguientes valores para los factores del modelo recordando que utilizamos el diseño anticipado, estos se describen en la siguiente tabla de color rojo. Los demás valores muestran los resultados de sus variaciones en el modelo. Effort RCPX PDIF PERS PREX FCIL 6 NOM HI VHI LO HI VHI XHI LO NOM VHI XHI LOW HI VHI XHI 6 6.1 6.2 6 6.1 6.3 6 6.5 6.3 6 5.9 6.2 6 5.9 5.9 Sched Prod Cost Inst Staff 6.5 479.1 8937 3.1 0.9 6.5 470 9095 3.2 0.9 6.6 459 9326 3.3 0.9 6.5 479.1 8937 3.1 0.9 6.5 465 9191 3.2 0.9 6.6 450 9505 3.3 1 6.5 479.1 8937 3.1 0.9 6.7 439 9735 3.4 1 6.6 452 9432 3.3 1 6.5 479.1 8937 3.1 0.9 6.5 482.7 8871 3.1 0.9 6.5 463 9240 3.2 0.9 6.5 479.1 8937 3.1 0.9 6.5 483 8853 3.1 0.9 6.4 487 8786 3.1 0.9 Estimación de Esfuerzo 2010 Se puede notar que el cambio no es significativo en la mayoría de los resultados excepto para el Costo, es por tal razón que vamos a tomar este como ejemplo para visualizar su cambio con cada uno de los factores de ajuste. Cabe destacar que hace falta RUSE pero analizando su variación determinamos que su cambio no influye significativamente en los resultados. Para RCPX, PDIF, PERS, PREX y FCIL su variación es notoria, se observa lo siguiente: RCPX 9400 9300 9200 9100 Cost 9000 8900 8800 8700 NOM HI VHI PDIF 9600 9400 9200 Cost 9000 8800 8600 LO 7 HI VHI Estimación de Esfuerzo 2010 PERS 9800 9600 9400 9200 Cost 9000 8800 8600 8400 XHI LO NOM PREX 9300 9200 9100 9000 Cost 8900 8800 8700 8600 VHI XHI LOW FCIL 8950 8900 8850 Cost 8800 8750 8700 HI 2.3.1 VHI XHI Ventajas Las herramientas computacionales disponibles simplifican su uso e interpretación. Tiene pocas variables Se acerca a la realidad en la mayoría de casos COCOMO es una herramienta basada en la líneas de código la cual le hace muy poderoso para la estimación de costos. 8 Estimación de Esfuerzo 2010 2.3.2 Desventajas No es fácil de realizar ni de interpretar No saca resultados fiables en proyectos pequeños Existen muchos datos de ajuste donde se introducen valores de calificación subjetiva que pueden sesgar la estimación si son ingresados por un estimador inexperto Es necesario conocer cuál va a ser el equipo de desarrolladores, equipo informático, entorno. Es engorroso de utilizar en empresas de software donde no tienen personal asignado exclusivamente a desarrollo. La selección del modo de desarrollo es extremadamente importante. Fuertemente dependiente de los datos históricos de la organización, que no siempre están disponibles. Utilizando el modelo COCOMO nos podemos dar cuenta que es bastante sensible a la subjetividad del estimador: Existe una cantidad importante de factores que dependen de la experiencia de la persona que los determina su capacidad y experiencia con el personal involucrado en el proyecto, obteniendo así valores imprecisos de estimación, debido a que los parámetros pueden ser vistos de distinta manera por distintos analistas que usan el método. Muchos de los factores de ajuste utilizados, como RELY (fiabilidad), son difícilmente aprehensibles para un estimador inexperto, mientras que otros, como APEX (experiencia de los analistas), son de difícil estimación a partir de datos objetivos. Esto hace que el análisis pueda ser impreciso o desviarse de la realidad si se indica mal el número de líneas de código fuente. Conclusiones y Recomendaciones Se debe tener en cuenta que la persona que realice la estimación debe conocer claramente el alcance del proyecto, el grupo de desarrollo, las capacidades del recurso humano, y a la vez contar con un grado de experiencia aceptable; de lo contrario, la estimación no será muy exacta y no se ajustará a la realidad. Se requiere tener experiencia en estimación en LOC pues es necesario partir de un número de líneas de código base, para ello es importante la historia de proyectos anteriores, pueden usarse métodos como PROBE donde es necesario tener las LOC planeadas y las reales para distintos proyectos. Es necesario tener en cuenta que COCOMO II no se ajusta a pequeños proyectos, muestra mayor eficiencia y confiabilidad en proyectos medianos y grandes. Es importante tener un modelo a seguir para la estimación de tamaño de proyectos Una parte importante de la toma de decisiones al comenzar un nuevo proyecto de desarrollo de software está dada por el costo que éste tendrá. La estimación de estos costos es una de las grandes preocupaciones antes de comenzar, para ello es necesario tener una visión del alcance del proyecto y una técnica o método que ayude a ser más acertados, COCOMO II brinda una facilidad grande en estas etapas iniciales, y además cuenta con otras opciones para el mantenimiento del proyecto, su uso es sencillo ya que se encuentran muchas herramientas libres que facilitan su manejo. 9 Estimación de Esfuerzo 2010 10 Estimación de Esfuerzo 2010 3 Puntos de Caso de Uso Se utilizó una herramienta en Excel construída anteriormente por uno de los miembros del grupo para la estimación de diferentes proyectos de Software. La herramienta utilizada se basa en estadísticas en el manejo de la metodología RUP para realizar un estimado de tiempos por cada una de las disciplinas y de las fases, y determinar así un estimado de los recursos requeridos en cada etapa. Finalmente, este estimado de recursos y de tiempos da lugar a un estimativo final de costos. 3.1 Aplicación de la Metodología 3.1.1 Actores Se identificó un único actor. Sin embargo, se determinó que la complejidad del mismo era alta. Actors Weight Factors Description Simple_Actor Program interface Interactive or protocol driven interface Graphical interface Average_Actor Complex_Actor Enter Count Weighted Value Comment 1 0 0 0 2 0 0 0 3 1 3 0 Weight 3 Total Actor Weight 3.1.2 Casos de Uso El número de casos de uso es relativamente pequeño, se encontró únicamente un caso de uso complejo. Use Cases Weight Factors (Bases on the number of transactions in a use case) Enter Count Weight Weighted Value Comment Simple_Use_Case 3 or fewer transactions 5 1 5 0 Average_Use_Case 4 to 7 transactions 10 3 30 0 Complex_Use_Case more than 7 transactions 15 1 15 0 50 Transaction Based Factors En total, se hallaron 53 puntos de caso de uso, antes de hacer el ajuste de los mismos. 3.1.3 Factores de Ajuste Técnicos Technical Weight Factors T1 Distributed System T2 Response or throughput performance objectives T3 End-user efficiency (online) Rating Scale is 0 to 5 0 =not important 2,00 5 =essential Enter Rating Weighted Value Reason 0 0 Es una aplicación cliente servidor 0 =not important 1,00 5 =essential 4 4 La aplicación debe tener tiempos rendimiento eficientes de 0 =not important 1,00 5 =essential 4 4 La aplicación debe tener tiempos rendimiento eficientes de T4 Complex internal 0 =not important 1,00 processing 5 =essential 4,5 El sistema utilizara objetos externos de 4,5 procesamiento para el calculo FICO a traves de redes neurales T5 Code must be 0 =not important 1,00 reusable 5 =essential 3 El codigo de los modulos identifcados para 3 realizar la captura de preguntas debe ser reusable 11 Estimación de Esfuerzo 2010 T6 Easy to install 0 =not important 0,50 5 =essential 1 0,5 No se cuentra dentro de los requerimientos no funcionales del sistema T7 Easy to use 0 =not important 0,50 5 =essential 5 2,5 El sistema estará orientado al facil ingreso de información del usuario final T8 Portable 0 =not important 2,00 5 =essential 0 0 No se cuentra dentro de los requerimientos no funcionales del sistema T9 Easy to change 0 =not important 1,00 5 =essential 2 2 T10 Concurrent 0 =not important 1,00 5 =essential 3 3 T11 Includes special 0 =not important 1,00 security features 5 =essential 1 No se cuentra dentro de los requerimientos no funcionales del sistema. La aplicación 1 permitie el ingreso sin solicitud especial de seguridad T12 Provides direct 0 =not important access for third 1,00 5 =essential parties 0 0 No requerido T13 Special user 0 =not important training facilities are 1,00 5 =essential required 0 0 No requiere especial entrenamiento, los datos de captura son intuitivos al usuario final 24,5 Technical Factors .6 Technical Complexity (.01*Technical Factor (TCF) Factor) 3.1.4 Por ser aplicación cliente servidor, la aplicación no tiene caracteristicas fuertes de concurrencia. La concurrencia se dara a nivel de base de datos + 0,845 Factores de Ajuste de Ambiente Environmental Factors for Team Rating Scale is 0 to 5 Weight and Weights F1 Faimilar with the 0 = no experience, Rational Unified 1,50 3=average, 5=expert Process Enter Rating Weighted Value 4 6 Reason F2 Application 0 = no experience, experience 3=average, 5=expert 0,50 0 No contamos con experiencia en la construcción de este tipo de sistemas. 0 No contamos con experiencia en la construcción de sistemas que implementen redes neuronales F3 Object-Oriented 0 = no experience, Experience 3=average, 5=expert 1 4 4 0,50 3 1,5 1 5 5 100% motivados 2 3 Se han introducido nuevas 6 funcionalidades recientemente a los requerimientos iniciales 0=no part time , 5=all part time -1,00 5 -5 0=easy language, 3=average,5=difficult -1,00 3 -3 F4 Lead capability analyst 0 = no experience, 3=average, 5=expert 0=no motivation, F5 Motivation 3=average, 5=high F6 Stable 0=extremly unstable, requirements 5=unchanging F7 Part-time workers F8 Difficult programming language Environmental Factors EFactor 12 14,5 0,965 Alto conocimiento del equipo programación orientada a objetos en Todos tenemos tiempo compartido con el proyecto Estimación de Esfuerzo 2010 3.2 Resultados Puntos de Caso de Uso sin Ajustar Factor de Complejidad Técnica Factor de Ambiente Puntos de Caso de Uso Ajustados Horas Hombre por Caso de Uso Porcentaje Estimado de Desviación Tiempo Estimado (Horas Hombre) 53 0,845 0,965 43,217525 201 20% 1037,22 Es evidente que el número de horas hombre estimado (1037,22) está dentro del rango dado de COCOMO II, y efectivamente se acerca al resultado arrojado como más probable (960 Horas Hombre). A causa de las características específicas de la herramienta utilizada, basada en estadísticas en el uso de RUP en proyectos a nivel mundial, estas horas pudieron ser distribuidas a cada una de las etapas de desarrollo, de acuerdo, de acuerdo al siguiente gráfico. Cabe anotar que esta proyección no es parte de la metodología de Puntos de Caso de Uso: Horas proyecto Iniciación % 5,0% Elaboración Construcción 22,5% 61,3% Administración del Proyecto 5,0% 3 16 Modelamiento del Negocio 2,5% 18 Requerimientos 2,5% 5 Análisis y Diseño 20,0% Implementación Pruebas Transición 11,3% 26 8 51,86 8 0 0 25,93 8 13 0 25,93 10 104 62 31 207,44 45,0% 0 21 415 31 466,75 10,0% 5 31 52 16 103,72 Despliegue 5,0% 3 16 26 8 51,86 Configuración y Control de Cambios 5,0% 3 16 26 8 51,86 Ambiente 5,0% 51,86 3.3 5 16 16 16 51,86 233,37 635,30 116,69 Análisis de la Metodología 3.3.1 Factores Críticos El modelo de puntos de caso de uso depende mucho de la especificación de los mismos, riesgo que se reduce en parte si determinamos claramente en qué consiste una transacción, y si tenemos en cuenta que en gran parte la especificación de los mismos depende de qué se considere como precondición y postcondición de cada uno de ellos, y por lo tanto al realizar una especificación completa unos casos de uso terminan complementando las falencias en la especificación de los otros. Es importante asimismo ser muy crítico con la asignación de los factores de ajuste, pues estos en combinación pueden desde reducir el tamaño del proyecto a la cuarta parte (0,255) hasta duplicarlo (2,25). 1 Se estimaron 20 de acuerdo a las recomendaciones, puesto que no se cuenta con datos anteriores. 13 Estimación de Esfuerzo 2010 No se considera que ninguno de los factores tenidos en cuenta dentro de la metodología sean innecesarios para la misma, si bien es claro que el aporte que tienen los actores sobre los casos de uso no ajustados tiende a ser mucho menor que el aporte que tienen las transacciones. 3.3.2 Ventajas Es muy fácil de realizar e interpretar, más aún que COCOMO Tiene pocas variables, menos aún que COCOMO Proporciona una medida comparativa del tamaño de un proyecto 3.3.3 Desventajas La metodología de desarrollo debe incluir especificación de caso de uso Los casos de uso deben estar especificados. Esto implica que la estimación no se puede hacer al principio del proyecto, y que varía rápidamente ante cambios en los requerimientos. Por otro lado, es importante que la especificación de los casos de uso se realice tan pronto como sea posible, lo que no es cierto en todos los proyectos. Depende de la forma en que se especificaron los casos de uso (Ver abajo) La estimación de esfuerzo depende de variables externas a la metodología (Ver abajo) No hay una guía clara para la estimación de los valores en los factores de ajuste. 3.3.4 Sensibilidad a la Subjetividad Como indicamos anteriormente, los factores de ajuste dependen igualmente de la subjetividad del estimador, si bien unas políticas claras de determinación del valor que se debería dar a cada uno de estos factores (Basadas probablemente en las establecidas para puntos de Función) podrían mitigar este riesgo. La estimación de esfuerzo, por otra parte, depende bastante de un factor de Horas Hombre por Caso de Uso, que es diferente de acuerdo a la organización o al equipo. A causa de ello, si bien la estimación de tamaño puede ser bastante confiable (Ver más adelante), el esfuerzo estimado depende únicamente del criterio del estimador. Para mitigar este riesgo, sin embargo, es útil tener un registro de datos históricos para el equipo en cuestión. 3.3.5 Conclusiones y Recomendaciones El modelo de puntos de caso de uso tiene una granularidad muy alta dependiendo del número de transacciones, sobre todo cuando se tienen definiciones de casos de uso con números de transacciones entre 4 y 7 (Complejidad media), o mayores de 10 (Que en ningún caso, y sin importar el número de transacciones, supera los 15 PCUs). Se podría hacer un ajuste sencillo a la metodología creando una fórmula continua que retorne los PCUs a partir del número de transacciones. A primera vista, la fórmula que estaríamos buscando sería muy similar a la siguiente: PCU = 5 * √TRANS Donde TRANS es el número de transacciones de cada Caso de Uso. Esto permite disminuir la granularidad y hacer una estimación más realista. 14 Estimación de Esfuerzo 2010 Para la implantación en una empresa, es crítico tener unas políticas muy claras para la especificación de los casos de uso y para la determinación de los factores de ajuste tanto técnicos como de ambiente. Finalmente, es crítico llevar un histórico del esfuerzo (En Horas Hombre) realizado por punto de caso de uso en proyectos anteriores. Generalmente esto depende mucho del equipo en particular, pero se puede llevar el histórico para la organización en general, asumiendo que se va a proporcionar un estimado medianamente cercano a la realidad. 15