Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ESTIMACIN DE PROYECTOS
SOFTWARE
Pag. 1
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
Pag. 2
TEMA 1:
INTRODUCCIN
Pag. 3
tiene que ser gestionado y dirigido de una manera extremadamente rigurosa y cuantitativa. De este modo
se podr verificar que el trabajo correspondiente a cada fase se ha realizado completamente dentro de los
plazos de tiempo y coste establecidos y de acuerdo con estndares especficos de calidad.
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?
Pag. 5
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 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.
Pag. 6
estn basadas en miles de proyectos y pueden llegar a alcanzar una gran exactitud, pero el trabajo da a
da de las personas que participan en el proyecto con sus conocimientos, planes de vacaciones e
interrupciones requieren un director de proyectos expertos y casi con ajustes diarios de la planificacin.
Se puede sacar una conclusin y es que las herramientas de planificacin dan los mejores resultados con
los mejores directores. En cambio, las herramientas de estimacin pueden aumentar y mejorar las
capacidades de los nuevos jefes de proyecto o de los expertos cuando tienen que planificar proyectos en
los que no existe una experiencia previa.
Las herramientas de planificacin son las ms utilizadas por los jefes de proyectos.
1.2.3. Seguimiento de Proyectos
El seguimiento es la recoleccin de datos y su almacenamiento, sobre tiempos, recursos, costes, e hitos
asociados con un proyecto, para el anlisis y estudio de la evolucin real de dicho proyecto, comparando
el progreso real con el planificado.
Desafortunadamente, el seguimiento de los proyectos de desarrollo de software no ha sido todo lo
correcto que cabra esperar.
Como ya se vio en otra Unidad, muchos sistemas son inexactos y entre el 35% y el 75% de los costes
reales del software no son registrados.
Las mayores omisiones en el seguimiento son debidos a:
Soporte administrativo.
Desarrollos iniciales antes de comenzar el proyecto.
Existen muchas ms, pero stos son una muestra de la situacin, y de la poca exactitud del seguimiento.
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
Pag. 8
acumulan solamente como gasto del proyecto, y estn mas pensados para ser utilizados por los contables,
que para servir de ayuda a los jefes de proyectos.
ESTIMACION
PLANIFICACION
SEGUIMIENTO
DESARROLLO
Pag. 9
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.
Pag. 10
TEMA 2:
ESTIMACIN DE SOFTWARE
Pag. 11
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 proyecto 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
Pag. 12
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.
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.
Pag. 13
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.
CON QU
significado
Restricciones
del ordenador
- tiempo de
ejecucin
QUIN
personal
CMO
proyecto
PARA QUIN
usuario
Participacin
Nmero de usuarios
Pag. 14
Volatilidad de
requisitos
Complejidad del
software
- 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
- compresin
Calidad de gestin
Disponibilidad para
el proyecto
Estabilidad de la
organizacin del
Bases para el
usuario,
control del proyecto procedimien-tos,
- matriz de
formas de trabajo
organiza-cin
- organiza-cin del Experiencia del
proyecto
usuario con la
- prototipado
informtica, nivel de
- incremental
conocimientos
- desarrollo lineal
informticos
Pag. 15
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.
Pag. 16
1.
Debe poseer una importante formacin y experiencia profesional que le ayuden a entender y
solucionar los problemas de la gestin de proyectos.
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.
Pag. 17
Ms precisamente, el proceso de estimacin comienza usando unas pocas variables claves para proveer
las "macro-caractersticas" de un proyecto, y evoluciona incorporando informacin de ms bajo nivel para
producir las "micro-caractersticas" del proyecto.
La naturaleza del proceso de estimacin cambia a medida que el programa progresa. Supongamos que
desarrollamos un proyecto con un ciclo de vida tradicional. Al principio, en la concepcin del sistema, slo
necesitamos estimaciones a grosso modo para determinar el tamao del proyecto y estudiar su viabilidad.
Es interesante conocer el esfuerzo total del proyecto, su duracin, riesgos, necesidades de personal, etc.
A esta primera estimacin se le denomina macro-estimacin de un proyecto. Como entrada para esta
estimacin se necesitan algunos parmetros descriptivos y genricos sobre el proyecto.
Informacin
100
Concepcin
Instalacin
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
Pag. 18
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.
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.
Pag. 19
Exactitud
4x
tipos de personas
y datos
2x
tipo de consultas
carga de datos, tpo. de respuesta
1.5x
1.25x
entendimeitno de
especificaciones
x
0.8x
0.67x
0.5x
Especificacin
requisitos
Iniciacin
0.25x
Especificacin
de diseo
Especificacin
de diseo detallado
Software
aceptado
Fasess del
Software
Viabilidad
Planificacin
y requisitos
Diseo
producto
Diseo
detallado
Desarrollo y
pruebas
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
Pag. 20
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.
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.
Pag. 22
TEMA 3:
MTRICAS DE SOFTWARE
Pag. 23
Pag. 24
Hay diferentes formas en las que pueden ser utilizadas las Mtricas de Software, algunas de las cuales
constituyen una especialidad por si solas.
La ms consolidada de las reas en el estudio de las mtricas es la correspondiente a las tcnicas de
estimacin de costes y tamao. Existen distintos paquetes en el mercado que proporcionan estimacin del
tamao del software a desarrollar, coste de desarrollo del sistema y duracin del proyecto de desarrollo o
mejora del software.
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 este 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 otro 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 otro 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 una rea de aplicacin
muy importante. CSC-Index en Europa y el Software Engineering Institute en EE.UU. ofrecen este tipo
Pag. 25
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? que 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 deberan 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:
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.
Pag. 26
Las Mtricas de producto son medidas del producto software durante cualquier fase de su desarrollo,
desde los requisitos hasta la instalacin.
Las Mtricas de producto pueden medir la complejidad del diseo, el tamao del producto final (fuente u
objeto) o el nmero de pginas de documentacin producida.
Las Mtricas de proceso, son medidas del proceso de desarrollo del software tales como tiempo de
desarrollo total, esfuerzo en das/hombre o meses/hombre de desarrollo del producto, tipo de metodologa
utilizada o nivel medio de experiencia de los programadores.
Adems de esta clasificacin de las mtricas, se pueden categorizar de otras formas. Por ejemplo, por la
diferencia de las propiedades objetivas y subjetivas.
De una manera general las medidas objetivas deberan tener siempre un valor igual para una medida
dada, cuando es medida por dos o ms observadores cualificados. Para medidas subjetivas, aun
observadores cualificados pueden incluir diferentes valores para una medida dada, ya que sus juicios
personales estn involucrados en la obtencin del valor medido.
As por ejemplo, el tamao del producto medido en lneas de cdigo (LOC) es una medida objetiva del
producto, ya que cualquier observador que trabajara con la misma definicin de LOC, debera obtener el
mismo valor para un programa dado.
Un ejemplo de medidas subjetivas del producto es la clasificacin del software segn el modelo de
estimacin de costes de Boehm (COCOMO) en orgnico, semilibre o rgido.
Para medidas de procesos, el tiempo de desarrollo es una medida objetiva y el nivel de experiencia de un
programador es una medida subjetiva.
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
Pag. 27
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.
Pag. 28
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.
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
Pag. 30
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
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
Pag. 31
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 este 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.
Pag. 32
La obtencin de este tipo de mtricas est asociada generalmente a alguna tcnica de estimacin. En el
siguiente tema describiremos las tcnicas bsicas de estimacin, y los mtodos que se pueden aplicar.
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.
Pag. 33
TEMA 4:
TCNICAS DE ESTIMACIN
Pag. 34
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.
Pag. 35
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.
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.
Pag. 36
La validez de las mtricas de software y de los modelos de estimacin debe ser establecida demostrando
la coincidencia entre los datos empricos y los experimentales. Esto requiere una cuidadosa atencin en la
toma de medidas y en el anlisis de los datos.
En general, el anlisis y la validacin de las mtricas y los modelos de estimacin requiere una slida base
estadstica y diseo de experimentos. Para obtener resultados significativos son necesarios una definicin
precisa de las mtricas involucradas y de los procedimientos para la captura de datos.
Los experimentos a pequea escala deberan ser diseados cuidadosamente, y no aleatoriamente,
utilizando principios de diseo experimental.
Los experimentos muy largos son muy difciles de dirigir. Es esencial poseer una base slida de
estadstica para llevar a cabo experimentos significativos y analizar los datos resultantes. En general, si no
se posee la base estadstica suficiente debera de solicitarse la ayuda de estadsticos para evaluar seriamente el trabajo realizado.
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.
E = 5,2 L
Pag. 37
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.
Pag. 38
b) SOFTCOST - Tausworthe
Pag. 39
Tausworthe, de Jet Propulsion Laboratory, intent desarrollar una estimacin de coste del software
utilizando elementos de los modelos de mas 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.
E = a + bS + cP
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.
Pag. 40
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.
Pag. 41
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 asginatura.
Pag. 42
TEMA 5:
MTODO DE ESTIMACIN DE
PUNTOS DE FUNCIN
Pag. 43
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.
El anlisis de los Puntos de Funcin se desarrolla considerando cinco parmetros bsicos externos del
Sistema:
1.
2.
3.
4.
5.
Pag. 44
Definicin de parmetros.
Valoracin de la complejidad.
Pag. 45
FPA = FP X AF
Donde:
FP es el nmero de Puntos de Funcin sin ajustar de la aplicacin
AF es el Factor de Ajuste de la aplicacin
El clculo de los Puntos de Funcin de un proyecto de mejora se puede obtener mediante la formula:
(ADD+CHGA) * VAFA + (DEL * VAFB) = EFP
donde:
EFP es el nmero de Puntos de Funcin del Proyecto de Mejora.
VAFB es el Factor de Ajuste de la aplicacin antes del proyecto de mejora.
ADD es el nmero de Puntos de Funcin de aquellas funciones que se aadirn al proyecto como
consecuencia de la mejora.
CHGA es el nmero de Puntos de Funcin sin ajustar de aquellas funciones que sern modificadas por el
proyecto de mejora. Este nmero refleja las funciones despus de la modificacin.
DEL es el nmero de Puntos de Funcin sin aquellas funciones que sern eliminadas en el proceso de
mejora.
VAFA es el Factor de Ajuste de la aplicacin despus del proyecto de mejora.
5.3. Definicin de Parmetros
Para poder determinar la existencia de los componentes que contribuirn al total final, hay que definirlos
previamente.
La definicin que vamos a considerar aqu es la realizada por IFPUG en 1994, ltima versin.
Pag. 46
Estos componentes pueden ser clasificados como Tipos de Funciones y son de dos clases: Datos o
Transacciones.
Regla 2
Regla 3
Regla 4
Pag. 47
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Consultas externas (EQ): Combinacin de una entrada (pregunta) y de una salida (respuesta).
Pag. 48
Hay que considerar cada formato de entrada como un proceso distinto, si los datos utilizados por el
proceso pueden tener distintos formatos.
Hay que sumar una unidad a cada Entrada Externa por cada actividad de mantenimiento de datos
realizada (sumar, cambiar, borrar).
Las reglas para identificar estos tipos de funcin son:
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Pag. 49
Pag. 50
Las Salidas Externas son datos o informacin de control que sale de los lmites de la aplicacin. Esta
salida debe ser considerada nica si tiene un formato nico o si el diseo lgico requiere un proceso lgico
distinto de otras salidas del mismo formato. Toda salida ha de requerir un proceso de clculo de la
informacin que se proporciona.
Las reglas para identificar este tipo de funciones son:
Pag. 51
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Pag. 52
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.
Pag. 53
contiene datos derivados. Una consulta se considera nica si tiene un formato distinto de otras consultas,
ya sea en entrada o salida, o si el diseo lgico requiere ediciones distintas a las de otras consultas.
Se entiende por datos derivados aqullos que requieren un proceso distinto a la bsqueda directa, edicin
o clasificacin de informacin de Ficheros Lgicos Internos o Ficheros Interfases Externos.
Las reglas para identificar este tipo de funcin son:
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Regla 6
Regla 7
Regla 8
Pag. 54
Pag. 55
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 implementain 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 ala
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
Pag. 56
dentro un tipo de funcin datos. Los grupos mandatorios son aquellos en los que el usuario debe incluir
cuando se crea o aade una instancia.
Para que un subgrupo de datos sea reconocido como RET debe verificar, alumnos, una de las
siguientes reglas :
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
Baja
Media
Media
Alta
Media
Alta
Alta
RET
1
2a5
6 o ms
Regla 1
Regla 2
Pag. 57
Regla 3
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
Media
Alta
Alta
Alta
FTR
0a1
2
3 o ms
Pag. 58
A cada EO identificada, asignarle una complejidad funcional basada en el nmero de tipos fichero
referenciados (FTRs) por el proceso elemental de dicha EO y el nmero de tipos elemento de datos
(DETs) que la forman.Viene expresada mediante las tablas de contribucin y complejidad del apndice 2.
Reglas de idenfitifacin de DETs para salidas externas
UN DET es un campo no recursivo y nico, reconocible por el usuario y que aparece durante el
proceso de una EO. Para que tal campo sea reconocido como DET debe verificar alguna de estas
reglas :
Regla 1
Regla 2
Regla 3
Regla 4
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 fisica 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
Contar un FTR por cada ILF o EIF ledo durante el proceso de una EO
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
Baja
Media
Media
Alta
FTR
0a1
2a3
Pag. 59
4 o ms
Media
Alta
Alta
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 implentacin 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 confirmacion 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
Regla 4
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,
idenficacin 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 de
fecha y hora
Contar las siguientes tcnicas de implementacin fisica como un nico DET para
el grupo completo de campos :
4.1 Un campo lgico que se almacena fisicamente en multiples 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
Pag. 60
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
Media
Alta
Alta
Alta
1a4
5 a 19
20 o ms
Baja
Baja
Baja
Media
Media
Alta
Media
Alta
Alta
FTR
0a1
2
3 o ms
Para la parte de salida:
DET
FTR
0a1
2a3
4 o ms
Complejidad X
Peso
Entrada
Alta
Media
Baja
X
X
X
Total
6
4
3
=
=
=
Pag. 61
Salida
Alta
Media
Baja
X
X
X
7
5
4
=
=
=
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.
Pag. 62
12.
13.
14.
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:
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:
Pag. 63
La aplicacin es por lotes pero existe una entrada de datos o impresin remotas
2
3
La aplicacin prepara datos para que el usuario final los procese en otro componente del
sistema. Por ejemplo, en una hoja electrnica en un ordenador personal.
2
3
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.
4
5
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
accin especial.
2
Los requisitos de rendimiento por parte de los usuarios son suficientemente estrictos como
para requerir un anlisis de rendimiento en la fase de diseo.
Adems, hay que utilizar herramientas para el anlisis de rendimiento durante el diseo,
desarrollo y/o fase de implantacin para verificar los requisitos de rendimiento.
3
4
Pag. 65
1
2
3
4
1
2
3
4
Ayudas/Documentacin on-line
Movimiento automtico del cursor.
Pag. 66
Scrolling.
Interfase de ratn.
Ventanas.
Impresin remota.
Nada de lo anterior.
1
2
3
4
Ninguno.
Actualizacin on-line de 1 a 3 ficheros. El volumen de actualizacin es bajo y la recuperacin
Pag. 67
fcil.
2
3
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
Nada de lo anterior.
Uno de los anteriores.
2
3
5.5.10. Reutilizacin
Pag. 68
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
No reusable.
Se utiliza cdigo reusable dentro de la aplicacin.
Menos del 10% de la aplicacin tiene en cuenta las necesidades de mas de un usuario.
3
4
Pag. 69
Los requisitos de conversin e instalacin fueron definidos por el usuario y las guas para la
conversin e instalacin fueron desarrolladas y probadas. El impacto de la conversin en el
proyecto no se considera importante.
Los requisitos de conversin e instalacin fueron definidos por el usuario y las guas para la
conversin e instalacin fueron proporcionadas y probados.
1-4
Seleccionar, valorando como uno, cada una de las siguientes solicitudes realizadas a la
aplicacin:
Procesos eficaces de arranque, respaldo y recuperacin pero con
Pag. 70
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
Pag. 71
Los datos de la aplicacin relativos al negocio se mantienen en tablas por parte de los usuarios.
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.
Productividad
= puntos funcin/persona-mes
Calidad
= errores/punto funcin
Pag. 72
Coste
= pesetas/punto funcin
Documentacin
= pginas/punto funcin
Lneas de Cdigo
= 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.
Pag. 73
TEMA 6:
MTODO DE ESTIMACIN
COCOMO
Pag. 74
Diseo detallado.
Codificacin y pruebas unitarias.
Integracin y Pruebas.
Implantacin.
Explotacin y Mantenimiento.
Verificacin y Validacin.
Gestin de Configuracin.
Existen tres modos de desarrollo de software segn COCOMO: orgnico, semilibre y rgido, segn las
caractersticas de la aplicacin y del entorno de desarrollo. A cada uno de estos modelos se le puede
aplicar tres mtodos de estimacin distintos : bsico, intermedio y detallado.
Cuando un ingeniero de software est ante un proyecto a estimar, lo primero que debe hacer para aplicar
el COCOMO es situar su proyecto en el espacio de dos dimensiones (modo, modelo) de la Figura 6.1.
En la Figura 6.1, Px es un proyecto que va a ser desarrollado segn un modelo Semilibre, dado e tipo de
aplicacin y el equipo del que se dispone, y se va estimar segn COCOMO Detallado, dada la exactitud
que se requiere de la estimacin.
Pag. 75
modos de desarrollo
del software
Rgido
Px
Semirgido
Orgnico
modelos de
aplicacin
Bsico
Intermedio
Detallado
Muchas personas relacionadas con el proyecto tienen amplia experiencia trabajando en sistemas
similares dentro de la propia organizacin y tienen un buen conocimiento de cmo el sistema que
se est desarrollando contribuir a los objetivos de la Organizacin.
Esto significa que muchas personas podrn contribuir al proyecto desde las primeras etapas, sin
generar una sobrecarga de comunicacin importante.
Pag. 76
Algunos miembros del proyecto tienen alguna experiencia en aspectos del proyecto y otros no.
Pag. 77
Los costes de cambiar algo en este complejo entramado son tan altos, que sus caractersticas se
consideran inmodificables, asi que el software debe realizarse estrictamente conforme a las
especificaciones.
Como resultado, estos proyectos no admiten negociar cambios en el software modificando los
requisitos e interfases del usuario, por lo que el esfuerzo en verificaciones y validacin asi como
la gestin de configuraciones, es muy alto.
Una vez que el proyecto ha terminado la fase de diseo, la mejor estrategia para continuar el
desarrollo es constituir un equipo grande de programacin para realizar el diseo detallado,
codificacin y pruebas en paralelo. Esta estrategia conduce a puntas en cuanto a personal y a
un mayor consumo de esfuerzo mayor que en los restantes niveles.
Semilibre:
MM
1,05
= 2,4 (KDSI)
0,38
TDEV = 2,5 (MM)
MM = 3,0 (KDSI)
1,12
Pag. 78
1,20
MM = 3,6 (KDSI)
TDEV = 2,5 (MM)0,32
Donde,
KDSI significa nmero de instrucciones de cdigo en miles.
MM significa esfuerzo medido en Meses/Hombre.
TDEV significa duracin en Meses.
Ejemplo:
Supongamos que queremos desarrollar un programa que se ha estimado tendr 32.000
instrucciones; y en base a las caractersticas de la aplicacin decidimos tratarlo en el modo
orgnico.
Cules sern el esfuerzo, tiempo y recursos requeridos para desarrollar dicha aplicacin?
Esfuerzo: MM = 2,4 (32)1,05 = 91 Meses/Hombre
0,38
Tiempo:
TDEV = 2,5(91) = 14 Meses
NMedio de Empleados: 91 / 14 = 6,5 Personas
La mayor limitacin del modelo bsico es que no incorpora el efecto de los factores, como la experiencia
de los recursos por ejemplo; que influyen sobre el coste ni el mantenimiento del producto.
Desarrollo Incremental.
Pag. 82
Libreras de Programas.
Programacin Estructurada.
Se valorar el grado de utilizacin de estas prcticas desde Muy Bajo hasta Muy Alto.
TOOL : Uso de herramientas para el Desarrollo de Software.
Seala el grado de utilizacin de herramientas en el desarrollo al software.
Se identifican cinco niveles de herramientas:
Herramientas bsicas de microprocesador.
Herramientas bsicas de microcomputador.
Herramientas avanzadas.
El rango de este parmetro vara entre Muy Bajo cuando slo se usan herramientas bsicas,
hasta Muy Alto cuando se usan herramientas de propsito especial como CASE (Computer
Aided Software Engineering).
SCED : Limitaciones en la planificacin.
Se define mediante el porcentaje de retraso o aceleracin con respecto a la planificacin
nominal impuesta al equipo de desarrollo.
Cualquier aceleracin (Muy Bajo) o retraso (Muy Alto) requerir mayor esfuerzo.
Pag. 83
VARIABL
E
Muy Bajo
Bajo
RELY
DATA
CPLX
TIME
STOR
VIRT
TURN
ACAP
AEXP
PCAP
VEXP
LEXP
MODP
TOOL
SCED
0.75
0.70
0.88
0.94
0.85
1.46
1.29
1.42
1.21
1.14
1.24
1.24
1.23
0.87
0.87
1.19
1.13
1.17
1.10
1.07
1.10
1.10
1.08
VALORES
Nominal
Alto
Muy Alto
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.15
1.08
1.15
1.11
1.06
1.15
1.07
0.86
0.91
0.86
0.90
0.95
0.91
0.91
1.04
1.40
1.16
1.30
1.30
1.21
1.30
1.15
0.71
0.82
0.70
Extra alto
1.65
1.66
1.56
0.82
0.83
1.10
Modo Orgnico:
Modo Semilibre:
Modo Rgido:
MM = 2.8 (KDSI)
1,20
Ejemplo:
Se negocia con la empresa Compaa de Comunicaciones Megabit el precio para desarrollar un
software complejo de 10 KDSI para un microprocesador comercial.
Pag. 84
Situacin
Ratio
Multiplic.
RELY
DATA
CPLX
TIME
STOR
VIRT
TURN
ACAP
AEXP
PCAP
VEXP
LEXP
MODP
TOOL
SCED
USO LOCAL
20.000 BYTES
COMUNICACIONES
SE USAR EL 70%
45K/84K
BASADO EN HW
COMERCIAL
DOS HORAS MEDIA
BUENOS ANALISTAS
TRES AOS
BUENOS PROGRAMAD.
SEIS MESES
DOCE MESES
MUCHAS TCNICAS
A NIVEL MICRO
NUEVE MESES
NOMINAL
BAJO
MUY
ALTO
ALTO
ALTO
NOMINAL
NOMINAL
ALTO
NOMINAL
ALTO
BAJO
NOMINAL
ALTO
BAJO
NOMINAL
1.0
0.94
1.30
1.11
1.06
1.0
1.0
0.86
1.0
0.86
1.10
1.0
0.91
1.10
1.0
El factor de ajuste se calcula multiplicando todos los valores de los parmetros. En este caso resulta 1,17.
Pag. 85
El modelo detallado presenta dos funcionalidades que resuelven las limitaciones de COCOMO
Intermedio:
l. Multiplicadores de esfuerzo por fases:
En el modelo COCOMO Intermedio, la distribucin de esfuerzo por fase se determina nicamente por el
tamao del producto.
En la prctica, factores como la fiabilidad requerida, la experiencia en aplicaciones y desarrollos
interactivos afectan a unas fases ms que a otras.
El modelo detallado proporciona un conjunto de multiplicadores de esfuerzo para cada atributo en cada
fase. Estos multiplicadores determinan el esfuerzo requerido para completar cada fase.
2. Descomposicin jerrquica del producto a tres niveles.
Pag. 86
En el COCOMO Intermedio, los factores de ajuste del coste se calculaban para distintos componentes del
producto. Este proceso puede ser muy tedioso e innecesariamente repetitivo si ciertos componentes son
agrupados en subsistemas con prcticamente el mismo factor de ajuste.
El COCOMO Detallado evita este problema proporcionando una jerarquizaron del producto a tres niveles:
- Nivel mdulo.
- Nivel subsistema.
- Nivel sistema.
El Nivel modulo se describe por el nmero de instrucciones (DSI) producidas y por aquellos
factores que tienden a modificar dicho nivel: Complejidad del mdulo y adaptacin a partir del
software existente y de la capacidad y experiencia de los programadores que desarrollarn el
mdulo en el lenguaje y en la mquina virtual.
El Nivel subsistema queda descrito por los restantes factores (limitaciones en tiempo y
memoria, capacidad de los analistas, herramientas, planificacin etc.) que tienden a variar de un
subsistema a otro, pero que son iguales para todos los mdulos dentro de un subsistema.
El Nivel sistema se define mediante los factores correspondientes al conjunto del proyecto,
como son el esfuerzo nominal y la planificacin de tiempos.
No se desarrolla este modelo dado que su aplicacin queda reservada a grandes proyectos no
muy frecuentes. El desarrollo completo de este modelo puede estudiarse en el libro "Software
Engineering Economics" de B. Boehm, editorial Prentice Hall, 1981.
Pag. 87