Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estimacion
Estimacion
ESTIMACIN DE PROYECTOS
SOFTWARE
Pg. 1
CONTENIDO
TEMA 1:
INTRODUCCIN
TEMA 2:
ESTIMACIN DE SOFTWARE
TEMA 3:
MTRICAS DE SOFTWARE
TEMA 4:
TCNICAS DE ESTIMACIN
TEMA 5:
MTODO DE ESTIMACIN
DE PUNTOS DE FUNCIN
TEMA 6:
BIBLIOGRAFA
Pg. 2
TEMA 1:
INTRODUCCIN
Pg. 3
Pg. 4
Coste
100
80
Desarrollo
60
40
Software
20
Mantenimiento
Ao
1955
1975
1995
Por lo tanto, las claves del xito en la gestin del desarrollo de software son: una adecuada gestin del proyecto
de desarrollo de software y una adecuada gestin del proceso de software.
Qu entendemos por gestin del proyecto de desarrollo de software?
La gestin del proyecto consiste en la utilizacin de las tcnicas y actividades de gestin requeridas
para conseguir un producto software de alta calidad, de acuerdo con las necesidades de los usuarios,
dentro de un presupuesto y con una planificacin de tiempos establecidos previamente.
Qu es entonces, la gestin del proceso del software?
La gestin del proceso es el conjunto de tcnicas y actividades que permiten una adecuada gestin de
los procesos personales de los constructores y de los productos que participan en el proyecto.
A lo largo de esta Unidad y en las Unidades de Planificacin y Seguimiento profundizaremos en los conceptos de
la gestin de proyectos. Veremos las actividades que lo componen y cmo llevarlas a cabo eficazmente. La
gestin del proceso se ver cuando se explique el propio proceso de desarrollo.
En primer lugar daremos una definicin rigurosa de proyecto.
Un proyecto es una accin en la que recursos humanos, financieros y materiales se organizan de una
nueva forma para acometer un trabajo nico. En este trabajo, dadas unas especificaciones y dentro de
Pg. 5
unos lmites de costes y tiempo, se intenta conseguir un cambio beneficioso dirigido por unos objetivos
cualitativos y cuantitativos.
El aspecto esencial de un proyecto es el ser un trabajo nico que se realiza con una nueva organizacin para
producir un cambio beneficioso. Estos elementos implican que un proyecto lleva una incertidumbre considerable
y riesgo, y por lo tanto su xito depender en gran medida de una adecuada gestin.
Pg. 6
Existen muchas ms, pero stos son una muestra de la situacin, y de la poca exactitud del seguimiento.
Pg. 7
As mismo, adems de la omisin de datos, la descripcin de cuentas utilizadas para acumular costes no es lo
suficientemente detallada como para llevar una contabilidad seria del proyecto. Algunos costes se acumulan
solamente como gasto del proyecto, y estn ms pensados para ser utilizados por los contables, que para
servir de ayuda a los jefes de proyectos.
1.2.4. Relacin entre las Actividades Clave de la Gestin de Proyectos
Los conceptos anteriores pueden dar la falsa impresin de que cada uno de los procesos descritos es
independiente, discreto y de que se aplican una sola vez. El hecho es que ste no es el caso. Cuando tenemos
una estimacin inicial sobre el proyecto que vamos a desarrollar, debemos de definir una planificacin para
el proyecto siempre dentro del marco de esa estimacin, es decir, la salida del proceso de estimacin debe ser
una de las entradas del proceso de planificacin. Una vez realizada la planificacin comenzaremos el
seguimiento del proyecto. Por lo tanto, las entradas del proceso de seguimiento sern la estimacin y
planificacin del proyecto, adems de los datos reales recogidos mientras evoluciona el proyecto. Durante la
realizacin del proceso de seguimiento se puede producir una replanificacin si nos apartamos del plan
original. Una fuerte desviacin durante el seguimiento puede ser la consecuencia, por ejemplo, de un cambio
en la naturaleza del proyecto. En ese caso, necesitaremos una reestimacin y replanificacin en
consecuencia, como muestra la Figura 1.2.
La gestin del desarrollo del software es ineficaz a causa de que dicho desarrollo es extremadamente complejo,
disponindose de pocas medidas para guiar y evaluar el proceso. De esta manera sin una estimacin eficaz y
exacta, la planificacin y el seguimiento eficaces son prcticamente imposibles de conseguir.
ESTIMACION
PLANIFICACION
SEGUIMIENTO
DESARROLLO
A partir de este momento, esta Unidad se centra en el proceso de Estimacin de software. Existen otras unidades
que tratan la Planificacin y el Seguimiento.
Pg. 8
TEMA 2:
ESTIMACIN DE SOFTWARE
Pg. 9
No existe un modelo de estimacin universal o una formula que pueda ser usada para todas las
organizaciones. El hecho es que se pueden definir unos principios generales, pero cada interpretacin
es particular y diferente del resto. Cada organizacin tiene sus propios recursos, procedimientos e
historia; y es necesario ajustar los procesos de estimacin a esos parmetros nicos. Adems, a medida
que estos parmetros cambien, deben cambiar los procesos de estimacin.
2.
Hay muchas personas implicadas en los proyectos que precisan de estimaciones. La alta direccin de
la empresa necesita las estimaciones para tomar decisiones de negocio, sobre la viabilidad del proyecto
y su continuidad a lo largo del desarrollo. La direccin del proyecto necesita las estimaciones para
hacer sugerencias a la alta direccin, para obtener los resultados necesarios para el desarrollo del
proyecto, y para hacer una planificacin detallada y controlar el proyecto. Cada recurso del proyecto
tambin necesita estimaciones para planificar y controlar su propio trabajo.
3.
La utilidad de una estimacin tambin depender de la etapa de desarrollo en la que nos encontremos.
Al comienzo de un proyecto, normalmente slo se necesitan estimaciones de coste y duracin
aproximadas. A medida que el proyecto madura las estimaciones que se necesitan sern ms exactas.
Con lo que una estimacin til al comienzo del proyecto puede no serlo ms tarde.
Pg. 10
4.
La estimacin, a menudo, se hace superficialmente, sin apreciar el esfuerzo requerido para hacer un
trabajo. Adems, tambin se suele dar el caso de que la estimacin sea necesaria antes de obtener las
especificaciones de requisitos del sistema. Por esta razn, una situacin tpica es que se presiona a los
estimadores para que se apresuren en escribir una estimacin anticipada del sistema que no
comprenden an.
5.
Las estimaciones claras, completas y precisas son difciles de formular, especialmente al inicio del
proyecto. Los cambios, adaptaciones y ampliaciones son ms la regla que la excepcin: como
consecuencia de ello, deben adaptarse tambin las planificaciones y los objetivos.
6.
Las caractersticas del software y de su desarrollo hacen difcil la estimacin. Por ejemplo, el nivel de
abstraccin, la complejidad, el grado de medicin del producto y del proceso, los aspectos
innovadores,...
7.
8.
9.
Existe una tendencia aparente de los desarrolladores hacia la subestimacin. Un estimador suele elegir
una porcin de software debera tomar para luego extrapolarlo al resto del sistema, normalmente se
ignoran los aspectos no lineales del desarrollo de software, por ejemplo, la coordinacin y la gestin.
10.
El estimador estima el tiempo que le llevara ejecutar personalmente una tarea, ignorando el hecho de
que, a menudo, una parte del trabajo la realiza personal menos experimentado, con un ndice de
productividad menor.
11.
Existen malas interpretaciones en las relaciones lineales entre la capacidad requerida por unidad de
tiempo y el tiempo disponible. Esto significa que el software desarrollado por 25 personas en dos aos
podr ser llevado a cabo por 50 personas en un ao. Esta interpretacin es errnea. Como ya se
coment en otra Unidad una mujer puede dar a luz un nio a lo largo de 9 meses, pero 9 mujeres no
dan a luz un nio en un mes. Aadir personal a un proyecto retrasado no tiene por qu disminuir el
retraso.
12.
El estimador tiende a reducir en algn grado las estimaciones para hacer ms aceptable la oferta.
13.
Pg. 11
Es importante profundizar ms en el tema de los disparadores de coste. Para mostrar su importancia, estudiaremos
a continuacin algunos de ellos repartidos en cinco categoras, como se muestra en la Tabla 2.1.
Tamao del
software
Calidad requerida
Volatilidad de
requisitos
Complejidad del
software
CON QU
significado
Restricciones
del ordenador
- tiempo de
ejecucin
- tiempo de
respuesta
- capacidad de
memoria
Usuarios de
herramientas
Nivel de utilizacin
Cantidad de
documentacin
Tipo de aplicacin
Uso de tcnicas
modernas de
programacin
- ocultacin de
informacin
- equipo de
programacin
principal
- programac.
estructurada
- diseo top-down
QUIN
personal
CMO
proyecto
PARA QUIN
usuario
Participacin
Nmero de usuarios
Estabilidad de la
organizacin del
usuario,
procedimientos,
formas de trabajo
Experiencia del
usuario con la
informtica, nivel de
conocimientos
informticos
Pg. 12
Hay una falta de definiciones claras y aceptadas de los disparadores, tales como tamao,
calidad, complejidad, experiencia,... Por ejemplo, cundo se dice que un desarrollador es
experimentado y cundo no.
Cuantificacin:
La mayora de los disparadores de coste son difciles de cuantificar. A menudo, se utilizan
medidas tales como: mucho, moderado, poco,...
Objetividad:
La objetividad es un factor de riesgo potencial. Lo que puede ser complejo para el
desarrollador A, puede no serlo para el B.
Correlacin:
Es difcil considerar un driver independiente de los dems. Un cambio en el driver A, puede
tener consecuencias en los valores de otros disparadores. Esta es una dificultad tremenda
desde el punto de vista de la medibilidad.
Relacin entre disparador y esfuerzo:
Para la estimacin es importante poder predecir la relacin entre, por ejemplo, el tamao del
software y el esfuerzo requerido, el nivel de calidad especificado y el esfuerzo requerido, etc.
Calibracin:
Es imposible hablar de los disparadores de coste ms importantes de forma aislada. Una
situacin difiere mucho de otra.
Todos estos aspectos pueden proporcionar una idea de la complejidad del proceso de estimacin. Sin embargo,
tambin se han destacado las consecuencias negativas de la falta de este proceso, y la importancia de su
aplicacin.
Debe poseer una importante formacin y experiencia profesional que le ayuden a entender y
solucionar los problemas de la gestin de proyectos.
Pg. 13
2.
Debe tener una posicin en la organizacin que le permita adoptar un juicio independiente.
3.
Debe basarse en un mtodo que pueda ser explicado, cuestionado, discutido y auditado por otros
expertos.
4.
Siempre que use una herramienta de estimacin, sta debe ajustarse a su propsito de estimacin y
debe soportar el mtodo. La herramienta tambin debe estar documentada y controlada.
5.
Debe ser capaz de describir su experiencia en cada estimacin. Es decir, describir los problemas a los
que ha tenido que enfrentarse, las soluciones, etc.
6.
Debe ser capaz de documentar su estimacin, incluyendo los resultados obtenidos y cualquier
informacin necesaria para hacer el proceso de estimacin repetible y verificarle.
Pg. 14
Informacin
100
Instalacin
Concepcin
Vida del
producto
Software
Una vez que los requisitos han sido definidos, se necesita una estimacin ms detallada para la siguiente fase,
diseo del producto, con el fin de utilizarla para confeccionar una planificacin para dicha fase. Tambin se
necesita una estimacin a ms alto nivel para el resto del proyecto. En este momento, los parmetros descriptivos
y genricos que se emplean para hacer la primera estimacin se conocen ms exactamente, y tambin se dispone
de informacin adicional sobre los recursos que intervendrn en el desarrollo, como por ejemplo la experiencia de
los desarrolladores.Error! Marcador no definido.
Despus de que el diseo del producto ha finalizado, puede ser incluso que la base de la estimacin haya
cambiado, es decir, se puede pasar de utilizar parmetros descriptivos a emplear otros ms detallados como el
nmero de mdulos esperados, o el nmero de lneas de cdigo. Tambin podran conocerse consideraciones
tecnolgicas a un nivel de detalle razonable.
Al final de la fase de diseo detallado, la informacin sobre el nmero de mdulos y lneas de cdigo, por
ejemplo, puede ser refinada para la mejora de las estimaciones de las restantes fases.
Cuando la codificacin, las pruebas y la instalacin han finalizado podemos obtener datos sobre el rendimiento y
la calidad del sistema que, cuantificados adecuadamente, pueden constituir la base para la estimacin de defectos.
Estos datos, junto con el conocimiento sobre el entorno del desarrollo, permitirn realizar estimaciones para la
fase de mantenimiento.
La Figura 2.2 muestra la exactitud con la que las estimaciones software se pueden hacer, en funcin de las fases
del ciclo de vida tradicional, o el grado de conocimiento que tenemos sobre lo que pretende hacer el software.
Ana M Moreno S.-Capuchino
Pg. 15
Exactitud
4x
tipos de personas
y datos
tipo de consultas
carga de datos, tpo. de respuesta
esttructuras de datos internas
algoritmos detallados
entendimeitno de
especificaciones
2x
1.5x
1.25x
x
0.8x
0.67x
0.5x
0.25x
Especificacin
requisitos
Iniciacin
Viabilidad
Planificacin
y requisitos
Especificacin
de diseo
Diseo
producto
Especificacin
de diseo detallado
Diseo
detallado
Software
aceptado
Desarrollo y
pruebas
Fasess del
Software
Como puede verse en la Figura 2.2, cuando comenzamos a estudiar las distintas posibilidades para desarrollar un
nuevo sistema, las estimaciones pueden oscilar en un rango de cuatro veces por arriba o por abajo. Este rango
proviene de la gran incertidumbre que se tiene en este momento sobre la naturaleza real del producto. As, por
ejemplo, no se sabe qu tipo de personas (gestores, consultores, analistas,...) o qu tipos de datos (digitales o
analgicos, numricos o texto,...) soportarn el sistema.
Las incgnitas anteriores se conocen cuando finaliza la fase de viabilidad y se decide un procedimiento de
operacin. En este momento, el rango de nuestra estimacin disminuye en dos en cada direccin. Este rango es
razonable porque todava no se tiene informacin sobre los tipos de consulta que soportar el sistema, las
funciones concretas, etc. Estos elementos sern conocidos en el momento de realizar la especificacin de
requisitos, en el que la estimacin software estar en un rango de 1,5 en cada direccin.
En el momento en que hayamos completado y validado la fase de diseo del producto, tendremos informacin
sobre la estructura de datos interna del producto software, sobre las tcnicas para el manejo de buffers, etc. En
este momento la estimacin software tendr un rango de exactitud del 1,25. Existen todava incgnitas, como los
algoritmos que se usarn para la planificacin de tareas, el manejo de errores o los procedimientos de parada del
sistema. Estas sern conocidas al final de la fase de diseo detallado, pero existir todava una incertidumbre del
10% basada en la exactitud con la que los programadores entiendan las especificaciones que tienen que codificar.
Pg. 16
Para otros ciclos de vida como, prototipado o desarrollos en tiempo real, el proceso de estimacin sera muy
similar, y en todos ellos a medida que el proyecto progresa, la base de la estimacin y las salidas esperadas de este
proceso cambiarn.
2.4. Salidas del Proceso de Estimacin
En esta seccin intentaremos dar respuesta a la siguiente pregunta.
Qu es lo que debemos estimar?
Cuando se habl de la definicin de estimacin, se vieron dos preguntas a las que este proceso deba dar
respuesta. Estas preguntas eran:
Cunto costar?
Cunto tiempo llevar hacerlo?
Esta informacin constituye la informacin bsica de todo proceso de estimacin. Los distintos mtodos
existentes para realizar este proceso proporcionan informacin adicional para dar respuestas, en funcin del
mtodo, a algunas de las siguientes preguntas:
Cunta gente se necesita?
De qu perfiles?
Cules son los riesgos?
Cmo afectan las restricciones impuestas a las estimaciones?
Cunto esfuerzo se necesita para realizar cada fase del ciclo de vida?
Cmo impacta este proceso en el resto de los proyectos de la empresa?
Cul ser el esfuerzo para mantener este proyecto?
Cul ser el tamao del sistema? (lneas de cdigo)
Cuntos defectos tendr el producto?
Cunta documentacin ser generada?
Cul ser el esfuerzo para confeccionar dicha documentacin?
Se podra crear una lista compuesta por todas estas preguntas, para utilizarla como base para la solucin al
problema de Qu estimar? As, se observara que existen muchos conceptos en la mente de los estimadores. Sin
embargo, dada la rpida evolucin de los mtodos de desarrollo de sistemas y la creciente diversificacin de
alternativas hardware, es correcto suponer que esta lista aumenta constantemente.
Todos estos parmetros que se pretenden obtener, son en realidad medidas sobre el producto software, es decir
mtricas, de las que hablaremos en el tema siguiente.
Pg. 17
TEMA 3:
MTRICAS DE SOFTWARE
Pg. 18
Pg. 19
Estos paquetes estn basado en modelos de estimacin y el ms conocido es el COCOMO, desarrollado por
Barry Boehm en 1981 aunque existen otros como son ESTIMACS, SOFTCOST, SPQR o COPMO, que se
explicarn posteriormente.
Existe una gran cantidad de investigacin sobre esta rea en EE.UU., Europa y otros lugares. Hay
organizaciones especialmente interesadas en la implantacin de mtricas en el desarrollo de software, por
ejemplo el Departamento de Defensa de EE.UU.
El control de proyectos de desarrollo de software a travs de medidas es un rea que esta generando un gran
inters tanto en Europa como en EE.UU. Este es un tema que ha alcanzado un inters relevante con el
incremento de contratos a precio fijo para desarrollar un producto software y la utilizacin de clusulas de
penalizacin en los mismos en caso de retrasos, sobrecostos, etc...
La prediccin de los niveles de calidad del software, a menudo en trminos de fiabilidad, es otra rea en que
las Mtricas de Software tienen un importante papel que jugar.
El uso de las Mtricas de Software en proporcionar una verificacin cuantitativa del diseo del software es
otra rea bien definida. Estas mtricas no se van a estudiar en esta Unidad sino en la Unidad de Diseo.
Recientemente se ha estudiado el efecto de los factores del entorno en la eficacia de los procesos de
desarrollo. Esta opcin no esta abierta para todas las organizaciones, pero existe una gran preocupacin sobre
como incrementar la productividad de los procesos de desarrollo, introduciendo cambios en el entorno en el
cual aquellos tienen lugar. Las medidas pueden ser utilizadas para identificar donde deberan concentrarse
los cambios.
La utilizacin de las Mtricas para comparar unas organizaciones con otras es un rea de aplicacin muy
importante. CSC-Index en Europa y el Software Engineering Institute en EE.UU. ofrecen este tipo de
servicios a la industria y muchas organizaciones los utilizan. Un resultado de esta aplicacin es que se puede
identificar qu se est haciendo mal y quin lo esta haciendo bien y aprender de esas empresas.
Finalmente, el uso ms comn de las medidas de software es la provisin de informacin de gestin, que
incluye datos acerca de la productividad, calidad y eficacia de los procesos. El valor de esta informacin est
en analizar los datos de las tendencias, da a da. Est mejorando o empeorando la calidad de un equipo de
desarrollo? Si es as, por qu ocurre? qu puede hacer la direccin para mejorar la situacin?
Este campo ofrece pues importantes aspectos para mejorar la calidad de los procesos de desarrollo de
software.
3.3. Caractersticas de las Mtricas de Software
La calidad de las medidas debera facilitar el desarrollo de modelos que sean capaces de predecir el
comportamiento de determinados parmetros que afectan al desarrollo de productos o de procesos.
Una medida ideal debera ser:
Pg. 20
Objetiva.
Sencilla, definible con precisin para que pueda ser evaluada.
Fcilmente obtenible (a un coste razonable).
Valida, la mtrica debera medir exactamente lo que se quiere medir y no otra cosa.
Robusta. Debera de ser relativamente insensible a cambios poco significativos en el proceso o
en el producto.
Adems, para una mejor utilizacin de estas medidas, a la hora de realizar estudios analticos o anlisis
estadsticos deberan de tener unos valores que se ajusten a una cierta escala de medida.
Pg. 21
Otra forma de clasificar las mtricas puede ser en mtricas primitivas o mtricas calculadas. Las mtricas
primitivas son aquellas que pueden ser observadas directamente, tales como las lneas de cdigo, nmero de
defectos observados en una prueba unitaria o el tiempo de desarrollo total de un proyecto. Mtricas
calculadas son aquellas que no pueden ser observadas directamente sino que se obtienen a partir de otras.
Ejemplos de este tipo de medidas pueden ser las utilizadas en la expresin de la productividad como lneas
de cdigo producidas por una persona durante un mes o para la calidad del producto, el nmero e errores por
cada mil lneas de cdigo. Las mtricas calculadas son combinaciones de otros valores de medidas y son
valiosas para comprender o evaluar los procesos del software.
Pg. 22
calcularse de muchas maneras. Estas diferencias afectan al tratamiento de las lneas en blanco y las lneas de
comentarios, las sentencias no ejecutables, las instrucciones mltiples por lnea y las mltiples lneas por
instruccin. Adems, deberan contarse las lneas reusables de cdigo.
La definicin ms comn es la siguiente:
Una lnea de cdigo es cualquier lnea de un texto de un programa que no es un
comentario o lnea en blanco, sin tener en cuenta el nmero de instrucciones o parte de
instrucciones en la lnea.
Esta definicin incluye todas las lneas que contienen cabeceras de programas, declaraciones e
instrucciones ejecutables y no ejecutables. Esta medida se suele representar por NCLOC (No
Comentary Lines of Code).
Sin embargo, en algunos casos, por ejemplo cuando deseamos conocer qu capacidad de almacenamiento
que necesitamos para el cdigo fuente o cuntas pginas vamos a imprimir, esta medida debe incluir los
comentarios.
Como puede verse no es una medida que refleje la longitud real de un programa. Su justificacin est en el
uso que se ha hecho de ella en ciertos modelos para determinar el esfuerzo desde el punto de vista de evaluar
la productividad. Sin embargo, si queremos conocer la longitud real del programa esta seria:
LOC = NCLOC + CLOC
donde CLOC (Comentary Lines of Code(es el nmero de lneas de comentarios.
Una medida indirecta de la densidad de comentarios seria:
CLOC / LOC
En general, es interesante obtener ambas medidas (NCLOC Y LOC) ya que expresan diferentes conceptos.
Cuando se intenta utilizar esta medida (lneas de cdigo) en trminos de productividad surgen dos
problemas:
a) No se tiene en cuenta el concepto de reutilizacin.
b) No se tiene en cuenta el concepto de costes fijos ni
instrucciones.
Por ello, no debe ser utilizada esta medida directamente en la estimacin de esfuerzo o productividad.
Cuando se est buscando la nocin pura de longitud existen dos alternativas aceptables si se quiere utilizar
bajo el concepto de ratio:
1.
Pg. 23
2.
Medir la longitud en trminos de nmero de caracteres en el texto del programa. (CHAR, del ingls
Character)
Si se conoce el nmero medio de caracteres por lnea de texto, NL; el nmero de lneas sera:
LOC = CHAR/NL
b) Especificaciones de diseo: La definicin de medidas anlogas a la de longitud para las especificaciones
y los documentos de diseo no es fcil. Al comienzo del ciclo de vida, tales documentos consisten en una
infinidad de texto, grafos, diagramas matemticos y smbolos. La naturaleza de aquellos depender en
particular del estilo, el mtodo o la notacin utilizada. Unas especificaciones o un diseo, estn compuestos
por textos o diagramas, los cuales parecen inmedibles con relacin a la longitud.
Una medida que se ha utilizado para permitir las comparaciones es la del Nmero de Pginas. Sin embargo,
la unidad pgina no puede ser formalmente definida si se desea incluir textos y diagramas.
Si un documento de especificaciones o de diseo est compuesto de textos y diagramas donde estos ltimos
tienen una sintaxis uniforme, entonces se podra representar la longitud del texto y la de los diagramas.
Tambin se pueden utilizar objetos o elementos atmicos representativos para los distintos tipos de
diagramas y smbolos.
As, DeMarco identifica en la fase de especificaciones tres vistas del sistema con relacin a cuatro tipos de
diagramas y seis elementos bsicos:
Visin
Diagrama
Elemento Bsico
Funcional
Burbuja
Dato elemental
Datos
Diagrama E/R
Objetos y relaciones
Estado
Diagrama de Transicin
de estado
Estados y
transiciones
Sin embargo, no existen medidas de longitud relativas a dichas funciones primitivas. Por tanto, puede decirse
que, hoy por hoy, no existe una mtrica para comparar especificaciones ni diseos.
c) Prediccin de la longitud.
Existen una serie de modelos que veremos mas adelante para la prediccin del coste, que dependen de la
habilidad para predecir la longitud (NLOC) con exactitud en la fase de definicin de especificaciones del
sistema a implantar.
Un modo intuitivo de predecir la longitud es obteniendo una relacin entre la longitud de los distintos
productos obtenidos durante el ciclo de vida. En particular, una prediccin de longitud, se puede obtener
Ana M Moreno S.-Capuchino
Pg. 24
considerando la relacin ratio de expansin entre la longitud de las especificaciones o del diseo y la
longitud del cdigo en proyectos similares de los que se mantienen datos.
Ha habido algunos intentos para establecer relaciones empricas entre la longitud del cdigo de programas y
la longitud de la documentacin.
d) Funcionalidad.
El concepto de funcionalidad de un producto se origina a partir de una nocin intuitiva de la cantidad de
funciones que proporciona.
Ha habido dos intentos serios para medir la funcionalidad de un producto software. Uno de ellos se debe a
Albrecht y corresponde a los Puntos de Funcin (FPA, del ingls Function Point Analysis)) y otro debido a
DeMarco, los Bang, que no ha tenido una gran difusin.
El objetivo ms importante es identificar una medida del tamao del software que pueda ser la variable
predominante en los sistemas de prediccin de costes y esfuerzo, as como en la evaluacin de la
productividad. Este es un objetivo encomiable, ya que una medida de la funcionalidad sera claramente
preferible a la medida del tamao exclusivamente de la longitud. En ambos casos, los productos cuya
funcionalidad est siendo medida son documentos de especificacin, pero que podan aplicarse
posteriormente a otros productos del ciclo de vida. La funcionalidad, a pesar de los problemas existentes, es
un atributo muy importante del producto y es la mejor aproximacin existente hasta la fecha.
3.5.2. Mtricas de Calidad
Se puede generar una larga lista de caractersticas de la calidad del software: correccin, eficacia,
portabilidad, mantenibilidad, fiabilidad, etc.
Desafortunadamente, las caractersticas a veces se solapan y entran en conflicto unas con otras. Por ejemplo,
incrementar la portabilidad, que es muy deseable, puede dar lugar a una eficacia menor.
Aunque se han realizado una gran cantidad de trabajos en esta rea, presenta una gran variedad en los
caminos seguidos frente a otras reas de investigacin de las mtricas, tales como el tamao de software o la
complejidad, cuyo estudio ha sido ms uniforme.
Han tenido considerable atencin tres reas:
La calidad del software es una caracterstica que, tericamente al menos, puede ser medida en cada fase del
ciclo de desarrollo del software.
Estas mtricas de calidad se vern a lo largo del curso, en las Unidades de Calidad, Validacin, etc.
Pg. 25
3.7. Conclusin
Desde el punto de vista de la estimacin de software, la clasificacin ms til de mtricas es la que distingue
en mtricas del producto y del proceso.
De las mtricas del producto, las que realmente nos interesan son las de Nmero de Lneas de Cdigo y los
Puntos de Funcin de Albrecht. La primera mtrica es interesante porque sirve de punto de partida de
diversos mtodos de estimacin como el Mtodo COCOMO, que se ver en el TEMA 6 de esta Unidad
llamado Mtodo de Estimacin COCOMO. La segunda, est teniendo cada vez mayor importancia en la
estimacin de software, debido a que se ha demostrado en estos ltimos aos su utilidad para medir el
tamao de un producto software, y tambin en gran parte, debido a la labor del IFPUG que sirve de apoyo y
de soporte para todos los usuarios que apliquen la tcnica de los Puntos de Funcin.
El resto de mtricas del producto se han enunciado, simplemente para que el alumno tenga conocimiento de
ellas, sin necesidad de entrar ms en detalle.
En cuanto a las mtricas de procesos, como se ha indicado en el apartado anterior, suelen estar con alguna
tcnica de estimacin, que se estudiar en el siguiente tema.
Pg. 26
TEMA 4:
TCNICAS DE ESTIMACIN
Pg. 27
La opinin de los expertos; Esta tcnica se basa en la experiencia profesional de los participantes en el
proyecto de estimacin.
2.
3.
4.
Las ecuaciones de estimacin; Son frmulas matemticas que establecen la relacin de algunas
medidas de entrada (que normalmente es la medida del tamao del producto) y determinan el esfuerzo
que se requerir.
La primera tcnica es un tanto informal y es la que se ha llevado a cabo hasta el momento, con no muy buenos
resultados como ya hemos visto, dada la complejidad del propio proceso de estimacin.
Para poder utilizar la segunda tcnica es necesario disponer de una base de datos histrica de proyectos
finalizados con la que poder realizar la comparacin. Adems todos esos proyectos tendrn que haber seguido un
proceso estndar. Es decir, el ciclo de vida utilizado y las actividades han de ser similares. Si no es as, es difcil
hacer comparaciones proyecto-proyecto. Un proyecto puede haber comenzado siguiendo unos pasos totalmente
definidos y formalizados, y otro puede que slo tenga definida formalmente la fase de codificacin y pruebas, el
resto de las fases nadie sabe como se hicieron ni si se hicieron.
Por lo tanto, a menos que los proyectos tengan un esquema de proceso similar, compararlos unos con otros es
como comparar peras con manzanas. Es necesaria una estandarizacin para usar esta tcnica.
Otro aspecto a tener en cuenta es que los datos sobre esos proyectos han de ser fiables. Esto quiere decir que las
empresas correspondientes han de tener un programa formalizado para la toma de medidas sobre sus proyectos.
Actualmente es difcil que las empresas cumplan estos dos requisitos: estandarizacin de procesos y
formalizacin de la recogida de medidas. Hay que tener en cuenta que las empresas deberan haberlos implantado
desde hace algunos aos atrs, y que en estos momentos todava existen muchas empresas que no siguen una
metodologa de desarrollo y que tampoco intentan abordar la cuestin de la confeccin de un histrico de
proyectos.
Pg. 28
Para aplicar la tercera tcnica hay que disponer tambin de una base de datos histrica para poder identificar el
esfuerzo de las distintas actividades de bajo nivel, y sta no est normalmente definida por las razones que
anteriormente hemos indicado.
Por todo ello, cuando se comienza a realizar el proceso de estimacin en una organizacin se utiliza algn mtodo
o modelo establecido, es decir, se emplea la cuarta tcnica.
4.2. Requisitos de un Buen Mtodo de Estimacin
Un mtodo de estimacin tendr xito si:
La estimacin inicial est dentro del 30% de desviacin del coste final real.
El mtodo permite el refinamiento de la estimacin durante el ciclo de vida del producto software.
El mtodo es fcil de usar por el estimador. Esto permite una rpida re-estimacin cuando sea necesario; por
ejemplo, para evaluar distintas alternativas.
Las reglas de la estimacin son entendidas por todas las personas a las que afectan los resultados de la misma.
Los directivos se sienten ms seguros cuando el proceso de estimacin es fcilmente comprensible.
El mtodo es soportado por herramientas y est documentado. La disponibilidad de herramientas aumenta la
eficacia de cualquier mtodo. Esto es debido, principalmente, a que los resultados pueden ser obtenidos ms
rpidamente y de una forma estndar.
Pg. 29
Los modelos de estimacin existentes se pueden clasificar como Modelos Estadsticos, Modelos basados en
Teoras y Modelos Compuestos. A continuacin describiremos cada uno de ellos.
La productividad nominal de programacin en LOC por persona/mes, puede ser calculada como L/E.
Walston y Felix tambin intentaron desarrollar un ndice de productividad, I, que podra hacer incrementar o
disminuir la productividad, dependiendo de la naturaleza del proyecto.
Pg. 30
b) SOFTCOST - Tausworthe
Tausworthe, de Jet Propulsion Laboratory, intent desarrollar una estimacin de coste del software utilizando
elementos de los modelos de ms xito disponibles. Este modelo requiere 68 parmetros de entrada, cuyos
valores se deducen a partir de las respuestas del usuario a 47 preguntas acerca del proyecto.
Pg. 31
El enfoque del problema es similar al de Boehm en su modelo COCOMO. Est basado en 20 factores que
influyen razonablemente en el coste y productividad del desarrollo de software y que estn bien definidos y
otros 25 factores que no estn tan bien definidos.
SPQR es un producto comercial, pero no est tan bien documentado como otros modelos. Requiere
responder a ms de 100 preguntas relacionadas con el proyecto para formular los parmetros de entrada
necesarios en el clculo de los costes y los planes. Jones seala que con este modelo es posible proporcionar
estimaciones de coste que estarn el 90% de las veces dentro del valor real con una desviacin del 15%.
d) COPMO - Thebaut
Thebaut propone un modelo de desarrollo de software que intenta contabilizar el esfuerzo requerido cuando
los equipos de programacin estn involucrados en grandes proyectos. La ecuacin general de clculo de
esfuerzo es:
E = a + bS + cPd
donde
a, b, c y d son constantes para ser determinadas a partir de datos empricos mediante anlisis de
regresin:
S es el tamao del programa en miles de LOC
P es el nivel medio de personal durante el ciclo de vida del proyecto.
Desafortunadamente, este modelo requiere no uno sino dos parmetros cuyos valores no son conocidos hasta
la terminacin del proyecto. Adems, las constantes b y c dependientes de la complejidad del software no
son fcilmente determinables.
Este modelo presenta una formula interesante, pero necesita un mayor desarrollo y ajuste para que sea de
inters general.
Pg. 32
e) ESTIMACS - Rubin
Rubin ha desarrollado un modelo de estimacin que utiliza especificaciones del negocio para sus clculos. El
modelo proporciona estimacin del esfuerzo total, requisitos de personal, coste, riesgo y efecto sobre la
cartera de proyectos.
ESTIMACS ser analizado en la prctica de la asignatura.
Pg. 33
TEMA 5:
MTODO DE ESTIMACIN DE
PUNTOS DE FUNCIN
Pg. 34
Adems de estos objetivos, el proceso de contabilizar los Puntos de Funcin debera ser:
Suficientemente simple como para minimizar la carga de trabajo de los procesos de medida.
Conciso en sus resultados.
El anlisis de los Puntos de Funcin se desarrolla considerando cinco parmetros bsicos externos del
Sistema:
1.
2.
3.
4.
5.
Pg. 35
Pg. 36
Informacin de control corresponde a datos utilizados por la aplicacin cumpliendo con requisitos del
negocio.
Mantenidos es la habilidad para aadir, cambiar o borrar datos mediante procedimientos estandarizados a
travs de la aplicacin.
Pg. 37
Regla 2
Regla 3
Regla 4
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Pg. 38
Consultas externas (EQ): Combinacin de una entrada (pregunta) y de una salida (respuesta).
Pg. 39
pueden aadir, cambiar y borrar informacin en un Fichero Lgico Interno, se contaran tres
Entradas Externas.
Las entradas por lotes: Por cada proceso nico que mantiene un Fichero Interno Lgico se
debe aadir una Entrada Externa por cada adicin, modificacin o borrado de datos.
Un fichero fsico de entrada, cuando se analiza lgicamente, corresponde a una Entrada Externa
o varias, dependiendo de los tipos de registros contenidos y del proceso requerido para su
tratamiento.
As mismo dos o ms ficheros fsicos de entrada pueden corresponder a una Entrada Externa si
el proceso lgico y el formato son idnticos para cada uno de los ficheros.
Las entradas externas duplicadas: Si distintos procesos de entrada solicitados expresamente
por el usuario duplican una Entrada Externa, son contados independientemente cada uno.
Un ejemplo puede ser un ingreso en una cuenta bancaria que se puede hacer por un Cajero
Automtico o a travs de una operacin normal, siendo el mismo tipo de entrada.
En cambio, no son Entradas Externas:
Los datos referenciados utilizados por la aplicacin pero no mantenidos como Ficheros
Lgicos Internos.
Las entrada de una Consulta
Los generadores de Informes
Las pantallas de Conexin que no mantengan un Fichero Lgico Interno.
Pg. 40
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Debera contarse una Entrada Externa por cada parmetro para la definicin de informes o
comando (ej. select, compare, sort merge, calculate, format, etc.) utilizado por el usuario
para controlar la generacin del informe.
Debera contarse una Salida por el informe total.
Debera contarse un Fichero Lgico si se crea un nuevo fichero y ste se salva.
Pg. 41
Las ayudas
Las distintas formas de invocar la misma salida lgica
Los mensajes de error/confirmacin asociados con tipos de funcin distintos de Entradas
Externas
Por ejemplo, no se contabilizara como salida los mensajes de error/confirmacin asociados a
una Consulta Externa.
Los informes mltiples/valores nicos de datos: Informes idnticos con el mismo formato y la
misma lgica de proceso, pero que existen debido a distintos valores de datos, no se cuentan
como salidas distintas. Por ejemplo, dos informes idnticos en formato y construccin, el
primero de los cuales contiene nombres comenzando desde la A a la L y el segundo desde la M
a la Z se cuenta como una nica salida.
Los informes Ad Hoc: Cuando el usuario dirige y es responsable de la creacin mediante la
utilizacin de lenguajes como FOCUS o SQL de un nmero indefinido de informes, no se
cuentan como salidas.
Pg. 42
Pg. 43
Regla 1
Regla 2
Regla 3
Contar cada campo nico y no recursivo sobre los ILFs o EIFs que sean
reconocibles por el usuario
Contar un DET por cada dato que exista sobre un ILF o un EIF porque el
usuario requiere mantener una relacin de stos con otro ILFF (claves ajenas)
Contar las siguientes tcnicas de implementacin fsica como un nico DET
para el grupo completo de campos :
3.1 campo que aparecen ms de una vez en un ILF o EIF debido a la tecnologa
o tcnicas de implementacin
3.2 campos repetitivos que tiene el mismo formato y que existen para permitir
mltiples ocurrencias del valor de un dato
Pg. 44
Regla 1
Regla 2
Una vez identificados el nmero de RET y DET se ha de acudir a la siguiente tabla para determinar la
complejidad del ILF o EIF.
DET
1 a 19
20 a 50
51 o ms
Baja
Baja
Media
Baja
Media
Alta
Media
Alta
Alta
RET
1
2a5
6 o ms
Regla 1
Regla 2
Regla 3
Pg. 45
Una vez identificados el nmero de FTR y DET se ha de acudir a la siguiente tabla para determinar la
complejidad de la EI
DET
1a4
5 a 15
16 o ms
Baja
Baja
Media
Baja
Media
Alta
Media
Alta
Alta
FTR
0a1
2
3 o ms
Contar un DET por cada campo no recursivo y nico, reconocible por el usuario
y que aparece durante el proceso una la EO
No contar literales como DETs, como ttulos de informes, pantallas o paneles de
identificacin, cabeceras de columnas y ttulos de campos
No contar las variables de paginado ni las marcas generadas por el sistema
Contar las siguientes tcnicas de implementacin fsica como un nico DET para
el grupo completo de campos :
4.1 Un campo lgico que es almacenado fsicamente en mltiples campos, pero
que es requerido por el usuario como una nica pieza de informacin
4.2 Cada tipo de etiqueta y cada tipo de equivalente numrico en un grfico de
salida
4.3 Informacin de texto, que puede ser una nica palabra, una sentencia o una
frase
Reglas de identificacin de FTRs para salidas externas
Pg. 46
Un tipo fichero referenciado es un fichero que es ledo cuando se procesa la salida externa. Para que
un conjunto de datos sea reconocido como FTR para salidas externas, debe verificar la regla siguiente:
Contar un FTR por cada ILF o EIF ledo durante el proceso de una EO
Regla 1
Una vez identificados el nmero de FTR y DET se ha de acudir a la siguiente tabla para determinar la
complejidad de la EI
DET
1a4
5 a 19
20 o ms
Baja
Baja
Media
Baja
Media
Alta
Media
Alta
Alta
FTR
0a1
2a3
4 o ms
Contar un DET por cada campo no recursivo, reconocible por el usuario que
aparezca en la parte de entrada de una consulta
Contar las siguientes tcnicas de implementacin fsica como un nico DET para
el grupo completo de campos :
Contar las siguientes tcnicas de implementacin fsica como un nico DET para
el grupo completo de campos :
3.1 Campos que indican un error ocurrido durante el proceso del DET de
entrada, o confirmacin del que el proceso ha terminado de manera correcta.
Todos los mensajes se cuentan como un nico DET.
3.2 Campos que especifican que la EQ debe ser procesada
REGLAS DE IDENTIFICACIN PARA LA SALIDA DE LA EQ
Regla 1
Regla 2
Regla 3
Contar un DET por cada campo no recursivo y reconocible por el usuario que
aparezca en la parte de salida de una consulta
No contar como DETs literales como por ejemplo, ttulos de informes,
identificacin de pantallas o paneles, cabeceras de columnas, y ttulos de
campos.
No contar variables o marcas generadas por el sistema o marcas, como son los
nmeros de pgina, informacin de posicin, comandos de paginado o campos
Pg. 47
de fecha y hora
Contar las siguientes tcnicas de implementacin fsica como un nico DET para
el grupo completo de campos :
4.1 Un campo lgico que se almacena fsicamente en mltiples campos pero
que es requerido por el usuario como una unidad de informacin
4.2 Campos que aparecen ms de una vez en un ILF debido a exigencias de la
tecnologa o tcnicas de implementacin
Reglas de identificacin de FTRs para consultas externas
Regla 4
Un tipo fichero referenciado es un fichero que es ledo cuando se procesa la consulta externa. Para
que un conjunto de datos sea reconocido como FTR para consultas externas, debe verificar alguna de las
reglas siguientes:
Regla 1 (ENTRADA)
Reglas 2 (SALIDA)
Una vez identificados el nmero de FTR y DET se ha de acudir a la siguiente tabla para determinar la
complejidad de la EI
Para la parte de entrada
DET
1a4
5 a 15
16 o ms
Baja
Baja
Media
Baja
Media
Alta
Media
Alta
Alta
1a4
5 a 19
20 o ms
Baja
Baja
Media
Baja
Media
Alta
Media
Alta
Alta
FTR
0a1
2
3 o ms
Para la parte de salida:
DET
FTR
0a1
2a3
4 o ms
Alta
Baja
X
4
X
Alta
Media
X
X
7
5
=
=
Media
Salida
=
=
Pg. 48
Baja
Fichero Lgico
Interno
Alta
Media
Baja
X
X
X
15
10
7
=
=
=
Fichero Lgico
Externo
Alta
Media
Baja
X
X
X
10
7
5
=
=
=
Consultas
Alta
Media
Baja
X
X
X
6
4
3
=
=
=
Comunicacin de datos.
Funciones distribuidas.
Rendimiento.
Configuraciones fuertemente utilizadas.
Frecuencia de transacciones.
Entrada on-line de datos.
Diseo para la eficiencia del usuario final.
Actualizacin on-line.
Procesos complejos.
Utilizacin en otros sistemas.
Facilidad de instalacin.
Facilidad de operacin.
Instalacin de Mltiples sitios.
Facilidad de cambio.
En funcin de estas catorce caractersticas se calcula el grado de influencia, del modo que se mostrar a
continuacin.
Una vez calculado el grado de influencia, TDI (del ingls Total Degree of Influence), de las caractersticas,
se puede llegar al valor del factor de ajuste mediante la frmula:
Pg. 49
FPA = FP X AF
Existe un debate general sobre las caractersticas generales del sistema, ya que en gran parte su evaluacin
es subjetiva, y por otro lado su valor como multiplicador es muy bajo. Sin embargo, forma parte de la tcnica
y en el futuro se prev que sea uno de los aspectos ms importantes en la evolucin de la misma.
Vamos a estudiar la valoracin que hace de estas caractersticas el IFPUG. Cada una de ellas se evaluar de 0
a 5, segn las guas que se indican a continuacin, el TDI se obtendr como suma de los valores de cada una
de ellas.
5.5.1. Comunicacin de datos
Los datos e informacin de control utilizados en la aplicacin, se reciben o son enviados a travs de medios
de telecomunicacin.
Los terminales conectados localmente a la unidad de control, son considerados como medios de
comunicacin.
Los valores utilizados son los que se muestran en la Tabla 5.1:
0
1
2
3
4
5
Pg. 50
2
3
4
5
Los datos son preparados para ser transferidos. Se transfieren y procesan en otro componente
del sistema, pero no por el usuario final.
El proceso distribuido y la transferencia de datos son on-line y slo en una direccin.
El proceso distribuido y la transferencia de datos son on-line en ambas direcciones.
Los procesos se desarrollan dinmicamente en el componente ms apropiado del sistema.
Tabla 5.2. Funciones Distribuidas
5.5.3. Rendimiento
Los objetivos de rendimiento del sistema, definidos o aprobados por el usuario, tanto en tiempo de respuesta
como en volumen de datos a procesar, se vern influenciados por el diseo, desarrollo, instalacin y soporte
de la aplicacin. La Tabla 5.3. muestra la valoracin del rendimiento.
0
1
2
3
4
5
Pg. 51
Pg. 52
0
1
2
3
4
Nada de lo anterior.
1-3 de las funciones anteriores.
4-5 de las funciones anteriores.
6 o ms, pero no existen requisitos del usuario respecto a la eficiencia.
6 o ms, pero estn definidos los requisitos de eficiencia del usuario que obligan a disear
tareas que tienen en cuenta factores humanos; por ejemplo, minimizar el nmero de tecleos,
uso de mascaras, etc.
6 o ms, y hay requisitos del usuario sobre eficiencia que obligan a utilizar herramientas
especiales y procesos para demostrar que los objetivos se han alcanzado.
Tabla 5.7. Eficiencia del usuario final.
Ninguno.
Actualizacin on-line de 1 a 3 ficheros. El volumen de actualizacin es bajo y la
recuperacin fcil.
Actualizacin on-line de 4 ms ficheros. El volumen de actualizacin es bajo y la
recuperacin es baja.
Actualizacin importante de los Ficheros Lgicos Internos.
Adems de la proteccin contra la perdida de datos es esencial y ha sido especialmente
diseada y programada en el sistema.
Adems del punto 4, los altos volmenes de transacciones requieren que sea considerado el
coste de los procesos de recuperacin. Los procedimientos de recuperacin estn altamente
automatizados con intervencin mnima del operador.
Tabla 5.8. Actualizacin on-line
Pg. 53
Nada de lo anterior.
Uno de los anteriores.
Dos de los anteriores.
Tres de los anteriores.
Cuatro de los anteriores.
Todos los anteriores.
Tabla 5.9. Procesos Complejos
5.5.10. Reutilizacin
La aplicacin y el cdigo han sido diseados especficamente, desarrollados y soportados para ser utilizados
en otras aplicaciones.
Los valores aparecen en la Tabla 5.10.
0
1
2
3
4
5
No reusable.
Se utiliza cdigo reusable dentro de la aplicacin.
Menos del 10% de la aplicacin tiene en cuenta las necesidades de ms de un usuario.
El 10% ms de la aplicacin tiene en cuenta las necesidades de ms de un usuario.
La aplicacin fue empaquetada expresamente y/o documentada para ser fcilmente reusable.
La aplicacin es adaptada por el usuario a nivel de cdigo fuente.
La aplicacin fue empaquetada expresamente y/o documentada para ser fcilmente reusable.
La aplicacin es adaptada por el usuario por medio de parmetros de mantenimiento.
Tabla 5.10. Reutilizacin
Pg. 54
3
4
5
Pg. 55
1
2
3
4
de instalacin.
Se necesita disear la aplicacin para ser utilizada en mltiples lugares pero funcionar bajo
entornos idnticos de hardware y software.
Se necesita disear la aplicacin para ser utilizada en mltiples lugares y funcionar bajo un
entorno de hardware y software similares.
Se necesita disear la aplicacin para ser utilizada en distintos lugares y funcionar bajo
entornos distintos de hardware y software.
Debern ser proporcionados y probados la documentacin y los planes de soporte de la
aplicacin para ser utilizados en distintos lugares, en el modo que se indic en los apartados
(1) y (2).
Debern ser proporcionados y probados la documentacin y los planes de soporte de la
aplicacin para ser utilizada en distintos lugares, en el modo que se indic en el apartado (3).
Tabla 5.13. Instalacin en distintos lugares
Productividad; Indica el nmero de Puntos de Funcin que puede desarrollar una persona en un
mes.
Calidad; Indica el nmero de errores que supuestamente se cometern por Punto de Funcin.
Coste; Indica las pesetas que costar a la empresa el desarrollo de un Punto de Funcin.
Pg. 56
Productividad
Calidad
Coste
Documentacin
Lneas de Cdigo
= puntos funcin/persona-mes
= errores/punto funcin
= pesetas/punto funcin
= pginas/punto funcin
= lneas/punto funcin
La clave de la utilizacin de esta tcnica radica en la obtencin de estos ratios, que sern especficos de cada
organizacin, y que nos darn informacin sobre el tamao de la aplicacin. Estos ratios se obtendrn de
proyectos anteriores que se hayan desarrollado en la organizacin.
Pg. 57
TEMA 6:
COCOMO II
Pg. 58
Desarrollar un modelo de estimacin de tiempo y de coste del software de acuerdo con los ciclos de vida
utilizados en los 90 y en la primera dcada del 2000.
Desarrollar bases de datos con costes de software y herramientas de soporte para la mejora continua del
modelo.
Proporcionar un marco analtico cuantitativo y un conjunto de herramientas y tcnicas para la evaluacin
de los efectos de la mejora tecnolgica del software en costes y tiempo del ciclo de vida software.
Estos objetivos apoyan las necesidades primarias expresadas por los usuarios de la estimacin de costes del
software. En orden de prioridades, estas necesidades eran: el apoyo de la planificacin de proyectos, la
previsin de personal del proyecto, la preparacin del proyecto, la replanificacin, el seguimiento del
Pg. 59
COCOMO II sigue los principios de apertura usados en el COCOMO original. De esta manera todos sus
algoritmos y relaciones estn disponibles pblicamente.
Tambin todos sus interfaces estn diseadas para ser pblicas, bien definidas y parametrizadas para que los
preprocesos complementarios (modelos de analoga basados en casos de otras medidas de estimacin), postprocesos (planificacin de proyectos y herramientas de control, modelos dinmicos de proyectos,
analizadores de riesgo) y paquetes de alto nivel (paquetes de gestin de proyectos, ayudas de negociacin de
producto) puedan combinarse estrechamente con COCOMO II.
Para apoyar a los distintos sectores del mercado software, COCOMO II proporciona una familia de modelos
de estimacin de coste software cada vez ms detallado y tiene en cuenta las necesidades de cada sector y el
tipo de informacin disponible para sostener la estimacin del coste software. Esta familia de modelos est
compuesta por tres submodelos cada uno de los cuales ofrece mayor fidelidad a medida que uno avanza en la
planificacin del proyecto y en el proceso de diseo. Estos tres submodelos se denominan:
Pg. 60
los parmetros del modelo. USC COCOMOII.1998.0 beta se cre en Octubre de 1998. Esta versin se
calibr con 161 puntos de datos y utilizando por primera vez un enfoque bayesiano para realizar la
calibracin del modelo. USC COCOMO II.1999.0 se ha publicado a mediados de 1999 y USC-COCOMO
II.2000.0 ser presentado en el ao 2000. Mientras cada versin nueva de la herramienta USC COCOMO II
fue mejorando en cuanto a amigabilidad con el usuario, las calibraciones del modelo de los aos 1998, 1999
y 2000 son la misma. Es decir, no se han aadido nuevos puntos de datos a la base de datos utilizada para
calibrar las versiones de la herramienta del ao 1999 y del ao 2000 aparte de aquellos que aparecieron en la
calibracin de la base de datos del ao 1998. En las tres implementaciones aparecen los mismos 161 puntos
de datos a los que hacamos referencia anteriormente Se prev que la versin USC-COCOMO II.2001.0 ya
incluir una nueva calibracin.
Por ltimo, la experiencia ha demostrado que si una organizacin calibra la constante multiplicativa en
COCOMO II para sus propios datos empricos, la precisin del modelo puede aumentar significativamente
por encima de los resultados de calibracin genricos obtenidos con las versiones mencionadas
anteriormente.
7.1.2. Predecesores de COCOMO II.
7.1.2.1. Evolucin de COCOMO 81 a COCOMO II y comparativa con sus predecesores.
Es importante recalcar los cambios experimentados por COCOMO II con respecto a COCOMO 81 ya que
reflejan cmo ha madurado la tecnologa de la Ingeniera del software durante las dos dcadas pasadas. Por
ejemplo, cuando se public el primer modelo COCOMO 81 los programadores estaban sometidos a tareas
batch. El giro total que se experiment afect a su productividad. Por lo tanto un parmetro como TURN que
reflejaba la espera media de un programador para recibir de vuelta su trabajo ahora no tiene sentido porque la
mayora de los programadores tienen acceso instantneo a los recursos computacionales a travs de su
estacin de trabajo. Este parmetro ha desaparecido en el nuevo modelo.
Las tablas 7.1 y 7.2 recalcan los principales cambios hechos a la versin original COCOMO 81 cuando se
desarroll COCOMO II y un resumen de las principales diferencias entre ambos. La tabla 7.2 presenta una
comparativa por modelos ms detallada de COCOMO II y adems incluye el modelo AdaCOCOMO. De
ambas tablas podemos deducir:
COCOMO II se dirige a las siguientes tres fases del ciclo de vida en espiral: desarrollo de
aplicaciones, diseo anticipado y Post-Arquitectura.
Los tres modos del exponente se han reemplazado por cinco factores de escala.
Se han aadido los siguientes drivers de coste a COCOMO II: DOCU, RUSE, PVOL, PEXP, LTEX,
PCON y SITE.
Se han eliminado los siguientes drivers de coste del modelo original: VIRT, TURN, VEXP, LEXP,
Y MODP.
Los valores de aquellos drivers de coste que se han conservado del modelo original fueron
modificados considerablemente para reflejar las calibraciones actualizadas.
Pg. 61
Las otras diferencias principales se refieren a efectos relacionados con el tamao, que incluyen reutilizacin,
reingeniera y cambios en efectos de escala.
Pg. 62
COCOMO 81
MEDIDA
DRIVERS DE COSTE (ci)
COCOMO II
Tres modelos que asumen que se progresa
Un modelo nico que asume que se ha a lo largo de un desarrollo de tipo espiral
comenzado con unos requisitos asignados para consolidar los requisitos y la
para el software
arquitectura, y reducir el riesgo.
Esfuerzo = A (cI) (SIZE)Exponenente
Esfuerzo = A (cI) (SIZE)Exponenente
Constante fija seleccionada como una Variable establecida en funcin de una
funcin de modo:
medida de cinco factores de escala:
Orgnico = 1.05
PREC Precedencia
Semi-libre = 1.12
Rgido = 1.20
RELY Fiabilidad
RELY Fiabilidad
CPLX Complejidad
CPLX Complejidad
RUSE Reutilizacin requerida
DOCU Documentacin
STOR
Restriccin
de
TIME Restriccin tiempo de
almacenamiento principal
ejecucin
STOR
Restriccin
de
almacenamiento principal
Asuncin
de
requisitos
Modelo de reutilizacin que
razonablemente estables
considera esfuerzo necesario para
entender y asimilar
Caractersticas de autocalibracin
Pg. 63
COCOMO 81
MEDIDA
AdaCOCOMO
DSI SLOC
COCOMO II
COCOMO II
COCOMO II
Modelo Post-Arquitectura
SLOC
SLOC
Puntos Objeto
Implcito en el modelo
%reutilizacin
%reutilizacin
sin
modificar:
modificada:
no
SR
lineal
SLOC
equivalente=
no
lineal
f(AA,SU,DM,CM,IM)
f(AA,SU,DM,CM,IM)
ROTURA
Medida RVOL
Implcito en el modelo
Rotura % (BRAK)
Rotura % (BRAK)
ACT
Modelo de reutilizacin
Modelo de reutilizacin
1.0
(RVOL)
MANTENIMIENTO
Trfico
anual
de
cambio
(ACT)
=%aadido + %modificado
Factor B en
Orgnico = 1.05
MNnom== A (Size)B
Semi-libre = 1.12
de :
Rgido = 1.20
Precedencia
Precedencia
Conformidad
Conformidad
Arquitectura slida
Arquitectura
Arquitectura
Requisitos estables
anticipada,
resolucin de riesgos.
anticipada,
resolucin de riesgos.
Ninguno
RCPX*T, RUSE*T
Ninguno
Dificultad de la plataforma:
RUSE
DRIVERS
DE
COSTE
DE
LA
PLATAFORMA
DRIVERS DE COSTE DEL PERSONAL
PDIF*T
ACAP, AEXP, PCAP, VEXP, LEXP
Ninguno
Ninguno
PERS*T, PREX*T
PCON*T
SCED*T, FCIL*T
Pag. 64
Nos estamos convirtiendo en una compaa de software, es una frase cada vez ms repetida en
organizaciones tan diversas como las finanzas, transporte, aeroespacial, electrnica y las empresas
industriales. La ventaja competitiva depende cada vez ms del desarrollo de productos inteligentes y a
medida, y de la habilidad de desarrollar y adaptar ms rpidamente que los competidores estos productos y
servicios.
La notable reduccin de los costes del hardware y la comodidad de las soluciones software han influido
indirectamente en los costes del desarrollo de sistemas. Esta situacin hace que sean an ms importantes los
clculos coste-beneficio, la seleccin de los componentes adecuados para la construccin y evolucin del
ciclo de vida de un sistema y el convencimiento de la escptica direccin financiera de la ventaja comercial
de las inversiones en software. Tambin resalta la necesidad de productos coexistentes, la determinacin del
proceso y la habilidad de dirigir anlisis trazados entre el software y los costes del ciclo de vida del sistema,
tiempos de ciclo, funciones y calidades.
Al mismo tiempo, una nueva generacin de procesos software y productos estn cambiando la manera en que
las organizaciones desarrollan software: Enfoque evolutivo, riesgo controlado, procesos software
colaborativos, enfoque de desarrollo software de trayectoria rpida, lenguajes de 4 generacin, enfoque
dirigido a la reutilizacin software. Todas estas prcticas mejoran la calidad del software y reducen el riesgo,
el coste y el tiempo de ciclo.
Sin embargo, aunque alguno de los ya existentes modelos de coste tiene iniciativas que se dirigen a aspectos
de estos problemas, estos nuevos acercamientos no se han emparejado lo suficiente a los nuevos modelos
complementarios para estimacin de software y planificacin. Esto dificulta a las organizaciones la
realizacin de planes efectivos, anlisis y control de proyectos usando los nuevos enfoques.
Estas preocupaciones han llevado a la formulacin de una nueva versin del modelo de coste constructivo
COCOMO para la estimacin del esfuerzo, del tiempo y del coste software. El COCOMO original y su
especializado sucesor Ada COCOMO fueron razonablemente bien equiparados con los tipos de proyectos
software que ellos modelizaban: Gran extensin de clientes, software construido para la especificacin.
Aunque Ada COCOMO aadi la capacidad de estimar costes y tiempos para el desarrollo incremental de
software, COCOMO encontr una creciente dificultad para estimar los costes de software comercial, de
software orientado a objetos, de software desarrollado mediante modelos en espiral modelos de desarrollo
evolutivo, de software desarrollado en gran parte mediante utilidades de composicin de aplicaciones
comerciales a medida.
La figura 7.1 resume el modelo de mercado de las futuras prcticas de software que usamos para guiar el
desarrollo de COCOMO II. Incluye en la plataforma superior un sector dedicado a la programacin para
usuarios finales a la que pertenecern alrededor de 55 millones de personas en Estados Unidos cerca del ao
2005. A un nivel ms bajo, un sector de infraestructura, al que pertenecern aproximadamente 0.75 millones
Ana M Moreno S.-Capuchino
Pg. 65 .
de personas y 3 sectores intermedios que incluyen el desarrollo de generadores de aplicaciones y ayudas para
la composicin (0.6 millones), desarrollo de sistemas mediante la composicin de aplicaciones (0.7 millones)
y sistemas de integracin a gran escala y/o sistemas de software embebidos (0.7 millones).
Programacin de usuario final
(55,000,000)
Composicin de Aplicacin
Integracin de Sistema
(700,000)
(700,000)
(600,000)
Infraestructura
(750,000)
La programacin para usuarios finales estar dirigida por la creciente capacidad de la computadora de leer y
escribir y por la presin competitiva para la creacin de soluciones de proceso de informacin rpidas,
flexibles y manejables por el usuario. Estas tendencias empujarn al mercado del software a tener usuarios
que desarrollen ellos mismos la mayora de aplicaciones que procesan informacin mediante generadores de
aplicaciones.
Algunos ejemplos de generadores de aplicaciones son las hojas de clculo, los sistemas de querys extendidas
y los sistemas de inventarios de planificacin especializados. Ellos facilitarn el que los usuarios sean
capaces de determinar la aplicacin que procese la informacin que ellos deseen mediante la opcin de
dominios familiares reglas simples. Cada empresa de las compaas Fortune100 para pequeos negocios y
el departamento de defensa de Estados Unidos estarn involucrados en este sector.
Los productos tpicos del sector de la infraestructura estarn en las reas de Sistemas Operativos, Sistemas
gestores de bases de datos, Sistemas de gestin de interfaz con el usuario y Sistemas de redes. Cada vez ms,
el sector de la infraestructura se dirigir hacia soluciones middleware para problemas genricos tales como
el proceso distribuido y el proceso transaccional. Empresas representativas del sector de la infraestructura
son Microsoft, NeXT, Oracle, SyBase, Novell y los principales vendedores de computadoras.
En contraste con los programadores para usuarios finales que suelen conocer bien el dominio de sus
aplicaciones y relativamente poca informtica, los desarrolladores de infraestructura saben mucho de
informtica y relativamente poco de aplicaciones. La lnea de sus productos tendr muchos componentes
reutilizables pero el avance de la tecnologa (nuevos procesadores, memoria, comunicaciones, displays y
tecnologa multimedia) les exigir que construyan muchos componentes y utilidades desde el principio.
Pg. 66 .
Las personas que pertenecen a los tres sectores intermedios de la figura 5.2, necesitarn conocer una buena
parte de informtica y de software especializado para infraestructura, y tambin uno ms dominios de
aplicacin. Esto supondr un gran reto.
El sector de los Generadores de Aplicaciones crear numerosos paquetes de utilidades para la programacin
de usuarios. Firmas tpicas que operan en este sector son Microsoft, Lotus, Novell, Borland y vendedores de
sistemas para la ingeniera, la manufacturacin y la planificacin asistida por ordenador. Su lnea de
productos tendr muchos componentes reutilizables, pero requerir en gran parte el desarrollo de utilidades a
partir de cero. El sector de la Composicin de aplicaciones trata con aplicaciones demasiado diversificadas
como para ser utilizadas en soluciones empaquetadas, pero que son lo suficientemente sencillas como para
ser rpidamente compuestas a partir de componentes interoperables. Componentes tpicos sern
Desarrolladores de interfaces grficos para usuarios, Bases de datos Gestores de objetos, middleware para
procesos distribuidos procesos transaccionales, manejadores hipermedia, Buscadores de datos sencillos y
Componentes de dominio especfico tales como paquetes de procesos de control mdico, financiero
industriales.
La mayora de las grandes empresas tendrn grupos para la creacin de aplicaciones como estas pero muchas
de las empresas especializadas en software se comprometern a proporcionar aplicaciones compuestas.
Dichas empresas van desde las grandes y verstiles como Andersen Consulting y EDP hasta pequeas
empresas especializadas en reas tales como el soporte a la decisin proceso transaccional, en dominios
de aplicaciones tales como las finanzas la manufacturacin.
El sector de la Integracin de sistemas trata con sistemas a gran escala, altamente embebidos sistemas sin
precedentes. Parte de estos sistemas pueden desarrollarse utilizando utilidades de composicin de
aplicaciones, pero su demanda requiere una significativa cantidad de sistemas de ingeniera up-front y de
desarrollo tradicional de software. Las empresas aeroespaciales trabajan dentro de este sector, as como
empresas de integracin de sistemas especializados tales como EDS y Andersen Consulting, importantes
empresas en desarrollo de productos software-intensivos y servicios, empresas de telecomunicaciones,
automocin, finanzas y productos electrnicos, y empresas que desarrollan sistemas de informacin
corporativa a gran escala sistemas de soporte a la fabricacin.
7.2.2. COCOMO II. MODELOS PARA LOS SECTORES DEL MERCADO DEL SW.
Pg. 67 .
Composicin de
Aplicaciones y
Aplicacin
Ayudas a la
Integracin de
Sistema
Composicin
Infraestructura
El sector de la programacin de usuarios finales de la figura 7.2 no necesita un modelo COCOMO II. El
desarrollo de sus aplicaciones lleva de das a horas, as pues, una estimacin simple basada en actividad, ser
suficiente.
Programacin de usuario final
Generador de
Composicin de
Aplicaciones y
Aplicacin
Ayudas a la
Integracin de
Sistema
Composicin
Infraestructura
Figura 7.3.
El modelo COCOMO II para el sector de la composicin de aplicaciones (figura 7.3) est basado en Puntos
Objeto. Los Puntos Objeto son un conjunto de pantallas, informes y mdulos de lenguajes de 3 generacin
desarrollados en la aplicacin, cada uno ponderado mediante un factor de complejidad de tres niveles
(simple, medio y complejo). Esto se corresponde con el nivel de informacin que normalmente se conoce de
un producto de Composicin de aplicaciones durante sus fases de planificacin y el nivel correspondiente de
exactitud que se necesita para estimar el coste software (dichas aplicaciones se desarrollan usualmente por un
equipo pequeo en semanas meses).
Pg. 68 .
Composicin de
Aplicaciones y
Aplicacin
Ayudas a la
Integracin de
Sistema
Composicin
Infraestructura
Figura 7.4.
1. A diferencia de la situacin del COCOMO inicial a finales de los 70, en los que haba un nico y
preferido modelo de ciclo software, los proyectos de software actuales y futuros ajustan sus procesos
a los particulares drivers de proceso. Estos drivers de proceso incluyen COTS disponibilidad de
software reutilizable, grados de composicin de arquitecturas y requisitos, ventana de mercado, y
fiabilidad necesaria.
2. La granularidad que usa el modelo de estimacin de coste software debe ser consistente con la
informacin disponible para dar soporte a la estimacin del coste software. En las primeras fases de
un proyecto software se conoce muy poco del tamao del producto que se desarrolla, la naturaleza de
la plataforma designada, la naturaleza del personal involucrado en el proyecto los datos concretos
del proceso que se utilizar.
3. Dada la situacin de las premisas 1 y 2, COCOMO II permite que los proyectos proporcionen
informacin sobre los drivers de coste, de grano grueso en las primeras etapas del proyecto y
progresivamente informacin de grano fino en las etapas posteriores. As pues COCOMO II no
produce valores de puntos de coste y esfuerzo software, sino un rango de valores asociado al grado
de definicin de las entradas estimadas.
Pg. 69 .
Las primeras fases o ciclos en espiral utilizados en proyectos software de Generador de Aplicaciones,
Integracin de Sistema e Infraestructura implicarn generalmente prototipado y utilizarn las utilidades del
Mdulo de Composicin de Aplicaciones. El Modulo de Composicin de Aplicaciones COCOMO II,
soporta estas fases y cualquier otra actividad de prototipado que se realice ms adelante en el ciclo de vida.
Este modelo se dirige a aplicaciones que estn demasiado diversificadas para crearse rpidamente en una
herramienta de dominio especfico, (como una hoja de clculo) y que todava no se conocen suficientemente
como para ser compuestas a partir de componentes interoperables. Ejemplos de estos sistemas basados en
componentes son los creadores de interfaces grficas para usuario, bases de datos gestores de objetos,
middleware para proceso distribuido transaccional, manejadores hipermedia, buscadores de datos pequeos
y componentes de dominio especfico tales como paquetes de control de procesos financieros, mdicos
industriales.
Dado que el Modelo de Composicin de Aplicaciones incluye esfuerzos de prototipado para resolver asuntos
potenciales de alto riesgo tales como interfaces de usuario, interaccin software/sistema, ejecucin grado
de madurez tecnolgica, los costes de este tipo de esfuerzo se estiman mejor mediante dicho modelo.
Hemos visto que las primeras fases o ciclos en espiral utilizados en proyectos software de Generador de
Aplicaciones, Integracin de Sistema e Infraestructura se ajustaban mejor al modelo de Composicin de
Aplicaciones.
Las siguientes fases ciclos espirales normalmente incluirn la exploracin de arquitecturas alternativas
estratgicas de desarrollo incremental. Para sostener estas actividades COCOMO II proporciona un modelo
de estimacin anticipado: el Modelo de Diseo Anticipado. El nivel de detalle de este modelo puede ser
consistente con el nivel general de informacin disponible y con el nivel general de aproximacin de la
estimacin requerida en esta etapa.
El Diseo Anticipado incluye la exploracin de arquitecturas de software/sistema alternativas y conceptos de
operacin. En esta fase no se sabe lo suficiente como para dar soporte a la estimacin de grano fino.
La correspondiente capacidad de COCOMO II incluye el uso de Puntos de Funcin y un conjunto de siete
drivers de coste de grano grueso (por ejemplo, dos drivers de coste para capacidad del personal y experiencia
del personal en lugar de los seis drivers de coste del Modelo Post-Arquitectura que cubren varios aspectos de
capacidad del personal, continuidad y experiencia).
El modelo de Diseo Anticipado usa Puntos de Funcin No Ajustados como mtrica de medida. Este modelo
se utiliza en las primeras etapas de un proyecto software, cuando se conoce muy poco sobre el tamao del
Ana M Moreno S.-Capuchino
Pg. 70 .
Hemos visto que las primeras fases o ciclos en espiral usados en proyectos software de Generador de
Aplicaciones, Integracin de Sistema e Infraestructura se ajustaban mejor al modelo de Composicin de
Aplicaciones y que las siguientes fases ciclos espirales normalmente sern sostenidas por el modelo de
Diseo Anticipado. Una vez que el proyecto est listo para desarrollar y sostener un sistema especializado,
debe haber una arquitectura de ciclo de vida que proporcione informacin ms precisa de los drivers de coste
de entradas y permita clculos de coste ms exactos. Para apoyar esta etapa COCOMO II proporciona el
Modelo Post-Arquitectura.
El Modelo Post-Arquitectura incluye el actual desarrollo y mantenimiento de un producto software. Esta fase
avanza rentablemente si se desarrolla una arquitectura de ciclo de vida software vlida con respecto a la
misin del sistema, al concepto de operacin y al riesgo, y establecido como marca de trabajo del producto.
El modelo correspondiente de COCOMO II tiene aproximadamente la misma granularidad que los anteriores
modelos COCOMO y AdaCOCOMO. Utiliza instrucciones fuente y/ Puntos de Funcin para medir, con
modificadores para reutilizacin y objetos software; un conjunto de 17 drivers de coste multiplicativos; y un
conjunto de 5 factores que determinan el exponente de escala del proyecto. Estos factores sustituyen los
modos de desarrollo (Orgnico, Semilibre y Rgido) del modelo original COCOMO y refina los 4 factores de
exponente-escala en Ada COCOMO.
Los Puntos Objeto son el recuento de pantallas, informes y mdulos de lenguajes de 3 generacin
desarrollados en la aplicacin, cada uno ponderado mediante un factor de complejidad de tres niveles
(simple, medio y complejo).
La estimacin de Puntos Objeto es un enfoque relativamente nuevo de medida del software, pero encaja bien
en las prcticas del sector de la Composicin de Aplicaciones. Tambin encaja muy bien en los esfuerzos de
prototipado asociados, basados en el uso de herramientas ICASE que proporcionan constructores de
interfaces grficos de usuario, herramientas de desarrollo software; y en general, infraestructura que puede
componerse y componentes de aplicacin. En estas reas se ha comparado bien con la estimacin de Puntos
de Funcin en un conjunto de aplicaciones no triviales (pero todava limitadas).
Pg. 71 .
Uno de los estudios comparativos entre la estimacin de Puntos de Funcin y Puntos Objeto analiz una
muestra de 19 proyectos software sobre inversin bancaria de una misma organizacin, desarrollado
utilizando las utilidades de Composicin de Aplicaciones ICASE y con un rango de esfuerzo de 4.7 a 71.9
MM (Meses-Persona). El estudio descubri que el enfoque de Puntos Objeto justific un 73% de la varianza
(R2) en meses-persona ajustados por la reutilizacin, comparada con el 76% para los Puntos de Funcin.
Un experimento posterior diseado estadsticamente incluy cuatro gestores de proyecto experimentados
utilizando Puntos de Funcin y Puntos Objeto para estimar el esfuerzo requerido en dos proyectos completos
(3.5 y 6 Meses-persona actuales), basado en las descripciones del proyecto disponibles al principio para
dichos proyectos. El experimento descubri que los Puntos de Funcin y los Puntos Objeto dan resultados
comparablemente precisos (un poco ms precisos con Puntos Objeto pero estadsticamente insignificantes).
Desde el punto de vista de la utilizacin, el tiempo medio para producir un valor de Punto Objeto era de
alrededor del 47% del correspondiente tiempo medio para producir un valor de Puntos de Funcin. Tambin
los gestores consideraron el mtodo de Puntos Objeto ms fcil de usar (ambos resultados fueron
estadsticamente significantes).
De esta manera aunque estos resultados no estn todava extendidos, su ajuste al desarrollo software de
Composicin de Aplicaciones parece justificar la seleccin de Puntos Objeto como el punto de partida para
el modelo de estimacin de Composicin de Aplicaciones.
Nmero
de
tablas
de
datos
del
servidor
(mainframe
Porcentaje
de
reutilizados a partir de
pantallas,
informes
mdulos
3GL
grado de reutilizacin.
Los ratios de productividad se basan en los datos del proyecto del ao 1 y ao 2. En el ao 1 la herramienta
CASE estaba construyndose y los desarrolladores no la conocan. La productividad media de NOP/Mespersona en los 12 proyectos del ao 1 se asocia con los niveles bajos de desarrollador y madurez y capacidad
ICASE. En los siete proyectos del ao 2, ambos, herramientas CASE y capacidades de los desarrolladores se
consideran ms maduras. La productividad media era 25 NOP/Meses-persona, que se corresponde con los
niveles altos de madurez ICASE y del desarrollador.
Pg. 72 .
Hemos de destacar que el uso del trmino objeto en Puntos Objeto define pantallas, informes y mdulos
3GL como objetos. Esto puede tener relacin no con otras definiciones de objetos como aquellas
caractersticas de posesin tales como, por ejemplo, pertenencia a una clase, herencia, encapsulacin, paso de
mensajes y as sucesivamente. Las reglas de recuento para objetos de esa naturaleza, cuando se usan en
lenguajes como C++, se discutirn en el Captulo del Modelo Post-Arquitectura.
1. Hacer el recuento de objetos: Estimar el nmero de pantallas, informes y componentes de las que
consta esta aplicacin. Suponer las definiciones estndar de estos objetos en el entorno ICASE
correspondiente.
2. Clasificar cada instancia de objeto dentro de niveles de complejidad simple, media y difcil
dependiendo de los valores de las dimensiones de la caracterstica. Usar la tabla 7.3:
Para Pantallas
Para Informes
N de
vistas que
contiene
Total<4
(<2 srvr
<3 clnt)
Simple
Total<8
(2/3 srvr
3-5 clnt)
Simple
Total 8+
(>3 srvr
>5 clnt)
Medio
3 7
Simple
Medio
>8
Medio
Difcil
<3
N de
secciones
que
contiene
01
Total<4
(<2 srvr
<3 clnt)
Simple
Total<8
(2/3 srvr
3-5 clnt)
Simple
Total 8+
(>3 srvr
>5 clnt)
Medio
Difcil
23
Simple
Medio
Difcil
Difcil
4+
Medio
Difcil
Difcil
3. Pesar el nmero de cada celda usando la tabla 7.4. El peso refleja el esfuerzo relativo que se requiere
para implementar una instancia de ese nivel de complejidad:
Tipo de Objeto
Complejidad-Peso
Simple
Medio
Difcil
Pantalla
Informe
Componente 3 GL
10
Pg. 73 .
Tabla 7.4.
4. Determinar Puntos Objeto: Suma todas las instancias de objeto pesadas para conseguir un
nmero. El recuento de Puntos Objeto.
5. Estimar el porcentaje de reutilizacin que se espera lograr en este proyecto. Calcular los nuevos
Puntos Objeto a desarrollar.
(Object
Points)
(100
NOP =
100
Experiencia y
capacidad de los
desarrolladores
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
ICASE madurez y
capacidad
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
13
25
50
PROD
Tabla 7.5
NOP
MM =
PROD
Pg. 74 .
detalle de la informacin que se utiliza para obtener la estimacin en cada uno de ellos. La frmula bsica
para obtener una estimacin de esfuerzo con ambos modelos es:
MM
NOMINAL
= A X
(Size)B
Esta ecuacin calcula el esfuerzo nominal para un proyecto de un tamao dado expresado en Meses-persona
(MM).
Las entradas son la medida del desarrollo del software, una constante, A, y un factor de escala, B. La medida
est en unidades de lneas de cdigo fuente (KSLOC). Esto se deriva de la medida de mdulos software que
constituirn el programa de aplicacin, puede estimarse tambin a partir de Puntos de Funcin sin ajustar
convirtiendo a SLOC y luego dividiendo por 1000.
El factor de escala (exponencial B), explica el ahorro gasto relativo de escala encontrado en proyectos
software de distintos tamaos. La constante A, se usa para cortar los efectos multiplicativos de esfuerzo en
proyectos de tamao incremental.
A continuacin desarrollamos la frmula completa del modelo de Diseo Anticipado y se describen sus
componentes.
7.4.1. CONSTANTE A.
Como ya hemos visto anteriormente la constante A, se usa para capturar los efectos multiplicativos de
esfuerzo en proyectos de tamao incremental. Provisionalmente se le ha estimado un valor de 2.45.
Dnde:
BRAK
Size
= Size
100
1
COCOMO II utiliza un porcentaje de Rotura BRAK para ajustar el tamao eficaz del producto. La rotura
refleja la volatilidad de los requisitos en un proyecto. Es el porcentaje de cdigo desperdiciado debido a la
volatilidad de los requisitos. El factor BRAK no se usa en el Modelo de Composicin de Aplicaciones donde
se espera un cierto grado de iteracin en el producto y se incluye en la calibracin de datos.
Pg. 75 .
Por ejemplo, un proyecto que parte de 100.000 instrucciones (Size = 100.000) pero desecha el equivalente a
20.000 instrucciones tiene un valor de BRAK de 20. Esto debe usarse para ajustar el tamao efectivo del
proyecto a 120.000 instrucciones para una estimacin COCOMO II. (Size = 100.000 x [1 + (20/100)])
El tamao de una aplicacin se mide en unidades de lneas de cdigo fuente (KSLOC). Al igual que en la
versin inicial del COCOMO, este valor se deriva de la medida de mdulos software que constituirn el
programa de aplicacin, sin embargo, en la nueva versin COCOMO II puede estimarse tambin a partir de
Puntos de Funcin sin ajustar convirtiendo a SLOC y luego dividiendo por 1000.
Si se opta por utilizar directamente el valor del nmero de lneas de cdigo, la meta es medir la cantidad de
trabajo intelectual que se emplea en el desarrollo del programa, pero las dificultades aparecen al intentar
definir medidas consistentes en diferentes lenguajes.
Si se opta por utilizar los Puntos de Funcin sin Ajustar para determinar el tamao del proyecto, stos deben
convertirse en lneas de cdigo fuente en el lenguaje de implementacin (ensamblador, lenguajes de alto
nivel, lenguajes de cuarta generacin, etc...) para evaluar la relativamente concisa implementacin por
Puntos de Funcin (ver tabla 7.6). COCOMO II realiza esto tanto en el Modelo de Diseo Anticipado como
en el de Post-Arquitectura usando tablas que traducen Puntos de Funcin sin ajustar al equivalente SLOC.
Pg. 76 .
Lenguaje
Tabla 7.6.
SLOC / UFP
Ada
71
Al Shell
49
APL
32
Assembly
320
Assembly (Macro)
213
ANSI/Quick/Turbo Basic
64
Basic Compiled
91
Basic Interpreted
128
128
C++
29
Visual Basic
32
ANSI Cobol 85
91
Fortran 77
105
Forth
64
Jovial
105
Lisp
64
Modula 2
80
Pascal
91
Prolog
64
Report Generator
80
Spreadsheet
A continuacin slo nos quedara por hacer la conversin a KSLOC mediante la operacin
SLOC/1000.
Pg. 77 .
B = 0.91+ 0.01 x
SFj
Los modelos de estimacin de coste del software a menudo tienen un factor exponencial para considerar los
gastos y ahorros relativos de escala encontrados en proyectos software de distinto tamao. El exponente B se
usa para capturar estos efectos. El valor de B es calculado en la ecuacin anterior.
Si B < 1.0. El proyecto presenta ahorros de escala. Si el tamao
del producto se dobla, el esfuerzo del proyecto es menor que el
doble. La productividad del proyecto aumenta a medida que aumenta
el tamao del producto. Pueden lograrse algunos ahorros de escala
del proyecto con herramientas de proyecto especficas (por ejemplo,
simulaciones, testbeds) pero normalmente es difcil lograrlo. Para
proyectos pequeos, fijar costes de salida tales como herramientas
a medida y normas de montaje, e informes administrativos, son a
menudo una fuente de ahorro de escala.
tambin el gasto adicional en esfuerzo para disear, mantener, integrar y probar sus
interfaces con el resto del producto.
El exponente B se obtiene mediante los denominados drivers de escala. La seleccin de drivers de escala se
basa en la razn de que ellos son un recurso significante de variacin exponencial en un esfuerzo variacin
de la productividad del proyecto. Cada driver de escala tiene un rango de niveles de valores desde Muy Bajo
hasta Extra Alto (tabla 7.7). Cada nivel de valores tiene un peso, SF, y el valor especfico del peso se llama
Pg. 78 .
factor de escala. Un factor de escala de un proyecto, SFj (ver tabla 7.8), se calcula sumando todos los
factores y se usa para determinar el exponente de escala, B.
Factores de
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra Alto
Escala (SFj)
PREC
Prcticamen-
Completa-
FLEX
RESL*
TEAM
sin precedentes
sin te
mente
Casi
Completamente
familiar
precedentes
precedentes
Riguroso
Relajacin
Algo
ocasional
relajacin
general
conformidad
Algo (40%)
A menudo
Generalmen-
(60%)
te (75%)
parte (90%)
(100%)
Bastante
Altamente
Completas
cooperativo
cooperativo
interacciones
Poco (20%)
de Conformidad Algo
de Interacciones
Interacciones
Algo
muy difciles
dificultad en bsicamente
de Metas
generales
cooperativas
las
interacciones
PMAT
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra Alto
PREC
6.20
4.96
3.72
2.48
1.24
0.00
FLEX
5.07
4.05
3.04
2.03
1.01
0.00
RESL*
7.07
5.65
4.24
2.83
1.41
0.00
TEAM
5.48
4.38
3.29
2.19
1.10
0.00
PMAT
7.80
6.24
4.68
3.12
1.56
0.00
Escala (Wi)
Tabla 7.8. Valores de los Factores de escala para el Modelo de COCOMO II de Diseo
Anticipado pertenecientes a la versin USC-COCOMOII.1999.0
Pg. 79 .
tendr
1.2325
=291 PM.
Muy Bajo
Nominal/Alto
Extra Alto
General
Considerable
Profundo
Moderado
Considerable
Extenso
Extenso
Moderado
Algo
Considerable
Algo
Mnimo
Completo
Considerable
Bsico
Completo
Considerable
Bsico
Alto
Medio
Bajo
Precedencia
Comprensin
organizacional
Experiencia en trabajo con
sistemas Sw relacionados
Desarrollo concurrente de
nuevo Hw asociado y
procedimientos
operacionales
Necesidad de arquitecturas
de proceso de datos
innovativas, algoritmos
Flexibilidad de Desarrollo
Necesidad de conformidad
del Sw con requisitos
preestablecidos
Necesidad de conformidad
del Sw con especificaciones
de interfaz externas
Prioridad en finalizacin
anticipada
Pg. 80 .
Pg. 81 .
Caractersticas
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra Alto
Ninguno
Poco
Algo
Generalmente
A menudo
Completamente
Ninguno
Poco
Algo
Generalmente
A menudo
Completamente
10
17
25
33
40
20
40
60
80
100
120
Herramientas de soporte
disponibles para resolver
tems de riesgo, desarrollar y
verificar garantas de la
arquitectura
Nivel de incertidumbre en
drivers de arquitectura
claves: misin ,interfaz de
usuario, COTS, Hw,
tecnologa, ejecucin
Ninguno
Poco
Algo
Bueno
Fuerte
Completo
Algo
Poco
Muy Poco
1
Crtico
>5 No
Crtico
<5 No Crtico
Extremo
>10
Crtico
Significativo Considerable
5-10
Crtico
2-4 Crtico
Pg. 82 .
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra Alto
Poco
Algo
Bsico
Considerable
Fuerte
Completo
Poco
Algo
Bsico
Considerable
Fuerte
Completo
Nada
Poco
Poco
Bsico
Considerable
Extensa
Nada
Poco
Poco
Bsico
Considerable
Extensa
Caractersticas
Consistencia de
objetivos y culturas
Habilidad y
servicialidad
para acomodar
objetivos de otros
grupos
Experiencia de los
Desarrollados
en operar como un
equipo
Para lograr visin
compartida y
compromisos
Tabla 7.11.
Nivel
Nivel
Nivel
Nivel
Nivel
Nivel
1
1
2
3
4
5
La segunda est organizada en base a 18 reas de proceso principales (KPAs) en el modelo de Madurez de
Capacidad SEI. El procedimiento para determinar PMAT es decidir el porcentaje de conformidad para cada
uno de los KPAs. Si el proyecto ha sufrido una valoracin CMM reciente entonces se usa el porcentaje de
Ana M Moreno S.-Capuchino
Pg. 83 .
conformidad para la KPA global (basada en datos de valoracin de la conformidad prctica principal). Si no
se ha hecho una valoracin entonces se usan los niveles de conformidad para las metas de los KPAs (con la
escala Likert de abajo) para poner el nivel de conformidad. El nivel basado en meta (objetivo) de
conformidad se determina haciendo una media basada en juicio de las metas de cada rea de proceso
principal (ver tabla 7.12.).
reas de Proceso
Clave
Frecuente-
En la Mitad
Ocasional-
En Pocas
Casi siempre
mente
(40-60%)
mente
Ocasiones
(10-40%)
(<10%)
No se Aplica
No se Conoce
(>90%)
(60-90%)
de
2 Planificacin de
de
Aseguramiento
de
del
de
de
Gestin
requisitos
proyectos
Software
3 Seguimiento de
proyecto Software
4
Gestin
subcontrato
Software
5
de
la
calidad
Software
6 Gestin de la
configuracin
Software
7 Focos de proceso
de organizacin
8
Definicin
proceso
de
de
organizacin
9
Programa
formacin
10
Gestin
Software integrado
11 Ingeniera de
producto Software
12
Coordinacin
intergrupos
13
Informes
detallados
14
Gestin
proceso
cuantitativo
15
Gestin
calidad Software
16 Prevencin de
defectos
17
Gestin
cambio
de
de
tecnologa
Pg. 84 .
Gestin
de
cambio de proceso
Tabla 7.12.
Verificar casi siempre, cuando las metas se logran de forma consistente y se establecen bien en
procedimientos que operan bajo la norma (alrededor del 90% del tiempo).
Verificar frecuentemente, cuando las metas se logran relativamente a menudo pero algunas veces se
pasan por alto bajo circunstancias difciles (alrededor del 60% al 90% del tiempo).
Verificar sobre la metas, cuando las metas se logran alrededor de la mitad del tiempo (alrededor del
40% al 60% del tiempo).
Verificar ocasionalmente, cuando las metas se logran a veces pero menos a menudo (entre el 10% y
3l 40% del tiempo).
Casi nunca verificar, si las metas no se alcanzan casi nunca (menos del 10% del tiempo).
No aplicar verificacin, cuando se tiene conocimiento requerido para tu proyecto u organizacin y el
KPA pero siente que el KPA no se adapta a tus circunstancias.
No sabe verificar cuando no sabes cmo responder para el KPA.
Despus de que el nivel de conformidad del KPA se determina, se pesa cada nivel de conformidad y se
calcula un factor PMAT. Inicialmente todos los KPAs tendrn el mismo peso.
18
5 -
KPA%i
100
Por ejemplo, el valor del factor PMAT para un caso en el que aplicando la
tabla de reas de Proceso Clave: (Tabla 7.12.), obtengamos los siguientes
resultados:
1. Gestin de requisitos: 90%
2. Planificacin de Proyectos Software: 50%
Pg. 85 .
Los drivers de coste se usan para capturar caractersticas del desarrollo del software que afectan al esfuerzo
para completar el proyecto. Los drivers de coste tienen un nivel de medida que expresa el impacto del driver
en el esfuerzo de desarrollo. Estos valores pueden ir desde Extra Bajo hasta Extra Alto. Para el propsito del
anlisis cuantitativo, cada nivel de medida de cada driver de coste tiene un peso asociado. El peso se llama
multiplicador de esfuerzo (EM). La medida asignada a un driver de coste es 1.0 y el nivel de medida
asociado con ese peso se llama nominal. Si un nivel de medida produce ms esfuerzo de desarrollo de
software, entonces su correspondiente EM est por encima de 1.0. Recprocamente si el nivel de medida
reduce el esfuerzo entonces el correspondiente EM es menor que 1.0. La seleccin de multiplicadores de
esfuerzo se basa en una fuerte razn que explicara una fuente significativa de esfuerzo de proyecto
variacin de la productividad independientemente.
Los EM se usan para ajustar el esfuerzo Meses-persona nominal. Hay 7 multiplicadores de esfuerzo para el
Modelo de Diseo Anticipado y 17 para el modelo de Post-Arquitectura.
MM = A x (Size)B x
EMi
Pg. 86 .
Los drivers de coste del Diseo Anticipado se obtienen combinando los drivers de coste del modelo PostArquitectura de la tabla 7.13. Siempre que una evaluacin de un driver de coste est entre niveles de ratio,
hay que redondear al valor ms prximo al nominal. Por ejemplo, si un valor de un driver de coste est entre
Muy Bajo y Bajo, entonces seleccionar Bajo.
Drivers de coste del Diseo
Anticipado
RCPX
RUSE
RUSE
PDIF
PERS
PREX
FCIL
TOOL, SITE
SCED
SCED
Tabla 7.13.
nfasis
en
fiabilidad,
Extra Bajo
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra Alto
Muy Poco
Poco
Algo
Bsico
Fuerte
Muy Fuerte
Extremo
la
documentacin
Pg. 87 .
Complejidad
del
producto
ExtremadaMuy Simple
Simple
Algo
Moderado
Complejo
Muy Complejo
mente
Complejo
Medida de la Base
Pequeo
de Datos
Pequeo
Pequeo
Tabla 7.14.
Moderado
Grande
Muy Grande
Muy Grande
Muy Bajo
Bajo
RUSE
Nada
Nominal
Alto
A lo largo del
A lo largo del
programa
proyecto
Muy Alto
Extra Alto
A lo largo de la
A lo largo de
lnea de
mltiples lneas
producto
de producto
Restricciones
de
tiempo
de
Bajo
Nominal
Alto
Muy Alto
Extra Alto
50%
>50%
65%
80%
90%
Muy Estable
Estable
Voltil
Voltil
Voltil
almacenamiento
Volatilidad
Plataforma
de
la
Pg. 88 .
Este driver de coste de Diseo Anticipado combina los 3 drivers de coste de Post-Arquitectura siguientes:
Experiencia (AEXP), Experiencia en la Plataforma (PEXP) y Experiencia en el Lenguaje y Herramientas
(LTEX). La tabla 7.17 asigna valores PREX en el rango correspondiente.
Extra Bajo
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra Alto
3 Meses
5 Meses
9 Meses
1 Ao
2 Aos
4 Aos
6 Aos
Experiencia en
aplicaciones,
plataforma,
lenguaje
herramienta
(FCIL) Facilidades
Este driver de coste de Diseo Anticipado combina los 2 drivers de coste de Post-Arquitectura siguientes:
Uso de Herramienta Software (TOOL) y Desarrollo MultiLugar (SITE). La tabla 7.18 de la asigna valores
FCIL.
Extra Bajo
Soporte
de
TOOL
Condiciones
Multilugar
Mnimo
Muy Bajo
Algo
Bajo
Herramienta
CASE simple
Nominal
Herramientas de
ciclo de vida
bsicas
Alto
Muy Alto
Extra Alto
Bueno;
Fuerte;
Fuerte; Bien
moderado
moderado
integrado
Soporte
Algo de
Algo de soporte de
Soporte bsico de
Fuerte soporte de
dbil de
soporte de
desarrollo
desarrollo
desarrollo
desarrollo
desarrollo
multilugar
multilugar
multilugar
multilugar
multilugar
moderadamente
moderadamente
moderadamente
complejo
complejo
complejo
complejo
complejo
Fuerte soporte
de desarrollo
multilingue
simple
Soporte muy
fuerte de
desarrollo
multilingue
simple
Pg. 89 .
Muy Bajo
SCED
75% del
Nominal
Bajo
Nominal
Alto
Muy Alto
85%
100%
130%
160%
Extra Alto
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra
Alto
RCPX
0.73
0.81
0.98
1.00
1.30
1.74
2.38
RUSE
--
--
0.95
1.00
1.07
1.15
1.24
PDIF
--
--
0.87
1.00
1.29
1.81
2.61
PERS
2.12
1.62
1.26
1.00
0.83
0.63
0.50
PREX
1.59
1.33
1.12
1.00
0.87
0.71
0.62
FCIL
1.43
1.30
1.10
1.00
0.87
0.73
0.62
SCED
--
1.43
1.14
1.00
1.00
1.00
--
Por ejemplo, si al analizar los drivers de coste para nuestro proyecto obtenemos los siguientes resultados:
EMB
RCPX
A
x
MA EA
EB=Extra Bajo
MB=Muy Bajo
RUSE
PDIF
PERS
B=Bajo
N=Nominal
A=Alto
MA=Muy Alto
Pg. 90 .
EMB
PREX
FCIL
SCED
MA EA
En los drivers de coste como por ejemplo FCIL (ver tabla 7.18) se evalan varias caractersticas, en este
caso Soporte de TOOL y Condiciones multilugar. El resultado Alto se ha obtenido de hacer la media
subjetiva entre Soporte de TOOL= Alto y Condiciones Multilugar = Muy Alto. Esta media es Alto porque
como hemos visto anteriormente siempre que una evaluacin de un driver de coste est entre dos niveles de
ratio, hay que redondear al nivel ms prximo al nominal. Si la evaluacin hubiese estado entre Extra Bajo
y Bajo la media subjetiva hubiese sido Muy Bajo.
Bajo
Nominal
Alto
Muy Alto
Extra
Alto
RELY
Inconveniente
Bajo, prdidas
Moderado,
Alta prdida
Riesgo de vidas
ligero
fcilmente
prdidas
financiera
humanas
recuperables
recuperables
Pg. 91 .
Esta medida intenta capturar lo que afecta en el desarrollo del producto unos requerimientos de datos
grandes. La medida se determina calculando D/P. La razn por la que es importante considerar el tamao de
la Base de Datos es por el esfuerzo necesario para generar datos de prueba que se usarn para ejecutar el
programa.
D
=
DataBaseSize (Bytes)
DATA se valora como Bajo si D/P es menor que 10 y Muy Alto si es mayor que 1000 (tabla 7.22).
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
DB bytes/
10 D/P <
D/P 1000
100
1000
DATA
Extra Alto
10
Pg. 92 .
Operaciones de control
Muy Bajo
Operaciones
Operaciones dependientes
Operaciones de gestin de
computacionales
del dispositivo
datos
Operaciones de gestin de
interfaz de usuario
Evaluacin de expresiones
Declaraciones simples de
simples:
principal. Actualizaciones,
generadores de informes
estructurados de de
p.e.
formatos simples
programacin no
A=B+C*(D-E)
Anidamiento sencillo de
Evaluacin de expresiones
No necesario conocimiento
Uso de constructores
operadores de
de caractersticas del
en la estructura de datos,
simples de interfaces
programacin
D=SQRT(B**2-4.*A*C)
grficos de usuarios
estructurados. Mayora de
intermedios. COTS- DB
predicados simples
moderadamente complejos,
queries, actualizaciones.
Nominal
Mayora de anidamiento
El procesamiento de I/O
Entrada de mltiples
y estadsticas estndar.
incluye seleccin de
ficheros y salida de un
widget
Operaciones de
dispositivo, estado de
incluye procesamiento
matriz/vector bsicas
validacin y procesamiento
estructurales simples,
de errores.
actualizaciones y COTS-DB
complejas.
Alto
Operadores de
Encadenamientos simples
programacin
Interpolacin multivariada,
fsico (traducciones de
estructurados altamente
ecuaciones diferenciales
direcciones de
de hileras de datos.
anidados compuesto de
ordinarias. Truncamiento
almacenamiento fsicas;
. Reestructuracin de datos
muchos predicados.
bsico,
compleja
Overlap de I/O
Proceso homogneo y
optimizada.
Extensin y desarrollo de
distribuido.
Muy Alto
Codificacin reentrante y
Coordinacin de bases de
Moderadamente complejo
recursiva. Manejo de
pero estructurado:
de interrupciones, dar
datos distribuidas.
interrupciones con
ecuaciones de matrices ,
servicio enmascaramiento.
Encadenamientos
prioridades fijadas.
ecuaciones diferenciales
Manejo de lnea de
complejos. Optimizacin de
Sincronizacin de tareas,
parciales. Paralelizacin
comunicacin. Sistemas
la bsqueda.
retornos de llamadas
simple.
embebidos de rendimiento
intensivo.
complejas, proceso
distribuido heterogneo.
Control en tiempo real de
un nico procesador
Extra Alto
Mltiples recursos de
Dispositivo dependiente
Fuerte acoplamiento,
Multimedia compleja,
temporalmente de la
estructuras de objetos y
realidad virtual
dinmico de prioridades.
ruido altamente
codificacin, operaciones
relacionales dinmicas.
microprogramadas.
Control a nivel de
aproximado, datos
microcdigo. Control
estocsticos. Paralelizacin
compleja.
Tabla 7.24.
lenguaje natural.
Pg. 93 .
Este driver de coste explica el esfuerzo adicional necesario para construir componentes pensados para ser
reutilizados en proyectos presentes futuros (tabla 7.25). Este esfuerzo se consume en crear un diseo ms
genrico del software, documentacin ms detallada y pruebas ms extensas, para asegurar que los
componentes estn listos para utilizar en otras aplicaciones.
Muy Bajo
RUSE
Bajo
Nominal
Alto
Muy Alto
Extra Alto
Nada
A lo largo del
A lo largo del
A lo largo de
A lo largo de
programa
proyecto
la lnea de
las lneas de
producto
producto
mltiples
DOCU
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Muchas
Algunas
Necesidades
Excesivas
Necesidades muy
necesidades
elevadas para el
para el ciclo de
ciclo de vida
ciclo de vida
sin cubrir
sin cubrir
de vida
Extra Alto
vida
Pg. 94 .
Esta es una medida de la restriccin del tiempo de ejecucin impuesta en un sistema software. Las medidas
se expresan en trminos de porcentaje de tiempo de ejecucin disponible que se espera que sea usado por el
subsistema sistema que consume el recurso de tiempo de ejecucin. Los valores van desde nominal, menos
del 50% de recursos de tiempo de ejecucin utilizados, hasta Extra Alto, 95% del recurso de tiempo de
ejecucin consumido (tabla 7.27).
Muy Bajo
Bajo
TIME
Nominal
Alto
Muy Alto
Extra Alto
70%
85%
95%
tiempo de
ejecucin
disponible
Bajo
STOR
Nominal
Alto
Muy Alto
Extra Alto
70%
85%
95%
del almacenamiento
disponible
Pg. 95 .
software. Los valores van desde Bajo donde cada 12 meses hay un cambio importante, hasta Muy Alto,
donde hay un cambio importante cada 2 semanas (tabla 7.29).
Muy
Bajo
Nominal
Alto
Muy Alto
Bajo
Alto
Mayor
PVOL
Extra
cada 12 meses
Menor
Menor: 2 semanas
Mayor: 2 meses
Mayor: 2 semanas
Menor: 1 semana
Menor: 2 das
cambio
cada mes
ACAP
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
15 percentil
35 percentil
55 percentil
75 percentil
90 percentil
Extra Alto
Pg. 96 .
PCAP
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
15 percentil
35 percentil
55 percentil
75 percentil
90 percentil
Extra Alto
AEXP
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
2 meses
6 meses
1 ao
3 aos
6 aos
Extra Alto
PEXP
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
2 meses
6 meses
1 ao
3 aos
6 aos
Extra Alto
Pg. 97 .
Esta es una medida del nivel de experiencia en el lenguaje de programacin y en la herramienta software del
equipo de proyecto que desarrolla el sistema subsistema software. El desarrollo de software incluye el uso
de herramientas que realizan representacin de requisitos y diseo, anlisis, gestin de la configuracin,
origen de los documentos, gestin de librera, estilo de programa y estructura, verificacin de consistencia,
etc...Adems de la experiencia programando en un lenguaje especfico, las herramientas que dan soporte
tambin influyen en el tiempo de desarrollo. Tener una experiencia de menos de 2 meses da un valor Bajo. Si
es de 6 ms aos el valor es Muy Alto (tabla 7.34).
LTE
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
2 meses
6 meses
1 ao
3 aos
6 aos
Extra Alto
PCON
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
48% /ao
24% /ao
12% /ao
6% /ao
3% /ao
Extra Alto
Bajo
Nominal
Alto
Muy Alto
Extra
Alto
Pg. 98 .
TOOL
Editar,
Simple,
Herramientas
Fuerte,
Fuerte, maduro,
Cdigo,
frontend,
de ciclo de
herramientas de
herramientas de ciclo de
Depuracin
backend
vida bsicas
ciclo de vida
CASE,
maduras,
integracin
moderada-mente
procesos, mtodos,
pequea
integrada
reutilizacin
SITE:
Localizacin
Muy Bajo
Bajo
Nominal
Internacion
Multi-
Multi-
al
ciudad y
ciudad o
Multi-
Multi-
compaa
compaa
Alto
Muy Alto
Extra Alto
complejo
te localizado
SITE:
Algo de
Telfono
Banda
Comunicacin
Comunicacin
Multimedia
Comunicaciones
telfono,
individual
estrecha,
electrnica de
electrnica de
interactiva
FAX
banda ancha
banda ancha,
video
conferencia
ocasional
Pg. 99 .
del desarrollo, donde hay ms tiempo para planificar, hacer especificaciones y validar minuciosamente. Un
alargamiento del 160% se valora como Muy Alto (tabla 7.39).
SCED
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
75% del
85%
100%
130%
160%
Extra Alto
nominal
La tabla 7.40 muestra un resumen de los valores correspondientes a los drivers de coste estudiados para el
modelo Post-Arquitectura. La tabla 7.41 muestra el valor de los multiplicadores para los drivers
correspondientes.
Pg. 100 .
RELY
DATA
Bajo
Nominal
Alto
Muy Alto
Bajo, prdidas
fcilmente
recuperables
DB bytes/
Pgm SLOC < 10
Moderado, prdidas
recuperables
Riesgo de vidas
humanas
D/P 1000
CPLX
Extra Alto
RUSE
Nada
A lo largo del
programa
A lo largo de la lnea
de producto
DOCU
Algunas
necesidades del
ciclo de vida sin
cubrir
Necesidades correctas
al ciclo de vida
Excesivas necesidades
para el ciclo de vida
Necesidades muy
elevadas para el ciclo
de vida
70%
85%
95%
70%
85%
95%
TIME
STOR
PVOL
ACAP
Mayor: 2 meses
Menor: 1 semana
Mayor: 2 semanas
Menor: 2 das
75 percentil
90 percentil
PCAP
35 percentil
55 percentil
75 percentil
90 percentil
PCON
24% /ao
12% /ao
6% /ao
3% /ao
AEXP
6 meses
1 ao
3 aos
6 aos
PEXP
6 meses
1 ao
3 aos
6 aos
LTEX
6 meses
1 ao
3 aos
6 aos
TOOL
Simple, frontend,
backend CASE,
integracin
pequea
Herramientas de ciclo
de vida bsicas
moderadamente
integradas
Fuerte, herramientas
de ciclo de vida
maduras, moderadamente integrada
SITE:
Localizacin
Multi-ciudad y
Multi-compaa
Multi-ciudad o Multicompaa
Fuerte, maduro,
herramientas de ciclo
de vida proactivas,
bien integrado con los
procesos, mtodos,
reutilizacin
Mismo edificio
complejo
SITE:
Comunicaciones
Telfono
individual, FAX
Comunicacin
electrnica de banda
ancha
85%
100%
130%
SCED
A lo largo de
las lneas de
producto
mltiples
Comunicacin
electrnica de banda
ancha, video
conferencia ocasional
160%
Completament
e localizado
Multimedia
interactiva
Tabla 7.40. Resumen del nivel de medida de los drivers de coste Post-Arquitectura
Pg. 101 .
Muy Bajo
Bajo
Nominal
Alto
Muy Alto
Extra Alto
RELY
0.82
0.92
1.00
1.10
1.26
--
DATA
--
0.90
1.00
1.14
1.28
--
CPLX
0.73
0.87
1.00
1.17
1.34
1.74
RUSE
--
0.95
1.00
1.07
1.15
1.24
DOCU
0.81
0.91
1.00
1.11
1.23
--
TIME
--
1.00
1.11
1.29
1.63
STOR
--
--
1.00
1.05
1.17
1.46
PVOL
--
0.87
1.00
1.15
1.30
--
ACAP
1.42
1.19
1.00
0.85
0.71
--
PCAP
1.34
1.15
1.00
0.88
0.76
--
PCON
1.29
1.12
1.00
0.90
0.81
--
AEXP
1.22
1.10
1.00
0.88
0.81
--
PEXP
1.19
1.09
1.00
0.91
0.85
--
LTEX
1.20
1.09
1.00
0.91
0.84
--
TOOL
1.17
1.09
1.00
0.90
0.78
--
SITE
1.22
1.09
1.00
0.93
0.86
0.80
SCED
1.43
1.14
1.00
1.00
1.00
--
Pg. 102 .
E MB
RELY
MA
EA EB=Extra Bajo
MB=Muy Bajo
DATA
B=Bajo
N=Nominal
A=Alto
CPLX
RUSE
DOCU
TIME
STOR
PVOL
ACAP
PCAP
PCON
AEXP
PEXP
LTEX
TOOL
SITE
SCED
17
MA=Muy Alto
Nota: En los drivers de coste como por ejemplo CPLX o SITE se evalan varias caractersticas, en este
ltimo caso Comunicaciones y Localizacin (ver tabla 7.38). El resultado Alto se ha obtenido de hacer la
media subjetiva entre Comunicaciones = Alto y Localizacin = Muy Alto. Esta media es Alto porque como
hemos visto anteriormente siempre que una evaluacin de un driver de coste est entre dos niveles de ratio,
hay que redondear al nivel nominal. Si la evaluacin hubiese estado entre Extra Bajo y Bajo la media
subjetiva hubiese sido Muy Bajo.
Pg. 103 .
TDEV
[3.67
SCED%
PM
100
Donde TDEV es el tiempo en meses desde la determinacin de una lnea base de requisitos del producto
hasta que se completa una actividad de aceptacin que certifica que el producto satisface los requisitos. PM,
es la estimacin de meses-persona, excluyendo el estimador de esfuerzo SCED, B, es la suma de los factores
de escala del proyecto y SCED % es el porcentaje de compresin/expansin en el multiplicador de esfuerzo
SCED, (ver tabla 7.39).
A medida que COCOMO II evoluciona tendremos un modelo de estimacin del tiempo ms extenso que
refleja las diferentes clases de modelo de proceso que puede usar un proyecto; los efectos de software COTS
y reutilizable, y los efectos de las capacidades de composicin de las aplicaciones.
Por ejemplo, si tomamos un proyecto en el que hemos obtenido un resultado de 26 MM, B=0.75 y no existen
restricciones de tiempo, al aplicar la ecuacin anterior obtenemos:
TDEV = [3.67 x 26 (0.28+0.2 x (0.75-1.01))]
RANGOS DE SALIDA
Varios usuarios de COCOMO han expresado una preferencia por los rangos de estimacin en lugar de
clculo de puntos como salidas de COCOMO. Las tres etapas del modelo COCOMO II permiten la
estimacin de rangos probables de valores de salida usando distintas relaciones de exactitud de coste y
medida. Una vez que se calcula el valor de esfuerzo ms probable, E, del modelo elegido: Composicin de
Aplicaciones, Diseo anticipado o Post-Arquitectura, se calculan un conjunto de estimaciones optimistas y
pesimistas que representan una desviacin estndar alrededor del valor ms probable, de la siguiente forma:
Pg. 104 .
Estimacin Optimista
Estimacin Pesimista
Composicin de Aplicaciones
0.50E
2.0 E
Diseo Anticipado
0.67 E
1.5 E
Post-Arquitectura
0.80 E
1.25 E
Basndonos en el ejemplo anterior en el que calculamos el tiempo de desarrollo, si queremos estimar los
rangos probables de valores de salida:
MM = [0.80 (26) + 1.25 (26)] y los rangos de TDEV se obtendrn sustituyendo ambos valores en la
ecuacin de tiempo correspondiente.
Una vez estimado el esfuerzo y la duracin total de un proyecto, se puede calcular el esfuerzo y duracin
distribuido por fases y subfases del proyecto con las tablas del modelo COCOMO 81, el cual supone un
modelo de proceso en cascada (secuencial y progresivo). Si el modelo de proceso no es en cascada, no
pueden aplicarse estas distribuciones de fases.
7.4.6. TRATAMIENTO DE LA REUTILZACIN EN LA ESTIMACIN
En los modelos de Diseo Anticipado y Post-Arquitectura se pueden incluir consideraciones especiales
cuando se prev reutilizacin del cdigo que compondr la aplicacin que estamos estimando.
La inclusin de caractersticas de reutilizacin conlleva describir el parmetro Size como sigue:
100
Ana M Moreno S.-Capuchino
Size
= KSLOC + KASLOC
100
X (AAM)
Pg. 105 .
Dnde la variable KSLOC ha sido explicada anteriormente, y representa el nmero de lneas de cdigo a
desarrollar desde cero; la variable KASLOC representa miles de lneas de cdigo fuente adaptadas; el valor
AT representa el porcentaje de traduccin automatizada y por ltimo la variable AAM representa un
Multiplicador de Ajuste para la Adaptacin:
ASLOC [ AA+AAF(1+0.02(SU)(UNFM))]
AAM [ESLOC] =
AAF<=0.5
100
ASLOC [ AA+AAF+(SU)(UNFM)]
AAF>0.5
AAM [ESLOC] =
100
AAF=0.4(DM)+0.3(CM)+0.3(IM)
El tratamiento que hace COCOMO II del software reutilizado utiliza un modelo de estimacin no lineal. Esto
implica que hay que estimar la cantidad de software que se va a adaptar, ASLOC y tres parmetros de grado
de modificacin: El porcentaje de diseo modificado (DM), el porcentaje de cdigo modificado (CM) y el
porcentaje de esfuerzo inicial de integracin requerido para la integracin del software reutilizado (IM).
El clculo de ESLOC se basa en una cantidad intermedia, el Factor de Ajuste de Adaptacin (AAF). Las
cantidades de adaptacin DM, CM, IM se usan para calcular AAF, donde:
DM: Porcentaje de diseo modificado. El porcentaje de diseo de software que es modificado para
adaptarlo a los nuevos objetivos y al entorno. (Esto es necesariamente una cantidad subjetiva).
CM: Porcentaje de cdigo modificado. El porcentaje de cdigo software adaptado que es modificado
para adaptarlo a los nuevos objetivos y al entorno.
IM: Porcentaje de integracin requerida para software modificado. El porcentaje de esfuerzo
requerido para integrar el software adaptado dentro de la totalidad del producto y comprobar el
producto resultante comparado con la cantidad de esfuerzo normal de integracin y pruebas para
software de un tamao similar.
Si no hay DM CM (el componente se usa sin modificaciones) entonces no es necesario SU. Se aplica SU si
el cdigo es modificado.
Pg. 106 .
El incremento de comprensin del software (SU) se obtiene de la tabla 7.43. SU se expresa cuantitativamente
como un porcentaje. Si el software se tasa muy alto en estructura, claridad y descriptividad del mismo, la
comprensin del software y la penalizacin por comprobar el interfaz es del 10%. Si el software se tasa
muy bajo en estos factores, es del 50%. SU se determina tomando el promedio subjetivo de las tres
categoras.
Pg. 107 .