Índice 1.
Introducción .........................................................................................................................................
2.
¿Qué es COCOMO II?.................. ................. .................. ................. .................. ................. ............... 3
3.
Características .....................................................................................................................................
4.
Objetivos para la construcción de COCOMO II .............................................................................. 4
5.
Modelos de COCOMO II................. ................. .................. ................. .................. ................. ............ 4
2
3
Modelo de composición de aplicación ............... .................. ................. .................. .................. .............. 4 Modelo de fase de diseño previo ................ ................. .................. ................. .................. ................. ...... 5 Modelo de fase posterior a la arquitectura ........................................................................................... 6.
6
Modelos de estimación ........................................................................................................................
6
Puntos objeto ...........................................................................................................................................
7
Puntos Función ........................................................................................................................................
8
Líneas de Código Fuente (SLOC) ..........................................................................................................
9
7.
Aplicaciones de COCOMO II ..........................................................................................................
10
8.
Ventajas y desventajas ......................................................................................................................
11
9.
Conclusión ..........................................................................................................................................
11
Bibliografía ....................................................................................................................................
11
10.
INGENIERÍA DE SOFTWARE II
1
COCOMO II 1. Introducción El primer modelo original de COCOMO fue publicado en el año 1981 por Barry Boehm el cual se enfocaba en las prácticas de software que se desarrollaban en ese tiempo. Al pasar el tiempo las reglas y técnicas para el desarrollo de software cambiaron drásticamente, al cambiar de esta forma influían de gran impacto en el gasto de esfuerzo, diseño e implementación de un proyecto de software, esto produjo que se crearan de manera rápida nuevos modelos de sistemas que se daban en aquella época. Los grandes cambios hicieron que la aplicación de COCOMO empezara a resultar muy compleja puesto a que ya no se utilizaban las mismas normas de desarrollo, la solución a estos problemas era volver a recrear un nuevo modelo, que luego de varios años de esfuerzo por parte de varias organizaciones ligadas al desarrollo, dieron a conocer un nuevo modelo llamado COCOMO II, un modelo que reflejaba varios aspectos acordes al desarrollo de software que se vivía en aquella época, este y nuevo mejorado COCOMO resultaba de mucha ayuda a los estimadores profesionales. El nuevo modelo COCOMO II permite calcular el costo, esfuerzo y tiempo calculado para planificar alguna actividad en el desarrollo de software, este modelo ha sido muy aplicativo en la década de los 90 y el año 2000, al ser tan exitoso ha ido evolucionando con el paso del tiempo. Actualmente en la mayoría de proyectos en los cuales se requiere una determinación rápida del coste y esfuerzo de un proyecto por medio de las líneas de software, aplican COCOMO II, ya que es de mucha ventaja cuando el proyecto es de gran tamaño y no se lo puede determinar de manera rápida por otras formas de estimación.
INGENIERÍA DE SOFTWARE II
2
2. ¿Qué es COCOMO II? COCOMO II es un modelo de estimación de costes, Constructive Cost Model (Modelo Constructivo de Costo). COCOMO II permite estimar el coste, esfuerzo y tiempo cuando se planifica una nueva actividad de desarrollo software, además permite realizar estimaciones en función del tamaño del software, y de un conjunto de factores de costo y de escala. Los factores de costo describen aspectos relacionados con la naturaleza del producto, hardware utilizado, personal involucrado, y características propias del proyecto. El conjunto de factores de escala explica las economías y des economías de escala producidas a medida que un proyecto de software incrementa su tamaño.
3. Características
Es una herramienta basada en las líneas de código la cual la hace muy poderosa para la estimación de costos y no como otros que solamente miden el esfuerzo en base al tamaño.
Representa el más extenso modelo empírico para la estimación de software.
Entendimiento organizacional de los objetivos del producto.
Experiencia en el trabajo con software relacionado.
Desarrollo concurrente de nuevo hardware y procedimientos operacionales.
Necesidad de innovación en el procesamiento de datos, arquitectura y algoritmos
Asume que existe un buen entendimiento entre el usuario y los desarrolladores.
La estimación se realiza de acuerdo con la información disponible en el momento que se lleva a cabo.
Se consideran tres submodelos que cubren desde el comienzo del análisis de requerimientos hasta el final de las pruebas e integración del sistema:
INGENIERÍA DE SOFTWARE II
3
4. Objetivos para la construcción de COCOMO II
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 soportara el modelo.
Proveer un marco analítico cuantitativo y un conjunto de herramientas y técnicas que evaluaran el impacto de las mejoras tecnológicas de software sobre los costos y tiempos en las diferentes etapas del ciclo de vida de desarrollo.
5. Modelos de COCOMO II Los tres modelos de COCOMO II se adaptan tanto a las necesidades de los diferentes sectores, como al tipo y cantidad de información disponible en cada etapa del ciclo de vida de desarrollo, lo que se conoce por granularidad de la información. Estos tres modelos son:
Modelo de composición de aplicación Utilizado durante las primeras etapas de la Ingeniería del software, donde el prototipo de las interfaces de usuario, la interacción del sistema y del software, la evaluación del rendimiento, y la evaluación de la madurez de la tecnología son de suma importancia. Se expresa en meses/persona (PM) y representa los meses de trabajo de una persona full time, requeridos para desarrollar el proyecto. Estimación del Esfuerzo Estimaciones realizadas con puntos de objeto y una fórmula simple para el cálculo del esfuerzo. Soporta proyectos con prototipo y proyectos que hacen uso intensivo de la reutilización. INGENIERÍA DE SOFTWARE II
4
Basado en estimaciones estándar de la productividad del desarrollador en puntosobjeto/mes. Tiene en cuenta el uso de herramientas CASE. La fórmula es:
Cálculo de Esfuerzo PM = (NOP * (1 - %reusó/100)) / PROD Donde:
NOP (Nuevos Puntos Objeto): Tamaño del nuevo software a desarrollar expresado en
Puntos Objeto y se calcula de la siguiente manera: % reusó (Porcentaje de reusó que se espera lograr en el proyecto)
PROD: Es la productividad promedio determinada a partir del análisis de datos de
proyectos
Modelo de fase de diseño previo Utilizado una vez que se han estabilizado los requisitos y que se ha establecido la arquitectura básica del software Se usa en las etapas tempranas de un proyecto de software, cuando se conoce muy poco del tamaño del producto a ser desarrollado. Este modelo podría emplearse tanto en productos desarrollados en sectores de Generadores de Aplicación, Sistemas Integrados o Infraestructura. En estas etapas se tiene poca información, lo que concuerda con el uso de Puntos Función, para estimar tamaño y el uso de un número reducido de factores de coste. La fórmula para el cálculo del esfuerzo es la siguiente: ∏ ==
Donde: INGENIERÍA DE SOFTWARE II
5
PM Estimado: es el esfuerzo nominal ajustado por 7 factores, que reflejan otros aspectos propios del proyecto que afectan al esfuerzo necesario para la ejecución del mismo.
Modelo de fase posterior a la arquitectura Es el modelo de estimación más detallado y se aplica cuando la arquitectura del proyecto está completamente definida. Este modelo se aplica durante el desarrollo y mantenimiento de productos de software incluidos en las áreas de Sistemas Integrados, Infraestructura y Generadores de Aplicaciones. La fórmula para el cálculo del esfuerzo es la siguiente:
Personas Mes Nominales. PM= A * Tamaño B * EMi
A= 2.94
B < 1. Los esfuerzos de desarrollo mejoran cuando escalan. Si se dobla el tamaño, el esfuerzo es menor del doble.
B = 1. Los proyectos están balanceados. Los aumentos son proporcionales.
B > 1. Los esfuerzos de desarrollo empeoran cuando escalan. Si se dobla el tamaño, el esfuerzo es menor del doble.
Factor de Escala B = 0,91 + 0,01 × W i
Cálculo de Esfuerzo PM = PM nominal * IIEMi
6. Modelos de estimación En la estimación del tamaño de software COCOMO II utiliza tres técnicas:
Puntos Objeto,
Puntos Función No Ajustados y
Líneas de Código Fuente. INGENIERÍA DE SOFTWARE II
6
Además se emplean otros parámetros relativos al tamaño que contemplan aspectos tales como: reúso, reingeniería, conversión y mantenimiento.
Puntos objeto El procedimiento para determinar Puntos Objeto en un proyecto software se resume en:
Determinar Cantidad de Objetos: Estimar la cantidad de pantallas, reportes, componentes que contendrá la aplicación.
Clasificar cada instancia de un objeto según sus niveles de complejidad (simple, media o difícil)
Dar el peso a cada objeto según el nivel de complejidad. Los pesos reflejan el esfuerzo relativo requerido para implementar una instancia de ese nivel de complejidad.
Determinar la cantidad de Puntos Objeto, sumando todos los pesos de las instancias de los tipos de objetos especificados.
Figura 1
INGENIERÍA DE SOFTWARE II
7
Puntos Función El modelo COCOMO II usa Puntos Función y/o Líneas de Código Fuente (SLOC) como base para medir tamaño en los modelos de estimación de Diseño Temprano y Post-Arquitectura. Los puntos función están basados en información disponible en las etapas tempranas del ciclo de vida del desarrollo de software. COCOMO II considera solamente UFP (Puntos Función no ajustados).
FP = UFP x TCF Donde:
UFP: Puntos Función no Ajustados
TCF: Factor de Complejidad Técnica
Para calcular los UFP, se deben identificar los siguientes elementos:
Entradas Externas (Inputs): Entrada de datos del usuario o de control que ingresan desde el exterior del sistema para agregar y/o cambiar datos a un archivo lógico interno.
Salidas Externas (Outputs): Salida de datos de usuario o de control que deja el límite del sistema de software.
Archivo Lógicos Internos (Archivos): Incluye cada archivo lógico, es decir cada grupo lógico de datos que es generado, usado, o mantenido por el sistema de software.
Archivos Externos de Interfase (Interfases): Archivos transferidos o compartidos entre sistemas de software.
Solicitudes Externas (Queries): Combinación única de entrada-salida, donde una entrada causa y genera una salida inmediata, como un tipo de solicitud externa. INGENIERÍA DE SOFTWARE II
8
Una vez identificados los elementos se clasifican de acuerdo al grado de complejidad en: bajo, promedio o alto. Se asigna un peso a cada ítem según el tipo y el grado de complejidad correspondiente. Finalmente los UFP son calculados sumando los pesos de todos los ítems identificados.
Líneas de Código Fuente (SLOC) El objetivo es medir la cantidad de trabajo intelectual puesto en el desarrollo de un programa. Definir una línea de código es difícil debido a que existen diferencias conceptuales cuando se cuentan sentencias ejecutables y de declaraciones de datos en lenguajes diferentes. A los efectos de COCOMO II, se eliminan las categorías de software que consumen poco esfuerzo. Así no están incluidas librerías de soporte, sistemas operativos, librerías comerciales, etc., ni tampoco el código generado con generadores de código fuente. Conversión de Puntos Función a Líneas de Código Fuente (SLOC) Para determinar el esfuerzo nominal en el modelo COCOMO II los puntos función no ajustados tienen que ser convertidos a líneas de código fuente considerando el lenguaje de implementación Esto se realiza para los modelos Diseño Temprano y Post Arquitectura.
INGENIERÍA DE SOFTWARE II
9
7. Aplicaciones de COCOMO II
Figura 2
Aplicaciones desarrolladas por Usuarios Finales: En este sector se encuentran las aplicaciones generadas directamente por usuarios finales, mediante la utilización de generadores de aplicaciones tales como hojas de cálculo, sistemas de consultas, etc. Estas aplicaciones surgen debido al uso masivo de estas herramientas, conjuntamente con la presión actual para obtener soluciones rápidas y flexibles.
Generadores de Aplicaciones: En este sector están los módulos pre-empaquetados que serán usados por usuarios finales y programadores.
Aplicaciones con Componentes: Sector en el que se están aquellas aplicaciones que se resuelven por soluciones preempaquetadas, pero son lo suficientemente simples para ser construidas a partir de componentes interoperables. Por ejemplo: interfaces gráficos, administradores de bases de datos, buscadores inteligentes de datos. Estas aplicaciones son generadas por un equipo reducido de personas, en pocas semanas o meses.
Sistemas Integrados: Sistemas de gran escala, con un alto grado de integración entre sus componentes, sin antecedentes en el mercado que se puedan tomar como base. Partes de estos sistemas pueden ser desarrolladas a través de la composición de aplicaciones.
Infraestructura: Área que comprende el desarrollo de sistemas operativos, protocolos de redes, sistemas administradores de bases de datos, INGENIERÍA DE SOFTWARE II
10
8. Ventajas y desventajas Ventajas
Es fácil de realizar y de interpretar.
Tiene pocas variables.
Se acerca a la realidad en la mayoría de los casos.
Desventajas
No saca resultados fiables en proyectos demasiado pequeños. La elección de las variables es muy subjetiva y depende de la persona que realiza el estudio.
9. Conclusión COCOMO II es un modelo capaz de conseguir estimaciones de precisión, permite calibrarse por organización, aunque para ello requiere la experiencia de un número grande de proyectos ya finalizados que puedan aportar datos necesarios para la recalibración.
10. Bibliografía Ecured. (2017). COCOMO II. Recuperado de https://www.ecured.cu/COCOMO_II Un poco de java. (2017). Modelos de estimación un poco sobre COCOMO II. Recuperado de https://unpocodejava.com/2012/02/07/modelos-de-estimacion-un-poco-sobre-cocomo-ii/ Slideshare. (2017). COCOMO II. Recuperado de https://es.slideshare.net/equipo2/cocomo-ii Slideshare. (2017). Modelo COCOMO. Recuperado de https://www.slideshare.net/jedaro/modelo-cocomo-4593779
INGENIERÍA DE SOFTWARE II
11