COMBINACION DE ALTERNATIVAS PARA LA ESTIMACION DE PROYECTOS SOFTWARE

Gramajo, E., García-Martínez, R., Rossi, B., Claverie, E. y Britos, P.
CAPIS - CENTRO DE ACTUALIZACION PERMANENTE EN INGENIERIA DE SOFTWARE

RESUMEN La utilización de metodologías tradicionales para la estimación de proyectos software ha resuelto correctamente la necesidad de conocer la duración de un proyecto como una variable dependiente de los recursos a emplear. Se propone en este trabajo la combinación de las técnicas de Puntos de Función y COCOMO para establecer una estimación dependiente de un conjunto de variables consideradas en un proyecto para establecer una estimación mas precisa del mismo. Se plantean en el trabajo aspectos críticos que necesitan ser profundizados a fin de obtener un aprovechamiento mayor de los métodos descriptos. Palabras Clave Puntos de Función – Estimación de proyectos – COCOMO – Duración proyecto – Orientado a Objetos 1. INTRODUCCIÓN Actualmente se dispone de técnicas para estimación de proyectos que permiten la realización de evaluaciones más precisas que las obtenidas a través de métodos tradicionales (orientadas a calcular individualmente el esfuerzo correspondiente a cada una de las actividades del mismo). Se analizarán dos de ellas, Puntos de Función (International Function Point users Group. Function Point Counting Practices Manual) y COCOMO (Londeix B, Cost Estimation for Software Development) a fin de examinar no solo sus ventajas sino también sus aspectos críticos con el propósito de mostrar que mediante la interacción de ambas pueden subsanarse algunos de ellos. Por último se presentará como caso de estudio un análisis comparativo de la estimación de un proyecto en función de diferentes lenguajes de programación a utilizar, para la implementación del diseño, con la finalidad de comparar su variación respecto de las variables mencionadas. 2. MÉTODO TRADICIONAL Las distintas metodologías tradicionales de estimación de (Böem B.W.,Software Engineering Economics) proporcionan un dato básico (horas hombre) a aplicar al proyecto, entendiéndose por ésta a cantidad de horas a utilizar, a partir de lo cual y mediante la utilización de diversos ratios tales como pesos/hora u horas/persona pueden deducirse otros valores de estimación como el costo, personal involucrado, etc.

si una persona puede pintar una habitación en diez días no puede pensarse que diez personas pudieran hacerlo en un día .. Dado que los métodos tradicionales proporcionan una medida de las horas hombre necesarias para aplicar al proyecto. Para explicar mejor la idea y simplificándola podemos sintetizar que el desarrollador tratará de extender el proyecto lo máximo posible a fin de asegurar su cumplimiento y el usuario. ESTIMAR HORAS HOMBRE ESTIMAR EL COSTO DETERMINAR PLAZOS DE ENTREGA DETERMINAR EL PERSONAL INVOLUCRADO Figura 1: Enfoque tradicional para estimación de proyectos Segunda Situación: Está íntimamente relacionado con la estimación del tiempo total del proyecto ya que es determinado por dos criterios que normalmente se oponen según nos refiramos al punto de vista del usuario o del desarrollador.. se llega finalmente a establecer la cantidad de personal a utilizar). éstos no disponen de argumentos con base científica que puedan explicar esta situación cuando se trata de proyectos de desarrollo de software. Si bien para los desarrolladores es claro que ello no es así (normalmente se recurre a analogías del estilo de “. Carpetas de la Carrera de Posgrado en Ingeniería del Software) se plantean basicamente dos situaciones (que son ejemplificadas en la figura 1. Dicha situación acarrea un inconveniente adicional producido por el establecimiento de fechas de entrega que pueden resultar imposibles de cumplir cuando se acuerdan bajo la presión del usuario o bien por la necesidad del desarrollador de cumplir anticipadamente un proyecto.. Esto lleva invariablemente a la utilización de explicaciones que tienen mas que ver con el sentido común y la experiencia que con justificaciones elaboradas con fundamento.. Como síntesis de lo expresado sería deseable utilizar técnicas que no solamente posibilitaran calcular las horas hombre a aplicar al desarrollo de un proyecto sino . por el contrario pretenderá reducirlo. la discusión se centra en la asignación de personal de manera de acortar proporcionalmente el tiempo total en función de aumentar aquella variable.Basándonos en la experiencia recogida en la actividad profesional (ITBA-CAPIS. Primera Situación: Tiene que ver con el costo estimado del proyecto (a partir de estimar horas hombre) el cual está directamente relacionado al ratio utilizado y considerando los plazos de entrega se converge a un valor que satisfaga a las partes involucradas. en la cual se muestra el proceso de estimación de acuerdo al enfoque tradicional que determina las horas hombre necesarias a partir de las que se calculan los costos y en función de los plazos de entrega acordados.”).

experiencia en la máquina virtual. limitaciones de memoria principal. limitaciones en el tiempo de ejecución. El método COCOMO permite determinar los valores de las siguientes dos variables: • • meses/hombre a aplicar al proyecto meses totales del proyecto (dependiendo de factores tales como los atributos de fiabilidad requerida del software.E. capacitación de los analistas. experiencia en aplicaciones. complejidad del producto. Checklist and Criteria for Evaluating the Cost and Schedule Estimating Capabilities of Software organizations) y COCOMO (Burril C. Puntos de Función (Park R. experiencia en el lenguaje de programación. como a partir de estos dos valores (horas hombre y tiempo total) y simplemente por el cociente de ambos se obtiene la cantidad de recursos (personas) para llevarlo a cabo. además. de igual forma que en las metodologías tradicionales. Determinar líneas de código ESTIMAR TIEMPO TOTAL ESTABLECER PLAZO DE ENTREGA DETERMINAR EL PERSONAL INVOLUCRADO ESTIMAR EL COSTO ESTIMAR HORAS HOMBRE Figura 2: Estimación de proyectos por método COCOMO Debe tenerse en cuenta que la duración total del proyecto es un valor teórico y que puede disminuirse incrementando los recursos (personas) a emplear aunque el . 3. tamaño de la base de datos. volatilidad de la máquina virtual. Mostrándose. prácticas modernas de programación. A partir de allí se puede elaborar el costo mediante la aplicación de ratios. En la figura 2 se presenta un esquema de estimación que proporciona además de las horas hombre a emplear el tiempo total del proyecto (basándose para ello en el conocimiento previo de la cantidad de sentencias de código del proyecto) lo que permite determinar el plazo de entrega. Modern Project Management) en forma conjunta permitiría mejorar la situación descripta en la sección precedente.W.también estimar un valor de la duración del mismo dado por sus características intrínsecas independientemente de los recursos a emplear. frecuencia de cambio en el modelo de explotación del ordenador. capacitación de los programadores. MÉTODOS ALTERNATIVOS La utilización de dos métodos. uso de herramientas para el desarrollo del software y limitaciones en la planificación).

Imprenta del ITBA) para entallarlo finalmente de acuerdo a factores de ajuste seleccionados a partir de las características específicas del proyecto. facilidad de instalación. Carpetas de la Carrera de Posgrado en Ingeniería del Software. Esta técnica requiere de un dato elemental determinado por la cantidad de sentencias de código del proyecto a la que posteriormente se aplican diferentes algoritmos que varían de acuerdo al modelo de desarrollo elegido (Orgánico. facilidad de operación. entrada on-line de datos. Modern Project Management). utilización en otros sistemas. la de Puntos de Función (Böem B.Software Engineering Economics). etc. que son posteriormente ajustados de acuerdo a las características específicas del proyecto (International Function Point users Group). Este método calcula los puntos de función de un sistema descomponiendo al mismo en cinco funciones principales (entradas. los puntos de función. será menor (puede alcanzar a un 20% menos) que el esfuerzo aplicado a tal efecto. ficheros internos y externos). El camino para resolver este aspecto crítico es mediante la aplicación de otra técnica. Estos ratios permiten establecer la cantidad de instrucciones del software posibilitando de esta forma obtener el dato que es punto de partida para el método COCOMO previamente descripto. 4GL. Semilibre o Libre) (ITBACAPIS. frecuencias distribuidas. posibilitando a partir de allí el establecimiento. frecuencia de transacciones. .W.) medidos en cantidad de sentencias de código por punto de función los valores totales. salidas. de acuerdo a ratios específicos. actualización on-line. Esta información se convierte en el aspecto crítico del método ya que ese valor es un parámetro difícil de determinar con exactitud y puede variar considerablemente según las metodologías de desarrollo utilizadas (Burril C.impacto. rendimiento.W. diseño para la eficiencia del usuario final.. asignándoles valores de acuerdo a su complejidad y en función de la cantidad de cada uno de ellos se llega a determinar. procesos complejos.W. configuraciones fuertemente utilizadas. en razón de lo expresado anteriormente. Según se puede observar en la Figura 3 correspondiente a la metodología de estimación por el método de Puntos de Función. mediante su sumatoria.. de la cantidad de sentencias de código del sistema software. consultas.Software Engineering Economics) tales como atributos de comunicación de datos. se obtienen los Puntos de Función del sistema que son ajustados de acuerdo a factores predefinidos (Böem B. instalación de múltiples sitios y facilidad de cambio. PUNTOS DE PUNTOS DE FUNCIÓN SIN AJUSTAR FUNCIÓN AJUSTADOS LÍNEAS DE CÓDIGO DEL SOFTWARE RATIO LÍNEAS DE CÓDIGO POR PUNTO DE FUNCIÓN Figura 3: Estimación de Proyectos por el método de Puntos de Función Sobre la base de este valor calculado se obtiene mediante la aplicación de ratios asociados a las características del lenguaje a utilizar (Cobol.

06 1.880 3.12 2. .00 1.127 Tabla 1: Estudio Comparativo de la estimación para diferentes lenguajes de codificación Para este ejemplo se seleccionó un proyecto de software referido a un sistema cuyo objetivo es mejorar el servicio de reclamaciones de clientes de una empresa de salud que dio como resultado un valor de 810 Puntos de Función.35 386 1.00 1.150 255 2 3 4 5 6 810 40 1.500 CPRO * NPER 3.06 410 21 20 2.024.05 851 20 17.35 1488 1.12 2.001 3.00 1.545 77 810 40 1.06 309 19 17 2.398 1.758 13 FPA Puntos de Función ajustados LCO Líneas de código por FP LCOT Líneas de código totales KDSI Miles de líneas de código COCOMO CO1 PO1 CO2 PO2 MM FA Modelo MM coeficiente Modelo MM exponente Modelo TDEV coeficiente Modelo TDEV exponenete Esfuerzo Coeficiente esfuerzo MM * FA C02 * (MMF ** P02) MMF / TDEV C01 * (KDSI ** P01) 3.578 33 48 2.05 851 90 76.535 60 810 40 1.050 85 810 40 1.06 461 21 22 2. tiempo total y costo).152.375 1.500 190.12 2.010 17 810 40 1.05 851 300 LCO * FPA LCOT / 1000 255.500 3.35 292 1. I N D I C A DORES FORMULA ASEMBLER FORTRAN COBOL CODE PASCAL ADA 4GL GENERATOR 1 PUNTOS DE FUNCION FP TDI AF Puntos de Función sin ajustar Grado de influencia Factor de ajuste ( TDI * 0.12 2.00 1.500 772.35 435 1.50 0.50 0.00 1.05 851 15 12.50 0. A título ilustrativo se muestra en la Tabla 1 la estimación de un proyecto por los métodos de Puntos de Función y COCOMO analizando la incidencia de los diferentes lenguajes de programación.35 52 1.05 851 100 85.01) + 0.En opinión de los autores el método de Puntos de Función presenta un aspecto crítico en lo referido a la reutilización de módulos preexistentes (por ejemplo varias salidas similares que poseen una misma estructura con variaciones propias de cada una de ellas).S. IDENT.665 MMF Esfuerzo final TDEV Tiempo de desarrollo NPER Cantidad de personas CPRO Costo mensual por persona CTOT Costo final 3. analizando la variación de líneas de código de acuerdo al lenguaje utilizado (Pressman R.50 0. En este caso el método las considera a todas diferentes y se miden de la forma descripta anteriormente con lo que se considera que la cantidad de puntos de función daría una cifra superior a la real deformando el número final con la consabida incidencia (número de sentencias de código del software) en la aplicación del método COCOMO. Ingeniería del Software) y su incidencia en los diferentes valores de la estimación (meses hombre.12 2.06 55 10 5 2.05 851 70 59.35 72 1.50 0.500 137.500 3.65 FP * AF 810 40 1.06 76 11 7 2.944.50 0.00 1.12 2.

Por otra parte se utilizó para la estimación por COCOMO un modo Semilibre modelo intermedio (ITBA-CAPIS. Del análisis de la referida tabla y tomando como referencia los valores extremos. El Tiempo (TDEV) correspondiente al tiempo total del Proyecto solamente se reduce a la tercera parte. Puede concluirse. entonces. El esfuerzo final (MMF) correspondiente a la cantidad de meses hombre a emplear en el proyecto mantiene una relación aproximada a la descripta anteriormente. El costo final (CTOT) también se reduce en la misma proporción. Como síntesis de lo expresado anteriormente puede decirse que el aspecto crítico de los métodos tradicionales de estimación de proyectos software radica en la imposibilidad de establecer una unidad de medida para la estimación de la duración total del proyecto como un valor dependiente de las características del mismo y no solo en función de los recursos humanos a emplear. 4. que el tiempo total de duración de un proyecto está relacionado con las características propias del mismo y no depende directamente de el lenguaje de implementación del diseño como así tampoco de la cantidad de personal a utilizar. • • Este análisis podría extenderse a cualquier combinación de los diferentes lenguajes de implementación del diseño con resultados similares. es decir considerando la implementación sobre un lenguaje ensamblador (columna 1) y un generador de código (columna 6) surgen algunas consideraciones importantes de destacar: • • Las sentencias de código por punto de función (LCO) se reducen a la treinta ava parte. sino que esta última es una consecuencia directa de los dos valores estimados por el metodo (Meses Hombre Totales MMF y Tiempo Total del Proyecto TDEV). Carpetas de la Carrera de Posgrado en Ingeniería del Software) y cabe hacer notar que en los valores obtenidos no se consideró la incidencia producida por la reutilización de módulos preexistentes lo que hubiera significado una disminución considerable de los valores resultantes. CONCLUSIONES Si bien existen dos factores fundamentales a examinar en la estimación de un proyecto software. la importancia cada vez mayor que toma la información como factor estratégico ha determinado que sea la duración de un proyecto uno de los aspectos mas prioritarios en su realización. A fin de complementar el análisis se han determinado valores estimativos del costo por persona para obtener una estimación económica del proyecto en cuestión. su duración y costo. Como alternativa se propuso en este trabajo la utilización combinada de dos métodos (Puntos de Función y COCOMO) tendientes a proporcionar una estimación mas precisa tratándolos de la siguiente forma: .

1997.E. Burril-Ellsworth Associates. Cost Estimation for Software Development. Prentice Hal. 1994 . 1981 Burril C. Enero 1995. Un enfoque práctico. ITBA-CAPIS. 1980.W. Release 4.S. REFERENCIAS Böem B. Mc Grow Hill.. Park R.W. Pressman R. Checklist and Criteria for Evaluating the Cost and Schedule Estimating Capabilities of Software organizations. queda planteado a partir del presente trabajo. Carpetas de la Carrera de Posgrado en Ingeniería del Software. International Function Point users Group.Software Engineering Economics.Primero la aplicación del método de Puntos de Función para determinar las sentencias de código del proyecto software. Imprenta del ITBA. Addison-Wesley Publishers Company. la cual mantiene una distorsión. 5. Modern Project Management. producida por no considerar esta técnica la reutilización de módulos preexistentes. Function Point Counting Practices Manual. CMU/SEI-95-SR-005. Londeix B. 1994. Edición 1996. Ingeniería del Software. una línea de investigación tendiente a analizar la incidencia de las metodologías orientadas a objetos en esta técnica de estimación a fin de elaborar los factores de ajuste necesarios para reducir la distorsión provocada.0. En segundo lugar la aplicación del método COCOMO partiendo de la información producida por el anterior (sentencias de código) para llegar a una estimación precisa de las horas hombre a aplicar y fundamentalmente a la estimación de la duración total del proyecto. Finalmente y basándonos en que el paradigma de objetos considera la reusabilidad como un factor básico y entendiendo que el método descripto (PUNTOS DE FUNCIÓN) pareciera no tomar en cuenta estas características.

Sign up to vote on this title
UsefulNot useful