250 likes | 767 Views
ESTIMACION DE COSTE DEL SOFTWARE. FUNCIÓN. RENDIMIENTO. RESTRICCIONES. ÁMBITO DEL SOFTWARE. INTERFACES. FIABILIDAD. INTRODUCCIÓN. 1.1. ¿Qué es un proyecto de Sistema o Software?. 1.2. Objetivos de la Planificación del Proyecto.
E N D
FUNCIÓN RENDIMIENTO RESTRICCIONES ÁMBITO DEL SOFTWARE INTERFACES FIABILIDAD INTRODUCCIÓN • 1.1. ¿Qué es un proyecto de Sistema o Software? • 1.2. Objetivos de la Planificación del Proyecto. El objetivo de la Planificación del proyecto de Software es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificación temporal. Es el Proceso de gestión para la creación de un Sistema o software, la cual encierra un conjunto de actividades, una de las cuales es la estimación. PLANIFICACIÓN ESTIMACIÓN RIESGO EXPERIENCIA DATOS HISTÓRICOS
2.- FACTORES EN EL COSTO DEL SOFTWARE 2.1 Capacidad del programador 2.2 Complejidad del producto (Software) - Programas de Aplicación (procesamiento de datos y programas de datos). - Programas de Apoyo (compiladores, ligadores y sistemas de inventarios). - Programas de Sistema (sistema de base de Datos, sistemas operativos y sistemas para tiempo real).
2.3 Tamaño del Producto.- Un proyecto grande de programación es obviamente mas cara en su desarrollo que un o pequeño. 2.4 Tiempo Disponible.- El esfuerzo total del proyecto se relaciona con el calendario de trabajo asignado para la terminación del proyecto 2.5 Nivel de Confiabilidad Requerido.- La confiabilidad puede expresarse en términos de exactitud, firmeza, cobertura y consistencia de código fuente.
2.6 Nivel Tecnológico El nivel de tecnología empleado en un proyecto de programación se refleja en el lenguaje utilizado 3.- TÉCNICAS DE DESCOMPOSICIÓN Normalización de las métricas Los datos normalizados son utilizados para evaluar el proceso y el producto (pero nunca a los individuos) normalización orientada al tamaño —Por líneas de código normalización orientada a la función —Por puntos función
3.1.- Estimación LDC (LOC es la sigla de la expresión inglesa Lines of Code. ) La medida más utilizada para determinar el tamaño de un proyecto informático ha sido, durante mucho tiempo, la de las líneas de código del software final obtenido. • Problemas de la utilización de LDC • * no existe definición estándar de LDC (p.ej., ¿se consideran LDC los comentarios?) • * líneas físicas o lógicas • * contabilización del código reutilizable • * aplicaciones en diferentes lenguajes • * estilos individuales de programación
Ejemplo de LOC Hay que desarrollar un software CAD que aceptará datos geométricos de 2 o 3 dimensiones por parte del ingeniero. Éste controlará el sistema CAD por medio de una interfaz que debe tener un diseño de buena calidad. Una base de datos CAD contiene todos los datos geométricos y la información de soporte. Se desarrollarán módulos de análisis de diseño para producir la salida requerida que se va a visualizar en varios dispositivos gráficos. El software se diseñará para controlar e interconectar diversos periféricos, como un ratón, un digitalizador y una impresora láser. Funciones identificadas: interfaz de usuario y facilidades de control (IUFC) análisis geométrico de dos dimensiones (AG2D) análisis geométrico de tres dimensiones (AG3D) gestión de base de datos (GBD) facilidades de la interfaz gráfica (FIG) control periféricos (CP) módulos de análisis del diseño (MAD) Estimación en LDC de AG3D: optimista: 4600 más probable: 6900 pesimista: 8600 descomposición de funciones VE = (Sopt + 4Sm + Spes)/6 Datos históricos: productividad media de la organización en proyectos similares: 620 LDC/pm Tarifa laboral: 8000 $ /mes Coste LDC: 13 $ Función LDC estimada IUFC 2300 AG2D 5300 AG3D 6800 GBD 3350 FIG 4950 CP 2100 MAD 8400 Total 33200 métricas de proyectos anteriores Coste total proyecto:431000 $ Esfuerzo estimado: 54 personas-mes
Puntos de función: relación empírica basada en medidas cuantitativas del dominio de información del software y valoraciones subjetivas acerca de la complejidad del software 3.2 Estimación por PF (Expresión de Punto Función) Determinación de los puntos de función El recuento de los puntos de función se elabora a partir de determinadas características funcionales, que pueden ser de datos o de transacción: ¿Por qué la preferencia a FP? independencia del lenguaje de programación utiliza inmediatamente características contables del “dominio de información” del problema no “penalizar” implementaciones que requieren menos LOCs que otras (vs. mantenimiento) facilitan el reuso y favorecen a las iniciativas orientadas a objetos
Calcular Puntos Función Analizar el dominio de la información de la aplicaciòn y desarrollar el conteo Establecer el conteo para cada dominio de entrada e interfaces de sistema Pesar cada conteo por evaluación de la complejidad Asignar el nivel de complejidad o peso para cada conteo evaluar la influencia de factores globales que afecten la aplicación Grado de importancia de factores externos Fi tales como reuso, concurrencia, SO,... Puntos función = (conteo x peso) x C Calcular puntos función donde: Factor de complejidad: C = (0.65 + 0.01 x N) Grado de influencia: N = Fi
Analizar el Dominio de la Información factor de ponderación conteo simple prom. complejo parámetro de medida # de entradas de usuario X 3 4 6 = # de salidas de usuario X 4 5 7 = # de consultas X 3 4 6 = # de archivos X 7 10 15 = # of interfaces ext. X 5 7 10 = conteo-total factor de complejidad puntos función
Considerar la Complejidad Los factores se tasan en una escala 0 (sin importancia) – 5 (muy importante) comunicaciones de datos funciones distribuidas configuración pesada tasa de transacción entrada de datos en lìnea eficiencia para el usuario actualización en línea procesamiento complejo facilidad de instalación facilidad operacional sites múltiples facilidad de cambios
Ejemplo FP Copia de seguridad y recuperación 4 Comunicaciones 2 Proceso distribuido 0 Rendimiento crítico 4 Entorno operativo existente 3 Entrada de datos online 4 Transacciones entrada en varias pant. 5 Archivos maestros actualizados online 3 Complejidad valores dominio información 5 Complejidad procesamiento interno 5 Código diseñado para reutilización 4 Conversión en diseño 3 Instalaciones múltiples 5 Aplicación diseñada para cambios 5 PF estimado = cuenta total x (0,65 + 0,01 x Suma (Fi) PF estimado = 372 Coste total proyecto:457000 $ Esfuerzo estimado: 58 personas-mes Datos históricos: productividad media de la organización en proyectos similares: 6,5 PF/pm Tarifa laboral: 8000 $ /mes Coste por PF: 1.230 $ métricas de proyectos anteriores
3.3 Relación entre puntos de función y líneas de código Aunque los puntos de función y las líneas de código sean diferentes, es posible encontrar una especie de equivalencia entre los unos y las otras relación entre LDC y PF: depende del lenguaje escogido Lenguaje LDC/PF (media) Ensamblador 320 C 128 Cobol 105 Fortran 105 Pascal 90 Ada 70 Lenguajes OO 30 L4G 20 Lenguajes visuales 4 4.-TECNICAS DE ESTIMACION La estimación se utiliza para definir si el presupuesto del proyecto y el producto se ajusta para que las cifras del presupuesto se cumplan.
4.1 Estimación basada en el enfoque descendente o ascendente Estos enfoques para la estimación del costo se pueden abordar utilizando enfoque descendente o ascendente Un enfoque descendente inicia en el nivel de sistema. La estimación comienza examinando la funcionalidad total del producto y cómo es que esa funcionalidad se propaga al interactuar con las subfunciones El enfoque ascendente, en contraste, inicia en el nivel de componente. El sistema se divide en componentes y se calcula el esfuerzo requerido para desarrollar cada uno de éstos 4.2 Estimación basada en el Proceso. Es la técnica más común para estimar un proyecto es basar la estimación en el proceso que se va a utilizar, es decir, el proceso se descompone en un conjunto relativamente pequeño de actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimación de cada tarea.
5 TÉCNICAS DE ESTIMACIÓN DE COSTOS DEL SOFTWARE 5.1.- Estimación de Costos por la Técnica del Juicio Experto.- Se basa en la experiencia, como en el conocimiento anterior en el sentido comercial de uno o mas individuos dentro de la organización, su mayor ventaja es la experiencia la cual puede llegar a ser su debilidad 5.2. – Estimación del costo por la técnica DELFI La técnica DELFI fue desarrollada con el fin de tener el consenso de expertos, sin contar con los efectos negativos de las reuniones de grupos 5.3- MODELOS DE ESTIMACIÓN EMPÍRICA Donde los datos que soportan la mayoría de los modelos de estimación obtienen una muestra limitada de proyectos
COCOMO (MEDELO CONSTRUCTIVO DE COSTE) MODELO 1 (COCOMO básico) calcula el esfuerzo y el coste del desarrollo en función del tamaño estimado del programa (LDC). Se utiliza para una aproximación rápida al principio del ciclo de vida. ESFUERZO: E = ab KLDCbb TIEMPO: D = cb Edb • Tres tipos de proyectos: • Orgánicos: relativamente pequeños y sencillos, en los que trabajan pequeños equipos con experiencia, sobre un conjunto de requisitos poco rígidos. • Semiacoplados: proyectos intermedios (en tamaño y complejidad) en los que participan equipos con variados niveles de experiencia, y que deben satisfacer requisitos poco o medio rígidos. • Empotrados: proyectos que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringido. MODELO 2 (COCOMO intermedio) calcula el esfuerzo y el coste en función del tamaño estimado del programa y de un conjunto de “guías de coste” que incluyen una evaluación subjetiva del producto, hardware, personal y atributos del producto ESFUERZO: E = ai KLDCbi x FAE (factor de ajuste del esfuerzo) MODELO COCOMO BÁSICO Proyecto ab bb cb db Orgánico 2,4 1,05 2,5 0,38 Semiacoplado 3,0 1,12 2,5 0,35 Empotrado 3,6 1,20 2,5 0,32 MODELO 3 (COCOMO avanzado) incorpora las características del mod. 2 y evalúa el impacto de los FAE en cada fase del desarrollo.
Ejemplo COCOMO Por ejemplo, si sabemos que en el proyecto se trabajará con un nivel alto de utilización de herramientas de desarrollo, el factor de coste tendrá un valor de 0,91. •Por lo tanto, si el esfuerzo nominal calculado es de 40 personas-mes, la estimación de coste final (suponiendo el resto de factores a nivel medio) será E = 40x0,91 = 36,4 personas-mes • Se trata de estimar el esfuerzo de desarrollo de un sistema de comunicaciones de 30 KDLC, de alta complejidad. Afortunadamente podremos emplear personal de muy alta cualificación con una gran experiencia específica en este tipo de software. El coste del salario mensual de cada persona es de 1.350 _/mes Si aplicamos COCOMO, podemos ver que el esfuerzo estimado será: Esfuerzo nominal = 3,2 x (30)1,05 = 113,79 personas-mes.
5.5.-Modelo de Estimación de Putnam Es un modelo multivariable dinámico que asume una distribución especifica del esfuerzo a lo largo de la vida de un proyecto de desarrollo de Software. 5.6 Modelos del Punto Función Las métricas del software orientadas a la función son medidas indirectas del software y del proceso por el cual se desarrolla. Más que calcular las LDC las métricas orientadas a la función se centran en la funcionalidad o utilidad del programa 5.7 Modelo de estudio temporal En un nivel individual, el proceso de desarrollo del software se ve afectado por un numero n de gente interaccionando en el proyecto y por las características del entorno en el cual esa gente interacciona.
6 HERRAMIENTAS AUTOMÁTICAS DE ESTIMACIÓN. Las herramientas automáticas de estimación permiten al planificador estimar costos y esfuerzos, así como llevar a cabo análisis del tipo, que pasa si, con importantes variables del proyecto, tales como la fecha de entrega o la selección del personal. 7.- ESTIMACIÓN DE LOS COSTOS DE MANTENIMIENTO DE SOFTWARE La mayor preocupación con respecto al mantenimiento durante la fase de plantación de un proyecto de programación es estimar el número de programadores de mantenimiento que se requerirán, así como especificar las facilidades necesarias para que se lleve acabo.
8 Conclusiones En conclusión la planificación del Proyecto de Software tiene que estimar tres cosas antes de que comience el proyecto: cuanto durara, cuanto esfuerzo requerirá y cuanta gente estará implicada. Además el planificador debe predecir los recursos de hardware y software que va a requerir y el riesgo implicado
Cualquier cosas que necesites cuantificar debe ser medido y de alguna forma es superior a no medirlo del todo Tom Gilb