Modelos de Estimación de Software
Introducción
Dentro de la ingeniería de Software nos encontramos con una problemática especial a la hora de realizar una planificación de costes y tiempos. Se discutirán diferentes enfoques a la hora de resolver esta problemática.
Índice
●Problemática●Ingeniería tradicional.●Tipología de los modelos de estimación ●Presentación de diversos Modelos●Metodología recomendada
Comunidad de Madrid
●Ampliación linea 6
●Tramo Elíptica Carabanchel Alto
●Presupuesto 7.643.524.334
●Fecha de terminación:Enero 1999
Proyecto Ejemplo
●Presentación de la Problemática●Pregunta clave 1 : ¿Como cuándo estará?●Pregunta clave 2 : ¿Cuánto va a costar?●Pregunta clave 3 : ¿Cuántas personas
necesito?
Ingeniería Civil.
●Métodos clásicos de planificación de proyectos
●Técnicas de cálculo de presupuestos●Basadas en parámetros medibles
Ingeniería Software
●Ausencia de parámetros medibles en proyectos de Ingeniería de software.
¿Qué
podemos
medir ?
Tipología de los Modelos de Estimación
●Opinión de Expertos●Estimación por Analogía●Descomposición ●Ecuaciones o modelos de estimación .
Opinión de expertos
●La “adivinación basada en la experiencia personal” [Fenton, 1991
●Técnica Delphi●Técnica Delphi de banda ancha
Técnica Delphi [Bohem,1981
●1 Un coordinador proporciona a cada experto una especificación del proyecto propuesto y un impreso para expresar su opinión.
●2 los expertos rellenan el impreso de forma anónima.
●3 El coordinador ofrece a cada experto el valor medio de las opiniones para que las compare con la suya.
Técnica Delphi (II)
●Se pide realizar una nueva estimación anónima indicando las posibles razones de la misma.
●Se repite el proceso hasta llegar a un consenso en la estimación. No se realizan reuniones en grupo durante todo el proceso.
Técnica Delphi de banda ancha.
●Variante de la anterior:o1.1 El coordinador reúne a los expertos para
que intercambien opiniones sobre el proyecto.
●4 Los expertos no indican las razones de la estimacióno4.1 El coordinador convoca una reunión en
grupo para que los expertos discutan las razones de las diferencias de estimación
Técnica Delphi de banda ancha (II)
●5 Se rellenan anónimamente los impresos y se repite el proceso hasta llegar a un acuerdo.
Estimación por analogía
●Complemento del juicio de expertos.●Se dispone de datos de proyectos similares
al que se desea estimar Ejemplo: Si se estima que el proyecto es el 10%
mayor que uno anterior que ha costado 10 millones, podemos deducir que el coste aproximado será 11 millones, y se emplearían las carácterísticas de los proyectos para refinar la estimación
Estimación por descomposición
●El responsable de cada componente estima el coste de su desarrollo
●Enfoque Bottom-Up●Se precisa un diagrama de descomposición
del producto, acompañado de un diagrama de descomposición de actividades
●Integra actividades como integración o gestión de configuración
Modelos algorítmicos
●SLIM ●COCOMO●FPA
SLIM [Putnam,1978
●Basado en la curva de Rayleigh●Ecuación del Software:oT = C . K 1/3 (Td) 4/3
oT = Tamaño del Software en LDCoC = Constante tecnológicaoK = Esfuerzo de desarrollo en personas - añooTd= Tiempos de desarrollo en años
COCOMO [Boehm, 1981
●Esfuerzo = a . (KLDC) b
●KLDC = miles de líneas de código●a , b = parámetros de ajuste
Modos de desarrollo
●Orgánico. Entrono estable con poca innovación técnica, pocas presiones de tiempo y tamaño relativamente pequeño (<=50KLDC)
●Empotrado (Embedded). Desarrollo con requisitos muy restrictivos, volátiles, complejo y de gran innovación técnica.
●Semilibre (Semidettached). Situaciones intermedias.
Ecuaciones
Modelos COCOMO
●Basados en la cantidad de información disponible a lo largo del ciclo de vidaoBásico. Primeras estimaciones al principio del
proyectooIntermedio. Identificados los componentes
principales del sistemaoAvanzado. Componentes individuales.
COCOMO Intermedio
●Aplicamos la ecuación básica●Refinamos la estimación a partir de los
factores de coste.
Factores de coste
●Atributos del Producto●Atributos del hardware●Atributos del Personal●Atributos del Proyecto
Atributos del Producto
Atributos del hardware
Atributos del Personal
Atributos del Proyecto
Puntos de función [Albrecht, 1979
●Basado en la existencia de una especificación más o menos formalizada
●Métrica que cuantifica la funcionalidad que se entrega al usuario al construir una aplicación
●Unidades de medida de proyectos software
Características
●Independencia de lenguaje y entorno●Basado en parámetros lógicos independientes●Medir productividad●Estimar desarrollo y soporte●Monitorizar acuerdos de outsourcing●Dirigir decisiones relativas a TI●Normalizar otras métricas
Parámetros significativos
Factores de complejidad ●Comunicación de datos ●Rendimiento ●Frecuencia de transacciones●Requisitos de manejo de usuario●Procesos complejos●Mantenimiento●Instalación en múltiples lugares
Factores de complejidad (II)●Funciones distribuidas●Carga de trabajo●Entrada on-line de datos●Actualizaciones on-line●Utilización con otros sistemas●Facilidad de operación●Facilidad de cambio
Puntos de función ajustados
●Cada factor de ajuste se valora de 0 a 5●FA = (0.01 x (FC) + 0.65●PFA = PFNA x FA●Permite 35% sobre el valor de PFNA
Técnica usada
●Calcular los PFNA a partir de los requerimientos funcionales del proyecto
●Calcular el número de LDC a partir de tablas dependiendo del lenguaje
●Aplicar COCOMO Intermedio●Técnica Backfiring en migraciones
Inconvenientes de los modelos
●Cálculo de LDC dificultoso●Modelos basados en estadísticas de proyectos●Necesidad de calibración al cambiar de
entorno●Subjetividad al cuantificar valores de coste●Margen de error (25% en el 75 % de los
casos)
Enfoque recomendado
●Primeras estimaciones basadas en juicio de expertos, técnica Delphi y analogía con proyectos anteriores
●Ecuaciones de costes tras especificaciones detalladas
●Desarrollar ecuaciones locales●Refinar los modelos con la experiencia