Está en la página 1de 7

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.
Basándonos en la experiencia recogida en la actividad profesional (ITBA-CAPIS.
Carpetas de la Carrera de Posgrado en Ingeniería del Software) se plantean
basicamente dos situaciones (que son ejemplificadas en la figura 1, 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, se llega finalmente a establecer la cantidad de personal
a utilizar).

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.
ESTIMAR ESTIMAR
HORAS EL
HOMBRE COSTO

DETERMINAR DETERMINAR
PLAZOS EL PERSONAL
DE ENTREGA 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.

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, por el contrario pretenderá reducirlo.

Dado que los métodos tradicionales proporcionan una medida de las horas hombre
necesarias para aplicar al proyecto, 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.

Si bien para los desarrolladores es claro que ello no es así (normalmente se recurre a
analogías del estilo de “... si una persona puede pintar una habitación en diez días no
puede pensarse que diez personas pudieran hacerlo en un día ...”), éstos no disponen
de argumentos con base científica que puedan explicar esta situación cuando se trata
de proyectos de desarrollo de software.

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.

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.

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
también estimar un valor de la duración del mismo dado por sus características
intrínsecas independientemente de los recursos a emplear.

3. MÉTODOS ALTERNATIVOS

La utilización de dos métodos, Puntos de Función (Park R.E, Checklist and Criteria for
Evaluating the Cost and Schedule Estimating Capabilities of Software organizations) y
COCOMO (Burril C.W, Modern Project Management) en forma conjunta permitiría
mejorar la situación descripta en la sección precedente.

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, tamaño de la base de datos,
complejidad del producto, limitaciones en el tiempo de ejecución, limitaciones de
memoria principal, volatilidad de la máquina virtual, frecuencia de cambio en el
modelo de explotación del ordenador, capacitación de los analistas, experiencia
en aplicaciones, capacitación de los programadores, experiencia en la máquina
virtual, experiencia en el lenguaje de programación, prácticas modernas de
programación, uso de herramientas para el desarrollo del software y limitaciones
en la planificación).

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. Mostrándose, además, 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. A partir de allí se
puede elaborar el costo mediante la aplicación de ratios, de igual forma que en las
metodologías tradicionales.

Determinar
líneas de
código

ESTIMAR
ESTIMAR
TIEMPO
HORAS
TOTAL
HOMBRE

ESTABLECER
PLAZO DE
ENTREGA

DETERMINAR ESTIMAR
EL PERSONAL EL
INVOLUCRADO COSTO

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
impacto, en razón de lo expresado anteriormente, será menor (puede alcanzar a un
20% menos) que el esfuerzo aplicado a tal efecto.

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, Semilibre o Libre) (ITBA-
CAPIS. Carpetas de la Carrera de Posgrado en Ingeniería del Software. Imprenta del
ITBA) para entallarlo finalmente de acuerdo a factores de ajuste seleccionados a partir
de las características específicas del proyecto.

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.W, Modern Project Management).

El camino para resolver este aspecto crítico es mediante la aplicación de otra técnica,
la de Puntos de Función (Böem B.W.,Software Engineering Economics).

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, se obtienen los Puntos de Función del
sistema que son ajustados de acuerdo a factores predefinidos (Böem B.W.,Software
Engineering Economics) tales como atributos de comunicación de datos, frecuencias
distribuidas, rendimiento, configuraciones fuertemente utilizadas, frecuencia de
transacciones, entrada on-line de datos, diseño para la eficiencia del usuario final,
actualización on-line, procesos complejos, utilización en otros sistemas, facilidad de
instalación, facilidad de operación, instalación de múltiples sitios y facilidad de cambio,
posibilitando a partir de allí el establecimiento, de acuerdo a ratios específicos, de la
cantidad de sentencias de código del sistema software.

Este método calcula los puntos de función de un sistema descomponiendo al mismo en


cinco funciones principales (entradas, salidas, consultas, ficheros internos y externos),
asignándoles valores de acuerdo a su complejidad y en función de la cantidad de cada
uno de ellos se llega a determinar, mediante su sumatoria, los puntos de función, que
son posteriormente ajustados de acuerdo a las características específicas del proyecto
(International Function Point users Group).

PUNTOS DE
PUNTOS DE
FUNCIÓN
FUNCIÓN SIN
AJUSTADOS
AJUSTAR

RATIO
LÍNEAS DE CÓDIGO
LÍNEAS DE CÓDIGO
DEL SOFTWARE
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, 4GL, etc.) medidos en
cantidad de sentencias de código por punto de función los valores totales.

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.
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).

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.

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.
FORTRAN CODE
IDENT. I N D I C A DORES FORMULA ASEMBLER COBOL PASCAL ADA 4GL GENERATOR
1 2 3 4 5 6

PUNTOS DE FUNCION

FP Puntos de Función sin ajustar 810 810 810 810 810 810

TDI Grado de influencia 40 40 40 40 40 40

AF Factor de ajuste ( TDI * 0,01) + 0,65 1.05 1.05 1.05 1.05 1.05 1.05

FPA Puntos de Función ajustados FP * AF 851 851 851 851 851 851

LCO Líneas de código por FP 300 100 90 70 20 15

LCOT Líneas de código totales LCO * FPA 255,150 85,050 76,545 59,535 17,010 12,758

KDSI Miles de líneas de código LCOT / 1000 255 85 77 60 17 13

COCOMO

CO1 Modelo MM coeficiente 3.00 3.00 3.00 3.00 3.00 3.00


PO1 Modelo MM exponente 1.12 1.12 1.12 1.12 1.12 1.12
CO2 Modelo TDEV coeficiente 2.50 2.50 2.50 2.50 2.50 2.50
PO2 Modelo TDEV exponenete 0.35 0.35 0.35 0.35 0.35 0.35

MM Esfuerzo C01 * (KDSI ** P01) 1488 435 386 292 72 52

FA Coeficiente esfuerzo 1.06 1.06 1.06 1.06 1.06 1.06

MMF Esfuerzo final MM * FA 1,578 461 410 309 76 55

TDEV Tiempo de desarrollo C02 * (MMF ** P02) 33 21 21 19 11 10

NPER Cantidad de personas MMF / TDEV 48 22 20 17 7 5

CPRO Costo mensual por persona 2,500 2,500 2,500 2,500 2,500 2,500

CTOT Costo final CPRO * NPER 3,944,375 1,152,398 1,024,127 772,880 190,001 137,665

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, analizando la variación de
líneas de código de acuerdo al lenguaje utilizado (Pressman R.S, Ingeniería del
Software) y su incidencia en los diferentes valores de la estimación (meses hombre,
tiempo total y costo).
Por otra parte se utilizó para la estimación por COCOMO un modo Semilibre modelo
intermedio (ITBA-CAPIS. 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.

Del análisis de la referida tabla y tomando como referencia los valores extremos, 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.

• 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.

• El Tiempo (TDEV) correspondiente al tiempo total del Proyecto solamente se


reduce a la tercera parte.

Este análisis podría extenderse a cualquier combinación de los diferentes lenguajes de


implementación del diseño con resultados similares.

Puede concluirse, entonces, 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, 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).

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.

4. CONCLUSIONES

Si bien existen dos factores fundamentales a examinar en la estimación de un proyecto


software, su duración y costo, 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.

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.

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:
Primero la aplicación del método de Puntos de Función para determinar las sentencias
de código del proyecto software, la cual mantiene una distorsión, producida por no
considerar esta técnica la reutilización de módulos preexistentes.

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, queda planteado a partir del
presente trabajo, 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.

5. REFERENCIAS

Böem B.W.,Software Engineering Economics, Prentice Hal. 1981

Burril C.W, Modern Project Management, Burril-Ellsworth Associates. 1980.

International Function Point users Group. Function Point Counting Practices Manual.
Release 4.0. 1994.

ITBA-CAPIS. Carpetas de la Carrera de Posgrado en Ingeniería del Software. Imprenta


del ITBA. Edición 1996.

Londeix B, Cost Estimation for Software Development, Addison-Wesley Publishers


Company. 1997.

Park R.E, Checklist and Criteria for Evaluating the Cost and Schedule Estimating
Capabilities of Software organizations. CMU/SEI-95-SR-005. Enero 1995.

Pressman R.S, Ingeniería del Software. Un enfoque práctico. Mc Grow Hill. 1994

También podría gustarte