Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Ingeniería de SoftwareIngeniería de Software Unidad V: Estimación 2021 2Ingeniería de Software | Unidad V - 2021 Introducción [1 | 1] Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 3Ingeniería de Software | Unidad V - 2021 De gestión De desarrollo De apoyo Estimación Especificación Evaluación Planificación Desarrollo Documentación Gestión de versiones Validación Adquisición de información Gestión de calidad Evolución Gestión de la configuración Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Introducción [1 | 14] Estimación Actividades en el proceso de software 4Ingeniería de Software | Unidad V - 2021 Introducción [2 | 14] Una de las tareas de mayor importancia en la administración de proyectos de software es la estimación de costos Se debe realizar en forma objetiva teniendo en cuenta diversos factores: Organizacionales Económicos Políticos Negocios Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 5Ingeniería de Software | Unidad V - 2021 Introducción [3 | 14] Si bien es una de las primeras actividades, luego de establecer los requerimientos, se ejecuta regularmente a medida que el proyecto progresa con el fin de ajustar la precisión en la estimación Al estimar se deben responder las siguientes preguntas: ¿Cuánto esfuerzo se requiere para completar una tarea? ¿Cuánto tiempo se necesita para completar una tarea? ¿Cuál es el costo total de la tarea? Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 6Ingeniería de Software | Unidad V - 2021 Introducción [4 | 14] La estimación de costos tiene 2 usos en la administración de proyectos: Durante la planificación: permite decidir cuantas personas serán necesarias para el proyecto y establecer el cronograma adecuado Durante el control del progreso del proyecto: es esencial evaluar si el proyecto está evolucionando de acuerdo al cronograma y tomar las acciones correctivas si fuera necesario Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Para evaluar si el proyecto está evolucionando según el cronograma, se deben hacer mediciones. ●Por qué se mide: ●No se puede administrar lo que no se mide ●Muchos proyectos fracasan por una mala administración ●La medición es una herramienta de comunicación ●Se mide para entender y mejorar los procesos ●La medición es fundamental para cualquier disciplina de ingeniería 7Ingeniería de Software | Unidad V - 2021 Introducción [5 | 14] Técnicas para la estimación: Opinión de expertos: se basa en la experiencia profesional de los participantes en el proyecto Analogía: se basa en la comparación directa de uno o más proyectos pasados Descomposición: se descompone un producto en componentes más pequeños y se estima cada uno de ellos para luego sumarlos en la estimación global Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 8Ingeniería de Software | Unidad V - 2021 Introducción [6 | 14] Técnicas para la estimación (continuación): Ecuaciones: fórmulas matemáticas que establecen la relación de algunas medidas de entrada y determinan el esfuerzo que se requerirá La técnica más usada y con mayores beneficios es la última Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 9Ingeniería de Software | Unidad V - 2021 Introducción [7 | 14] COCOMO (COnstructive COst MOdel: Modelo Constructivo de Costos) Desarrollado por Boehm, es un modelo empírico que se obtuvo recopilando datos de varios proyectos grandes (presenta un 20% de error en el 70% de los casos Es el más conocido y sólidamente documentado de todos los modelos de estimación de costos Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 10Ingeniería de Software | Unidad V - 2021 Introducción [8 | 14] Su primera versión nace en el año 1981, pasando por un refinamiento hasta su versión más reciente, COCOMO II COCOMO 81 (primera versión) supone que el software se desarrolla según un proceso en cascada usando lenguajes de programación imperativos como C o FORTRAN Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 11Ingeniería de Software | Unidad V - 2021 Introducción [9 | 14] En el año 1983 aparece Ada, provocando gran impacto en los costos de desarrollo y mantenimiento A partir de los '90 se produjeron cambios radicales en el desarrollo de software: Prototipado y el desarrollo incremental Software desarrollado con componentes reutilizables Uso del lenguaje SQL y gestores de BD Aparece el concepto de reingeniería Empleo de herramientas CASE Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 12Ingeniería de Software | Unidad V - 2021 Introducción [10 | 14] COCOMO II está compuesto por 3 modelos: Composición de aplicación: se utiliza durante la etapa de prototipación, o en proyectos construidos con componentes preempaquetados Diseño temprano: se utiliza en las primeras etapas del desarrollo en las cuales se evalúan alternativas de HW y SW Post-Arquitectura: se utiliza en la etapa de desarrollo propiamente dicho (después de definir la arquitectura) y en la etapa de mantenimiento Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 13Ingeniería de Software | Unidad V - 2021 Introducción [11 | 14] COCOMO II soporta el modelo de desarrollo incremental y engloba varios niveles que producen estimaciones detalladas en forma incremental, los cuales pueden utilizarse en las sucesivas iteraciones Hay disponible una herramienta online para el cálculo del esfuerzo y tiempo de desarrollo empleando COCOMO II (post-arquitectura): http://softwarecost.org/tools/COCOMO/ Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●COCOMO II se publicó en el año 1995, y actualmente es la versión que está en vigencia. Con esta versión, los autores pretenden mejorar, ampliar y adaptar el modelo anterior a las nuevas formas de desarrollar software. 14Ingeniería de Software | Unidad V - 2021 Introducción [12 | 14] Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 15Ingeniería de Software | Unidad V - 2021 Introducción [13 | 14] Como se puede ver de la imagen anterior, la herramienta necesita como dato de entrada 1 de los siguientes 2 datos: Líneas de código fuente Puntos de función (sin ajustar) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 16Ingeniería de Software | Unidad V - 2021 Introducción [14 | 14] ¿Cuándo se hace la estimación del esfuerzo y costo? Al comienzo del proyecto, cuando no hay ninguna línea de código escrita Conclusión: a la herramienta se le deben proporcionar los puntos de función Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 17Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [1 | 37] Puntos de Función: Mide el tamaño del software cuantificando la funcionalidad provista al usuario basándose solamente en el diseño lógico y las especificaciones funcionales (es independiente de la tecnología) El concepto de funcionalidad captura la noción de cantidad de función contenida en un producto entregado Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación ●El método de Puntos de Función, propuesto por Albretch en 1979, es muy usado por muchas organizaciones en diversas partes del mundo para obtener una medida del tamaño del sistema (www.ifpug.org). 18Ingeniería de Software | Unidad V - 2021 Puntos deFunción (sin ajustar) [2 | 37] Métrica: Medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado Puntos de Función es una métrica: mide la cantidad de funcionalidad que un software entrega al usuario (es una unidad de medida para el software de la misma forma que la hora lo es para el tiempo) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 19Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [3 | 37] Para medir la funcionalidad del software, al mismo se lo descompone en 5 conceptos: ILF: Archivos Internos (Internal Logical Files) EIF: Interfaces Externas (External Interface Files) EI: Entradas Externas (External Inputs) EO: Salidas Externas (External Outputs) EQ: Consultas Externas (External Queries) A cada uno de estos conceptos se le aplica un factor de peso, dado por su complejidad (baja, media o alta) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 20Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [4 | 37] Archivo Interno (ILF) Grupo de datos lógicamente relacionados, identificables por el usuario, que residen completamente dentro del límite de la aplicación y son mantenidos a través de Entradas Externas (EI) Es mantenido internamente por el sistema, tiene una cierta estructura y se guarda en un archivo Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 21Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [5 | 37] Archivo Interno (ILF) Un ILF puede contener: Datos del negocio: datos de los clientes (nombre, dirección, teléfono, etc) Reglas: por ejemplo un valor que indique la cantidad de veces que un empleado puede llegar tarde antes de ser sancionado Datos de control: por ejemplo, valores de parámetros, de estado, etc Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 22Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [6 | 37] Archivo Interno (ILF) Para calcular la complejidad se tienen en cuenta: DET (Data Element Type) RET (Record Element Type) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 23Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [7 | 37] Archivo Interno (ILF) DET: Campo único, no repetitivo, identificable por el usuario Los campos redundantes, o que aparecen más de una vez, se cuentan una sola vez Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 24Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [8 | 37] Archivo Interno (ILF) DET: Ejemplo: sobre cada cliente se guarda su número, nombre, dirección, ciudad, provincia, código postal, saldo en la cuenta, límite de crédito y nombre de su representante de venta Cantidad de DETs: 9 Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 25Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [9 | 37] Archivo Interno (ILF) RET: La idea de los RETs es la de cuantificar las relaciones entre los datos mantenidas en un archivo (ILF o EIF) Un RET es un subconjunto de campos identificables por el usuario Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 26Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [10 | 37] Archivo Interno (ILF) RET: Tipos de subgrupos: Grupos repetitivos: se pueden repetir varias veces dentro de un archivo Subtipos: pueden ser opcionales (puede no estar presente ninguno) o mandatorios (deben estar presentes) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación ●Más información: ●http://www.functionpoints.org/sizing-methods.html ●https://www.portlandwebworks.com/blog/simplifying- complex-function-point-analysis-part-2 ●https://www.totalmetrics.com/function-point- resources/function-point-FAQ/record-element- types--identification-guidelines ●https://www.youtube.com/watch?v=wqyAkgYzS5w 27Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [11 | 37] Archivo Interno (ILF) RET (grupos repetitivos): Ejemplo: un sistema guarda la siguiente información: #empleado, nombre, apellido, correo, usuario, clave, estado y salario Suponer que los datos se guardan en 1 ILF DETs = 8 RETs = 1 (los 8 DETs se guardan en un único archivo) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 28Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [12 | 37] Archivo Interno (ILF) RET (grupos repetitivos): Ahora se quiere llevar el historial de salarios de los empleados: DETs = 8 RETs = 2 Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación ●Habría 2 RETs porque habría 2 subgrupos de datos: los que tienen que ver con el #empleado, nombre, apellido, correo, usuario, clave y estado, y los que tienen que ver con el historial de salarios. 29Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [13 | 37] Archivo Interno (ILF) RET (subtipos): Ejemplo: un empleado tiene datos generales, y además puede ser mensual o jornalero. Adicionalmente, puede tener personas a su cargo (grupo familiar) Datos generales + mensual = 1 RET (mandatorio) Datos generales + jornalero = 1 RET (mandatorio) Grupo familiar = 1 RET (opcional) Total = 3 RETs Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 30Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [14 | 37] Archivo Interno (ILF) Una vez determinada la cantidad de DETs y RETs se calcula la complejidad: RETs DETs 1 - 19 20 - 50 > 50 1 Baja (7) Baja (7) Media (10) 2 - 5 Baja (7) Media (10) Alta (15) > 5 Media (10) Alta (15) Alta (15) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 31Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [15 | 37] Interfaz Externa (EIF) Grupo de datos relacionados lógicamente, identificables por el usuario, que residen completamente fuera de la aplicación y son mantenidos por otra aplicación, y se los usa con propósitos de referencia Un EIF es un ILF para otra aplicación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 32Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [16 | 37] Interfaz Externa (EIF) Como un EIF es mantenido por otra aplicación, y se lo utiliza sólo para referenciar su información, se debe desarrollar una interfaz para obtener sus datos Para calcular su complejidad se aplican los mismos principios que para los ILF (DETs y RETs), y se emplea la misma tabla Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 33Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [17 | 37] Entrada Externa (EI) Proceso mediante el cual los datos atraviesan los límites de la aplicación, desde afuera hacia adentro Estos datos (información de control o de negocio) se pueden usar para mantener uno o más ILFs (si son información de control no es necesario que mantenga un ILF) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 34Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [18 | 37] Entrada Externa (EI) Si una EI agrega, borra y modifica la información en un ILF, la misma representa 3 EIs Para calcular la complejidad se tienen en cuenta: DET (Data Element Type) FTR (File Type Referenced) Introducción Puntos de Función (sin ajustar)COCOMO II Líneas de código fuente Estimación ●Una EI debe ser considerada única si tiene un formato distinto de las demás o requiere una lógica de procesamiento distinta. 35Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [19 | 37] Entrada Externa (EI) DET: Campo único, no repetitivo, identificable por el usuario Si los campos son información de control, los DETs son aquellos que ejecutan una transacción o modifican el comportamiento de la aplicación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 36Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [20 | 37] Entrada Externa (EI) DET (para aplicaciones GUI): Para el caso de aplicaciones GUI, un DET es información que se guarda en un ILF o que se usa para ejecutar una transacción Botón de opciones: como sólo se puede seleccionar uno de un grupo, se cuenta un DET para todo el grupo de botones Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 37Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [21 | 37] Entrada Externa (EI) DET (para aplicaciones GUI): Casilla de verificación: como se pueden seleccionar varias, se cuenta un DET por cada casilla de verificación Botón: se cuenta como DET si el mismo especifica una acción para agregar, borrar o modificar Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 38Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [22 | 37] Entrada Externa (EI) DET (para aplicaciones GUI): Listas: cada lista se cuenta como un DET Visualización de imágenes o íconos: cada imagen o ícono se cuenta como un DET Archivos de sonido: cada archivo se cuenta como un DET Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 39Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [23 | 37] Entrada Externa (EI) DET (para aplicaciones GUI): Mensajes: hay 3 tipos: de error: cada uno cuenta como un DET de confirmación: cada uno cuenta como un DET de notificación: cada uno cuenta cada una EO Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 40Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [24 | 37] Entrada Externa (EI) DET (para aplicaciones GUI): Ejemplo Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación ●Si la información de una EI son datos de negocio, los DETs podrían ser por ejemplo: nombre del cliente, domicilio, teléfono, etc. ●Si la información son datos de control, los DETs son aquellos que ejecutan una transacción o modifican el comportamiento de la aplicación. En la ventana, cada casilla de verificación representa un DET. Luego el grupo de botones de opción para ordenar los empleados cuenta como otro DET (lo mismo que el grupo que especifica el formato del tiempo). Con respecto a los botones, sólo cuenta como DET el botón “OK” (el botón “Cancel” sólo cierra la ventana, el botón “Help” se puede considerar como EQ, y el botón “Default” podría ser una EQ también). Total = 9 DETs. 41Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [25 | 37] Entrada Externa (EI) FTR: Archivo referenciado por una transacción Puede ser un ILF o un EIF: cada ILF mantenido por una EI se cuenta como FTR. Cada ILF o EIF referenciado por una EI como parte de su proceso se cuenta como FTR Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 42Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [26 | 37] Entrada Externa (EI) Una vez determinada la cantidad de DETs y FTRs se calcula la complejidad: FTRs DETs 1 - 4 5 - 15 > 15 1 Baja (3) Baja (3) Media (4) 2 Baja (3) Media (4) Alta (6) > 2 Media (4) Alta (6) Alta (6) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 43Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [27 | 37] Salida Externa (EO) Proceso mediante el cual datos derivados atraviesan los límites de la aplicación, desde adentro hacia afuera Estos datos, obtenidos a partir de la información guardada en uno o más ILF y EIF, se envían a otra aplicación Adicionalmente puede actualizar un ILF Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación ●Los datos derivados por lo general son el resultado de aplicar algoritmos o cálculos. Por ejemplo, en el ILF se guarda la fecha de nacimiento de una persona, pero lo que se muestra es su edad. 44Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [28 | 37] Salida Externa (EO) Se consideraran EOs: La transferencia de datos a otras aplicaciones Los informes/reportes Los gráficos Los mensajes de notificación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 45Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [29 | 37] Salida Externa (EO) Para calcular la complejidad se tienen en cuenta: DET (Data Element Type) FTR (File Type Referenced) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 46Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [30 | 37] Salida Externa (EO) Una vez determinada la cantidad de DETs y FTRs se calcula la complejidad: FTRs DETs 1 - 5 6 - 19 > 19 1 Baja (4) Baja (4) Media (5) 2 - 3 Baja (4) Media (5) Alta (7) > 3 Media (5) Alta (7) Alta (7) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 47Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [31 | 37] Consulta Externa (EQ) Proceso con componentes de entrada y salida que implican la recuperación de datos de uno o más ILF y EIF El proceso no actualiza ni mantiene ningún FTR y la salida no contiene datos derivados Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 48Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [32 | 37] Consulta Externa (EQ) Se consideran EQs: Búsqueda de datos Menús con consultas explícitas (cada menú que proporciona una selección de pantallas se cuenta como una EQ) Pantallas de conexión (de login por ejemplo) Las ayudas (consultas donde la entradas y salida son únicas) Tutoriales Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 49Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [33 | 37] Consulta Externa (EQ) Para calcular la complejidad se tienen en cuenta: DET (Data Element Type) FTR (File Type Referenced) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 50Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [34 | 37] Consulta Externa (EQ) Una vez determinada la cantidad de DETs y FTRs se calcula la complejidad: FTRs DETs 1 - 5 6 - 19 > 19 1 Baja (3) Baja (3) Media (4) 2 - 3 Baja (3) Media (4) Alta (6) > 3 Media (4) Alta (6) Alta (6) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 51Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [35 | 37] A los ILF, EIF, EI, EO y EQ de complejidad baja, media y alta, se los ingresan a la siguiente tabla: Componente Complejidad Total Baja Media Alta ILF # x 7 = # x 10 = # x 15 = EIF # x 5 = # x 7 = # x 10 = EI # x 3 = # x 4 = # x 6 = EO # x 4 = # x 5 = # x 7 = EQ # x 3 = # x 4 = # x 6 = PF (sin ajustar) Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 52Ingenieríade Software | Unidad V - 2021 Puntos de Función (sin ajustar) [36 | 37] Ejemplo: se desea desarrollar un software que tiene los siguientes componentes: 2 EI de complejidad baja 3 EI de complejidad media 1 EO de complejidad alta 2 ILF de complejidad media 10 EQ de complejidad baja Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación 53Ingeniería de Software | Unidad V - 2021 Puntos de Función (sin ajustar) [37 | 37] A los ILF, EIF, EI, EO y EQ de complejidad baja, media y alta, se los ingresan a la siguiente tabla: Componente Complejidad Total Baja Media Alta ILF # x 7 = 2 x 10 = 20 # x 15 = 20 EIF # x 5 = # x 7 = # x 10 = EI 2 x 3 = 6 3 x 4 = 12 # x 6 = 18 EO # x 4 = # x 5 = 1 x 7 = 7 7 EQ 10 x 3 = 30 # x 4 = # x 6 = 30 PF (sin ajustar) 75 Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente Estimación ●Al valor FP obtenido en esta tabla se lo llama “Puntos de Función sin Ajustar”. 54Ingeniería de Software | Unidad V - 2021 COCOMO II [1 | 52] Se había dicho que la herramienta de COCOMO II necesitaba 1 de los siguientes 2 datos: Líneas de código fuente: como se está al comienzo del proyecto, no hay ninguna línea escrita Puntos de función (sin ajustar): se los puede medir al comienzo del proyecto Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 55Ingeniería de Software | Unidad V - 2021 COCOMO II [2 | 52] Luego de especificar que se emplearán puntos de función para el cálculo de la estimación, se debe especificar: La cantidad de puntos de función (sin ajustar) El lenguaje a emplear Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 56Ingeniería de Software | Unidad V - 2021 COCOMO II [3 | 52] Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 57Ingeniería de Software | Unidad V - 2021 COCOMO II [4 | 52] A continuación se debe especificar un valor para cada uno de los 17 factores de ajuste, llamados multiplicadores de esfuerzo: A cada multiplicador se le asigna un nivel que va desde “extra bajo” hasta “extra alto” Cada uno de estos niveles se corresponde con un valor numérico Si un factor no tiene incidencia sobre el proyecto, su nivel es “nominal” (valor 1.0), si el factor provoca un efecto nocivo en el esfuerzo, su valor será mayor que 1.0 y en caso contrario será inferior a 1.0 Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 58Ingeniería de Software | Unidad V - 2021 COCOMO II [5 | 52] Los 17 factores de ajuste están organizados en 4 grupos: Producto: Personal: Plataforma: Proyecto: Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 59Ingeniería de Software | Unidad V - 2021 COCOMO II [6 | 52] Factores que tienen que ver con el producto: Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 60Ingeniería de Software | Unidad V - 2021 COCOMO II [7 | 52] Factores que tienen que ver con el producto: Confiabilidad requerida (RELY): mide la confiabilidad del producto a ser desarrollado. Si el efecto de la falla del software produce inconvenientes solamente al desarrollador, quien debe solucionarla, su valor es Bajo Si por el contrario, la falla atenta contra la vida humana su valor es Muy Alto Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Para una mayor descripción de cada uno de los multiplicadores de esfuerzo, se puede ver: ●http://sunset.usc.edu/research/COCOMOII/Docs/ modelman.pdf 61Ingeniería de Software | Unidad V - 2021 COCOMO II [8 | 52] Factores que tienen que ver con el producto: Tamaño de la base de datos (DATA): su valor se determina calculando la siguiente relación: Tamaño BD (bytes) / Tamaño del programa (SLOC) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 62Ingeniería de Software | Unidad V - 2021 COCOMO II [9 | 52] Factores que tienen que ver con el producto: Complejidad del producto (CPLX): analiza la complejidad de las siguientes operaciones: operaciones de control, computacionales, dependientes de los dispositivos, de administración de datos y de administración de interfaz de usuario Se determina como el promedio del nivel de cada uno de los 5 tipos de operaciones Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 63Ingeniería de Software | Unidad V - 2021 COCOMO II [10 | 52] Factores que tienen que ver con el producto: Requerimientos de reusabilidad (RUSE): considera el esfuerzo adicional necesario para construir componentes que puedan ser reusados dentro de un mismo proyecto o en futuros desarrollos: Creación de diseños genéricos Mayor cantidad de documentación Testeo intensivo Etc Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 64Ingeniería de Software | Unidad V - 2021 COCOMO II [11 | 52] Factores que tienen que ver con el producto: Documentación acorde a las diferentes etapas del ciclo de vida (DOCU): los posibles valores van desde Muy Bajo (documentación que no cubre varias necesidades) hasta Muy Alto (documentación excesiva de acuerdo a las necesidades) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 65Ingeniería de Software | Unidad V - 2021 COCOMO II [12 | 52] Factores que tienen que ver con el producto: Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto RELY 0,82 0,92 1,00 1,10 1,26 - DATA - 0,90 1,00 1,14 1,28 - CPLX 0,73 0,87 1,00 1,17 1,34 1,74 RUSE - 0,87 1,00 1,17 1,34 1,74 DOCU 0,81 0,91 1,00 1,11 1,23 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Estos 5 multiplicadores de esfuerzo, RELY, DATA, CPLX, RUSE y DOCU, se agrupan en la categoría “Producto”. 66Ingeniería de Software | Unidad V - 2021 COCOMO II [13 | 52] Factores que tienen que ver con el personal: Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 67Ingeniería de Software | Unidad V - 2021 COCOMO II [14 | 52] Factores que tienen que ver con el personal: Capacidad de los analistas (ACAP): los principales atributos que deberían considerarse en un analista son la habilidad para el diseño, el análisis, la correcta comunicación y cooperación entre sus pares No se tiene en cuenta el nivel de experiencia Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 68Ingeniería de Software | Unidad V - 2021 COCOMO II [15 | 52] Factores que tienen que ver con el personal: Capacidad de los programadores (PCAP): la productividad se ve muy afectada por la habilidad de los programadores en el uso de las herramientas actuales También evalúa la capacidad de los programadores para el trabajo en equipo más que para el trabajo individual, resaltando las aptitudes para comunicarse y cooperar mutuamente Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 69Ingeniería de Software | Unidad V - 2021 COCOMO II [16 | 52] Factores que tienen que ver con el personal: Continuidad del personal (PCON): mide el grado de permanencia anual del personal afectado a un proyecto Experiencia en la aplicación (AEXP): mide el nivel de experiencia del equipo de desarrollo en aplicaciones similares Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 70Ingeniería de Software | Unidad V - 2021 COCOMO II [17 | 52] Factores que tienen que ver con el personal: Experiencia en la plataforma (PEXP): reconoce la importancia del conocimiento de nuevas plataformas, interfaces gráficas, BD, redes, etc Experienciaen el lenguaje y herramientas (LTEX): mide el nivel de experiencia del equipo en el uso del lenguaje y herramientas a emplear (influye notablemente en el tiempo de desarrollo) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 71Ingeniería de Software | Unidad V - 2021 COCOMO II [18 | 52] Factores que tienen que ver con el personal: Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto ACAP 1,42 1,19 1,00 0,85 0,71 - PCAP 1,34 1,15 1,00 0,88 0,76 - PCON 1,29 1,12 1,00 0,90 0,81 - AEXP 1,22 1,10 1,00 0,88 0,81 - PEXP 1,19 1,09 1,00 0,91 0,85 - LTEX 1,20 1,09 1,00 0,91 0,84 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Estos 6 multiplicadores de esfuerzo, ACAP, PCAP, PCON, AEXP, PEXP y LTEX, se agrupan en la categoría “Personal”. 72Ingeniería de Software | Unidad V - 2021 COCOMO II [19 | 52] Factores que tienen que ver con la plataforma: Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 73Ingeniería de Software | Unidad V - 2021 COCOMO II [20 | 52] Factores que tienen que ver con la plataforma: Restricción del tiempo de ejecución (TIME): representa el grado de restricción de tiempo de ejecución impuesta sobre el sistema Se expresa en términos de porcentaje de tiempo de ejecución disponible que usará el sistema Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 74Ingeniería de Software | Unidad V - 2021 COCOMO II [21 | 52] Factores que tienen que ver con la plataforma: Restricción del almacenamiento principal (STOR): representa el grado de restricción del almacenamiento principal impuesto sobre un sistema. Se expresa en términos de porcentaje del almacenamiento principal que usará el sistema Volatilidad de la plataforma (PVOL): representa la frecuencia de los cambios en la plataforma subyacente Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 75Ingeniería de Software | Unidad V - 2021 COCOMO II [22 | 52] Factores que tienen que ver con la plataforma: Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto TIME - - 1,00 1,11 1,29 1,63 STOR - - 1,00 1,05 1,17 1,46 PVOL - 0,87 1,00 1,15 1,30 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Estos 3 multiplicadores de esfuerzo, PVOL, STOR y TIME, se agrupan en la categoría “Plataforma”. 76Ingeniería de Software | Unidad V - 2021 COCOMO II [23 | 52] Factores que tienen que ver con el proyecto: Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 77Ingeniería de Software | Unidad V - 2021 COCOMO II [24 | 52] Factores que tienen que ver con el proyecto: Uso de herramientas de software (TOOL): el tipo de herramientas abarca desde las que permiten editar y codificar hasta las que posibilitan una administración integral del desarrollo en todas sus etapas Desarrollo multisitio (SITE): involucra la disposición (ubicación) del equipo de trabajo) y el soporte de comunicación Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 78Ingeniería de Software | Unidad V - 2021 COCOMO II [25 | 52] Factores que tienen que ver con el proyecto: Cronograma requerido para el desarrollo (SCED): se define mediante el porcentaje de retraso o aceleración con respecto a la planificación nominal impuesta al equipo de desarrollo Cualquier aceleración (muy bajo) o retraso (muy alto) requerirá mayor esfuerzo: acelerar plazos produce más esfuerzo en las últimas etapas, relajar los plazos produce mayor esfuerzo en las etapas tempranas Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Una relajación de los plazos produce mayor esfuerzo en las etapas tempranas donde se destina más tiempo para las tareas de planificación, especificación. 79Ingeniería de Software | Unidad V - 2021 COCOMO II [26 | 52] Factores que tienen que ver con el proyecto: Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto TOOL 1,17 1,09 1,00 0,90 0,78 - SITE 1,22 1,09 1,00 0,93 0,86 0,80 SCED 1,43 1,14 1,00 1,00 1,00 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Estos 3 multiplicadores de esfuerzo, TOOL, SITE y SCED, se agrupan en la categoría “Proyecto”. 80Ingeniería de Software | Unidad V - 2021 COCOMO II [27 | 52] Factor de escala B: Se suele asumir que un sistema 10 veces más grande que otro requerirá 10 veces más esfuerzo para construirse Sin embargo, el esfuerzo es más de 10 veces Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Que el esfuerzo para desarrollar un sistema 10 veces más grande que otro sea más de 10 veces mayor se debe a que los proyectos de SW más grandes requieren la coordinación entre grupos más grandes de personas, lo que requiere una mayor comunicación (Brooks). 81Ingeniería de Software | Unidad V - 2021 COCOMO II [28 | 52] Factor de escala B: Como el tamaño del proyecto aumenta, el número de vías de comunicación entre las diferentes personas aumenta según la relación: N x (N – 1 ) / 2 Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 82Ingeniería de Software | Unidad V - 2021 COCOMO II [29 | 52] Factor de escala B: Debido al aumento exponencial de las vías de comunicación (junto con algunos otros factores), los proyectos también tienen un aumento exponencial en el esfuerzo a medida que aumenta el tamaño (deseconomía de escala) Economía de escala implica “cuanto más grande, más bajo el costo por unidad” Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 83Ingeniería de Software | Unidad V - 2021 COCOMO II [30 | 52] Factor de escala B: COCOMO II captura los efectos de las economías y deseconomías de escala mediante 5 factores: PREC FLEX RESL TEAM PMAT Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 84Ingeniería de Software | Unidad V - 2021 COCOMO II [31 | 52] Factor de escala B: Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 85Ingeniería de Software | Unidad V - 2021 COCOMO II [32 | 52] Factor de escala B: Factor de precedencia (PREC): grado de experiencia previa en relación al producto a desarrollar, tanto en aspectos organizacionales como en el conocimiento del SW y HW a utilizar Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto PREC Completamente sin precedentes Ampliament e sin precedente s Algún precedente Generalment e familiar Ampliame nte familiar Completam ente familiar 6,20 4,96 3,72 2,48 1,24 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 86Ingeniería de Software | Unidad V - 2021 COCOMO II [33 | 52] Factor de escala B: Factor de flexibilidad (FLEX): considera el nivel de exigencia en el cumplimiento de los requerimientos preestablecidos, plazos de tiempos y especificaciones de interfaz Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto FLEX Rigurosa Relajación ocasional Alguna relajación Conformidad en general Alguna conformid ad Metas generales 5,07 4,05 3,04 2,03 1,01 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 87Ingeniería de Software | Unidad V - 2021 COCOMO II [34 | 52] Factor de escala B: Arquitectura y determinación del riesgo (RESL): involucra aspectos relacionados al conocimiento de los ítems de riesgo crítico y al modo de abordarlos dentro del proyecto Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto RESL Poco (20%) Algo (40%) Siempre (60%) Generalment e (75%) Principalm ente (90%) Completam ente (100%) 7,07 5,654,24 2,83 1,41 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 88Ingeniería de Software | Unidad V - 2021 COCOMO II [35 | 52] Factor de escala B: Cohesión del equipo (TEAM): tiene en cuenta las dificultades de sincronización entre los participantes del proyecto Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto TEAM Interacciones difíciles Interaccion es con alguna dificultad Interaccion es básicament e cooperativa s Interaccione s ampliamente cooperativas Interaccio nes muy cooperativ as Interaccion es sin fisuras 5,48 4,36 3,29 2,19 1,10 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 89Ingeniería de Software | Unidad V - 2021 COCOMO II [36 | 52] Factor de escala B: Madurez del proceso (PMAT): se basa en el modelo de CMM Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto PMAT Mitad inferior del nivel 1 Mitad superior del nivel 1 Nivel 2 Nivel 3 Nivel 4 Nivel 5 7,80 6,24 4,68 3,12 1,56 - Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 90Ingeniería de Software | Unidad V - 2021 COCOMO II [37 | 52] Factor de escala B: Si B < 1.0 el proyecto exhibe economía de escala: Si un producto aumenta el doble su tamaño, el esfuerzo del proyecto es menos del doble, lo cual significa que la productividad del proceso de desarrollo de software incrementa a medida que aumenta el tamaño del proyecto Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 91Ingeniería de Software | Unidad V - 2021 COCOMO II [38 | 52] Factor de escala B: Si B > 1.0 el proyecto exhibe deseconomía de escala: La productividad del proceso de desarrollo de software disminuye a medida que aumenta el tamaño del proyecto La deseconomía de escala en los proyectos de software se debe a 2 factores principales: el crecimiento de las comunicaciones interpersonales, y la integración de sistemas Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 92Ingeniería de Software | Unidad V - 2021 COCOMO II [39 | 52] Factor de escala B: Si B = 1.0 las economías y deseconomías de escala están en equilibrio: Este modelo lineal se usa siempre en la estimación de costos de proyectos pequeños Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 93Ingeniería de Software | Unidad V - 2021 COCOMO II [40 | 52] COCOMO II también tiene en cuenta si un proyecto se va a construir a partir de componentes existentes, en cuyo caso: Una parte será totalmente nueva Otra parte se reutilizará sin hacerle modificaciones y/o otra parte se reutilizará haciéndole alguna modificación Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 94Ingeniería de Software | Unidad V - 2021 COCOMO II [41 | 52] Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 95Ingeniería de Software | Unidad V - 2021 COCOMO II [42 | 52] Para la parte que se reutilice sin hacerle modificaciones, se puede especificar: Integración: porcentaje de esfuerzo requerido para integrar y probar el software Grado de evaluación y asimilación (AA): porcentaje de esfuerzo necesario para determinar si un módulo de software es apropiado para la aplicación y si se puede integrar su descripción a la descripción total del producto Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 96Ingeniería de Software | Unidad V - 2021 COCOMO II [43 | 52] Para determinar el grado de evaluación y asimilación (AA): AA [%] Nivel de esfuerzo 0 Ninguno 2 Búsqueda del módulo básico y documentación 4 Algunos módulos de testeo y evaluación, documentación 6 Considerable cantidad de módulos de testeo y evaluación, documentación 8 Gran cantidad de módulos de testeo y evaluación, documentación Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Este factor tiene que ver con el grado de evaluación y asimilación necesario para determinar si un módulo de software completamente reutizable resulta apropiado para la aplicación, como así también la integración de su descripción en toda la descripción del producto. 97Ingeniería de Software | Unidad V - 2021 COCOMO II [44 | 52] Para la parte que se reutilice haciéndole alguna modificación, se puede especificar: Diseño: porcentaje del diseño que requiere modificación para alcanzar los objetivos del nuevo software Código: porcentaje del código que requiere modificación para alcanzar los objetivos del nuevo software Integración: porcentaje de esfuerzo requerido para integrar y probar el software Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 98Ingeniería de Software | Unidad V - 2021 COCOMO II [45 | 52] Para la parte que se reutilice haciéndole alguna modificación, se puede especificar: Grado de evaluación y asimilación (AA): porcentaje de esfuerzo necesario para determinar si un módulo de software a adaptar es apropiado para la aplicación y si se puede integrar su descripción a la descripción total del producto Comprensibilidad (SU): porcentaje de comprensibilidad del software existente, según su estructura, claridad y descriptividad Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 99Ingeniería de Software | Unidad V - 2021 COCOMO II [46 | 52] Para la parte que se reutilice haciéndole alguna modificación, se puede especificar: Falta de familiaridad (UNFM): nivel de desconocimiento del programador con el software Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 100Ingeniería de Software | Unidad V - 2021 COCOMO II [47 | 52] Para determinar la comprensibilidad (SU) en cuanto a la estructura: Muy Bajo Bajo Nominal Alto Muy Alto Estructura Cohesión muy baja, alto acoplamiento , código espagueti Cohesión moderadame nte baja, alto acoplamiento Razonablem ente bien estructurado, algunas áreas débiles Alta cohesión, bajo acoplamiento Fuerte modularidad, ocultamiento de la implementaci ón SU [%] 50 40 30 20 10 Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 101Ingeniería de Software | Unidad V - 2021 COCOMO II [48 | 52] Para determinar la comprensibilidad (SU) en cuanto a la claridad en la aplicación: Muy Bajo Bajo Nominal Alto Muy Alto Claridad en la aplicación Ninguna corresponde ncia con el dominio de aplicación Alguna corresponde ncia con el dominio Moderada corresponde ncia con el dominio Buena corresponde ncia con el dominio Clara corresponde ncia con el dominio SU [%] 50 40 30 20 10 Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 102Ingeniería de Software | Unidad V - 2021 COCOMO II [49 | 52] Para determinar la comprensibilidad (SU) en cuanto a la descriptividad: Muy Bajo Bajo Nominal Alto Muy Alto Descriptivid ad Código oscuro, documentaci ón faltante, oscura, u obsoleta Algunas líneas comentario, y alguna documentaci ón útil Nivel moderado de líneas comentario, y documentaci ón Buen nivel de líneas comentario, y documentaci ón útil; debilidad en algunas áreas Código autodescripti vo, documentaci ón al día, bien organizada con racional diseño SU [%] 50 40 30 20 10 Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Si el software se evalúa muy alto en cuanto a su estructura, claridad y descriptividad, el valor de SU es 10%. Si el software se evalúa muy bajo en estas características, el valor de SU es 50%. ●El valor de SU se obtiene haciendo un promedio de los 3 conceptos.103Ingeniería de Software | Unidad V - 2021 COCOMO II [50 | 52] Para determinar la falta de familiaridad (UNFM): UNFM Nivel de desconocimiento 0,0 Completamente familiar 0,2 Familiar en su mayor parte 0,4 Algo familiar 0,6 Considerablemente familiar 0,8 Desconocido en su mayor parte 1,0 Completamente desconocido Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●El parámetro UNFM se aplica multiplicativamente al parámetro SU (comprensibilidad). Si el programador trabaja todos los días con el software, el valor 0,0 de UNFM hará que no se tenga en cuenta el valor de SU. Si el programador nunca antes vió el software, el valor 1,0 de UNFM hará que se tenga en cuenta completamente el valor de SU. 104Ingeniería de Software | Unidad V - 2021 COCOMO II [51 | 52] Con todos estos datos, la herramienta permite determinar: El esfuerzo E [meses-persona] El tiempo medio de desarrollo T [meses] Con estos valores se puede determinar el número medio de personas N: N = E / T [personas] Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●En el trabajo, la unidad meses-persona es una unidad de estimación del esfuerzo necesario para realizar una tarea cuya unidad equivale a la cantidad de meses de trabajo ininterrumpido de una persona. 105Ingeniería de Software | Unidad V - 2021 COCOMO II [52 | 52] La forma genérica para calcular el esfuerzo es: E = 2.94 x (KSLOC)B x Π(EM i ) E: esfuerzo [meses-hombre] KSLOC: líneas de código fuente (expresadas en miles) B: factor de escala EM i : multiplicadores de esfuerzo Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 106Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [1 | 28] Se había dicho que una métrica es una medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado Hay métricas para: El proceso: ayudan a mejorarlo sobre una base continua El proyecto: ayudan en la estimación, control de calidad, evaluación de productividad y control de proyectos EstimaciónEstimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Las métricas para el proceso evalúan el proceso de fabricación del producto correspondiente: ● Tiempo de desarrollo del producto ● Esfuerzo que conlleva dicho desarrollo ● Número y tipo de recursos empleados ● Costo del proceso ●El proceso es un factor controlable para mejorar la calidad del SW. 107Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [2 | 28] Las métricas del proyecto se pueden clasificar en: Métricas de calidad: Corrección Facilidad de mantenimiento Facilidad de uso Métricas orientadas al tamaño: Líneas de código fuente (SLOC) Puntos de Función Puntos Objeto Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 108Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [3 | 28] La cantidad de líneas de código fuente (SLOC) es una medida del tamaño de los requerimientos después de construir el sistema Ventajas: Se pueden medir objetiva y automáticamente Desventajas: Las reglas para contarlas en un lenguaje dado, y cómo sumarlas cuando hay más de uno Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 109Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [4 | 28] Convenciones para contar las líneas de código fuente: ¿Contar líneas procedurales y/o declarativas? ¿Contar líneas en blanco? ¿Contar líneas de comentarios? ¿Contar las líneas de declaración de datos una vez o por cada módulo en que están incluidas? Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 110Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [5 | 28] Otras desventajas de las SLOC: No pueden contarse hasta el final, lo que implica que cualquier método de estimación que requiera el tamaño del sistema al principio del desarrollo se ve obstaculizado No tienen en cuenta las tareas que no producen líneas de código fuente (documentación, por ejemplo) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 111Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [6 | 28] Para salvar el problema de no poder contar las líneas de código fuente hasta el final, las mismas se pueden estimar Para estimar las líneas de código fuente para un determinado lenguaje, hay definidas relaciones entre las mismas y la cantidad de puntos de función ajustados Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 112Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [7 | 28] Para ajustar los puntos de función se les aplica un factor de ajuste, llamado Ajuste de Complejidad Técnica (ACT) obtenido en base a 14 características (subjetivas) sobre la aplicación y el entorno Estas 14 características toman un valor entre 0 y 5 según tengan ninguna (0) o mucha (5) influencia en el sistema El valor de estas características se llama Grado de Influencia (GI) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 113Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [8 | 28] Características: Comunicación de datos Actualización on-line Funciones distribuidas Procesos complejos Rendimiento Uso en otros sistemas (reutilización) Configuraciones fuertemente utilizadas Facilidad de instalación Frecuencia de transacciones Facilidad de operación Entradas online de datos Instalación de múltiples sitios Diseño para la eficiencia del usuario final Facilidad de cambios Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 114Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [9 | 28] 1. Comunicación de datos 0 La aplicación es por lotes o usando una PC 1 La aplicación es por lotes pero existe una entrada de datos o impresión remota 2 La aplicación es por lotes pero son remotas la entrada de datos o la impresión 3 Entrada on-line de datos a un proceso por lotes o sistema de consultas 4 Más de una PC front-end, pero la aplicación soporta un solo tipo de protocolo de comunicaciones 5 Más de una PC front-end, pero la aplicación soporta más de un protocolo de comunicaciones Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 115Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [10 | 28] 2. Funciones distribuidas 0 No existe este tipo de funciones en la aplicación 1 La aplicación prepara datos para que el usuario final los procese en otro componente del sistema (ej. hoja electrónica) 2 Los datos son preparados para ser transferidos a otro componente del sistema sin participación del usuario final 3 El proceso distribuido y la transferencia de datos son on-line y sólo en una dirección 4 El proceso distribuido y la transferencia de datos son on-line en ambas direcciones 5 Los procesos se desarrollan dinámicamente en el componente más apropiado del Sistema Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 116Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [11 | 28] 3. Rendimiento 0 No existen requisitos específicos de rendimiento 1 Rendimiento y requisitos de diseño han sido definidos y revisados pero no requieren ninguna acción especial 2 El tiempo de respuesta o la capacidad es crítico durante las horas pico. Los procesos demorados se ejecutan al otro día 3 El tiempo de respuesta o la capacidad es crítico durante las horas de operación 4 Los requisitos de rendimiento son suficientemente estrictos como para requerir un análisis de rendimiento en el diseño 5 Además, hay que usarherramientas para el análisis de rendimiento (verificación) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 117Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [12 | 28] 4. Configuraciones fuertemente utilizadas 0 No existen restricciones de ningún tipo 1 Existen restricciones operativas, pero no requieren un esfuerzo especial para Conseguirlas 2 Existen algunas restricciones de seguridad o tiempo 3 Existen requisitos específicos de procesador para algunas partes de la aplicación 4 Las restricciones definidas en el servidor obligan a limitaciones en la aplicación 5 Además de las características del punto 4, existen limitaciones en los componentes distribuidos del sistema Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 118Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [13 | 28] 5. Frecuencia de transacciones 0 No existe una definición del período punta de transacciones 1 Se conoce el período punta (mensual, trimestral, estacional, anual) 2 Se conoce el período semanal 3 Se conoce el período punta diario 4 La frecuencia de transacciones definida por el usuario es suficientemente alta como para requerir análisis de rendimiento de tareas durante la fase de diseño 5 Además de lo anterior, requiere análisis de rendimiento en el desarrollo y fase de instalación Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 119Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [14 | 28] 6. Entrada online de datos 0 Todas las transacciones se procesan por lotes 1 1% al 7% de las transacciones son interactivas 2 8% al 15% de las transacciones son interactivas 3 16% al 23% de las transacciones son interactivas 4 24% al 30% de las transacciones son interactivas 5 Más del 30% de las transacciones son interactivas Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 120Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [15 | 28] 7. Diseño para la eficiencia del usuario final Envío de trabajos por lotes a través de transacciones online Teclas de función preasignadas Soporte multilingüe (contar como 6) Soporte bilingüe (contar como 4) Impresión remota Scrolling Ventanas Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 121Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [16 | 28] 7. Diseño para la eficiencia del usuario final Movimiento automático del cursor Ayudas/documentación online Interfaz de mouse Menús Uso amplio de facilidades de video Selección mediante cursor de datos en pantalla Ayudas a la navegación Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 122Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [17 | 28] 7. Diseño para la eficiencia del usuario final 0 Nada de lo anterior 1 1 a 3 funciones de las anteriores 2 3 a 5 funciones de las anteriores 3 6 o más pero no existen requisitos de usuario respecto a la eficiencia 4 6 o más, pero definidos los requisitos de eficiencia del usuario que obligan a diseñar tareas que tienen en cuenta factores humanos (minimizar tecleo) 5 6 o más, y hay requisitos del usuario sobre eficiencia que obligan a usar herramientas especiales y procesos para demostrar que los objetivos se han alcanzado. Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 123Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [18 | 28] 8. Actualización online 0 Ninguno 1 Actualización de 1 a 3 ILF. El volumen de actualización es bajo y la recuperación fácil. 2 Actualización de 4 o más ILF. El volumen de actualización es bajo y la recuperación fácil 3 Actualización importante de los ILF 4 Además de la protección contra la pérdida de datos, es esencial y ha sido especialmente diseñada y programada en el sistema 5 Además de 4, los altos volúmenes de transacciones requieren considerar el costo de recuperaciones automáticas Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 124Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [19 | 28] 9. Procesos complejos Procesos de auditoría y/o aplicaciones de seguridad. Proceso lógico complejo. Procesos matemáticos complejos. Excesivas excepciones de proceso, dando lugar a transacciones incompletas que deben ser nuevamente procesadas. Manejo de dispositivos complejos: multimedia, independencia de dispositivos, etc. Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 125Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [20 | 28] 9. Procesos complejos 0 Nada de lo anterior 1 Uno de los anteriores 2 Dos de los anteriores 3 Tres de los anteriores 4 Cuatro de los anteriores 5 Todos los anteriores Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 126Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [21 | 28] 10. Uso en otros sistemas (reutilización) 0 No reusables 1 Se utiliza código reusable dentro de la aplicación 2 Menos del 10% de la aplicación tiene en cuenta las necesidades de más de un usuario. 3 El 10% o más de la aplicación tiene en cuenta las necesidades de más de un usuario. 4 La aplicación fue empaquetada expresamente y/o documentada para ser fácilmente reusable. La aplicación es adaptada por el usuario a nivel de código. 5 La aplicación se empaquetó y/o documentó expresamente para ser fácilmente reusable. La aplicación es adaptada por el usuario por medio de parámetros de mantenimiento. Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 127Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [22 | 28] 11. Facilidad de instalación 0 No se realizaron consideraciones ni se requirieron desarrollos especiales para la instalación por parte del usuario 1 No se realizaron consideraciones especiales por el usuario pero se requirieron desarrollos especiales de instalación 2 El usuario definió requisitos de conversión e instalación y se desarrollaron y probaron guías para conversión e instalación 3 Los requisitos de conversión e instalación fueron definidos por el usuario y las guías para la conversión e instalación fueron proporcionadas y probadas. 4 Además de 2, se proporcionarán y probarán la conversión automática y herramientas para la instalación 5 Además de 3, se proporcionarán y probarán la conversión automática y herramientas para la instalación (muy crítico) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 128Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [23 | 28] 12. Facilidad de operación 0 No se definieron por parte del usuario necesidades especiales de operación o respaldo distintas de las normales 1 - 4 Seleccionar, valorando como uno, cada una de las siguientes solicitudes realizadas a la aplicación: Procesos eficaces de arranque, respaldo y recuperación pero con intervención del operador. La aplicación minimiza la necesidad de montajes de cintas La aplicación minimiza la necesidad de montaje de papel 5 La aplicación debe diseñarse sin la intervención de operadores (sólo para arrancar y parar). Debe tener recuperación automática de errores Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 129Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [24 | 28] 13. Instalación en múltiples sitios 0 No existen requisitos del usuario para considerar la necesidad de un usuario o lugar de instalación 1 Se debe diseñar la aplicación para usarse en múltiples lugares pero funcionará bajoentornos idénticos de HW y SW 2 Se debe diseñar la aplicación para usarse en múltiples lugares pero funcionará bajo entornos similares de HW y SW 3 Se debe diseñar la aplicación para usarse en múltiples lugares pero funcionará bajo entornos distintos de HW y SW 4 Se darán y probarán documentación y planes de soporte de la aplicación a ser usados en distintos lugares, en modo 1 y 2 5 Se darán y probarán documentación y planes de soporte de la aplicación a ser usados en distintos lugares, en modo 3 Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 130Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [25 | 28] 14. Facilidad de cambios 0 No existe ninguna especificación por parte de los usuarios 0 en este sentido 1 - 5 Se seleccionará algunas de estas opciones: Facilidad para realizar consultas o informes simples. Facilidad para realizar consultas o informes de complejidad media (cuenta como 2) Facilidad para realizar consultas/informes complejos (cuenta como 3) Se mantendrán datos de control en tablas mantenidas online por el usuario, pero los cambios no serán efectivos hasta el siguiente día de funcionamiento (cuenta como 1) Igual que en el caso anterior, pero los cambios serán efectivos inmediatamente (cuentan como 2) Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 131Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [26 | 28] Una vez valoradas las 14 características, se calcula el factor de ajuste: ACT = 0.65 + 0.01 * ΣGIGI Finalmente, se calculan los Puntos de Función Ajustados (PFA) de la siguiente manera: PFA = PF * ACT Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 132Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [27 | 28] La relación SLOC/PFA depende del lenguaje: Lenguaje SLOC / AFP Ensamblador 320 C 128 Pascal 90 C++ 64 PHP 67 Java 31 Lenguajes OO 30 SQL 12 Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente ●Se puede encontrar la relación con otros lenguajes en el sitio: ●http://www.qsm.com/resources/function-point- languages-table 133Ingeniería de Software | Unidad V - 2021 Líneas de código fuente [28 | 28] ¿Qué sucede en el caso de haber más de un lenguaje? Estimación Introducción Puntos de Función (sin ajustar) COCOMO II Líneas de código fuente 134Ingeniería de Software | Unidad V - 2021 Otro material [1 | 1] COCOMO https://es.slideshare.net/EngHaitham/software-c ost-estimation-47677034 https://blogadmi1.files.wordpress.com/2010/11/c ocom0llfull.pdf
Compartir