Modelos de Estimación del Software Planificación de Proyectos Informáticos

Download Report

Transcript Modelos de Estimación del Software Planificación de Proyectos Informáticos

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
Constructive Cost Model (Modelo Constructivo 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.
ppi-t2_2
2
Cocomo 2000
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 …
ppi-t2_2
3
Cocomo 2000
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
ppi-t2_2
4
Cocomo 2000
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).
ppi-t2_2
5
Cocomo 2000
Sectores de Mercado:
Desarrollos de Usuario Final
(55 Millones en USA en el año 2005)
Generadores
de
Aplicaciones y
Ayudas para
Composición
Composición
de
Aplicaciones
Integración de
Sistemas
(0,7 M)
(0,7 M)
(0,6 M)
Infraestructura
(0,75 M)
ppi-t2_2
6
Cocomo 2000
Modelo de Composición de Aplicaciones (ACM)
Usado principalmente para aplicaciones de prototipaje o aplicaciones basadas en generadores de
pantallas, informes, base de datos, etc…
Basado en Puntos Objeto (PO) (número y complejidad de pantallas, listados, componentes de
lenguajes) y Factores de Reusabilidad y Productividad.
ppi-t2_2
7
Cocomo 2000
Modelo de Composición de Aplicaciones (ACM)
Procedimiento:
1. Estimar el nº de pantallas, listados y
componentes.
Pantallas
Número
de vistas
ppi-t2_2
Número de Tablas de Datos
<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
8
Cocomo 2000
Modelo de Composición de Aplicaciones (ACM)
Procedimiento:
2. Clasificarlos dentro de los niveles de
complejidad sencillo, medio y difícil.
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)
0o1
sencillo
sencillo
medio
2o3
sencillo
medio
difícil
>= 4
medio
difícil
difícil
ppi-t2_2
9
Cocomo 2000
Modelo de Composición de Aplicaciones (ACM)
Procedimiento:
3. Aplicar el peso a cada concepto.
Tipo de
Objeto
Sencillo
Medio
Difícil
Pantallas
1
2
3
Listados
2
5
8
Componentes
ppi-t2_2
10
10
Cocomo 2000
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
ppi-t2_2
11
Cocomo 2000
Modelo de Composición de Aplicaciones (ACM)
Procedimiento:
6. Calcular el ratio de la productividad:
PROD = NPO / persona-mes
según la siguiente tabla:
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
12
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
13
Cocomo 2000
Modelo de Diseño Inicial (EDM)
Procedimiento:
1. Estimar los PFNA.
2. Convertir los PFNA a KIFE, según tabla:
ppi-t2_2
Lenguaje
LdC /
PFNA
Lenguaje
LdC /
PFNA
Ada
Assembler
Basic
C
71
320
91
128
Cobol Visual
Java
Lisp
Pascal
29
23
64
91
C++
Cobol 85
29
100
Prolog
64
14
Cocomo 2000
Modelo de Diseño Inicial (EDM)
3. El esfuerzo nominal viene dado por:
PM = A * (Tamaño)
el tamaño viene dado en KIFE
A = 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)
Nominal
ppi-t2_2
B
15
Cocomo 2000
Factores de Escala
Muy Bajo Normal Alto
Bajo
Muy Extra
Alto 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
4,24
2,83
1,41
0
3,29
2,19
1,10
0
4,68
3,12
1,56
0
Arquitectura/resolución
7,07 5,65
del riesgo (RESL)
Cohesión del Equipo
5,48 4,38
(TEAM)
Madurez del Proceso
7,80 6,24
(PMAT)
ppi-t2_2
16
Cocomo 2000
Factores de Escala
ppi-t2_2
17
Cocomo 2000
Modelo de Diseño Inicial (EDM)
4. El esfuerzo ajustado será:
PM
= PM
* Π EAi
FA = Factores de Ajuste
Ajustado
Nominal
(i = 1 to 7)
Factor Descripción
ppi-t2_2
RCPX
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
18
Cocomo 2000
Modelo de Diseño Inicial (EDM)
Factores
Muy
Bajo
Bajo
Normal
Alto
Muy
Alto
Extra
Alto
RCPX
0,60
0,83
1.00
1,33
1,91
2,72
0,87
1.00
1,29
1,81
2,61
PDIF
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
19
Cocomo 2000
Modelo de Diseño Inicial (EDM)
5. El tiempo estimado, una vez conocido el
esfuerzo necesario, se obtiene de:
T = [ c x (PM)d ] * SCED%/100
siendo
PM = esfuerzo de desarrollo sin tener en
cuenta el multiplicador Sced
c = 3.67
d = 0.28 + 0.2 * [B – 0,91]
6. El personal a tiempo completo necesario para
el desarrollo (PDTC) será:
PDTC = PM / TDES
DES
ppi-t2_2
20
Cocomo 2000
Modelo de Post-Arquitectura (PAM)
1-3. Los tres primeros pasos son similares al
modelo EDM.
4. El esfuerzo ajustado será:
PM
= PM
(i = 1 to 17)
* Π EAi
Ajustado
Nominal
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.
ppi-t2_2
21
Cocomo 2000
Desglose de los factores de ajuste de EDM
Factor EDM
ppi-t2_2
Factores PAM
RCPX
RELY, DATA, CPLX, DOCU
RUSE
RUSE
PDIF
TIME, STOR, PVOL
PERS
ACAP, PCAP, PCON
PREX
AEXP, PEXP, LTEX
FCIL
TOOL, SITE
SCED
SCED
22
Cocomo 2000
Factores de Ajuste para PAM (Producto)
Factores
Muy Bajo NorBajo
mal
Fiabilidad (RELY)
0,82 0.92 1.00 1.10
1.26
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
Tamaño B. D. (DATA)
ppi-t2_2
Alto
Muy Extra
Alto Alto
23
Cocomo 2000
Factores de Ajuste para PAM (Plataforma)
Cost Drivers
Execution time
constraints (TIME)
Main storage
constraints (STOR)
Platform volatility
(PVOL)
ppi-t2_2
Very Low Nom High Very Extra
Low
High High
1.00 1.11
1.29
1.63
1.00 1.05
1.17
1.46
0.87 1.00 1.15
1.30
24
Cocomo 2000
Factores de Ajuste para PAM (Personal)
Very Low Nom High
Cost Drivers
Low
Very Extra
High 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)
0.81
ppi-t2_2
1.29 1.12 1.00 0.90
25
Cocomo 2000
Factores de Ajuste para PAM (Proyecto)
Cost Drivers
Use of software tools
(TOOL)
Multi-site development
(SITE)
Required development
schedule (SCED)
ppi-t2_2
Very Low Nom High Very Extra
Low
High High
1.17 1.09 1.00 0.90
0.78
1.22 1.09 1.00 0.93
0.86
1.43 1.14 1.00 1.00
1.00
0.80
26
Cocomo 2000
ppi-t2_2
27
Cocomo 2000
ppi-t2_2
28
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
29
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ño
BREAK
= (1 + BRAK / 100) * Tamaño
siendo
BRAK = % del código desechado respecto
del total
ppi-t2_2
30
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
31
Cocomo 2000
Ajuste del Tamaño (Reutilización):
El tamaño de producto reutilizado es:
Tamaño = Tamaño [AA + AAF + (SU *
UNFM) ] / 100
RU
A
siendo
Tamaño = tamaño del código adaptado
A
AA = % de valoración y asimilación
SU = % de esfuerzo de reutilización debido
a la comprensión del software
ppi-t2_2
UNFM = indicador de la familiaridad del
programador con el software
32
Cocomo 2000
Ajuste del Tamaño (Reutilización):
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 (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:
PM = A * (Tamaño) + [ASLOC * (AT /
100)/ATPROD]
siendo
AT = % de código que es sometido a
reingeniería mediante traslación automática
ATPROD = productividad de las herramientas
en IFE / PM (actualmente se estima en 2400)
Nominal
ppi-t2_2
B
37
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
38
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)
Ratios
ppi-t2_2
Slight
Low
Very Low Low
1.24
1.12
Moderate
Nom
1.00
High $
loss
Loss of life
High Very High
0.86
0.72
39
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ño = [BSC * MCF] * MAF
BSC = tamaño código original
MCF = (código añadido + código modificado) /
BSC
MAF = 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)
M
ppi-t2_2
40