Escuela Superior de Ingeniería Informática Enxeñería Técnica en Informática de Xestión
description
Transcript of 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
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
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
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
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
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)
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
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
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
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
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
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
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.
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
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
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
ppi-t2_2 17
Cocomo 2000
Factores de Escala
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
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
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
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
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
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
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
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
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
ppi-t2_2 27
Cocomo 2000
ppi-t2_2 28
Cocomo 2000
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.
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
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
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
ppi-t2_2 33
Cocomo 2000
Ajuste del Tamaño (Reutilización):
ppi-t2_2 34
Cocomo 2000
Ajuste del Tamaño (Reutilización):
ppi-t2_2 35
Cocomo 2000
Ajuste del Tamaño (Reutilización):
ppi-t2_2 36
Cocomo 2000
Ajuste del Tamaño (Reutilizació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)
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)
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
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)