Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo Práctico Nº
Título Técnicas de estimación
Fecha de presentación 6 de septiembre
COCOMO ........................................................................................................................... 2
Descripción del Proceso ............................................................................................................ 2
Tipos de Proyectos ......................................................................................................................................... 2
Tipos de Modelos ..................................................................................................................... 3
MODELO BASICO COCOMO ........................................................................................................................... 3
EL MODELO COCOMO INTERMEDIO .............................................................................................................. 3
EL MODELO COCOMO AVANZADO/DETALLADO ........................................................................................... 5
Ejemplo .................................................................................................................................... 5
Ventajas de COCOMO ............................................................................................................... 6
Desventajas de COCOMO .......................................................................................................... 6
Herramientas usadas para el desarrollo de la técnica................................................................. 6
Ejemplo de Herramientas Automatizada para realizar una estimación ....................................... 7
Bibliografía ............................................................................................................................... 7
COCOMO II ........................................................................................................................ 8
Introducción ............................................................................................................................. 8
Descripción del Proceso ............................................................................................................ 8
Estimación de Esfuerzo .................................................................................................................................. 8
Estimación de Cronograma .......................................................................................................................... 10
Etapas de la técnica ................................................................................................................ 11
Etapa 1 - Estimación del tamaño ................................................................................................................. 11
Etapa 2 - Definición de parámetros ............................................................................................................. 11
Etapa 3 - Cálculos ......................................................................................................................................... 11
Etapa 4 - Estudio de los Resultados ............................................................................................................. 11
Ejemplo .................................................................................................................................. 11
Herramientas utilizadas para el desarrollo de la técnica........................................................... 12
Ventajas ................................................................................................................................. 14
Desventajas ............................................................................................................................ 14
Webgrafía .............................................................................................................................. 14
COCOTS ........................................................................................................................... 15
COnstructive Commercial Off-The-Shelf modelo de coste de integración .................................. 15
Descripción del Proceso .......................................................................................................... 16
1. Evaluación(Assessment):.......................................................................................................................... 16
2. Contextualización(Tailoring): ................................................................................................................ 16
3. Implementación(Glue Code): ................................................................................................................ 17
4. Mantenimiento(Volatility): ................................................................................................................... 17
Ventajas ................................................................................................................................. 18
Desventajas ............................................................................................................................ 19
Webgrafía .............................................................................................................................. 19
Grupo 7 Página 1
UTN FRCU-I.S.I. – Ing. De Software 2016
COCOMO
Descripción del Proceso
El modelo COCOMO (COnstructive COst MOdel- modelo constructivo de los costos), es el
modelo más exitoso dentro de las métricas que emplean el número de líneas de código
como elemento fundamental. Fue creado por Barry H. Boehm en los 80’ teniendo como
principal característica ser un modelo estático que estudia resultados globales empleando
ecuaciones.
Se conoce también como COCOMO 81, asume que el modelo de desarrollo que se utiliza
es en Cascada y que se utilizan lenguajes imperativos como C, Pascal, etc.
Tipos de Proyectos
Boehm consideró en el modelo COCOMO que los proyectos se pueden clasificar de 3 tipos:
● Organic (Orgánico): Proyectos desarrollados con grupos de trabajo pequeños y de
mucha experiencia, en un ambiente familiar y con pocas restricciones, y
construyendo aplicaciones que les son familiares. Usualmente el proyecto tiene un
tamaño pequeño o mediano (decenas de miles de líneas de código). La dimensión
del proyecto suele ser de hasta 50.000 LDC.
● Semi Detached (Semi-acoplado): Etapa intermedia entre proyectos orgánicos y de
modo incorporado. proyectos intermedios en tamaño y complejidad, varios niveles
de experiencia. Pueden llegar a tener una dimensión de 300.000 LDC.
● Embedded (De modo incorporado: se trata de un proyecto único, y que
posiblemente no se repita, con condicionantes estrictas de todo tipo, que debe ser
realizado con un costo determinado y entregado en una fecha precisa, para una
plataforma determinada.
Grupo 7 Página 2
UTN FRCU-I.S.I. – Ing. De Software 2016
Tipos de Modelos
Este modelo es adecuado para una estimación rápida y temprana, pero su precisión es muy
limitada debido a que no contempla factores que tienen significativa influencia en los costos,
como por ejemplo, restricciones de hardware, experiencia y calidad del equipo de trabajo, y
uso de técnicas y herramientas modernas
Grupo 7 Página 3
UTN FRCU-I.S.I. – Ing. De Software 2016
Factores de costo del proyecto
Existen diversos factores a considerar en el desarrollo de un buen modelo de estimación de
costos de un proyecto de software. Para reducir el número a una cantidad relativamente
manejable se utilizaron fundamentalmente dos principios:
1. Eliminar aquellos factores que son significativos solamente en una fracción
relativamente pequeña o en situaciones especiales.
2. Eliminar los factores que están altamente correlacionados con el tamaño y
comprimir aquellos factores correlacionados entre sí.
Grupo 7 Página 4
UTN FRCU-I.S.I. – Ing. De Software 2016
Comparado con el modelo básico, éste provee un nivel de detalle y de precisión superior,
por lo cual es más apropiado para la estimación de costos en etapas de mayor
especificación.
Es importante destacar que este modelo tiene dos limitaciones importantes a la hora de
estimar grandes proyectos de software:
● La estimación de la distribución del esfuerzo para cada fase resulta imprecisa.
● No es muy práctico si el producto de software tiene un gran número de
componentes.
Ejemplo
Usando COCOMO Intermedio, con un modo orgánico de tamaño = 200 KDSI
Factores de costo:
● Baja Confiabilidad => 0.88
● Alta Complejidad del producto => 1.15
● Baja experiencia en la aplicación => 1.13
● Alta experiencia en los lenguajes de programación => 0.95
● Otros manejadores de costo asumen a ser nominales => 1.00
Grupo 7 Página 5
UTN FRCU-I.S.I. – Ing. De Software 2016
EAF = .88 * 1.15 * 1.13 * .95 = 1.086
PM = 3.2 * ( 2001.05 ) * 1.086 = 906 mes-hombre
TDEV = 2.5 * 9060.38 = 33.24
P=PM/TDEV = 906/33.24 = 27 personas
Ventajas de COCOMO
● Transparencia. A diferencia de otros modelos como SLIM, COCOMO permite ver
cómo es su funcionamiento.
● Los factores de costo ayudan al estimador a saber en qué parte del proyecto
aumentan más los costos.
Desventajas de COCOMO
● Depende mucho de los datos históricos de la organización (como algunos factores),
datos que no siempre están disponibles.
● No se puede asumir que el modelo sea válido para todos los entornos de desarrollo.
● El éxito de la estimación depende mucho del modo de desarrollo que se vaya a
utilizar (los valores varían según orgánico, semiacoplado o embebido).
1. Una estimación cuantitativa del tamaño del proyecto (por ejemplo. en LDC) o de la
funcionalidad (datos sobre puntos de función)
2. Características cualitativas del proyecto, tales como la complejidad, la fiabilidad requerida
o el grado crítico del negocio.
3. Alguna descripción del personal de desarrollo y/o del entorno de desarrollo.
Existen herramientas automáticas que estiman costos basados en COCOMO como son:
Costar, COCOMO 81.
SystemStar & Costar -- Tools for Software Estimation & Systems Engineering Estimation.
SystemStar is a cost estimation tool based on COCOMO and the Constructive Systems
Engineering Model (COSYSMO) created by Dr. Ricardo Valerdi. Engineers use SystemStar
to produce estimates of a project's cost. SystemStar lets you make trade-offs and experiment
with "what-if" analyses to arrive at a satisfactory project plan.
We plan to implement the COCOMO III and COSYSMO 3.0 models as soon as they are
completed.
Grupo 7 Página 6
UTN FRCU-I.S.I. – Ing. De Software 2016
To learn about SystemStar before you download it, check out the SystemStar Guided Tour
(http://www.softstarsystems.com/tour.htm).
Bibliografía
Grupo 7 Página 7
UTN FRCU-I.S.I. – Ing. De Software 2016
COCOMO II
Introducción
Surgió como una variante a COCOMO I debido a la tendencia a el desarrollo basado en
ensamblado y reutilización de componentes.
Esta técnica considera diferentes enfoques para el desarrollo de software, como el de la
construcción de prototipos, el desarrollo basado en componentes y el uso de programación
con base de datos.
Soporta el modelo de desarrollo en espiral y engloba varios niveles que producen
estimaciones detalladas de forma incremental.
Los objetivos tenidos en cuenta para el desarrollo del modelo fueron:
● Desarrollar un modelo de estimación de costo y cronograma de proyectos de
software que se adaptara tanto a las prácticas de desarrollo de la década del 90
como a las futuras.
● Construir una base de datos de proyectos de software que permitiera la calibración
continua del modelo, y así incrementar la precisión en la estimación.
● Implementar una herramienta de software que soportará el modelo.
● Proveer un marco analítico cuantitativo y un conjunto de herramientas y técnicas que
evaluarán el impacto de las mejoras tecnológicas de software sobre los costos y
tiempos en las diferentes etapas del ciclo de vida de desarrollo.
● Diseño temprano: se utiliza en las primeras etapas del desarrollo en las cuales se
evalúan las alternativas de hardware y software del proyecto.
○ En esta etapa se tiene poca información.
○ Se utiliza el concepto de Punto de Función para realizar la estimación del
tamaño y reducir el número de factores de costo.
Estimación de Esfuerzo
El esfuerzo necesario para concretar un proyecto de desarrollo de software, cualquiera sea
el modelo empleado, se expresa en meses/persona (PM) y representa los meses de trabajo
de una persona fulltime, requeridos para desarrollar el proyecto.
Grupo 7 Página 8
UTN FRCU-I.S.I. – Ing. De Software 2016
Modelo Composición de Aplicación
𝑵𝑶𝑷
La fórmula propuesta en este modelo es 𝑷𝑴 =
𝑷𝑹𝑶𝑫
Modelo Post-Arquitectura
Es el modelo más detallado y suele aplicarse cuando la arquitectura del proyecto está
completamente definida.
Grupo 7 Página 9
UTN FRCU-I.S.I. – Ing. De Software 2016
- KSLOC: es el tamaño del SW a desarrollar expresado en miles de líneas de código
fuente.
- A: constante que captura los efectos lineales sobre el esfuerzo de acuerdo a la
variación del tamaño, (A=2.94).
- B: es el factor exponencial de escala, toma en cuenta las características
relacionadas con las economías y deseconomías de escala producidas cuando un
proyecto de software incrementa su tamaño.
- EMi : corresponde a los factores de costo que tienen un efecto multiplicativo sobre el
esfuerzo. Cada factor se puede clasificar en seis niveles diferentes que expresan el
impacto del multiplicador sobre el esfuerzo de desarrollo. Esta escala varía desde un
nivel Extra Bajo hasta un nivel Extra Alto. Cada nivel tiene un peso asociado. El peso
promedio o nominal es 1.0. Si el factor provoca un efecto nocivo en el esfuerzo de un
proyecto, el valor del multiplicador correspondiente será mayor que 1.0, caso
contrario el multiplicador será inferior a 1.0.
Estimación de Cronograma
Luego de obtener una estimación del esfuerzo se puede realizar la estimación de
cronograma.
La estimación de cronograma se expresa en cantidad de meses, tomando como fecha de
inicio la determinación de requerimientos, y fecha de fin la culminación de una actividad que
certifique el cumplimiento de las mismas (TDV).
Se utiliza la siguiente ecuación para la obtención de esta estimación:
Grupo 7 Página 10
UTN FRCU-I.S.I. – Ing. De Software 2016
Etapas de la técnica
Etapa 3 - Cálculos
● Calcular el Esfuerzo y la Productividad.
● Determinar el Tiempo de Desarrollo Estimado del proyecto TDEV.
● Calcular el Costo por instrucción en US$ (cociente entre el Costo de Desarrollo y
el Tamaño del Módulo).
Ejemplo
Se necesita realizar una aplicación para llevar a cabo el control de stock de una farmacia.
El cliente requiere conocer una estimación de costos de duración y esfuerzo del proyecto.
Grupo 7 Página 11
UTN FRCU-I.S.I. – Ing. De Software 2016
En el margen superior derecho se puede especificar la etapa de desarrollo, puede ser post-
arquitectura o un proyecto desde cero, incluyendo todas sus actividades iníciales.
Cabe destacar que además esta herramienta brinda la posibilidad de modificar distintos
factores de escala. Aplicaciones previas desarrolladas por el equipo de trabajo, flexibilidad
del diseño, arquitectura (solidez), cohesión en el equipo de trabajo y claridad de los proc.
Grupo 7 Página 12
UTN FRCU-I.S.I. – Ing. De Software 2016
Luego de especificar las características del proyecto, ya es posible dar una estimación.
En la parte inferior se obtiene información al respecto. Brinda tres posibles estimaciones por
filas, la optimista (supone la existencia nula de contratiempos), pesimista (ocurren varios
contratiempos) y la promedio.
Brinda información relacionada al esfuerzo necesario, cantidad de semanas para llevar a
cabo el trabajo, costo intelectual, y la cantidad de personas requeridas (personal).
Para este caso en particular suponiendo un único módulo constituido de 2500 líneas, un
salario de $7000, se obtiene que como estimación promedio el desarrollo llevaría poco más
de 7 semanas y no sería necesario más de un único desarrollador.
Grupo 7 Página 13
UTN FRCU-I.S.I. – Ing. De Software 2016
Ventajas
● Fácil de interpretar y de realizar.
● Tiene pocas variables.
● En la mayoría de los casos se acerca a la realidad.
Desventajas
● No se obtienen resultados fiables en proyectos demasiados pequeños.
● La elección de las variables es muy subjetiva y depende de la persona que realiza el
estudio.
Webgrafía
● Ingeniería del Software 7ma. Ed. - Ian Sommerville
● Gómez.A, López.M, Migani.S y Otazú.A. -COCOMO- Un modelo de estimación de
proyectos de software.
Grupo 7 Página 14
UTN FRCU-I.S.I. – Ing. De Software 2016
COCOTS
COnstructive Commercial Off-The-Shelf modelo de coste de
integración
COCOTS es una extensión de COCOMO II que data del año 2000-2002, está
desarrollado para estimar el costo de integrar COTS (componentes comerciales de
software general) dentro de un nuevo sistema software. El porque es COCOTS una
extensión a COCOMO II, se debe a que este último sólo permite calcular el esfuerzo,
costo y tiempo de desarrollo de un proyecto software cuando se tiene acceso al código
fuente de los componentes a utilizar.
El ser humano ha aprendido a través del tiempo a reutilizar conocimiento existente para
plantearse metas aún más complejas, esto nos asegura no cometer errores reiterativos
teniendo una base firme y de calidad.
El concepto de reutilizar aplicado al software, es uno de los primero que nos enseñan al
iniciarnos en el mundo del desarrollo de software.
En la actualidad los proyectos software son cada vez más exigentes y deben realizarse
en tiempo record con la más alta calidad posible, para hacer frente a esta cuestión se
concibió CBSE (component based software engineering - ingeniería de software basada
en componentes).
La CBSE se centra en diseñar y construir sistemas computacionales utilizando
componentes de software reutilizable sacando provecho del beneficio inherente de la
calidad de software, la productividad al desarrollar y sobre todo en la disminución de
costos, puntualmente COTS enfatiza el que sean piezas de código pre elaborado de
índole comercial .
Grupo 7 Página 15
UTN FRCU-I.S.I. – Ing. De Software 2016
Siendo el modelo COCOTS (ampliamente utilizado en CBSE para estimar esfuerzo,
costo y tiempo en sistemas donde se desea integrar componentes (del tipo caja negra)
para su desarrollo.
1. Evaluación(Assessment):
Se investiga y valora los distintos componentes disponibles, sus aspectos de
integración para el tipo de aplicación que se va a desarrollar.
Los componentes COTS generalmente suelen agruparse en clases en basado en
sus funciones básicas tales como interfaces gráficas, constructores, sistema
operativo, base de datos, procesamiento de texto, etc ya que permite una forma
eficaz de recopilar datos de los mismos para su posterior comparación.
2. Contextualización(Tailoring):
Se diseña una arquitectura de software para que reciba los componentes, así como
también se configura distintos parámetros (instalación, protocolos, formatos de
recepción/emisión de información, seguridad, etc.) de los componentes para un buen
funcionamiento dentro de esta.
Grupo 7 Página 16
UTN FRCU-I.S.I. – Ing. De Software 2016
3. Implementación(Glue Code):
Se implementan los componentes en la arquitectura y se realizan pruebas
exhaustivas que aseguren el cumplimiento de su finalidad.
Esta sección hace foco en 3 cuestiones: facilitar la transición de información o datos
entre los componentes y el resto del sistema (integración) y también entre los mismos
componentes (interconexión), asimismo, debe generarse el código que solucione las
funcionalidades requeridas basándose en el uso de los componentes y demás partes
del sistema.
4. Mantenimiento(Volatility):
Se refiere a que el sistema sea independiente del efecto generado por las
actualizaciones o nuevas versiones del componente software utilizado, durante el
desarrollo del sistema y su despliegue (costo, esfuerzo) subsecuente.
Grupo 7 Página 17
UTN FRCU-I.S.I. – Ing. De Software 2016
En contraparte, el momento de menor implicancia de esfuerzo aunque no deja de ser
importante es el de evaluación o Assessment, aun así los proyectos más exitosos no
relegan esfuerzo en esta etapa, realizando una revisión algo más profunda para
corroborar si los componentes son todo lo que el proveedor dice que son o que hace.
También el manejo del efecto de la volatilidad de los componentes en un sistema
grande tiende a requerir mayor esfuerzo que el Assessment, teniendo gran significancia
a la hora de refinar la definición del modelo.
En la siguiente figura se representa el esfuerzo requerido para construir un sistema de
software a partir de código nuevo y COTS, utilizando el modelo COCOTS relacionado
con el modelo COCOMO II.
Ventajas
● Menor tiempo y costo de desarrollo (en comparación a la generación del componente
por parte del equipo)
● Interfaces bien definidas y documentadas
● Utilización de componentes comerciales ampliamente probados
● Soporte de la misma por el proveedor
Grupo 7 Página 18
UTN FRCU-I.S.I. – Ing. De Software 2016
Desventajas
● Mayor trabajo a la hora de integrar el componente(por tener que adaptarlo a la
arquitectura del software o por un cambio de uno por otro al variar ampliamente
según cada proveedor)
● El código fuente del producto/componente no está disponible (si el código compilado)
● La evolución del componente y su periodicidad no es controlable
● No se controla la performance o predisposición a interconectarse con otros COTS
por parte del producto
Webgrafía
· Department of Computer Science, BRCM college of Engineering and Technology
(Bahal,India)
-A Review on Optimizing COCOTS model in Component based software engineering
approach
· University of Southern California (Los Ángeles, CA, Estados Unidos)
-COCOTS: A COTS Software Integration Lifecycle Cost Model - Model Overview and
Preliminary Data Collection Findings
-COCOTS Web Page
-COCOTS (COnstructive COTS) Software Integration Cost Model: An Overview
http://www.psmsc.com/ug1998/presentations/cocots%201998.pdf
· Pennsylvania State University (University Park, PA, Estados Unidos)
-http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.19.1250&rep=rep1&type=pdf
· Universidad de Almería (La Cañada de San Urbano, Almería, España)
- http://acacia.ual.es/profesor/LIRIBARNE/research/Jis00ref05/node2.html
· Ingeniería del Software: Un enfoque Práctico (7ma Edición) , Roger S. Pressman
Grupo 7 Página 19