Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

40
Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión Planificación de Proyectos Informáticos Segundo Tema (continuación) Modelos de Estimación del Software

description

Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión. Planificación de Proyectos Informáticos. Segundo Tema (continuación). Modelos de Estimación del Software. Cocomo 2000. Co nstructive Co st Mo del (Modelo Construc-tivo de Costes) - PowerPoint PPT Presentation

Transcript of Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

Page 1: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

Escuela Superior de Ingeniería Informática

Enxeñería Técnica en Informática de Xestión

Planificación de Proyectos Informáticos

Segundo Tema (continuación)

Modelos de Estimación del Software

Page 2: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 2

Constructive Cost Model (Modelo Construc-tivo de Costes)

Desarrollado en 1981 por Barry Boehm (Universidad de California Sur).

Es el modelo de estimación de costes más utilizado.

En 1995 se publicó la versión COCOMO II y actualmente derivó a COCOMO 2000.

El equipo liderado por B. Boehm (Center for Software Engineering) pretende mejorar, ampliar y adaptar el modelo anterior a las nuevas formas en que se desarrolla el software.

Cocomo 2000

Page 3: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 3

Permite estimar el esfuerzo, costo y duración de cualquier proyecto informático.Es un modelo algorítmico, es decir, se basa en una serie de fórmulas matemáticas que producen una estimación en función de un conjunto de variables (x1, x2,... xn) :

• Líneas de código fuente.• Capacidad de analistas y programadores.• Complejidad del producto.• Restricciones de tiempo de ejecución, memoria, equipos de trabajo …• Fiabilidad de la aplicación.• Etc …

Cocomo 2000

Page 4: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 4

Introducción:

• La variable principal para la estimación son las líneas de código fuente esperadas, expresadas en miles (KIFE).

• La estimación cubre únicamente un conjunto definido de fases (por ejemplo, no incluye la fase de formación a los usuarios).

• Incluye todas las labores directas del proyecto, pero no las labores indirectas.

• El esfuerzo se mide en personas-mes:

1 pm = 19 persona-días = 152 persona-horas

Cocomo 2000

Page 5: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 5

Introducción:• Asume que existe un buen entendimiento entre el usuario y los desarrolladores.• La estimación se realiza de acuerdo con la información disponible en el momento que se lleva a cabo. • Se consideran tres modelos que cubren desde el comienzo del análisis de requerimientos hasta el final de las pruebas e integración del sistema:

Modelo ACM (Mod.de Comp. de Aplicac.).Modelo EDM (Mod. de Diseño Inicial).Modelo PAM (Mod. Post-Arquitectura).

Cocomo 2000

Page 6: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 6

Sectores de Mercado:

Cocomo 2000

Desarrollos de Usuario Final(55 Millones en USA en el año 2005)

Generadores de

Aplicaciones y Ayudas para Composición

(0,6 M)

Composición de

Aplicaciones(0,7 M)

Integración de Sistemas

(0,7 M)

Infraestructura(0,75 M)

Page 7: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 7

Modelo de Composición de Aplicaciones (ACM)

Usado principalmente para aplicaciones de pro-totipaje o aplicaciones basadas en generadores de pantallas, informes, base de datos, etc…

Basado en Puntos Objeto (PO) (número y com-plejidad de pantallas, listados, componentes de lenguajes) y Factores de Reusabilidad y Produc-tividad.

Cocomo 2000

Page 8: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 8

Modelo de Composición de Aplicaciones (ACM)Procedimiento:

1. Estimar el nº de pantallas, listados y componentes.

Cocomo 2000

Pantallas Número de Tablas de Datos

Número de vistas

< 4(<2 srvr

< 3 clien)

< 8(<2/3 srvr

< 3-5 clien)

>= 8(> 3 srvr> 5 clien)

< 3 sencillo sencillo medio

3 - 7 sencillo medio difícil

>= 8 medio difícil difícil

Page 9: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 9

Modelo de Composición de Aplicaciones (ACM)Procedimiento:

2. Clasificarlos dentro de los niveles de complejidad sencillo, medio y difícil.

Cocomo 2000

Listados Número de Tablas de Datos

Número de Secciones

< 4(<2 srvr

< 3 clien)

< 8(<2/3 srvr

< 3-5 clien)

>= 8(> 3 srvr> 5 clien)

0 o 1 sencillo sencillo medio

2 o 3 sencillo medio difícil

>= 4 medio difícil difícil

Page 10: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 10

Modelo de Composición de Aplicaciones (ACM)Procedimiento:

3. Aplicar el peso a cada concepto.

Cocomo 2000

Tipo de Objeto

Sencillo Medio Difícil

Pantallas 1 2 3

Listados 2 5 8

Componentes 10

Page 11: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 11

Modelo de Composición de Aplicaciones (ACM)Procedimiento:

4. Determinar los Puntos Objeto.

5. Estimar el porcentaje de código reusado; la cantidad de PO quedará (NPO):

NPO = (PO * (100 - % reusado)) / 100

Cocomo 2000

Page 12: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 12

Modelo de Composición de Aplicaciones (ACM)Procedimiento:

6. Calcular el ratio de la productividad:PROD = NPO / persona-mes

según la siguiente tabla:

Cocomo 2000

Experiencia de los desarrolladores

Muy Baja

Baja Normal Alto Muy Alto

Experiencia en herramientas

Muy Baja

Baja Normal Alto Muy Alto

PROD (ratio) 4 7 13 25 50

7. El esfuerzo viene dado:PM = NPO / PROD

Page 13: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 13

Cocomo 2000

Modelo de Diseño Inicial (EDM)Usado en las etapas iniciales cuando se conoce poco sobre el tamaño del producto, la plataforma, el personal.Basado en Puntos de Función No Ajustados (PFNA).Una vez calculados, se convierten a líneas de código.

Utiliza 7 conductores de esfuerzo que afectan multiplicativamente al esfuerzo del proyecto.

Page 14: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 14

Modelo de Diseño Inicial (EDM)Procedimiento:

1. Estimar los PFNA.2. Convertir los PFNA a KIFE, según tabla:

Cocomo 2000

Lenguaje LdC / PFNA

Lenguaje LdC / PFNA

Ada 71 Cobol Visual 29

Assembler 320 Java 23

Basic 91 Lisp 64

C 128 Pascal 91

C++ 29 Prolog 64

Cobol 85 100

Page 15: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 15

Modelo de Diseño Inicial (EDM)3. El esfuerzo nominal viene dado por:

PMNominal = A * (Tamaño)B

el tamaño viene dado en KIFEA = constante de calibración (2,94)B = viene determinado por los factores de

escala

B = 0.91 + 0.01 x Σ FEj (j = 1 a 5)

FE = Factor de Escala (de 0 a 5)

Cocomo 2000

Page 16: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 16

Cocomo 2000

Muy Bajo

Bajo Normal Alto Muy Alto

Extra Alto

Precedentes (PREC) 6,2 4,96 3,72 2,48 1,24 0

Flexibilidad (FLEX) 5,07 4,05 3,04 2,03 1,01 0

Arquitectura/resolución del riesgo (RESL)

7,07 5,65 4,24 2,83 1,41 0

Cohesión del Equipo (TEAM)

5,48 4,38 3,29 2,19 1,10 0

Madurez del Proceso (PMAT)

7,80 6,24 4,68 3,12 1,56 0

Factores de Escala

Page 17: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 17

Cocomo 2000

Factores de Escala

Page 18: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 18

Modelo de Diseño Inicial (EDM)4. El esfuerzo ajustado será:

PMAjustado = PMNominal * Π EAi (i = 1 to 7)

FA = Factores de Ajuste

Cocomo 2000

Factor DescripciónRCPX Fiabilidad y complejidad del producto

RUSE Requerimientos de reusabilidad

PDIF Dificultad de la plataforma

PERS Capacidad del personal

PREX Experiencia del personal

FCIL Facilidades para el desarrollo

SCED Esfuerzo de calendario

Page 19: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 19

Modelo de Diseño Inicial (EDM)

Cocomo 2000

Factores Muy Bajo

Bajo Nor-mal

Alto Muy Alto

Extra Alto

RCPX 0,60 0,83 1.00 1,33 1,91 2,72

PDIF 0,87 1.00 1,29 1,81 2,61

PERS 1,62 1,26 1.00 0,83 0,63 0,50

PREX 1,33 1,12 1.00 0,87 0,74 0,62

FCIL 1,30 1,10 1.00 0,87 0,73 0,62

Page 20: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 20

Modelo de Diseño Inicial (EDM)

5. El tiempo estimado, una vez conocido el esfuerzo necesario, se obtiene de:TDES = [ c x (PM)d ] * SCED%/100siendo

PM = esfuerzo de desarrollo sin tener en cuenta el multiplicador Sced

c = 3.67d = 0.28 + 0.2 * [B – 0,91]

6. El personal a tiempo completo necesario para el desarrollo (PDTC) será:PDTC = PM / TDES

Cocomo 2000

Page 21: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 21

Modelo de Post-Arquitectura (PAM)

1-3. Los tres primeros pasos son similares al modelo EDM.

4. El esfuerzo ajustado será:

PMAjustado = PMNominal * Π EAi (i = 1 to 17)

FA = Factores de Ajuste para PAM, que se obtienen desglosando los 7 factores del modelo inicial (según tabla)

5. El tiempo del proyecto se calcula igual que para el modelo EDM.

Cocomo 2000

Page 22: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 22

Desglose de los factores de ajuste de EDM

Cocomo 2000

Factor EDM Factores PAMRCPX RELY, DATA, CPLX, DOCU

RUSE RUSE

PDIF TIME, STOR, PVOL

PERS ACAP, PCAP, PCON

PREX AEXP, PEXP, LTEX

FCIL TOOL, SITE

SCED SCED

Page 23: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 23

Factores de Ajuste para PAM (Producto)

Cocomo 2000

Factores Muy Bajo

Bajo Nor-mal

Alto Muy Alto

Extra Alto

Fiabilidad (RELY) 0,82 0.92 1.00 1.10 1.26

Tamaño B. D. (DATA) 0.90 1.00 1.14 1.28

Complejidad (CPLX) 0.73 0.87 1.00 1.17 1.34 1.74

Reusabilidad (RUSE) 0.95 1.00 1.07 1.15 1.24

Documentación (DOCU) 0.81 0.91 1.00 1.11 1.23

Page 24: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 24

Factores de Ajuste para PAM (Plataforma)

Cocomo 2000

Cost Drivers Very Low

Low Nom High Very High

Extra High

Execution time constraints (TIME)

1.00 1.11 1.29 1.63

Main storage constraints (STOR)

1.00 1.05 1.17 1.46

Platform volatility (PVOL)

0.87 1.00 1.15 1.30

Page 25: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 25

Factores de Ajuste para PAM (Personal)

Cocomo 2000

Cost Drivers Very Low

Low Nom High Very High

Extra High

Analyst capability (ACAP)

1.42 1.19 1.00 0.85 0.71

Programmer .. (PCAP) 1.34 1.15 1.00 0.88 0.76

Application experience (APEX)

1.22 1.10 1.00 0.88 0.81

Platform .. (PLEX) 1.19 1.09 1.00 0.91 0.85

Language/tool ..(LTEX) 1.20 1.09 1.00 0.91 0.84

Personnel continuity (PCON)

1.29 1.12 1.00 0.90 0.81

Page 26: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 26

Factores de Ajuste para PAM (Proyecto)

Cocomo 2000

Cost Drivers Very Low

Low Nom High Very High

Extra High

Use of software tools (TOOL)

1.17 1.09 1.00 0.90 0.78

Multi-site development (SITE)

1.22 1.09 1.00 0.93 0.86 0.80

Required development schedule (SCED)

1.43 1.14 1.00 1.00 1.00

Page 27: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 27

Cocomo 2000

Page 28: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 28

Cocomo 2000

Page 29: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 29

Cocomo 2000

Ajuste del Tamaño:

Este modelo incorpora ajustes de tamaño por cuatro causas:

• Desecho (Breakage).

• Reutilización.

• Reingeniería o conversión.

• Mantenimiento.

Page 30: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 30

Cocomo 2000

Ajuste del Tamaño (Desecho):

Al tamaño final del producto hay que añadir el código desarrollado y que hay que desechar debido a la volatilidad de los requerimientos.

Este tamaño de producto desechado se determina mediante:

TamañoBREAK = (1 + BRAK / 100) * Tamaño

siendo

BRAK = % del código desechado respecto del total

Page 31: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 31

Cocomo 2000

Ajuste del Tamaño (Reutilización):

Trata de estimar el número de líneas de código equivalentes, procedentes de módulos reutilizados, que hay que incorporar al tamaño del producto.

Se añade un factor de ajuste de la adaptación (AAF), que determina el porcentaje debido a la adaptación en las fase de diseño, codificación e integración:

AAF = 0,4 * MD + 0,3 * MC + 0,3 * MI

Page 32: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 32

Cocomo 2000

Ajuste del Tamaño (Reutilización):

El tamaño de producto reutilizado es:

TamañoRU = TamañoA [ AA + AAF + (SU * UNFM) ] / 100

siendo

TamañoA = tamaño del código adaptado

AA = % de valoración y asimilación

SU = % de esfuerzo de reutilización debido a la comprensión del software

UNFM = indicador de la familiaridad del programador con el software

Page 33: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 33

Cocomo 2000

Ajuste del Tamaño (Reutilización):

Page 34: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 34

Cocomo 2000

Ajuste del Tamaño (Reutilización):

Page 35: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 35

Cocomo 2000

Ajuste del Tamaño (Reutilización):

Page 36: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 36

Cocomo 2000

Ajuste del Tamaño (Reutilización):

Page 37: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 37

Cocomo 2000

Ajuste del Tamaño (Reingeniería o Conversión):

El ajuste anterior por reutilización tiene un refina-miento adicional para contemplar los efectos de la reingeniería y/o conversión, debidos a la eficien-cia de las herramientas automáticas para la rees-tructuración del software:

PMNominal = A * (Tamaño)B + [ASLOC * (AT / 100)/ATPROD]

siendo AT = % de código que es sometido a reingeniería mediante traslación automáticaATPROD = productividad de las herramientas en IFE / PM (actualmente se estima en 2400)

Page 38: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 38

Cocomo 2000

Ajuste del Tamaño (Mantenimiento):

Incluye:

• Rediseño y recodificación de porciones pequeñas de un producto original.

• Resideño y desarrollo de interfaces.

• Cambios menores de estructura.

• Actualizaciones de datos.

• Reparaciones (correctiva, adaptativa o perfectiva)

Page 39: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 39

Cocomo 2000

Ajuste del Tamaño (Mantenimiento):

Utiliza esencialmente el mismo conjunto de factores conductores de esfuerzo que el desarrollo

No se tienen en cuenta los factores Sced y Ruse

El factor Rely (Fiabilidad) tiene un efecto inverso (si un producto fue desarrollado con baja fiabilidad, será más costoso corregir los defectos): Fiabilidad (RELY)

Slight

Low

Moderate

High $ loss

Loss of life

Ratios

Very Low

1.24

Low 1.12

Nom 1.00

High 0.86

Very High

0.72

Page 40: Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión

ppi-t2_2 40

Cocomo 2000

Ajuste del Tamaño (Mantenimiento):El esfuerzo de mantenimiento se calcula a partir de la siguiente expresión:

PMM = a x TamañoM b x Π FMi (i = 1 a 15)

TamañoM = [BSC * MCF] * MAFBSC = tamaño código originalMCF = (código añadido + código modificado) /

BSCMAF = 1 + [ (SU / 100) * UNFM

SU = % de esfuerzo de mantenimiento debido a la comprensión del software (10 – 50)UNFM = indicador de familiaridad (0,0 – 1,0)