Aplicaciones de Ingeniería de Software COnstructive COst MOdel II

35
Aplicaciones de Ingeniería de Software COnstructive COst MOdel II COCOMO II

Transcript of Aplicaciones de Ingeniería de Software COnstructive COst MOdel II

Aplicaciones de Ingeniería de Software

COnstructive COst MOdel II COCOMO II

¿Qué es COCOMO II?

COCOMO original se publicó por primera vez en 1981 por Barry Boehm y reflejaba las prácticas en desarrollo de software de aquel momento.

COCOMO II, es un modelo de estimación de costos, esfuerzo y tiempo que refleja los cambios en la práctica de desarrollo de software profesional que surgido a partir de los años 70.

COCOMO II es un modelo que está asociado a los ciclos de vida modernos.

Familia de modelos COCOMO II

Para apoyar a los distintos sectores del mercado software, COCOMO II proporciona una familia de modelos de estimación de costos de software cada vez más detallado y tiene en cuenta las necesidades de cada sector y el tipo de información disponible para sostener la estimación del costo software.

Familia de modelos COCOMO II

El modelo de Composición de Aplicaciones. Indicado para proyectos construidos con herramientas modernas de construcción de interfaces gráficos para usuario.

Factores de calidad de McCall

El modelo de Diseño anticipado. Este modelo puede utilizarse para obtener estimaciones aproximadas del costo de un proyecto antes de que estédeterminada por completo su arquitectura. Está basado en Punto de Función sin ajustar o KSLOC (Miles de Líneas de Código Fuente).

Factores de calidad de McCall

El modelo Post-Arquitectura. Este es el modelo COCOMO II más detallado. Se utiliza una vez que se ha desarrollado por completo la arquitectura del proyecto.

El Modelo de Diseño Anticipado y Post-Arquitectura

Los modelos de Diseño Anticipado y Post-Arquitectura se basan en la misma filosofía a la hora de proporcionar una estimación.

La fórmula básica para obtener una estimación de esfuerzo con ambos modelos es:

Esfuerzo = 2.94 * EAF * (Tamaño SLOC)E

Estimación de esfuerzoLa medida está en unidades de líneas de código fuente(KSLOC). Esto se deriva de la medida de módulos software que constituirán el programa de aplicación, puede estimarsetambién a partir de Puntos de Función sin ajustar convirtiendoa SLOC y luego dividiendo por 1000.

EAF e el factor de ajuste de esfuerzo derivado de los driversde costo

El factor de escala (exponencial E), explica el ahorro ó gastorelativo de escala encontrado en proyectos software de distintos tamaños.

La constante 2.94, se usa para cortar los efectosmultiplicativos de esfuerzo en proyectos de tamañoincremental.

Estimación de esfuerzo: tamaño

Variable Tamaño,

Tamaño = Tamaño X [1 + BRAK/100]COCOMO II utiliza un porcentaje de Rotura BRAK para ajustar el tamaño eficaz del producto. La rotura refleja la volatilidad de los requisitos en un proyecto. Es el porcentaje de código desperdiciadodebido a la volatilidad de los requisitos. El factor BRAK no se usa en el Modelo de Composición de Aplicaciones donde se espera un cierto grado de iteración en el producto y se incluye en la calibración de datos.

Estimación de esfuerzo: tamaño

Por ejemplo, un proyecto que parte de 100.000 instrucciones (Size= 100.000) perodesecha el equivalente a 20.000 instrucciones tiene un valor de BRAK de 20. Esto debe usarse para ajustar el tamañoefectivo del proyecto a 120.000 instrucciones para una estimaciónCOCOMO II.

( Size = 100.000 x [1 + ( 20/100 )] )

Estimación de esfuerzo: tamaño

En la nueva versión COCOMO II el tamaño de KSLOC puede estimarsetambién a partir de Puntos de Funciónsin ajustar convirtiendo a SLOC y luego dividiendo por 1000.

Ejem: 120,000/1000 = 120

Estimación de esfuerzo: tamaño

Por ejemplo, si al aplicar el procedimiento de cálculo para puntos de función sin ajustar se obtiene un resultado de 165 UNFP (Puntos de Función sin Ajustar) y el proyecto va a desarrollarseen el lenguaje de programación C++:

165 UNFP x 29 = 4785 SLOC

Haciendo la conversión mencionada anteriormente:

4785/1000= 4.785 KSLOC

Estimación de esfuerzo: Variable E

Variable E (ahorro y gasto software de escala).

E = 0.91+ 0.01 x ∑5 SFjJ=1

SF = Factores de Escalamiento

Factores de escalamiento SFFactor de Escala

Muy bajo Bajo Nominal Alto Muy Alto

Extra Alto

PRECDesarrollo previos similares

6.20 Totalmente diferente

4.96Muy diferente

3.72Aspectos novedosos

2.46Bastante parecido

1.24Muy diferente

0.00Nuevo desarrollo es idéntico a previos

FLEXFlexibilidad en el proceso desarrollo en relación con los requerimientos

5.07Riguroso

4.05Flexibilidad ocasional

3.04Cierta flexibilidad

2.03Acuerdo general

1.01Cierto acuerdo

0.00Metas son generales

RESLManejo de riesgos de arquitectura

7.07 5.65 4.24 2.83 1.41 0.00

Factores de escalamiento SF:RESL Manejo de riesgos de arquitectura

Factor de escala

Valor Descripción

Muy bajo 7.07

5.65

Plan no identifica los riesgos críticos, calendario y presupuesto no toma en cuenta los riesgos, arquitecturapuede tomarse hasta el 5% del esfuerzo de desarrollo, hay problemas con la disponibilidad del arquitecto (disp. menordel 20%), herramientas no disponibles para resolver/mitigarriesgos y verificar especif. de la arq., extrema incertidumbreentrega, interfaz con usuario, tecnología, desempeño, másde 10 riesgos críticos.

Bajo Plan identifica pocos riesgos críticos y establece hitos pararesolverlos, calendario y presupuesto toma en cuenta pocosriesgos, arquitectura puede tomarse hasta el 10% del esfuerzo de desarrollo, hay problemas con la disponibilidaddel arquitecto (disp. menor al 40%), pocas herramientasdisponibles para resolver/mitigar riesgos y verificar especif. de la arq., significativa incertidumbre entrega, interfaz con usuario, tecnología, desempeño, entre 5-10 riesgos críticos

Factores de escalamiento SF: RESL Manejo de riesgos de arquitectura

Factor de escala

Valor Descripción

Nominal 4.24

2.83

Plan identifica algunos de los riesgos críticos y establecehitos para resolverlos, calendario y presupuesto toma en cuenta algunos de los riesgos, arquitectura puede tomarsehasta el 17% del esfuerzo de desarrollo, hay problemas con la disponibilidad del arquitecto, algo de herramientasdisponibles para resolver/mitigar riesgos y verificar especif. de la arq., considerable incertidumbre entrega, interfaz con usuario, tecnología, desempeño, entre 2-4 riesgos críticos.

Alto Plan identifica muchos de los riesgos críticos y establecehitos para resolverlos, calendario y presupuestogeneralmente toma en cuenta riesgos, arquitectura puede tomarse hasta el 25% del esfuerzo de desarrollo, herramientas regularmente disponibles pararesolver/mitigar riesgos y verificar especif. de la arq., algo de incertidumbre entrega, interfaz con usuario, tecnología, desempeño, no más de un riesgo crítico.

Factores de escalamiento SF:RESL Manejo de riesgos de arquitectura

Factor de escala

Valor Descripción

Muy Alto 1.41

0.00

Plan identifica la mayoría de los riesgos críticos y establecehitos para resolverlos, calendario y presupuesto toma en cuenta la mayoría de los riesgos, arquitectura puedetomarse hasta el 33% del esfuerzo de desarrollo, herramientas disponibles para resolver/mitigar mayoría de riesgos y verificar especif. de la arq., poca incertidumbreentrega, interfaz con usuario, tecnología, desempeño, riesgos no son críticos.

Extra Alto Plan identifica todos los riesgos críticos y establece hitospara resolverlos, calendario y presupuesto toma en cuentariesgos, arquitectura puede tomarse hasta el 40% del esfuerzo de desarrollo, herramientas disponbles pararesolver/mitigar riesgos y verificar especificaciones de la arquitectura, muy poca incertidumbre entrega, interfaz con usuario, tecnología, desempeño, riesgos no son críticos;

Factores de escalamiento SF:TEAM Cohesión del equipo de desarrollo

Factor de escala

Valor Descripción

Muy bajo 5.48

4.38

Interacciones difíciles, objetivos y culturas de accionistaspoco consistentes, poca habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, nada de experiencia previa operando como equipo, visión y compromisos nada compartidos.

Bajo Interacciones difíciles, objetivos y culturas de accionistasalgo consistentes, algo habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, poca de experiencia previa operando como equipo, visión y

compromisos nada compartidos.

Factores de escalamiento SF:TEAM Cohesión del equipo de desarrollo

Factor de escala

Valor Descripción

Nominal 3.29

2.19

Interacciones básicas cooperativas, objetivos y culturas de accionistas básicamente consistentes, habilidad y disponibilidad básica de accionistas para acomodar objetivosde otros accionistas, poca experiencia previa operandocomo equipo, visión y compromisos poco compartidos.

Alto Interaccones principalmente cooperativas, objetivos y culturas de accionistas considerablemente consistentes, considerable habilidad y disponibilidad de accionistas paraacomodar objetivos de otros accionistas, medianaexperiencia previa operando como equipo, visión y compromisos medianamente compartidos.

Factores de escalamiento SF:TEAM Cohesión del equipo de desarrollo

Factor de escala

Valor Descripción

Muy Alto 1.01

0.00

Interacciones altamente cooperativas, objetivos y culturas de accionistas fuertamente consistentes, fuerte habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, considerable experiencia previa operandocomo equipo, visión y compromisos considerablemente

compartidos.

Extra Alto Interacciones fluidas, objetivos y culturas de accionistastotalmente consistentes, total habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, dilatada experiencia previa operando como equipo, visión y compromisos 100% compartidos.

Factores de escalamiento del exponente SF

Factor de Escala

Muy bajo Bajo Nominal Alto Muy Alto

Extra Alto

PMATNivel de madurez esperada

7.80Nivel 1, inferior

6.24Nivel 1, superior

4.68Nivel 2

3.12Nivel 3

1.56Nivel 4

0.00Nivel 5

Estimación de esfuerzo: Variable E

Variable E (ahorro y gasto software de escala).

E = 0.91+ 0.01 x ∑5 SFjJ=1

E=0.91+0.01 x (6.20+5.07+7.0+5.48+7.80)E=0.91+0.01 x (31.62)E=0.91+ 0.3162E= 1.2262

Esfuerzo (Con EAF nominal 1.0)

Esfuerzo = 2.94 X EAF (Tamaño KSLOC)E

Tamaño = (137 UNPF * 60 LOC Java /1000)= 8.2

Esfuerzo = 2.94 * (1.0) (8.2) 1.2262

= 2.94 * 13.1983= 38.80 persona-meses

Calendario

Duración = C X (Esfuerzo)0.28+0.002* ∑5 SFjJ=1

En donde C= 3.67

Duración = 3.67 * (38.80) 0.28+0.002*1.2262

= 3.67 * (38.91)0.3457

= 3.67 * 3.5455= 13.01

Multiplicadores de esfuerzo: Personal

Multiplicador Muy bajo

Bajo Nominal Alto Muy Alto

Extra Alto

ACAPCapacidad de los analistas

15% 35% 55% 75% 90%

APEXExperiencia previa en área de aplicación

<=2 meses

6 meses

1 año 3 años 6 años

PCAPCapacidad de los programadores

15% 35% 55% 75% 90%

Multiplicadores de esfuerzo: Personal

Multiplicador Muy bajo

Bajo Nominal Alto Muy Alto

Extra Alto

PLEXExperiencia previa con la plataforma

<=2 meses

6 meses

1 año 3 años 6 años

LTEXExperiencia previa con el lenguaje y herramienta de desarrollo

<=2 meses

6 meses

1 año 3 años 6 años

PCONVolatilidad del personal

48% 24% 12% 6% 3%

Multiplicadores de esfuerzo: Proyecto

Multiplicador Muy bajo Bajo Nominal Alto Muy Alto

TOOLUso de herramientas de software

Herramientas de Edición, codificación y debug

Herramientas para frontend y backend, poca integración

Herramientas para ciclo básico, integración moderada

Fuerte, Herramientas para ciclo de vida madura, integración moderada

Maduro, Fuerte, Herramientas para ciclo de vida proactivos , integrado con procesos, métodos y reuso

SITEDesarrollo de localidades distribuidas

InternacionalUso de teléfono, correo

Multiciudad o multicompañía. Correo

Misma ciudad, área metropolitana. Comunicación electrónica por banda ancha

Mismo edificio o complejo. Ocasionalmente videoconferencia

Colocación total. Multimedia interactiva

Multiplicadores de esfuerzo: Proyecto

Multiplicador Muy bajo Bajo Nominal Alto Muy Alto

Extra Alto

SCEDExigencias sobre el calendario

75% 85% 100% 130% 160%

Multiplicadores de esfuerzo: Plataforma de desarrollo

Multiplicador Muy bajo

Bajo Nominal Alto Muy Alto

Extra Alto

TIMEExigencias sobre capacidad de ejecución

<=50% 70% 85% 95%

STORExigencias sobre almacenamiento del sistema

<=50% 70% 85% 95%

Multiplicadores de esfuerzo: Plataforma de desarrollo

Multiplicador Muy bajo

Bajo Nominal Alto Muy Alto Extra Alto

PVOLVolatilidad de la plataforma.

Cambios mayores cada 12 meses; cambios menores cada mes

Cambios mayores cada 6 meses; cambios menores cada 2 semanas

Cambios mayores cada 2 meses; cambios menores cada semana

Cambios mayores cada 2 meses; cambios menores cada 2 días

Multiplicadores de esfuerzo: relacionados con el producto

Multiplicador Muy bajo Bajo Nominal Alto Muy Alto

Extra Alto

RELYConfiabilidad exigida al software

Incovenientes leves

Bajo, pérdidasfácilmenterecuperables

Moderado, pérdidasfácilmenterecuperables

altapérdidafinanciera

riesgo a la vidahumana

DATATamaño de la BD. Esfuerzo para probar el producto

(BD bytes/SLOC/ < 10

10 <= (BD bytes /SLOC) < 100

100 <= (BD bytes /SLOC) < 100

(BD bytes /SLOC) >= 1000

Multiplicadores de esfuerzo: relacionados con el producto

Multiplicador Muy bajo Bajo Nominal

Alto Muy Alto

Extra Alto

CPLXComplejidad del producto.

Codificación simple, computaciones simples

Codificación simple, algunas computaciones simples, GUI simples

Codifica ciónanidada, rutinas matemáticas estándar, múltiples archivos

Codifica cióncompleja, análisis numérico, I/0 físicas

Códigoreentrante o en tiemporeal. ecuacionesdiferencialesparciales

Microcódigo. Análisisnuméricodifícil, interfaznatural del lenguaje

Multiplicadores de esfuerzo: relacionados con el producto

Multiplicador Muy bajo

Bajo Nominal Alto Muy Alto

Extra Alto

RUSECapacidad de los analistas

Ninguno A través del Proyecto

A través del Programa

A través de una Línea de producto

A través de Múltiples líneas de producto

DOCUExperiencia previa en área de aplicación

Muchas necesidades del ciclo de vida no están cubiertas

Algunas necesidadesdel ciclo de vida no están cubiertas

Necesidades correctas del ciclo de vida

Necesidades excesivas del ciclo de vida

Necesidades muy excesivas del ciclo de vida

Esfuerzo con EAF calculado

Esfuerzo = 2.94 X EAF (Tamaño KSLOC)E

EAF= Multiplicación de los drives. Estos valores se adquieren de acuerdo al ciclo de vida

Tamaño = (137 UNPF * 60 LOC Java /1000)= 8.2Suponiendo que el valor del proyecto es 1.34 y la experiencia del lenguaje y herramientas 1.09 con los demás drives nominales 1.0 entonces:

Esfuerzo = 2.94 * (1.36*1.09) * (8.2) 1.2262

= 2.94 * 1.46 * 13.1983= 56.65 persona-meses

Referencias

University of Southern California Center for Software Engineering. http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html. Septiembre de 2009University of Southern California Center for Software Engineering. http://csse.usc.edu/csse/research/COCOMOII/cocomo_downloads.htm. Septiembre de 2009http://www.ldc.usb.ve/~teruel/ci4713/clases2001/cocomo2.htmlhttp://www.softstarsystems.com/demo.htm