Estimacion de Costos Un proyecto de desarrollo necesita recursos para su correcta ejecuccion. Se deben determinar mecanismos que permitan realizar una estimacion de los recursos suficientes. En la industria existen mecanismos para la estimacion de costos el mas conocido es el metodo de estimación usando puntos de función. Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Estimación de Costos Aunque la estimación por puntos de funcion ha tenido aceptación, nada reemplaza la estimación de costos basadas en proyectos anteriores. Otras tecnicas se basan en la investigacion de costos de proyectos similares o en el costo conocido de los componentes. Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Puntos de Función En 1979 Albercht propuso de manera elemental el uso de punto de funcion para determinar el tamaño de proyectos. Se define como funcion toda operación no trivial que debe realizar el software a desarrollar. La Tecnica de estimación de costos por Puntos de función trabaja en una serie de pasos descritos a continuación. Paso 1: Identificar las funciones que comprenderan el software (En Metodologia RUP se puede basar en los diagramas de casos de uso de nivel 2 o 3). Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Punto de Función Paso 2: Para cada punto de funcion calcule su contribución de dificultad al proyecto Para esto de ha definido un conjunto de valores que ayudan a poderar el valor de una funcion, dependiendo de las operaciones que realice. Ponderaciónes Entradas Externas (Simple:3, Medio: 4, Complejo: 6). Salidas Externas (Simple: 4, Medio: 5, Complejo: 7). Busqueda Externa (Simple:3, Medio: 4, Complejo: 6). Archivos Logicos Internos(Simple:7, Medio: 10, Complejo: 15) Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Puntos de Función Ponderaciónes Archivos Logicos Externo(Simple:5, Medio: 7, Complejo: 10) Se detecta las operaciones de cada tipo y se multiplica su ponderacion y al final se suman para obtener el valor de la función. Paso 3:Sumar el aporte de complejidad de cada una de las funciones. Paso 4: Determinar Ponderacion de las 114 caracteristicas generales Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Escala de Ponderación 0: Ninguno 1: Incidental 2: Moderado. 3: Promedio. 4: Significativo. 5: Esencial. Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Características Generales 1. Requiere resplado/recuperacíon. 2. Requiere comunicación de datos. 3. Tiene distribución de funciones de procesamiento. 4. El desempeño es critico. 5. Corre en entorno existente con uso pesado. 6. Requiere entrada de datos en linea. 7. Tiene ventanas de entrada multiples. Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Características Generales 8. Campos maestros actualizados en linea. Son complejas entradas, salidas, busquedas de archivos. El procesamiento interno es complejo. Se diseño el codigo para reuso Incluye conversión e instalación Se hacen instalaciones múltiples en diferentes organizaciones. Debe simplificarse el cambio y la facilidad de uso para el usuario. Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Calculo de Puntos de Función Usando los valores antes calculados se construye la metrica de puntos de funcion, usando la siguiente formula: Puntos de Funcion = Complejidad Funciones x (0,65 + 0,01 x (Caracteristicas Generales) ). Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Puntos de Función a Lineas de código Se puden unsar los puntos de función para determinar un estimativo de numeros de lineas o poder calcular Esfuerzo necesario (Personas-Mes) y un estimativo de las duracion de la implementación Se ha estimado que se requieren 53 lineas de codigo Java por punto de función, por lo tanto LOC= PuntosFuncion x 53 // En caso de Java Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Esfuerzo - Duración El Calculo de El esfuerzo y la Duración fue propuesto por Barry Bohen a partir de las Lineas de Codigo, obtenido del analisis estadistico de varios proyecto. Se obtiene mediante el uso de unas constantes (a, b, c, d) dependiendo del tipo del proyecto. Organico (a: 2.4, b: 1.05, c: 2.5, d: 0.38) Semiaislado (a: 3.0, b: 1.12, c: 2.5, d: 0.35) Inmerso (a: 3.6, b: 1.20, c: 2.5, d: 0.32) Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006 Esfuerzo – Duración Esfuerzo personas-mes = a x KLOC b Duración = c x Esfuerzo d KLOC = Miles de Lineas de Codigo. Este modelo de estimación de Esfuerzo y Duración se conoce como COCOMO (Constructive Cost Model). Escuela de Ingeniería de Sistemas y Computación Grupo de Ingeniería de Software Agosto - Diciembre de 2006