Modelo de Estimación de Proyecto de Software (COCOMO)

Embed Size (px)

Citation preview

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    1/61

    23/07/2011

    Modelo de Estimacin deProyecto de Software

    COCOMO (Constructive Cost Model)ESTRATEGIAS DE SISTEMAS DE INFORMACIN

    Y PROCESOS DE COSTOS DE TI

    Grupo N1:Luis Boy ChavilHaybert Escobedo Neyra

    Ricardo Gutirrez Pastorngel Vsquez Snchez

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    2/61

    - COCOMO -2

    Presentacin

    Como se conoce, una de las tareas de mayorimportancia en la planificacin de proyectos de

    software es la estimacin, la cual consiste endeterminar, con cierto grado de certeza: Los recursos de hardware y software,

    Costo,

    Tiempo, Esfuerzo, necesarios para el desarrollo de los mismos.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    3/61

    - COCOMO -3

    Introduccin

    Durante la etapa de

    planeamiento:

    Permite decidir cuantaspersonas son necesarias para

    llevar a cabo el proyecto yestablecer el cronogramaadecuado.

    Para controlar el progreso del

    proyecto:

    Es esencial evaluar si elproyecto est evolucionando de

    acuerdo al cronograma y tomarlas acciones correctivas si fueranecesario.

    La estimacin de costos de software tiene dos usos en laadministracin de proyectos:

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    4/61

    - COCOMO -4

    Introduccin (Cont)

    Es importante reconocer lafuerte relacin entre costo,cronograma y calidad.

    Estos tres aspectos estn

    ntimamente relacionados y

    confrontados entre s. De esta

    manera, es difcil incrementar la

    calidad sin aumentar el costo y/o el

    cronograma del SW a desarrollar.

    Similarmente, el cronograma de

    desarrollo no puede reducirse

    dramticamente sin deteriorar la

    calidad del producto de SW y/oincrementar el costo de desarrollo.

    Los modelos de estimacin juegan

    un papel importante ya que

    permiten equilibrar estos tres

    factores.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    5/61

    - COCOMO -5

    Introduccin (Cont)

    Se han propuesto numerosos mtodos de estimacin entreellos se pueden contar: Juicio de Expertos

    Analoga

    Parkinson:

    Tasar para ganar

    Estimacin top-down

    Estimacin bottom-up

    Modelos Algortmicos(COCOMO)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    6/61

    - COCOMO -6

    Breve Historia

    En el ao 1981, Barry Boehm publica elmodelo COCOMO, acorde a las prcticas dedesarrollo de software de aquel momento

    [Boehm 1981]. En el ao 1983, se introduce el lenguaje de

    programacin Ada (American National StandardInstitute) para reducir los costos de desarrollo degrandes sistemas. Algunos aspectos de Ada

    provocaron un gran impacto en los costos dedesarrollo y mantenimiento, as Barry Boehm yWalker Royce definieron un modelo revisado,llamado Ada COCOMO [Boehm 1989].

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    7/61

    - COCOMO -7

    Breve Historia (Cont)

    En los 90, las tcnicas de desarrollo de software cambiarondramticamente, surgieron la necesidad de reusar software existente,la construccin de sistemas usando libreras, etc.

    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 paraser aplicado en proyectos vinculados a tecnologas como orientacin a

    objetos, desarrollo incremental, composicin de aplicacin, yreingeniera.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    8/61

    - COCOMO -8

    Breve Historia (Cont)

    COCOMO II consta de tres modelos, cada uno delos cuales ofrece una precisin acorde a cada

    etapa de desarrollo del proyecto. Enunciados enorden creciente de fidelidad son:

    Composicin de Aplicacin.

    Diseo Temprano.

    Post Arquitectura.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    9/61

    - COCOMO -9

    Breve Historia (Cont)

    El USC- CSE implement losdos ltimos modelos en unaherramienta de software. Esta

    herramienta le permite alplanificador hacer rpidamenteuna exploracin de lasposibilidades de un proyecto,

    analizando qu efectos provocael ajuste de requerimientos,recursos y staff sobre laestimacin de costos y tiempos.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    10/61

    - COCOMO -10

    COCOMO 81

    Est compuesto por tres modelos quecorresponden a distintos niveles de detalle y

    precisin. Mencionados en orden creciente son:

    Modelo Bsico

    Intermedio

    Detallado.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    11/61

    - COCOMO -11

    COCOMO 81 (Cont)

    Permite estimar cmo se distribuye el esfuerzo y el tiempoen las distintas fases del desarrollo de un proyecto y dentrode cada fase, en las actividades principales. Las fasesconsideradas por COCOMO81 son:

    Diseo del Producto (PD)

    Diseo Detallado (DD)

    Codificacin y Testeo de Unidades (CT) Integracin y Testeo (IT)

    Anlisis de Requerimientos

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    12/61

    - COCOMO -12

    COCOMO II: Objetivos

    Los objetivos principales que se tuvieron en cuenta paraconstruir el modelo COCOMO II fueron: SW 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.

    Implementar una herramienta de software que soportara elmodelo.

    Proveer un marco analtico cuantitativo y un conjunto deherramientas y tcnicas que evaluaran el impacto de lasmejoras tecnolgicas de software sobre los costos y tiemposen las diferentes etapas del ciclo de vida de desarrollo.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    13/61

    - COCOMO -13

    COCOMO II: Definicin

    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 yfuturo de desarrollo de software.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    14/61

    - COCOMO -14

    Modelo de Composicin de Aplicaciones

    Se construyen a partir de componentes Pre-Empaquetados.

    En este caso, se emplean Puntos Objetos paraestimar el tamao del software, lo cual estacorde al nivel de informacin que generalmentese tiene en la etapa de planificacin, y el nivel de

    precisin requerido en la estimacin de proyectosde esta naturaleza.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    15/61

    - COCOMO -15

    Modelo de Diseo Temprano

    Se utiliza en las primeras etapas del desarrollo enlas cuales se evalan las alternativas de hardware

    y software de un proyecto. En estas etapas se tiene poca informacin, lo que

    concuerda con el uso de Puntos Funcin, paraestimar tamao y el uso de un nmero reducido

    de factores de costo.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    16/61

    - COCOMO -16

    Modelo Post-Arquitectura

    Se aplica en la etapa de desarrollo propiamente dicho,despus que se define la arquitectura del sistema, y enla etapa de mantenimiento. Este modelo utiliza: Puntos Funcin y/o Lneas de Cdigo Fuente.

    Un conjunto de 17 atributos, denominados factores de costo.

    Cinco factores que determinan un exponente, que incorporaal modelo el concepto de des-economa y economa de

    escala. Estos factores reemplazan los modos Orgnico,Semiacoplado y Empotrado del modelo COCOMO '81.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    17/61

    - COCOMO -17

    Economas de Escala

    1. Dispersin de los costos fijos

    2. Reduccin de los costos de construccin

    3. Reduccin del costo de los materiales comprados4. Descubrimiento de otras ventajas en el proceso aldedicar recursos a grandes partidas de ciertos productos Acelerar aprendizajes

    Disminuir inventarios

    Mejorar los procesos

    Reducir el nmero de cambios

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    18/61

    - COCOMO -18

    Deseconomas de Escala

    El costo promedio se eleva a medida que aumentael tamao de la instalacin

    El tamao excesivo conlleva

    complejidad

    prdida de enfoque

    Ineficiencias

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    19/61

    - COCOMO -19

    Economas o deseconomas

    Costo

    unitariopro

    medio

    Tasa de produccin

    Dimensin 1

    Dimensin 2

    Dimensin 3

    Deseconoma de escala D2Economa de escala D2

    Dimensin ptima

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    20/61

    - COCOMO -20

    ESTIMACIN DEL ESFUERZO:

    Es el esfuerzo necesario para concretar unproyecto de desarrollo de software,

    cualquiera sea el modelo empleado, seexpresa en meses/persona (PM) y representalos meses de trabajo de una persona

    fulltime, requeridos para desarrollar elproyecto.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    21/61

    - COCOMO -21

    ESTIMACIN DEL ESFUERZO:

    Modelo de Composicin de Aplicacin(Cont)

    PM = NOP / PROD

    NOP = OP x (100 - %reuso)/100

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    22/61

    - COCOMO -22

    ESTIMACIN DEL ESFUERZO:

    Modelo de Diseo Temprano Este modelo se usa en las etapas tempranas

    de un proyecto de software, cuando se

    conoce muy poco del tamao del producto aser desarrollado, de la naturaleza de laplataforma, del personal a ser incorporado

    al proyecto o detalles especficos delproceso a utilizar.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    23/61

    - COCOMO -23

    ESTIMACIN DEL ESFUERZO:

    Modelo de Diseo Temprano(Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    24/61

    - COCOMO -24

    ESTIMACIN DEL ESFUERZO:

    Modelo de Diseo Temprano(Cont)

    Clasificados en categoras, los 7 Multiplicadores de Esfuerzo son:

    Del Producto

    RCPX: Confiabilidad y Complejidad del producto

    RUSE: Reusabilidad Requerida De la Plataforma

    PDIF: Dificultad de la Plataforma

    Del Personal PERS: Aptitud del Personal

    PREX: Experiencia del Personal

    Del Proyecto FCIL: Facilidades

    SCED: Cronograma de Desarrollo Requerido

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    25/61

    - COCOMO -25

    ESTIMACIN DEL ESFUERZO:

    Modelo de Diseo Temprano(Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    26/61

    - COCOMO -26

    ESTIMACIN DEL ESFUERZO:

    Modelo PostArquitectura Es el modelo de estimacin ms detallado y

    se aplica cuando la arquitectura del

    proyecto est completamente definida. Estemodelo se aplica durante el desarrollo ymantenimiento de productos de software

    incluidos en las reas de SistemasIntegrados, Infraestructura y Generadoresde Aplicaciones.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    27/61

    - COCOMO -27

    ESTIMACIN DEL ESFUERZO:

    Modelo PostArquitectura(Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    28/61

    - COCOMO -28

    ESTIMACIN DEL ESFUERZO:

    Modelo PostArquitectura(Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    29/61

    - COCOMO -29

    ESTIMACIN DEL ESFUERZO:

    Modelo PostArquitectura(Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    30/61

    - COCOMO -30

    ESTIMACIN DEL CRONOGRAMA

    La versin inicial de COCOMO II provee un modelo deestimacin del cronograma similar al presentado enCOCOMO' 81 y ADA COCOMO. La ecuacin inicial para

    los tres modelos de COCOMO II es:

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    31/61

    - COCOMO -31

    METRICAS DE SOFTWARE

    En la estimacin del tamao de softwareCOCOMO II utiliza tres tcnicas:

    Puntos Objeto

    Puntos Funcin No Ajustados

    Lneas de Cdigo Fuente.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    32/61

    - COCOMO -32

    PUNTOS OBJETO

    A pesar de que la estimacin a travs de PuntosObjeto es un enfoque de medicin de tamao de

    software relativamente nuevo, es apropiado paralas aplicaciones con componentes y para estimaresfuerzos en las etapas de prototipo.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    33/61

    - COCOMO -33

    PUNTOS OBJETO (Cont)

    Primero: Determinar Cantidad de Objetos:Estimar la cantidad de pantallas, reportes,

    componentes de 3GL que contendr la aplicacin. Segundo: Clasificar cada instancia de un objetosegn sus niveles de complejidad (simple, media odifcil) de acuerdo a la Tabla 3.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    34/61

    - COCOMO -34

    PUNTOS OBJETO (Cont)

    Tercero: Dar el peso a cada objeto segn el nivelde complejidad. Los pesos reflejan el esfuerzo

    relativo requerido para implementar una instanciade ese nivel de complejidad. Tabla 4.

    Cuarto: Determinar la cantidad de Puntos Objeto,sumando todos los pesos de las instancias de los

    tipos de objetos especificados.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    35/61

    - COCOMO -35

    PUNTOS OBJETO (Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    36/61

    - COCOMO -36

    PUNTOS OBJETO (Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    37/61

    - COCOMO -37

    PUNTOS FUNCION

    El modelo COCOMO II usa Puntos Funcin y/oLneas de Cdigo Fuente (SLOC) como base para

    medir tamao en los modelos de estimacin deDiseo Temprano y Post-Arquitectura.

    Los Puntos Funcin procuran cuantificar lafuncionalidad de un sistema de software.

    La meta es obtener un nmero que caractericecompletamente al sistema.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    38/61

    - COCOMO -38

    PUNTOS FUNCION (Cont)

    FP = UFP x TCF

    DondeUFP: Puntos Funcin no Ajustados

    TCF: Factor de Complejidad Tcnica

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    39/61

    - COCOMO -39

    PUNTOS FUNCION (Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    40/61

    - COCOMO -40

    LNEAS DE CDIGO FUENTE

    COCOMO II considera a la sentencia fuentelgica como lnea standard de cdigo. Ahora bien,

    definir una lnea de cdigo es difcil debido a queexisten diferencias conceptuales cuando secuentan sentencias ejecutables y de declaracionesde datos en lenguajes diferentes. El objetivo es

    medir la cantidad de trabajo intelectual puesto enel desarrollo de un programa.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    41/61

    - COCOMO -41

    Conversin de Puntos Funcin a Lneas deCdigo Fuente (SLOC)

    Para determinar el esfuerzo nominal en el modeloCOCOMO II los puntos funcin no ajustados

    tienen que ser convertidos a lneas de cdigofuente considerando el lenguaje deimplementacin (assembler, lenguajes de altonivel, lenguajes de cuarta generacin, etc.). Esto se

    realiza para los modelos Diseo Temprano y PostArquitectura.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    42/61

    - COCOMO -42

    Conversin de Puntos Funcin a Lneas deCdigo Fuente (SLOC) (Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    43/61

    - COCOMO -43

    DESPERDICIO DE CDIGO

    Se considera comoDesperdicio al porcentaje decdigo que se debe eliminar debido a la volatilidad

    de los requerimientos. Por ejemplo, un proyectocon 100.000 instrucciones liberadas que descartel equivalente de 20.000 instrucciones tiene unvalor deDesperdicio (BRAK) del 20%.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    44/61

    - COCOMO -44

    MODELO DEL REUSO

    COCOMO II usa un modelo no lineal para estimarel tamao del software cuando ste incluye

    componentes reusables.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    45/61

    - COCOMO -45

    REINGENIERA Y CONVERSIN

    El modelo de Reuso de COCOMO II necesita unrefinamiento adicional para estimar el costo de

    reingeniera y de conversin. La principaldiferencia entre reingeniera y conversin estdada por la eficiencia de las herramientasautomatizadas utilizadas para reestructurar el

    software.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    46/61

    - COCOMO -46

    FACTOR EXPONENCIAL DE ESCALA

    Los modelos de estimacin de costos analizan dos aspectosantagnicos que influyen notablemente en los procesos de

    estimacin, la economa y des-economa de escala. Los modelos de estimacin de costos frecuentemente

    tienen un factor exponencial para considerar las economasy des-economas de escala. En particular, COCOMO II

    captura esos efectos en el exponenteB:

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    47/61

    - COCOMO -47

    FACTOR EXPONENCIAL DE ESCALA:Precedencia y Flexibilidad en el Desarrollo (PREC Y FLEX )

    El factor de precedencia (PREC) toma en cuenta el gradode experiencia previa en relacin al producto a desarrollar,

    tanto en aspectos organizacionales como en elconocimiento del software y hardware a utilizar.

    El factor de flexibilidad (FLEX) considera el nivel deexigencia en el cumplimiento de los requerimientos

    preestablecidos, plazos de tiempos y especificaciones deinterface.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    48/61

    - COCOMO -48

    FACTOR EXPONENCIAL DE ESCALA:

    Arquitectura y Determinacin del Riesgo (RESL)

    Este factor involucra aspectos relacionados alconocimiento de los tems de riesgo crtico y al

    modo de abordarlos dentro del proyecto.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    49/61

    - COCOMO -49

    FACTOR EXPONENCIAL DE ESCALA:

    Cohesin del Equipo (TEAM)

    Este factor involucra aspectos relacionados alconocimiento de los tems de riesgo crtico y al

    modo de abordarlos dentro del proyecto.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    50/61

    - COCOMO -50

    FACTOR EXPONENCIAL DE ESCALA:

    Madurez del Proceso (PMAT)

    Existen dos formas de calcularlo:

    La primera captura el nivel de madurez de la organizacin,

    resultado de la evaluacin segn CMM y asignndole elvalor.

    La segunda est basada en las dieciocho reas deProcesos Claves (KPAs) del modelo del SEI(Software

    Engineering Institute). El procedimiento para determinarel PMAT es establecer el porcentaje de cumplimiento decada una de las reas evaluando el grado de cumplimientode las metas correspondientes.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    51/61

    - COCOMO -51

    FACTORES MULTIPLICADORES DE ESFUERZO

    El esfuerzo nominal de desarrollo de un proyectode software se ajusta para una mejor estimacin

    mediante factores que se clasifican en cuatroreas:

    Producto

    Plataforma Personal

    Proyecto.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    52/61

    - COCOMO -52

    FACTORES MULTIPLICADORES DE ESFUERZO:

    Producto

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    53/61

    - COCOMO -53

    FACTORES MULTIPLICADORES DE ESFUERZO:

    Plataforma

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    54/61

    - COCOMO -54

    FACTORES MULTIPLICADORES DE ESFUERZO:

    Personal

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    55/61

    - COCOMO -55

    FACTORES MULTIPLICADORES DE ESFUERZO:

    Proyecto

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    56/61

    - COCOMO -56

    COMPARACIN ENTRECOCOMO 81 vs COCOMO II

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    57/61

    - COCOMO -57

    COMPARACIN ENTRECOCOMO 81 vs COCOMO II (Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    58/61

    - COCOMO -58

    COMPARACIN ENTRECOCOMO 81 vs COCOMO II (Cont)

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    59/61

    - COCOMO -59

    Conclusiones

    Considerara conceptos tales como orientacin aobjetos, reingeniera, reusabilidad, utilizacin depaquetes comerciales, composicin deaplicaciones.

    Puede ser adaptado a un organismo en particular,si se cuenta con la experiencia de un nmero

    importante de proyectos ya culminados quepuedan aportar los datos necesarios para larecalibracin.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    60/61

    - COCOMO -60

    Conclusiones (Cont)

    Sin lugar a dudas, en la actualidad siguenexistiendo inconvenientes y limitaciones para lasestimaciones, pero ms all de esto COCOMO IIha recorrido un importante camino, logrando lamadurez necesaria del modelo para conseguirestimaciones de gran precisin.

  • 7/31/2019 Modelo de Estimacin de Proyecto de Software (COCOMO)

    61/61

    COCOMO

    Gracias.