UNIVERSIDAD DE LOS ANDES

Anuncio
UNIVERSIDAD DE LOS ANDES
Análisis de sensibilización de la estimación usando COCOMO II y puntos
de casos de uso (Use Case points)
Juan Carlos Lopera
Luís Carlos Ávila
Javier Murcia
Camilo Forero
Jenny Alexandra Marín
200925616
201017972
201011331
201011271
201018091
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
TABLA DE CONTENIDO
1.
INTRODUCCIÓN .............................................................................................................................. 3
2.
PUNTOS DE CASOS DE USO (USE CASE POINTS) .................................................................... 3
3.
COCOMO II CONSTRUCTIVE COST MODEL .............................................................................. 6
4.
ANEXOS .......................................................................................................................................... 10
4.1
EJERCICIO DE ESTIMACIÓN USANDO USE CASE POINTS.................................................................. 10
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
1. Introducción
En este documento se analiza que tan sensible son los modelos de estimación
de puntos de casos de uso (Use case points) y COCOMO II, a la subjetividad
del estimador. Adicionalmente se habla sobre cuales son los factores que más
afectan los resultados de cada modelo.
Con base en el análisis realizado, se determinan cuales son las variables más
sensibles sobre las cuales se debería ejercer algún tipo de control en la
estimación, y cuáles variables no son sensibles y se podrían considerar
eliminarlas del modelo sin afectar sensiblemente el resultado de estimación.
Para el análisis se escogió trabajar con el proyecto de la aplicación de recursos
humanos en donde ya se había realizado un trabajo de especificación de casos
de uso y de estimación por puntos funcionales.
2. Puntos de casos de uso (Use Case points)
El método de estimación por puntos de casos de uso es muy sensible a la
subjetividad del estimador y esto es debido a que depende de diferentes
factores que son calificados por el estimador basado en su criterio. Al parecer
este problema nos lleva a tener estimaciones finales de puntos de casos de
uso poco precisas.
Cada factor establecido para la técnica tiene un peso por defecto asociado.
Estos factores deben ser evaluados por el estimador según su juicio. El
principal problema al evaluar cada uno de esos factores es la falta de
estandarización. Por ejemplo: Hicimos el experimento de realizar en el grupo
tres estimaciones sobre el mismo proyecto. El proyecto que se uso como base
común para cada uno de los integrantes fue la aplicación de recursos humanos
que se usó en una tarea anterior para hacer su respectiva estimación usando la
técnica de puntos funcionales. Al inicio nos pusimos de acuerdo en el número
de transacciones por cada caso de uso que en total fue 200 UUCP y 9 Actor
Weighting (Ver anexos punto Ejercicio de estimación usando Use case points).
Hasta ahí ya teníamos el punto de partida para que cada uno hiciese su
estimación de acuerdo a su criterio evaluando cada uno de los factores. Como
era de esperarse el resultado fue distinto en los tres casos.
Encontramos que para los factores ambientales se obtuvieron los siguientes
valores: 0.8, 0.77, 0.74 (Ver anexos punto Ejercicio de estimación usando Use
case points). Luego de ver los resultados se nos presentó la duda sobre cómo
cada uno de los involucrados en la prueba determino el significado de cada
criterio. Así que lo debatimos y llegamos a la conclusión de que cada uno de
nosotros tenía una perspectiva distinta sobre lo que era cada criterio. En
algunos casos acertábamos, en otros diferíamos desvirtuando la estimación
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
debido a que cada persona tenía razón en sus argumentos. Uno de los
problemas que se nos presentó fue en el factor ambiental de dificultad del
lenguaje. Uno de los argumentos para éste factor fue que la dificultad del
lenguaje de programación estaba dada en la experiencia que se tenia en este
lenguaje. Entre más experiencia, menos dificultad entonces menor la magnitud
a definir. Otro de los argumentos que se discutió para este factor fue que la
dificultad del lenguaje de programación estaba dada por la habilidad que tienen
los desarrolladores para desarrollar lo que les piden en el tiempo dado sin
importar la experiencia que tengan teniendo en cuenta que pueden existir
desarrolladores con poca experiencia y muy hábiles. En ambos casos los
argumentos son válidos, pero al momento de asignar una magnitud a ese factor
el tema se vuelve un poco ambiguo. Supongamos que tenemos un grupo de
desarrolladores con poca experiencia, pero con gran habilidad para hacer
desarrollos en poco tiempo. Bajo el primer argumento el factor se calificaría
según la experiencia, pero como los desarrolladores tienen poca experiencia
entonces la magnitud para el factor sería alta (La regla es: Entre más
experiencia en un lenguaje, menos dificultad entonces menor la magnitud a
asignar) y en ese caso no importarían las habilidades que tienen lo
desarrolladores y se podría sobreestimar el resultado final. Adicional a esto otro
argumento válido para este factor podría ser que el lenguaje de programación
seleccionado sea muy difícil de aprender, lo que dejaría a un lado la habilidad y
la experiencia del equipo de desarrollo. Si el lenguaje es difícil de aprender, y el
equipo es experto en ese lenguaje, al calificar teniendo el argumento anterior
podría estar desvirtuando la estimación final.
Otro tipo de problema que puede presentarse en la interpretación de los
factores es la magnitud a asignar. Puede no ser claro como debe asignarse la
magnitud de dicho factor: ¿Un valor mayor ó menor como afecta el resultado
final? Por ejemplo al calificar el factor ambiental de casos de uso estables se
puede llegar a pensar que entre el valor sea más alto quiere decir que se
cuentan con requerimientos más estables. Pero también se puede llegar a
pensar que entre más bajo sea el número menos cambian los requerimientos.
Ambos casos significan los mismo; los requerimientos son más estables entre
menos cambios existan en los requerimientos. En nuestro proyecto base de la
aplicación de recursos humanos se tiene una certeza muy grande de que los
requerimientos no van a cambiar mucho. Entonces para asignar la magnitud al
factor en el experimento alguien le asignó un valor bajo pensando a los
requerimientos porque esto significaba que los requerimientos iban a tener
menos cambios que al colocar un valor alto donde los requerimientos iban
tener muchos cambios y otra persona le asigno un valor alto pensando en que
los requerimientos iban a ser estables porque al colocarle un valor bajo
significaba que los requerimientos no iban a ser tan estables. En este factor en
particular el impacto en la estimación final es grande, porque es una de los
factores que más peso tiene por defecto al ser éste igual a dos. En
comparación con los otros factores esté es el valor más alto que se puede
llegar a encontrar.
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
Adicionalmente otro problema se puede presentar en que se tome muy literal
una característica del proyecto que se resuelve por una herramienta o técnica.
Eso puede suceder en el factor técnico Soporte para diferentes plataformas.
Además de que éste criterio puede presentar ambigüedad en su interpretación;
¿diferentes plataformas de SO?, ¿Hardware?, ¿Browser? ó ¿integración con
sistemas heterogéneos?; también es posible correr el riesgo de castigar
severamente éste factor sin tener en cuenta que existen herramientas que
reducen el esfuerzo. Por ejemplo la maquina virtual de java puede correr en un
gran número de plataformas hardware y software, permitiendo que el código
compilado en una plataforma pueda se ejecutada en otra. Para éste caso en
particular podríamos asignar una magnitud alta si es necesario que el sistema a
construir se pueda ejecutar en Linux, en Windows y en Mac pero si
consideramos que el lenguaje como es el caso de java nos permite la ejecución
multiplataforma pues el valor a asignar debería ser menor. El impacto de
asignar una magnitud para el peso por defecto de éste factor es alto porque su
peso es igual a dos.
Como hemos podido ver los factores que más afectan los resultados del
modelo son los que tienen un peso más alto como por ejemplo: Familiaridad
con el proyecto, Sistema distribuido requerido, Soporte de plataformas
cruzadas, requerimientos estables.
Finalmente podemos concluir que la subjetividad del estimador no va a estar
limitada siempre y cuando no exista un estándar definido para cada uno de los
factores que permitan evaluar mas acertadamente cada uno de ellos y que
dicha evaluación esté mas encaminada a satisfacer los objetivos del proyecto
en el que se este aplicando.
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
3. COCOMO II Constructive Cost Model
Para el caso de COCOMO II, basados en el ejercicio base del conteo de puntos
de casos de uso sin ajustar (Ver anexos punto Ejercicio de estimación usando
Use case points), el análisis se enfoco en analizar detalladamente por grupo de
variables la afectación sobre el estimativo inicial. Esto con el fin de poder
establecer un conocimiento de comportamiento del modelo ante una
circunstancia especifica del entorno o desarrollo de un proyecto.
Teniendo como base 200 UUCP, se realiza un cálculo preliminar evaluando
cada una de las variables de los 5 grupos de evaluación en la calificación
mínima, para poder realizar el análisis de sensibilización por cada uno de ellos;
esto con el fin de poder identificar claramente las variaciones en el estimado
final.
Resultado
del
análisis
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
Resultado Análisis Modelos.
Software Scale Drivers
Precedentedness
Development Flexibility
Architecture / Risk Resolution
Team Cohesion
Process Maturity
Software Cost Drivers
Product
Required Software Reliability
Data Base Size
Product Complexity
Developed for Reusability
Documentation Match to Lifecycle Needs
Personnel
Analyst Capability
Programmer Capability
Personnel Continuity
Application Experience
Platform Experience
Language and Toolset Experience
Project
Required Development Schedule Bajo
Multisite Development bajo
Use of Software Tools bajo
Platform
Platform Volatility baja
Storage Constraint bja (nominal es mas baja)
Time Constraint alta
bajo
alto
nominal Personas nominal tiempo nominal costo bajo Personas bajo tiempo costo
personas
39
12
59151
41
12
62718
39
12
59151
41
12
62055
39
12
59151
42
12
63238
39
12
59151
41
12
62290
39
12
59151
42
12
63673
alto
tiempo
36
36
35
36
35
11
12
11
12
11
alto
costo
54178
55055
53517
53731
52964
39
39
39
39
39
12
12
12
12
12
59151
59151
59151
59151
59151
39
35
28
38
31
11
11
11
12
11
47912
53236
43180
57968
47912
49
50
68
48
48
13
13
14
13
13
74531
75714
102924
73348
72756
39
39
39
39
39
39
12
12
12
12
12
12
59151
59151
59151
59151
59151
59151
55
52
50
48
46
47
13
13
13
13
13
13
83995
79263
76305
72165
70390
70982
27
29
31
31
33
33
11
11
11
11
11
11
41997
44955
47912
47912
50278
49687
39
39
39
12
12
12
59151
59151
59151
56
48
46
9
13
12
84586
72165
69207
39
31
30
19
11
11
59151
47321
46138
39
39
39
12
12
12
59151
59151
59151
34
39
39
11
12
12
51462
59151
59151
51
57
64
13
13
14
76897
86361
96417
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
Del análisis anterior se infiere, que COCOMO II es un modelo muy orientado al
grupo de trabajo, ya que estas variables tienen más influencia en el resultado
del estimativo de esfuerzo. Aunque COCOMO II contempla aspectos muy
relevantes de la ejecución de un proyecto que no son tenidos en cuenta en
otros métodos estimativos, se enfoca en el conocimiento detallado de los
participantes del proyecto, su experticia, su ambiente de trabajo, la distribución
geográfica, el dominio de las herramientas de soporte y la accesibilidad a
dichas herramientas. Conceptos claves ya que son estos los que pueden
generar mayor incertidumbre en la ejecución del proyecto.
Enfocándonos en el grupo de análisis del personal, que es el que demuestra
ser más sensible en razón de la producción de un estimativo, es necesario que
se realice un estudio muy detallado de cada uno de los miembros del equipo de
trabajo ya que se evidencia según el estudio anterior que una mala definición
de estas variables puede variar el estimado total en razón de un 33% aproxima
adicional de personal y un 40% adicional en costos aproximadamente cuando
se subestiman las capacidades del equipo de trabajo y en una razón de 31%
menos de personal y un 30% menos de costos cuando se sobrestiman las
capacidades del equipo de trabajo.
Con los resultados anteriores, llegamos a la conclusión que los estimativos
basados en el modelo COCOMO II, pueden tener mayor nivel de certeza en
grupos de trabajo consolidados, en los cuales se conozca con un mayor nivel
de certeza el trabajo y la experticia de cada uno de los colaboradores, ya que
se reducirá la incertidumbre de desfasar un estimación por desconocimiento del
grupo de trabajo. Adicionalmente, se recomienda el uso de información
histórica dirigida a medir información como: nivel de productividad, experiencia,
y desempeño del personal, con el fin de catalogarlos en dirección de los
parámetros del modelo de COCOMO II.
Según el análisis de sensibilidad del modelo COCOMO II, se puede llegar a la
conclusión que la variable menos afectada por un desfase (+/-) del estimativo
es la variable del tiempo, ya que en el análisis esta solo se ve afectada en
razón de 16% por encima y de 9 % por debajo del valor nominal. No quiera
esto decir que deja de ser un valor significativo pero si un valor, que no genera
un desfase demasiado proporcional en el estimativo final cuando el modelo no
se encuentra afinado. Es necesario tener en cuenta que existe un parámetro en
especial que demostró generar un desfase muy significativo y el cual se debe
tener muy en cuenta al momento de realizar su calificación en el modelo, ya
que genero un desfase de 25% menos y 58% más en el resultado final del
estimativo del tiempo. Este parámetro “Required Development Schedule”, hace
referencia a las restricciones de cronograma y debido a su naturaleza restringe
notablemente los límites temporales de la estimación.
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
Adicionalmente se puede extraer del estudio de sensibilidad que algunas
características no funcionales pueden llegar modificar el resultado final del
estimativo cuando el nivel de complejidad relacionado a mantenibilidad,
escalabilidad y reusabilidad es alto. Son estas características que al evaluar se
tienen que tener muy claras las expectativas frente a estas ya que de aumentar
su nivel de complejidad pueden significar un aumento en esfuerzo significativo
para el estimativo final, son todas estas características evaluadas en el grupo
de drivers del costo del producto software.
Enfocándonos en los grupos de plataforma, al igual que el grupo de personal
puede ser muy sensible en el momento de realizar una estimación, se debe
realizar un análisis muy detallada de la complejidad del sistema a si como
también de las restricciones a nivel de tiempo y espacio de almacenamiento, ya
que estas afectan considerablemente al esfuerzo y al costo, esto se puede ver
reflejado un estudio anterior ya que cualquiera de las variables puede llegar a
afectar al esfuerzo entre un 30% y un 60% aproximadamente esto cuando se
va a realizar un software con restricciones de plataforma elevadas, lo cual
implica que los costos se vean afectados de igual forma y en la misma tasa de
crecimiento. No se debe de ninguna manera sobrestimar la complejidad del
sistema ni tampoco subestimarla, recomendaríamos que se elaboraran criterios
de calificación para poder determinar el valor de cada una de estas variables,
estos se podrían realizar en base a la experiencia o desde el punto de vista de
los expertos.
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
4. Anexos
4.1 Ejercicio de estimación usando Use case points
Para este ejercicio se seleccionaron los casos de uso identificados en una
tarea anterior (Tarea 2 Casos de uso). Los casos de uso identificados son los
siguientes:
CU0001-Adicionar un empleado
CU0002-Actualizar la información de un empleado
CU0003-Borrar información del empleado
CU0004-Consulta sobre un empleado
CU0005-Ver una lista de los empleados
CU0006-Agregar información de un puesto de trabajo
CU0007-Actualizar la información del puesto de trabajo
CU0008-Borrar información de un puesto de trabajo.doc
CU0009-Consulta de un puesto de trabajo individual.doc
CU0010-Ver una lista de los puestos de trabajo.doc
CU0011-Asignar un empleado a un puesto de trabajo
CU0012-Transferir un empleado
CU0013-Borrar información de la asignación a un puesto de trabajo
CU0014-Consultar la asignación de un puesto de trabajo
CU0015-Ver una lista de las asignaciones de puestos de trabajo
Los actores identificados son los siguientes:
Actor Estudiantes
Actor Asignaciones
Actor Puestos de Trabajo
Para este ejercicio tres de los integrantes del grupo realizamos el ejercicio de
calificar los factores por aparte, sin discutir sobre la interpretación de los
factores a calificar. A continuación se muestran los puntos de casos de uso sin
ajustar y el actor weighting desde donde partió el ejercicio por parte de cada
uno de los integrantes
Puntos de casos de uso
Complejidad
1
2
3
4
5
6
7
8
Complejo
Complejo
Complejo
Complejo
Complejo
Complejo
Complejo
Promedio
Multiplicador
Nombre del caso de uso
15
15
15
15
15
15
15
10
CU0001-Adicionar un empleado
CU0002-Actualizar la información de un empleado
CU0003-Borrar información del empleado
CU0004-Consulta sobre un empleado
CU0005-Ver una lista de los empleados
CU0006-Agregar información de un puesto de trabajo
CU0007-Actualizar la información del puesto de trabajo
CU0008-Borrar información de un puesto de trabajo.doc
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
9
10
11
12
Complejo
Promedio
Complejo
Complejo
15
10
15
15
13
Simple
5
14
Complejo
15
15
Promedio
10
CU0009-Consulta de un puesto de trabajo individual.doc
CU0010-Ver una lista de los puestos de trabajo.doc
CU0011-Asignar un empleado a un puesto de trabajo
CU0012-Transferir un empleado
CU0013-Borrar información de la asignación a un
puesto de trabajo
CU0014-Consultar la asignación de un puesto de
trabajo
CU0015-Ver una lista de las asignaciones de puestos
de trabajo
Los puntos de casos de uso sin ajustar fueron calculados como se muestra en
la siguiente tabla:
Puntos de casos
Multilpicador
de uso sin ajustar
1
Simple
5
2
Average
10
3
Complex
15
Casos
de
uso
1
3
11
Description
Caso de uso simple- Hasta 3 transacciones.
Caso de uso promedio- 4 a 7 transacciones
Caso de uso complejo- Mas de 7
transacciones
200
Total
Casos de uso sin ajustar = 200 UUCP
Actor weighting
Complejidad
actores
1
2
3
Multiplicador
Complejo
Complejo
Complejo
3
3
3
Nombre del actor
Actor Estudiantes
Actor Asignaciones
Actor Puestos de Trabajo
El actor weighting fue calculado como se muestra en la siguiente tabla:
Actor weighting
Multiplicador
1
Simple
1
2
Promedio
2
3
Complejo
3
Total
Actor weighting = 9
Número de
actores
0
0
3
9
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
Hasta este punto la información es común para cada uno de los integrantes. De
aquí en adelante se muestran las calificaciones a los criterios ambientales y
técnicos asignados por cada uno de los participantes del ejercicio.
Integrante 1 - Camilo Forero
Factores ambientales
Factor ambiental
Multiplicador
Calificación
(0-5)
1
Familiarity With The
Project
1,5
4
2
Application Experience
0,5
5
3
OO Programming
Experience
1
5
4
Lead Analyst Capability
0,5
5
5
Motivation
1
4
6
Stable Requirements
2
2
7
Part Time Staff
-1
0
8
Difficult Programming
Language
-1
3
0,77
Total
Factores de complejidad técnica
Factor técnico
Multiplicador
Calificación
(0-5)
1
Distributed System
Required
2
3
2
Response Time Is
Important
1
3
3
End User Efficiency
1
3
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
4
Complex Internal
Processing Required
1
2
5
Reusable Code Must
Be A Focus
1
2
6
Installation Ease
0,5
7
Usability
0,5
3
3
8
Cross-Platform
Support
2
2
9
Easy To Change
1
2
10
Highly Concurrent
1
2
11
Custom Security
1
2
12
Dependence On ThirdParty Code
1
2
13
User Training
1
1
0,92
Total
Total horas de esfuerzo
Calculos
TCF
Factor de complejidad técnica
EF
Factor ambiental
UUCP
Puntos de caso de uso sin ajustar
AW
Actor Weighting
Calculo de puntos de caso de uso
UCP
Puntos de caso de uso
Calculo de esfuerzo estimado
Ratio
Horas de esfuerzo por caso de uso
Horas de esfuerzo
0,92
0,77
200
9
148,1
20
2.961
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
Integrante 2 - Alexandra Marín
Factores ambientales
Factor ambiental
Multiplicador
Calificación
(0-5)
1
Familiarity With The
Project
1,5
4
2
Application Experience
0,5
4
3
OO Programming
Experience
1
4
4
Lead Analyst Capability
0,5
4
5
Motivation
1
4
6
Stable Requirements
2
5
7
Part Time Staff
-1
1
8
Difficult Programming
Language
-1
5
0,74
Total
Factores de complejidad técnica
Factor técnico
Multiplicador
Calificación
(0-5)
1
Distributed System
Required
2
3
2
Response Time Is
Important
1
3
3
End User Efficiency
1
4
4
Complex Internal
Processing Required
1
1
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
5
Reusable Code Must
Be A Focus
1
2
6
Installation Ease
0,5
7
Usability
0,5
5
5
8
Cross-Platform
Support
2
1
9
Easy To Change
1
3
10
Highly Concurrent
1
5
11
Custom Security
1
2
12
Dependence On ThirdParty Code
1
3
13
User Training
1
1
0,97
Total
Total horas de esfuerzo
Calculos
TCF
Factor de complejidad técnica
EF
Factor ambiental
UUCP
Puntos de caso de uso sin ajustar
AW
Actor Weighting
Calculo de puntos de caso de uso
UCP
Puntos de caso de uso
Calculo de esfuerzo estimado
Ratio
Horas de esfuerzo por caso de uso
Horas de esfuerzo
0,97
0,74
200
9
150,0
20
3.000
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
Integrante 3 - Javier Murcia
Factores ambientales
Factor ambiental
Multiplicador
Calificación
(0-5)
1
Familiarity With The
Project
1,5
4
2
Application Experience
0,5
5
3
OO Programming
Experience
1
5
4
Lead Analyst Capability
0,5
5
5
Motivation
1
3
6
Stable Requirements
2
2
7
Part Time Staff
-1
3
8
Difficult Programming
Language
-1
0
0,8
Total
Factores de complejidad técnica
Factor técnico
Multiplicador
Calificación
(0-5)
1
Distributed System
Required
2
0
2
Response Time Is
Important
1
2
3
End User Efficiency
1
3
4
Complex Internal
Processing Required
1
0
Análisis de sensibilización de la
estimación usando COCOMO II y
puntos de casos de uso (Use Case
points)
5
Reusable Code Must
Be A Focus
1
3
6
Installation Ease
0,5
7
Usability
0,5
3
3
8
Cross-Platform
Support
2
3
9
Easy To Change
1
3
10
Highly Concurrent
1
2
11
Custom Security
1
4
12
Dependence On ThirdParty Code
1
3
13
User Training
1
3
0,97
Total
Total horas de esfuerzo
Calculos
TCF
Factor de complejidad técnica
EF
Factor ambiental
UUCP
Puntos de caso de uso sin ajustar
AW
Actor Weighting
Calculo de puntos de caso de uso
UCP
Puntos de caso de uso
Calculo de esfuerzo estimado
Ratio
Horas de esfuerzo por caso de uso
Horas de esfuerzo
0,92
0,8
200
9
153,8
20
3.076
Descargar