Sei sulla pagina 1di 14

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

COCOMO II
Breve historia
El modelo COCOMO ha evolucionado debido a los constantes avances en
el mercado de desarrollo de software.
En el ao 1981 Barry Boehm publica el modelo COCOMO, acorde a las prcticas de desarrollo de
software de aquel momento [Boehm 1981]. Durante la dcada de los 80, el modelo se continu
perfeccionando y consolidando, siendo el modelo de estimacin de costos ms ampliamente
utilizado en el mundo.
En el ao 1983 se introduce el lenguaje de programacin Ada (American National Standard
Institute) para reducir los costos de desarrollo de grandes sistemas. Algunos aspectos de Ada
provocaron un gran impacto en los costos de desarrollo y mantenimiento, as Barry Boehm y
Walker Royce definieron un modelo revisado, llamado Ada COCOMO [Boehm 1989].
En los 90, las tcnicas de desarrollo de software cambiaron dramticamente, surgieron la necesidad
de reusar software existente, la construccin de sistemas usando
libreras, etc. Estos cambios comenzaron a generar problemas en la
aplicacin del modelo COCOMO. La solucin fue reinventar el
modelo. Despus de algunos aos y de un esfuerzo combinado de
USC-CSE (University of Southern California- Center For Software
Engineering), IRUS at UC Irvine y organizaciones privadas, aparece
COCOMO II. Las incorporaciones a este modelo lo reforzaron e
hicieron apto para ser aplicado en proyectos vinculados a
tecnologas como orientacin a objetos, desarrollo incremental,
composicin de aplicacin, y reingeniera. COCOMO II consta de tres
modelos, cada uno de los cuales ofrece una precisin acorde a cada
etapa de desarrollo del proyecto. Enunciados en orden creciente de
fidelidad son, modelo de Composicin de Aplicacin, Diseo Temprano y Post Arquitectura.
El USC- CSE implement los dos ltimos modelos en una herramienta de software. Esta
herramienta le permite al planificador hacer rpidamente una exploracin de las posibilidades de
un proyecto, analizando qu efectos provoca el ajuste de requerimientos, recursos y staff sobre la
estimacin de costos y tiempos.
Para evitar confusin el modelo COCOMO original fue redesignado con el nombre COCOMO 81. As
todas las referencias de COCOMO encontradas en la literatura antes de 1995 se refieren a lo que
ahora llamamos COCOMO81. La mayora de las referencias publicadas a partir de 1995 se refieren
a COCOMO II.

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

Cocomo II
Es un modelo de estimacin de costes.
COnstrucive COst MOdel (MOdelo COnstructivo de Costo.
Creado por Barry W. Boehm.

Los objetivos principales que se tuvieron en cuenta para construir el modelo COCOMO II fueron:
Desarrollar un modelo de estimacin de costo y cronograma de proyectos de software que
se adaptara tanto a las prcticas de desarrollo de la dcada del 90 como a las futuras.
Construir una base de datos de proyectos de software que permitiera la calibracin
continua del modelo, y as incrementar la precisin en la estimacin.
Implementar una herramienta de software que soportara el modelo.
Proveer un marco analtico cuantitativo y un conjunto de herramientas y tcnicas que
evaluaran el impacto de las mejoras tecnolgicas de software sobre los costos y tiempos en
las diferentes etapas del ciclo de vida de desarrollo.
COCOMO II est compuesto por tres modelos denominados: Composicin de Aplicacin, Diseo
Temprano y Post-Arquitectura.
stos surgen en respuesta a la diversidad del mercado actual y futuro de desarrollo de software.
Esta diversidad podra representarse con el siguiente esquema

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

Aplicaciones desarrolladas por Usuarios Finales:


En este sector se encuentran las aplicaciones de procesamiento de informacin generadas
directamente por usuarios finales, mediante la utilizacin de generadores de aplicaciones
tales como planillas de clculo, sistemas de consultas, etc. Estas aplicaciones surgen
debido al uso masivo de estas herramientas, conjuntamente con la presin actual para
obtener soluciones rpidas y flexibles.

Generadores de Aplicaciones:
En este sector operan firmas como Lotus, Microsoft, Novell, Borland con el objetivo de
crear mdulos pre-empaquetados que sern usados por usuarios finales y
programadores.

Aplicaciones con Componentes:


Sector en el que se encuentran aquellas aplicaciones que son especficas para ser
resueltas por soluciones pre-empaquetadas, pero son lo suficientemente simples para ser
construidas a partir de componentes interoperables.
Componentes tpicas son constructores de interfases grficas, administradores de bases
de datos, buscadores inteligentes de datos, componentes de dominio-especfico
(medicina, finanzas, procesos industriales, etc.). Estas aplicaciones son generadas por un
equipo reducido de personas, en pocas semanas o meses.

Sistemas Integrados: Sistemas de gran escala, con un alto grado de integracin


entre sus componentes, sin antecedentes en el mercado que se puedan tomar
como base. Porciones de estos sistemas pueden ser desarrolladas a travs de la
composicin de aplicaciones. Entre las empresas que desarrollan software
representativo de este sector, se encuentran grandes firmas que desarrollan
software de telecomunicaciones, sistemas de informacin corporativos, sistemas
de control de fabricacin, etc.
Infraestructura: rea que comprende el desarrollo de sistemas operativos,
protocolos de redes, sistemas administradores de bases de datos, etc.
Incrementalmente este sector direccionar sus soluciones, hacia problemas
genricos de procesamiento distribuido y procesamiento de transacciones, a
soluciones middleware. Firmas representativas son Microsoft, Oracle, SyBase,
Novell y NeXT.

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

1. Modelo I:
Nivel inicial de prototipado - Modelo Composicin de Aplicacin.
El esfuerzo necesario para concretar un proyecto de desarrollo de software, cualquiera sea el
modelo empleado, se expresa en meses/persona (PM) y representa los meses de trabajo de
una persona fulltime, requeridos para desarrollar el proyecto.
Estimacin del Esfuerzo
Estimaciones realizadas con puntos de objeto y una frmula simple para el clculo del esfuerzo
Soporta proyectos con prototipado y proyectos que hacen uso intensivo de la
reutilizacin.
Basado en estimaciones estndar de la productividad del desarrollador en puntosobjeto/mes.
Tiene en cuenta el uso de herramientas CASE
La frmula es:
.

Clculo de Esfuerzo
PM = ( NOP * (1 - %reuse/100 ) ) / PROD

Donde:
NOP (Nuevos Puntos Objeto): Tamao del nuevo software a desarrollar expresado
en Puntos Objeto y se calcula de la siguiente manera:
%reuso: Porcentaje de reuso que se espera lograr en el proyecto
PROD: Es la productividad promedio determinada a partir del anlisis de datos de
proyectos en [Banker 1994], mostrada en

2. Modelo II:
Modelo para Diseo Temprano (EDM)
Este modelo se usa en las etapas tempranas de un proyecto de software, cuando se conoce
muy poco del tamao del producto a ser desarrollado, de la naturaleza de la plataforma, del
personal a ser incorporado al proyecto o detalles especficos del proceso a utilizar. Este modelo
podra emplearse tanto en productos desarrollados en sectores de Generadores de Aplicacin,
Sistemas Integrados o Infraestructura.
El modelo de Diseo Temprano ajusta el esfuerzo nominal usando siete factores de costo. La
frmula para el clculo del esfuerzo es la siguiente:

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

Donde
PMEstimado: es el esfuerzo nominal ajustado por 7 factores, que reflejan otros aspectos
propios del proyecto que afectan al esfuerzo necesario para la ejecucin del mismo.
KSLOC: es el tamao del software a desarrollar expresado en miles de lneas de cdigo
fuente.
A es una constante que captura los efectos lineales sobre el esfuerzo de acuerdo a la
variacin del tamao, (A=2.94).
B es el factor exponencial de escala, toma en cuenta las caractersticas relacionadas con las
economas y deseconomas de escala producidas cuando un proyecto de software
incrementa su tamao.
EMi corresponde a los factores de costo que tienen un efecto multiplicativo sobre el
esfuerzo, llamados Multiplicadores de Esfuerzo (Effort Multipliers). Cada factor se puede
clasificar en seis niveles diferentes que expresan el impacto del multiplicador sobre el
esfuerzo de desarrollo. Esta escala vara desde un nivel Extra Bajo hasta un nivel Extra Alto.
Cada nivel tiene un peso asociado. El peso promedio o nominal es 1.0.
Si el factor provoca un efecto nocivo en el esfuerzo de un proyecto, el valor del
multiplicador correspondiente ser mayor que 1.0, caso contrario el multiplicador ser
inferior a 1.0.
Los multiplicadores reflejan la capacidad de los desarrolladores, requerimientos no funcionales,
la familiaridad con la plataforma de desarrollo, etc.
1. Abrev. Descripcin
Ponderacin
2. RCPX
Fiabilidad de producto y complejidad 0 a 1
3. RUSE Reutilizacin requerida
0a1
4. PDIF
Dificultad de la plataforma
0a1
5. PREX
Experiencia del personal
0a1
6. PERS
Capacidad del personal
0a1
7. SCED
Agenda requerida
0a1
8. FCIL
Facilidades de soporte de grupo
0a1
PM refleja la cantidad de cdigo generada automticamente

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

3. Modelo III:
Nivel post-arquitectura.
Es el modelo de estimacin ms detallado y se aplica cuando la arquitectura del proyecto est
completamente definida. Este modelo se aplica durante el desarrollo y mantenimiento de
productos de software incluidos en las reas de Sistemas Integrados, Infraestructura y
Generadores de Aplicaciones.
El esfuerzo nominal se ajusta usando 17 factores multiplicadores de esfuerzo. El mayor nmero
de multiplicadores permite analizar con ms exactitud el conocimiento disponible en las
ltimas etapas de desarrollo, ajustando el modelo de tal forma que refleje fielmente el
producto de software bajo desarrollo. La frmula para el clculo del esfuerzo es la siguiente:

Estimacin de Esfuerzo
Personas Mes Nominales
.

PM= A * TamaoB * EMi

(A= 2.94)

B < 1. Los esfuerzos de desarrollo mejoran cuando escalan. Si se dobla el tamao, el


esfuerzo es menor del doble.
B = 1. Los proyectos estn balanceados. Los aumentos son proporcionales.
B > 1. Los esfuerzos de desarrollo empeoran cuando escalan. Si se dobla el tamao, el
esfuerzo es menor del doble.

Factor de Escala
B = 0,91 + 0,01 Wi

Clculo de Esfuerzo
PM = PMnominal * EMi

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

EM : Effort Multipliers W : Factores de Escala (Fi)

N Factores de escala Fi

Abreviatura

1.
2.
3.
4.
5.

PREC
FLEX
RESL
TEAM
PMAT

Precedentes
Flexibilidad de desarrollo
Resolucin de arquitectura riesgo
Cohesin del equipo de trabajo
Madurez del Proceso

Tabla de Puntuacin:

Modelos de Madurez del software


Nivel

Definicin

Caractersticas

Optimizado
0.00

La organizacin completa est volcada en la mejora


continua de los procesos. Se hace uso intensivo de las
mtricas y se gestiona el proceso de innovacin.
Se caracteriza porque las organizaciones disponen de
un conjunto de mtricas significativas de calidad y
productividad, que se usan de modo sistemtico para la
toma de decisiones y la gestin de riesgos. El software
resultante es de alta calidad.
Adems de una buena gestin de proyectos, a este
nivel las organizaciones disponen de correctos
procedimientos de coordinacin entre grupos,
formacin del personal, tcnicas de ingeniera ms
detalladas y un nivel ms avanzado de mtricas en los

Mejoramiento
realimentando al proceso
Productividad y calidad
Proceso medido

Gestionado
cuantitativamente
1.56

Definido
3.12

Ing. Hesmeralda Rojas Enriquez

Proceso
definido
institucionalizado

Gerencia de Proyectos Informticos

Repetible
4.68

Inicial
Superior 6.24
Inferior 7.80

C.P.Ingeniera de Sistemas e Informtica - UTEA

procesos. Se implementan tcnicas de revisin por


pares.
En este nivel las organizaciones disponen de unas
prcticas institucionalizadas de gestin de proyectos,
existen unas mtricas bsicas y un razonable
seguimiento de la calidad. La relacin con
subcontratistas
y
clientes
est
gestionada
sistemticamente.
Las organizaciones en este nivel no disponen de un
ambiente estable para el desarrollo y mantenimiento
de software. Aunque se utilicen tcnicas correctas de
ingeniera, los esfuerzos se ven minados por falta de
planificacin. El xito de los proyectos se basa la
mayora de las veces en el esfuerzo personal, aunque a
menudo se producen fracasos y casi siempre retrasos y
sobrecostes. El resultado de los proyectos es
impredecible.

Ing. Hesmeralda Rojas Enriquez

2011

Proceso dependiente de
individuo

Catico - Riesgo

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

Multiplicadores de esfuerzo (EM)


Son 17:
Relacionados con el producto:

1. (RELY). Fiabilidad Requerida de Software


Esta es la medida de hasta qu punto el software debe realizar su funcin esperada
durante un periodo de tiempo.

2. (DATA). Medida del Volumen de Datos


Esta medida intenta capturar lo que afecta en el desarrollo del producto los
requerimientos de datos grandes. La medida se determina calculando D/P.
DATA se valora como Bajo si D/P es menor que 10 y Muy Alto si es mayor que 1000.

3. (CPLX). Complejidad del Producto

Las Medidas de complejidad del mdulo versus Tipo de mdulo proporciona la escala de
valores CPLX de Cocomo II. La complejidad se decide en 5 reas: Funcionamiento de
control, Funcionamiento computacional, Funcionamiento de Dispositivos dependientes,
Funcionamiento del sector de datos y Funcionamiento del Gestor de Interfaz de Usuario.
Se seleccionar el rea o combinacin de reas que caracterizan al producto o a un
subsistema del producto. La medida de complejidad es la media subjetiva de estas reas.
3.1. Funcionamiento de control
Muy Bajo: cdigo con unos pocos operadores de programacin no anidados.
Bajo: anidamiento sencillo de operadores de programacin estructurados.
Nominal: Mayora de anidamiento simple.
Alto: Operadores de programacin estructurados altamente anidados
compuestos de muchos predicados.
Muy Alto: Codificacin recursiva. Manejo de interrupciones con prioridades
fijadas. Sincronizacin de tareas, retorno de llamadas complejas, proceso
distribuido, etc.
Extra Alto: Mltiples recursos de planificacin con cambio dinmico de
prioridades. Control a nivel de microcdigo. Control distribuido en tiempo real.
3.2. Funcionamiento computacional
Muy Bajo: Evaluacin de expresiones simples, por ejemplo
Bajo: Evaluacin de expresiones de nivel moderado: p.ej
Nominal: Uso de rutinas matemticas y estadsticas estndar.
Alto: Anlisis numrico bsico: ecuaciones diferenciales ordinarias.
Muy Alto: Anlisis numrico difcil pero estructurado: ecuaciones de matrices,
ecuaciones diferenciales parciales.
Extra Alto: Anlisis numrico difcil y sin estructurar.
9

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

3.3. Funcionamiento dispositivos dependientes


Muy Bajo: Declaraciones simples de lectura-escritura con formatos simples.
Bajo: No necesidad de conocimiento de caractersticas del procesador
particular o del dispositivo de I/O.
Nominal: El proceso de I/O incluye seleccin de dispositivo, estado de
validacin y proceso de errores.
Alto: Operacin de I/O a nivel fsico (traduccin de direcciones fsicas de
almacenamiento: bsquedas, lecturas, etc.).
Muy Alto: Rutinas para diagnstico de interrupciones, servicio de
enmascaramiento. Manejo de lnea de comunicacin.
Extra Alto: Dispositivo dependiente temporalmente de la codificacin.
Operaciones microprogramazas.
3.4. Funcionamiento del sector de datos
Muy Bajo: Arrays simples en memoria principal. Actualizaciones, Queries
simples
Bajo: Archivos nicos sin cambio en la estructura de datos, sin ediciones, sin
archivos intermedios. Actualizaciones, Queries moderadamente complejos
Nominal: Entradas de mltiples archivos y salida de un nico archivo. Cambios
estructurales simples, ediciones simples. Actualizaciones, Queries complejos.
Alto: Encadenamientos simples activados por contenidos de hileras de datos.
Muy Alto: Coordinacin de bases de datos distribuidas. Encadenamientos
complejos. Optimizacin de la bsqueda
Extra Alto: Acoplamiento fuerte, estructuras de objetos y relacionales
dinmicas.
3.5. Funcionamiento de gestor de Interfaces de usuario
Muy Bajo: Forma de entrada simple, generadores de informes
Bajo: Uso de constructores simples de interfaces grficos de usuario
Nominal: Uso simple de conjunto Widget
Alto: Extensin y desarrollo de conjunto Widget. Voz simple de I/O multimedia
Muy Alto: Multimedia complejo 2D/3D, grficos dinmicos multimedia
Extra Alto: Multimedia complejo, realidad virtual.
4. (RUSE). Reutilizacin Requerida
Explica el esfuerzo adicional necesario para construir componentes pensados para se
reutilizados en otros proyectos.

5. (DOCU). Documentacin Asociada a las Necesidades del Ciclo de Vida

10

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

Relacionados con la plataforma de desarrollo:


6. (TIME). Restriccin del Tiempo de Ejecucin
Esta es una medida de la restriccin del tiempo de ejecucin

7. (STOR). Restriccin de Almacenamiento Principal


Esta medida representa el grado de restriccin de almacenamiento principal.

8. (PVOL). Volatilidad de la Plataforma


Plataforma: significa la complejidad del Hardware y Software (OS, DBMS, etc.) que el producto
software necesita para realizar sus tareas.

Relacionados con personal


9. (ACAP). Habilidad del Analista
Lo que se debe considerar en esta medida son la habilidad de anlisis y diseo, la eficiencia y la
habilidad para comunicar y cooperar que posee el Analista, no se debe considerar aqu el nivel de
experiencia ya que se mide con AEXP.

10.(PCAP). Habilidad del Programador


Lo que se debe considerar en esta medida son la habilidad de anlisis y diseo, la eficiencia y la
habilidad para comunicar y cooperar que posee el Programador, no se debe considerar aqu el
nivel de experiencia ya que se mide con AEXP.

11.(AEXP). Experiencia en las Aplicaciones


Esto mide el nivel de experiencia en aplicaciones del equipo de proyecto en el desarrollo de
sistemas.

12.(PEXP). Experiencia en la Plataforma


Aqu se reconoce la importancia de entender el uso de plataformas ms poderosas, incluyendo
ms interfaces grficas.

13.(LTEX). Experiencia en la Herramienta y en el Lenguaje


Esta es una medida del nivel de experiencia en el lenguaje de programacin.

11

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

14.(PCON). Continuidad del Personal


La escala de valores mide el movimiento de personal del proyecto anualmente.

Relacionados con el proyecto


15.(TOOL) Uso de Herramientas Software
Los valores para la herramienta van desde edicin y cdigo simple, Muy Bajo, hasta herramientas
integradas de gestin del ciclo de vida, Muy Alto.

16.(SITE). Desarrollo Multilugar


Determinar la medida del driver de costo incluye el clculo y la medida de 2 factores: Localizacin
del lugar (desde totalmente localizado hasta distribucin internacional) y soporte de
comunicacin (desde correo de superficie y algn acceso telefnico hasta multimedia totalmente
interactivo).

17.(SCED). Calendario de Desarrollo Requerido


Este valor mide las restricciones de horario impuestas al equipo de proyecto que desarrolla el
software. Los valores se definen en trminos de porcentaje de aceleracin o alargamiento sobre
el calendario respecto de un calendario nominal para un proyecto que requiere una cantidad de
esfuerzo dada.

12

Ing. Hesmeralda Rojas Enriquez

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

Tabla que refleja los coeficientes necesarios para el clculo:


Abreviatura Muy bajo

Bajo

Nominal

Alto

Muy alto

Extra alto

RELY

0.75

0.88

1.00

1.15

1.39

1.00

DATA

1.00

0.93

1.00

1.09

1.19

1.00

CPLX

0.75

0.88

1.00

1.15

1.30

1.66

RUSE

1.00

0.91

1.00

1.14

1.29

1.49

DOCU

0.89

0.95

1.00

1.06

1.13

1.00

TIME

1.00

1.00

1.00

1.11

1.31

1.67

STOR

1.00

1.00

1.00

1.06

1.21

1..57

PVOL

1.00

0.87

1.00

1.15

1.30

1.00

ACAP

1.50

1.22

1.00

0.83

0.67

1.00

PCAP

1.37

1.16

1.00

0.87

0.74

1.00

PCON

1.24

1.10

1.00

0.92

0.84

1.00

AEXP

1.22

1.10

1.00

0.89

0.81

1.00

PEXP

1.25

1.12

1.00

0.88

0.81

1.00

LTEX

1.22

1.10

1.00

0.91

0.84

1.00

TOOL

1.24

1.12

1.00

0.86

0.72

1.00

SITE

1.25

1.10

1.00

0.92

0.84

1.00

SCED

1.29

1.10

1.00

1.00

1.00

1.00

Determinacin del Tiempo de Desarrollo y Cantidad de Personal


Determinacin del Tiempo de Desarrollo

Tdes= 3.67 * (E)0.28 + 0.002 * SFi

Cantidad de Personal

CH= E/Tdes

13

Ing. Hesmeralda Rojas Enriquez

2011

Gerencia de Proyectos Informticos

C.P.Ingeniera de Sistemas e Informtica - UTEA

2011

EJERCICIOS
Para un software se ha hallado que el total de Puntos de Funcin Ajustados fue de 349.6
TLDC = N medio de LDC de x lenguaje de programacin x PFA/1000
TLDC= 53 x 349.6 / 1000
TLDC= 18.52
Determinacin de los factores de escala
E= A * (Tamao)B X EMi
E= Esfuerzo nominal
Tamao= Puntos de Funcin Ajustados

14

Ing. Hesmeralda Rojas Enriquez

Potrebbero piacerti anche