Está en la página 1de 9

Desarrollo de una nueva metodologı́a derivada del

COCOMO II agregando pautas de calidad.

Obdulia Lorena Franco Araujo


Facultad Politécnica, Universidad Nacional del Este.
Ciudad del Este, Paraguay.
lorenaf86@gmail.com

Resumen
El objetivo de este trabajo es ofrecer una metodologı́a de estimación de costos basada en la metodo-
logı́a COCOMO II que sea aplicable a proyectos de desarrollo de software que utilizan métodos ágiles
de desarrollo. El mismo habrá de aportar mejoras en la estimación de costos de proyectos ágiles
considerando la productividad del equipo y ofreciendo técnicas flexibles en el desarrollo de software.
Se espera establecer un modelo práctico de estimación de costos que incorpore caracterı́sticas de
proyectos ágiles.
Descriptores: COCOMO II, metodologı́as ágiles de software.

Abstract
The aim of this work is to provide a cost estimation methodology based on COCOMO II, appli-
cable to software development project using agile development methods. It is expected to bring
improvements in the estimation of agile project costs considering team productivity and providing
flexible development techniques. A practical model for cost estimation is expected to establish,
incorporating agile project features.
Keywords: COCOMO II, agile development software.

1. Introducción. 1.1. Objetivos.


1.1.1. Objetivo general.

La creciente complejidad de los desarrollos Desarrollo de una propuesta metodológica de


software que provocó la denominada “crisis del estimación de costos incorporando pautas de cali-
software” se ha tratado de abordar mediante el dad.
planteamiento de nuevos métodos, metodologı́as,
técnicas y paradigmas para minimizar su impacto. 1.1.2. Objetivos especı́ficos.
− Simplificar y disminuir los parámetros o cri-
A pesar de que la estimación de proyectos con-
terios utilizados en COCOMO II para medi-
tinúa siendo una tarea muy compleja, en muchas
ción del desarrollo de software.
ocasiones dejada al albur de la pericia del experto
estimador, en las últimas décadas se han desarro- − Ofrecer métodos sencillos y prácticos para
llado algunas técnicas para la estimación del es- obtener calidad en la estimación de un desa-
fuerzo de proyectos software completos, tales como rrollo de software.
casos de usos [3], puntos de función [7] y COCO-
MO II [4]. − Desarrollar una metodologı́a de estimación
de costos de software para la verificación del
Como se ve en un ambiente de que todo de- nuevo modelo propuesto en este trabajo de
be ser para ayer, se torna caótico el desarrollo de investigación en base al COCOMO II.
software y de ahı́ surgen las metodologı́as ágiles
para poder cubrirlo, sin embargo encontrar una 1.2. Estimación de costo para desarrollo de
combinación de metodologı́a de desarrollo, méto- software.
do de estimación de esfuerzo y costo todavı́a es un
trabajo minucioso y de ahı́ que surge el área de El producto de software ha tenido una muy al-
interés para la elaboración de esta tesis. ta frecuencia de exceso de calendarización, costos,
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

problemas de calidad e indiscutibles cancelacio- 1.4. Medidas y métricas del software.


nes. Mientras esta mala reputación a menudo es
merecida, es importante notar que algunos gran- En el campo de la ingenierı́a del software, se
des proyectos de software finalizan a tiempo y con suele hablar indistintamente de “métricas” y de
el presupuesto estimado, además funcionan satis- “medidas”, pero sin embargo existen diferencias
factoriamente cuando éstos son desplegados. entre estos términos. Una medida indica cuantita-
tivamente algún atributo de proceso o de produc-
Los grandes proyectos exitosos difieren en mu-
to (extensión, cantidad, dimensiones, capacidad,
chos sentidos de los fracasos y desastres. Una dife-
tamaño, etc.). Una métrica es definida por el Glo-
rencia importante es, cómo los proyectos exitosos
sario de Estándares del IEEE (Institute of Electri-
concluyen a tiempo, dentro de los costos, recur-
cal and Electronics Engineers) como una “medida
sos y estimación de calidad prevista en un primer
cuantitativa del grado en que un sistema, compo-
término. De un análisis de resultados de las herra-
nente o proceso posee un atributo determinado”
mientas de estimación usadas, publicado en [6], el
[1].
uso de instrumentos de estimación automatizados
Si se recopila un sólo tipo de datos, como por
conduce a estimaciones más exactas. A la inversa,
ejemplo el número de errores dentro de un compo-
los métodos informales o manuales de llegar en es-
nente, se ha establecido una medida. Una métri-
timaciones iniciales son generalmente inexactos y
ca de software relaciona de alguna manera las
a menudo excesivamente optimistas.
medidas individuales. Siguiendo nuestro ejemplo,
Las estimaciones de tiempo y costo deberı́an
podrı́amos tratar el número de errores encontra-
ser exactas, naturalmente. Pero si ellas difieren de
dos en cada revisión o prueba.
los resultados reales, es más seguro ser ligeramen-
Los ingenieros de software, a partir de las medi-
te conservador que ser optimista. Una de las prin-
das, elaboran métricas que les proporcionan infor-
cipales quejas sobre los proyectos de software se
mación para poder controlar el proceso o el desa-
refiere a su tendencia alarmante de exceder gastos
rrollo de software.
y calendarios planificados.
Debido a que el crecimiento de la estimación
de costos es una actividad compleja, existe un cre- 2. COCOMO II.
cimiento industrial de compañı́as dedicadas a ofre-
Hoy en dı́a las compañı́as de software desarro-
cer diferentes marcas comerciales de herramientas
llan diferentes programas de software en paralelo,
de estimación de costos en el mercado. A partir del
que es una tarea muy compleja. Los responsables
2005, algunas de esas herramientas de estimación
del proyecto gestionan los diferentes procesos de
son: COCOMO II, CoStar, CostModeler, CostX-
desarrollo de software basados en restricciones co-
pert, KnowledgePlan , R PRICE S, SEER, SLIM y
mo el tiempo, el costo y el número de personal.
SoftCost. Algunas de las herramientas de estima-
Calcular el tiempo, el costo y el número de perso-
ción de costos más antiguas, no están activamente
nal es un trabajo muy tedioso para los directores
en el mercado pero todavı́a son utilizadas, tales
de proyectos de las empresas de software en las
como: CheckPoint, COCOMO, ESTIMACS, RE-
primeras etapas de la planificación y seguimiento.
VIC y SPQR/20 [6], ya que su uso no es apoyado
COCOMO [4] es uno de los mejores modelos para
por los vendedores, por lo que su utilización está
estimar el costo y el tiempo en meses-persona de
en declive.
un proyecto de software.
Este capı́tulo presenta una visión general de los
1.3. Proceso de estimación. modelos COCOMO que incluye extensiones y mo-
delos independientes, y describe las metodologı́as
En la industria en general, es necesario calcular subyacentes y la lógica detrás de los modelos y
y estimar el esfuerzo y el tamaño del proyecto en cómo pueden ser utilizados en conjunto para apo-
etapas muy tempranas del desarrollo del mismo. yar grandes necesidades de estimación del siste-
Sin embargo, si en el ámbito software se hacen las ma de software. Concluye con una discusión para
estimaciones en estas fases iniciales, dichas previ- unificar estos diversos modelos en un proceso más
siones pueden estar basadas en unos requerimien- simplificado que derivará en una nueva metodo-
tos erróneos o incompletos, por lo que disminuye logı́a completa y fácil de usar.
mucho su fiabilidad.
El proceso de estimación del coste de un pro- 2.1. Estimación con COCOMO II.
ducto software está formado por un conjunto de
técnicas y procedimientos que se usan en la orga- La estructura de COCOMO II se basa en mo-
nización para poder llegar a una predicción fiable. delos que asumen que se progresa a lo largo de
Este es un proceso continuo, que debe ser usado y un desarrollo de tipo espiral para consolidar los
consultado a lo largo de todo el ciclo de vida del requisitos y la arquitectura, reduciendo el riesgo;
proyecto. tales modelos son:

84
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

− Modelo de Composición de Aplicaciones. TIME Restricción tiempo de ejecución.

− Modelo de Diseño Temprano. STOR Restricción de almacenamiento principal.

− Modelo de Arquitectura Tardı́a. PVOL Volatilidad plataforma.

La estructura de COCOMO II, como se visua- ACAP Capacidad del analista.


liza en la figura 1, se basa en modelos que asumen PCAP Capacidad del programador.
que se progresa a lo largo de un desarrollo de tipo
espiral para consolidar los requisitos y la arquitec- AEXP Experiencia de aplicaciones.
tura, reduciendo el riesgo; tales modelos son:
PEXP Experiencia plataforma.
− Modelo de Composición de Aplicaciones. LTEX Experiencia del lenguaje y herramienta.
− Modelo de Diseño Temprano. PCON Continuidad del personal.
− Modelo de Arquitectura Tardı́a. TOOL Uso de herramientas software.
SITE Desarrollo Multi-lugar.
SCED Planificación requerida.

Una caracterı́stica importante a destacar es su


modelo de reutilización y sus caracterı́sticas de au-
to calibración.
Como se ve, muchos de sus parámetros de con-
figuración son subjetivos, por lo tanto la exactitud
de la estimación depende en gran medida de la ex-
periencia de la persona que la realiza, además es
muy importante la cantidad de proyectos anterio-
res (con caracterı́sticas similares al nuevo proyec-
to) porque ayudarı́a a obtener datos más precisos
Figura 1. Arquitectura COCOMO II [4]. y partir de una base sólida.
COCOMO II [9] pasó a ser una familia de mo-
delos de productividad, estimación y toma de de-
COCOMO II utiliza variables establecidas en
cisiones. Algunos de los modelos se consideran en
función de una medida de cinco factores de escala:
desarrollo, es decir que requieren todavı́a estudios
para validarlos y calibrarlos.
PREC Precedencia.

FLEX Flexibilidad de desarrollo. 3. Metodologı́as Ágiles.


RESL Resolución de Arquitectura / Riesgos. Hace casi dos décadas que se comenzó a buscar
una alternativa a las metodologı́as formales o tra-
TEAM Cohesión de equipo. dicionales que estaban sobrecargadas de técnicas y
herramientas y que se consideraban excesivamen-
PMAT Madurez del proceso.
te ?pesadas? y rı́gidas por su carácter normativo
Para realizar las estimaciones COCOMO II y fuerte dependencia de planificaciones detalladas
utiliza como medida puntos de objeto, puntos de previas al desarrollo.
función o lı́neas de código, basándose en el diseño Las metodologı́as ágiles [8] conllevan una filo-
lógico del sistema. COCOMO II posee 17 multi- sofı́a de desarrollo de software liviana, debido a
plicadores de costos, cada uno de los cuales debe que hacen uso de modelos ágiles. Se considera que
ser estimado: un modelo es ágil o liviano cuando se emplea para
su construcción una herramienta o técnica sencilla,
RELY Fiabilidad. que apunta a desarrollar un modelo aceptablemen-
te bueno y suficiente en lugar de un modelo perfec-
DATA Tamaño de la Base de Datos. to y complejo [2]. Existen actualmente una serie
de metodologı́as que responden a las caracterı́sti-
CPLX Complejidad. cas de las metodologı́as ágiles y cada vez están
RUSE Reutilización requerida. teniendo más adeptos. Aunque los creadores e im-
pulsores de las metodologı́as ágiles más populares
DOCU Documentación. han suscrito El Manifiesto Ágil [10] y coinciden

85
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

con sus postulados y principios, cada metodologı́a − Visualizar el trabajo y las fases del ciclo de
ágil tiene caracterı́sticas propias y hace hincapié producción o flujo de trabajo.
en algunos aspectos más especı́ficos.
− Determinar el lı́mite del “trabajo en curso”
3.1. Metodologı́as ágiles de desarrollo más (WIP - Work In Progress).
exitosas.
− Medir el tiempo en completar una tarea
3.1.1. Scrum. (Lead time).
Scrum es un modelo de referencia que define un
3.1.4. Scrumban.
conjunto de prácticas y roles, y que puede tomarse
como punto de partida para definir el proceso de Scrumban [8] es una metodologı́a derivada de
desarrollo que se ejecutará durante un proyecto. los métodos de desarrollo Scrum y Kanban. Es un
En Scrum [5] un proyecto se ejecuta en bloques modelo de desarrollo especialmente adecuado pa-
temporales (iteraciones-sprints) de un mes natu- ra proyectos de mantenimiento o proyectos en los
ral (pueden ser de dos o tres semanas, si ası́ se que las historias de usuarios (requisitos del soft-
necesita). Cada iteración tiene que proporcionar ware) varı́en con frecuencia o en los cuales surjan
un resultado completo, un incremento de producto errores de programación inesperados durante to-
que sea susceptible de ser entregado con el mı́nimo do el ciclo de desarrollo del producto. Para estos
esfuerzo cuando el cliente lo solicite. casos, los sprints (periodos de duración constante
Sprint es el ritmo de los ciclos de Scrum. en los cuales se lleva a cabo un trabajo en sı́) de
Está delimitado por la reunión de planificación del la metodologı́a Scrum no son factibles, dado que
sprint y la reunión retrospectiva. Una vez que se fi- los errores/impedimentos que surgirán a lo largo
ja la duración del sprint es inamovible. La mayorı́a de las tareas son difı́ciles de determinar y por lo
de los equipos eligen dos, tres o cuatro semanas de tanto, no es posible estimar el tiempo que conlle-
duración. Diariamente durante el sprint, el equipo va cada historia. Por ello, resulta más beneficioso
realiza una reunión de seguimiento muy breve. Al adoptar flujo de trabajo continuo propio del mo-
final del sprint se entrega el producto al cliente en delo Kanban.
el que se incluye un incremento de la funcionalidad
que tenı́a al inicio del sprint.
4. Propuesta metodológica.
El proceso parte de la lista de requisitos prio-
rizada del producto, que actúa como plan del pro- En este trabajo se presenta un nuevo enfoque
yecto. En esta lista el cliente ha priorizado los re- para estimar costo de desarrollos de software uti-
quisitos balanceando el valor que le aportan res- lizando metodologı́as agiles. El objetivo principal
pecto a su coste y han sido divididos en iteraciones de este trabajo es llegar a determinar en etapas
y entregas. tempranas del desarrollo de software la estima-
ción de costos en lo que se refiere exclusivamen-
3.1.2. XP (Extreme Programming). te al esfuerzo humano en el desarrollo de software
XP [11]es una metodologı́a ágil centrada en po- incorporando pautas de calidad en la estimación.
tenciar las relaciones interpersonales como clave
para el éxito en desarrollo de software, promo- 4.1. Introducción.
viendo el trabajo en equipo, preocupándose por En la actualidad se vive en un mundo de licita-
el aprendizaje de los desarrolladores, y propician- ciones y contrataciones de terceros para desarro-
do un buen clima de trabajo. XP se basa en re- llos de software y esto aun diciendo que se utiliza
alimentación continua entre el cliente y el equipo un enfoque ágil es imposible no predecir el costo
de desarrollo, comunicación fluida entre todos los final del producto.
participantes, simplicidad en las soluciones imple- En metodologı́as ágiles trabajan en equipo en-
mentadas y coraje para enfrentar los cambios. XP tre el principal interesado en el producto, “El
se define como especialmente adecuada para pro- Cliente”, y las personas que se encargarán de desa-
yectos con requisitos imprecisos y muy cambian- rrollarlo e implementarlo, “Los Desarrolladores”,
tes, y donde existe un alto riesgo técnico. por ello no suele ser necesario conocer el costo del
producto como un todo, debido a que el cliente
3.1.3. Kanban.
conoce los detalles de la metodologı́a.
Su objetivo es gestionar de manera general Sin embargo, la necesidad de ambas partes de
cómo se van completando tareas, pero en los últi- conocer lo que costará el producto es de suma im-
mos años se ha utilizado en la gestión de proyectos portancia, de ahı́ el énfasis de esta tesis en solu-
de desarrollo software. cionar esta brecha y resolver el problema.
Las principales reglas de Kanban [8] son las Se propone ası́ una estimación orientada a me-
siguientes: todologı́as agiles considerando calidad en la esti-

86
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

mación con los factores de escala y los multiplica- Actualmente no se cuenta con ajustes ni cali-
dores de esfuerzo de COCOMO II y eliminando el braciones para convertir puntos de historias esti-
conteo de lı́neas de código (LOC). madas con base a complejidades a LOC, aunque
tampoco ese es el objetivo ya que lı́neas de códi-
4.2. Planificación. go en desarrollo de software orientado a objetos se
quedaron obsoletas debido a que esto depende del
A continuación se describe el marco de traba- estilo y conocimiento del programador.
jo que compone una serie de etapas, que definen
pasos preestablecidos y procedimientos que se si- 4.2.2. Etapa 2 ? SCRUM, como Gestión
guieron para componer la nueva metodologı́a de del Proyecto.
estimación de desarrollo de software.
Las definiciones se basaron en seis etapas que Se ha elegido SCRUM como gestión de pro-
aseguran el cumplimiento del objetivo: yecto ágil por ser un modelo de referencia a nivel
internacional. SCRUM se define como un conjunto
− Análisis de parámetros. de prácticas, roles y parámetros útiles como pun-
to de partida para la definición de la nueva me-
− SCRUM, como gestión del proyecto. todologı́a de estimación de costo de desarrollo de
software.
− COCOMO II, como pauta de calidad. A continuación se cita los artefactos y herra-
mientas utilizados para la nueva propuesta.
− Definición de la propuesta.
1. Pilas de Productos.
− Formulas y cálculos resultantes.
2. Historias de Usuario.
− Evaluación de la propuesta.
3. Complejidad de cada Historia.
4.2.1. Etapa 1 - Análisis de Parámetros.
4. Prioridad por cada Historias.
Antes de comenzar a comentar los parámetros
5. Sprint.
seleccionados para la propuesta, se procede a una
breve comparación de los parámetros utilizados en
4.2.3. Etapa 3 - COCOMO II, como
metodologı́as tradicionales para estimar con CO-
Pauta de Calidad.
COMO II y aquellos parámetros que se puede dis-
poner utilizando SCRUM como gestión del pro- El COCOMO II usa cinco factores de escala
yecto de desarrollo de software. (SF) que servirán para ajustar las economı́as y
COCOMO II usa Puntos de Función como deseconomı́as de escala que se presentan en pro-
método de estimación para desarrollos de softwa- yectos de software de diferentes tamaños. A con-
re orientados a objetos, en la tabla 1 se observa la tinuación se muestra la fórmula de la ecuación del
comparación entre parámetros de COCOMO II y cálculo los factores de escala.
parámetros manejados en SCRUM.
X
5
E = B + 0,001. SFj (1)
Tabla 1. Parámetros de COCOMO & SCRUM (fuen-
j=1
te propia).
COCOMO II SCRUM En esta fórmula B es una constante, el valor
Casos de Usos para este parámetro fue obtenido en la calibración
Número de Entradas
de Usuarios Historias de Usuarios de 161 proyectos en las base de datos de COCO-
Número de Salidas MO II y es inicialmente igual a 0.91 [4].
de Usuarios Cuando el valor E es inferior a 1, se tendrá
Número de Peticiones
una economı́a de escala. Esto significa que cuando
de Usuarios
Número de Archivo MER - Diagrama de Modelo el tamaño del proyecto se duplica, el efecto sobre
de Usuarios Entidad - Relación el esfuerzo será menor que el doble. Sin embargo,
Número de Interfaces Prototipos de cuando E es mayor que 1 el proyecto muestra una
de Usuarios Interfaz
Factor de Ponderación Complejidad de
deseconomı́a de escala lo que dobları́a el tamaño y
(Simple—Medio—Complejo) cada Historia podrı́a provocar un aumento
P de más del doble en
Puntos de Función Suma de Complejidades el esfuerzo. La sumatoria consiste en 5 factores
a Lı́neas de Códigos de Historias de escala: Precedencia, Flexibilidad de Desarrollo,
Factores de Costos Porcentaje de dedicación
Multiplicadores
Resolución de Riesgos y Arquitectura, Cohesión
de Esfuerzos del Equipo y Maduración del Proceso.
Esfuerzo medio en Sprint Además, COCOMO II cuenta también con 17
Meses Personas Iteraciones multiplicadores para el diseño Post-Arquitectura.

87
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

Los multiplicadores de esfuerzo en COCOMO, Esta metodologı́a de medición puede dividirse


son caracterı́sticas del proyecto que tienen un efec- en diez pasos de cálculos:
to lineal en el esfuerzo de un proyecto. Los multi-
plicadores de esfuerzo se dividen en varias partes 1. Determinar el conteo de puntos de historias.
como:
2. Determinar la duración del sprint.
Factores del Producto (fiabilidad del software,
tamaño de la bases de datos, complejidad del pro- 3. Determinar la velocidad del equipo.
ducto, reusabilidad en el desarrollo y documen-
tación), Factores de la Plataforma (volatibilidad 4. Determinar el número de personas en el
de la plataforma, limitación en el tiempo de eje- equipo.
cución, limitación de almacenamiento principal), 5. Determinar el factor de escala del proyecto.
Factores del personal (capacidad de análisis, ca-
pacidad del programador, continuidad del perso- 6. Determinar los multiplicadores de esfuerzo
nal, experiencia en la aplicaciones, experiencia en del proyecto.
la plataforma, experiencia en el lenguaje de pro-
gramación y en las herramientas). 7. Determinar los puntos de historias ideales
para el sprint.
4.2.4. Etapa 4 - Definición de la
8. Determinar los puntos de historias ajustados
Propuesta.
para el sprint.
Se presenta esta nueva metodologı́a de estima-
9. Determinar la cantidad de iteraciones para
ción de costos definida bajo el enfoque de meto-
el proyecto.
dologı́as ágiles, que sirve para estimar proyectos a
través de métodos sencillos y aplicables a equipos 10. Determinar el costo final del desarrollo de
de desarrollo ágil. La misma ofrece estándares, re- software.
comendaciones y artefactos que requiere una me-
todologı́a de estimación de costos. A continuación se detallan cada una:
Se define esta arquitectura (figura 2), con su
principal objetivo, “la estimación de costo” al pro- 1. Total de Puntos de Historias (TStoryPoint).
ceso de desarrollo de software y, en segundo lugar
2. Duración de Sprint (DSprint).
la planificación de los tiempos de las diferentes ac-
tividades necesarias en el proyecto. 3. Velocidad Inicial del Equipo (V).
4. No de Personas en el Equipo (N).
5. Puntos de Historias del Proyecto
(StoryPoint).

StoryPoint = V ∗ DSprint
6. Exponente de Factor de Escala (E).
P5
E = B + 0,001. j=1 SFj
7. Multiplicadores de Esfuerzo (EM).
Qn
i=1 EMi

8. Puntos de Historias Ajustadas


(StoryPointAjust)
Qn
StoryPointAjust = StoryPointAjust i=1 EMi
Figura 2. Nueva Arquitectura (fuente propia).
9. Cantidad de Iteraciones para el proyecto (I)
4.2.5. Etapa 5 - Fórmulas y Cálculos T StoryP oint
I={
Resultantes. StoryP ointAjust
Para cuantificar el desarrollo de software, se 10. Costo promedio diario del equipo
necesita fijar medidas de magnitudes para obte- (CostDay).
ner los resultados precisos, a partir de las cuales se
evalúen los resultados, la nueva metodologı́a pro- 11. Estimación de costo del desarrollo de soft-
pone fórmulas que se detallan a continuación para ware (CostDev)
lograr la estimación de costos. Cost = ((CostDay ∗ DSprint) ∗ I ∗ N )

88
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

4.2.6. Etapa 6 - Evaluación de la 252.598 LOC y la productividad resultante en me-


Propuesta. ses persona ha sido 463.5 PM que básicamente
constituye un promedio de 3 años y medio de pro-
Para evaluar la propuesta se procede a definir
yecto con una cantidad promedio de diez personas
ciertas caracterı́sticas que deben contemplar una
trabajando en el equipo. Se puede deducir que el
metodologı́a de estimación de costos clasificada de
proyecto del primer caso práctico es PRODUCTI-
manera esencial a medir el desarrollo de software.
VO bajo los cálculos estimados de COCOMO II;
La calidad de las medidas deberı́a facilitar el
a continuación se listan los posibles motivos por
desarrollo de modelos que sean capaces de prede-
los cuales se generaron dichos resultados:
cir el comportamiento de determinados paráme-
tros que afectan al desarrollo de software. Una
metodologı́a de medida ideal deberı́a ser: − El nivel de organización del Jefe de Proyec-
to, este debı́a atender solicitudes de mante-
− Objetiva. nimiento de sistemas, por lo cual se veı́a obli-
gado a cambiar las prioridades (baja, urgen-
− Sencilla, definible con precisión para que te, inmediato) de las tareas de los desarrolla-
pueda ser evaluada. dores. Esto ocasionaba trabajos pendientes
− Fácilmente obtenible (a un coste razonable). y pérdida de consistencia de la información
recabada.
− Válida, la métrica deberı́a medir exactamen-
te lo que se quiere medir y no otra cosa. − Falta de coordinación al momento de tomar
los datos; es decir, que el desarrollador re-
− Robusta. Deberı́a de ser relativamente insen-
gistra la información después de un tiempo
sible a cambios poco significativos en el pro-
prolongado de haber terminado una o más
ceso o en el producto.
tareas, por lo que se presume que los tiem-
pos no son muy precisos.
5. Pruebas experimentales.
5.1. Casa Práctico 1.
6.2. Caso Práctico 2.
El primer caso práctico es evaluar el software
existente con la metodologı́a normal de COCO- En el segundo caso práctico se observa que el
MO II, comparar los resultados obtenidos a base proyecto tendrá un costo de 47.072.032 Gs. para
de puntos de función y a base de Lı́neas de Código, un equipo de seis personas para culminar con dos
esto sirve como aporte a la empresa para conocer iteraciones de Sprint que duran 20 dı́as cada una.
el valor del software SGPTI (Sistema de Gestión Se debe considerar que hubo un análisis previo de
Parque Tecnológico de Itaipú), como se le deno- lo que desea el cliente y luego de la formulación
mina al producto, según el modelo COCOMO II. de la plantilla 3, se procedió al cálculo de la esti-
Para conocer acerca de la realidad de cómo se mación.
gestionó el desarrollo del software SGPTI, antes Se pueden manipular los resultados de acuer-
de comenzar con la estimación se elaboró un cues- do a los factores de escala y multiplicadores de
tionario con el fin de tener en claro las técnicas esfuerzo como se observa en la tabla 2.
que fueron utilizadas por el parque y ası́ completar
los factores de escala y multiplicadores de esfuerzo Tabla 2. Tabla de valores de factores y multiplica-
antes de la estimación de software. dores (fuente propia).
Costo Iteraciones
5.2. Caso Práctico 2. ALTA 37.454.374 1.56
TEAM NOM 40.428.713 1.68
El segundo caso práctico ha sido probar la nue- BAJA 47.072.032 1.82
va metodologı́a propuesta en esta tesis, estimando ALTA 41.741.521 1.73
la reingenierı́a de un módulo del software del par- MATURITY NOM 37.454.374 1.56
que utilizando la nueva metodologı́a y ası́ compro- BAJA 33.607.548 1.40
bar si contempla los requisitos citados en la Etapa ALTA 31.269.248 1.42
6 de la propuesta. PLEX NOM 37.454.374 1.56
BAJA 40.098.213 1.67

6. Resultados obtenidos.
Como se observa en la 2 el factor de escala
6.1. Caso Práctico 1.
TEAM, la que se refiere a la cohesión del Equi-
El tamaño del software SGPTI realizado por po, modificando este valor para NOMINAL el cos-
el modelo USC COCOMO II.2000.4 ha sido de to varı́a como se visualiza en la figura 3.

89
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

7. Conclusión.
7.1. Principales logros.
Por los resultados obtenidos de la estimación
con la nueva propuesta metodológica a proyectos
reales de software, se puede confirmar la hipóte-
sis planteada, esto es que, la utilización de meto-
dologı́as ágiles en el desarrollo de software pue-
de llegar a ser cada vez más preciso en cuanto a
estimación de tiempo y costo. Aunque no puede
generalizarse, esto está cada vez más estable de
Figura 3. Factor TEAM (fuente propia). acuerdo a las prácticas actuales en el desarrollo
de software.
La investigación de campo realizada en la Fun-
Otro factor importante es el MATURITY, dación Parque Tecnológico de Itaipú ayudó a defi-
podemos ver que si cambiamos este valor a ALTA nir la situación real y actual sobre cómo manejan
el costo sube a 41.741.521 Gs (figura 4). la estimación en las empresas, se comprobó que
no usan técnicas, ni metodologı́a aplicable para el
tipo de software a desarrollar, por lo general se
basan en la experiencia del profesional del equipo
de trabajo. Por esta razón la falencia en la estima-
ción temprana produce desfases en la entrega del
producto.
La especificación de requerimientos no es con-
siderada como etapa dentro del desarrollo de de
software, y se utiliza erradamente el modelo con-
ceptual de datos como parte de la etapa de diseño.
Esta metodologı́a propuesta apoya en la medi-
ción temprana y logra definir el esfuerzo, tiempo y
costo necesarios para cumplir con las entregas del
Figura 4. Factor MATURITY (fuente propia). producto al finalizar cada ciclo del Sprint.
La metodologı́a puede objetarse por estar rela-
cionada a una metodologı́a ágil particular de desa-
Entre los multiplicadores de esfuerzo se analiza rrollo y en consecuencia no podrán estandarizarse,
el PLEX, que se refiere a experiencia en la plata- sin embargo, casi todas utilizan casi los mismos
forma, si modificamos este valor a BAJA podemos parámetros y se adecuan a la realidad actual para
observar un aumento en el costo a 40.098.213 Gs obtener una estimación real.
(figura 5). Se requiere prototipar las historias de usuarios
para conseguir una mejor definición y una mejor
ejecución del plan.
Para realizar la estimación de complejidad de
historias debe existir un conceso dentro de la or-
ganización para llegar a lo más exacto posible pa-
ra cada historia de usuario, y ası́ lograr que la
medición se acerque lo máximo a la realidad. La
correcta redivisión de los factores de escala y los
multiplicadores de esfuerzo varı́an notablemente
en el resultado final, se requiere buena disposición
y trabajo en equipo para consensuar cada valor co-
rrespondiente, y por consiguiente proveer calidad
a la estimación de costos.
Figura 5. Multiplicador de Esfuerzo PLEX (fuente Con esta metodologı́a se puede estimar desa-
propia). rrollos de software en menor tiempo, definiendo
la arquitectura y trabajando en paralelo con los
requisitos que se van sumando al proyecto.
Como se observa en los análisis todos estos fac- Gracias a esta metodologı́a el equipo podrá de-
tores y multiplicadores cumplen un papel funda- mostrar el trabajo diario y entregar el producto
mental a la hora de estimar el costo. con calidad y una precisión de tiempo exitosa, a

90
Desarrollo de una nueva metodologı́a derivada del COCOMO II agregando pautas de calidad.

su vez la empresa en cuestión valorará el pago co- [3] Banerjee, G. Use Case Point - An Estimation
rrecto al equipo por los resultados más reales en Approach, 2001.
la estimación.
[4] Boehm B., C. A. Software Cost Estimation
Se demostró la problemática que se vive en la
with COCOMO II. Prentice-Hall,2000
actualidad en equipos de desarrollos de software
por no contar con una metodologı́a de estimación [5] Cockburn, A. Agile Software Development
de costo. The cooperative Game Second Edition. Boston.
USA.: Addison Wesley,2007.
7.2. Trabajos futuros. [6] Jones, C. Applied Software Measurement . Mc-
Graw Hill, 2008.
A los efectos de validar, de forma empı́rica, la
nueva metodologı́a que se presenta en este trabajo, [7] Longstreet, C. I). Function Points Analy-
es necesario obtener más confirmaciones experi- sis Training Course. Retrieved from http:
mentales de la efectividad de la propuesta realiza- //www.softwaremetrics.com/Function%
da, tanto cualitativamente como cuantitativamen- 20Point%20Training%20Booklet%20New.pdf,
te. Es decir, cotejar mediante un mayor trabajo de 2004.
campo para corroborar ası́ la eficacia y la eficiencia
de la nueva metodologı́a propuesta y enriquecerla [8] Mendes Calo, K. E. Evaluación de Metodo-
con los ajustes necesarios si fuera conveniente. logı́as Ágiles para Desarrollo de Software. XII
Otra lı́nea de investigación interesante, serı́a el Workshop de Investigadores en Ciencias de la
análisis y la especificación formal de un modelado Computación,2010.
y prototipado para la posterior implementación de [9] Milicic, D. Applying COCOMO II, A ca-
la nueva propuesta metodológica. se study. Master Thesis Software Enginee-
ring,2004.
Referencias bibliográficas [10] The Agile Manifesto. The Agile Manifesto.
Retrieved from http://agilemanifesto.org/
[1] Agarwal, R.Y. Estimating software projects.
authors.html, 2001
Software engineers Notes, 2001.
[11] Wells, D. Extreme Programming. Retrie-
[2] Ahmed E. Hassan, R. C. The Chaos of Soft- ved from www.extremeprogramming.org,www.
ware Development. In IEEE Computer Society, xprogramming.com, 2013.
2003.

91

También podría gustarte