MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora...

14

Transcript of MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora...

Page 1: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.
Page 2: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

MODELOS EMPÍRICOS DE ESTIMACIÓN

• Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir los datos que se requieren en el paso de planificación del proyecto de software.

• Los datos empíricos que soportan la mayoría de los modelos se obtienen de una muestra de proyectos limitada. Por esta razón, un mismo modelo de estimación no es adecuado para todas las clases de software ni para todos los entornos de desarrollo.

• Por lo tanto, los resultados obtenidos de los modelos deben utilizarse de forma sensata. • Los Modelos de recursos consisten en una o varias ecuaciones obtenidas empíricamente que

predicen el esfuerzo (en personas/mes), la duración del proyecto (en meses cronológicos) y otros datos relativos al proyecto.

• Basili describe cuatro clases de modelos de recursos: modelos univariable estáticos, modelos multivariable estáticos, modelos multivariable dinámicos y modelos teóricos.

Page 3: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

MODELOS EMPÍRICOS DE ESTIMACIÓN

• Un univariable estático toma la Forma:

Recurso = c1 x (característica estimada) c2

• Donde el recurso podría ser el esfuerzo, la duración del proyecto, la cantidad de personal o las líneas requeridas de documentación del software. Las constates c1 y c2 se derivan de los datos recopilados de anteriores proyectos.

• La característica estimada puede ser la cantidad de líneas de código fuente, el esfuerzo (si ya está estimado) u otra característica del software. Se pueden derivar modelos con la forma recién descrita para un entorno local si hay suficientes datos históricos disponibles. La versión básica del modelo de coste constructivo o COCOMO es un ejemplo de modelo univariable estático.

Page 4: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

MODELOS EMPÍRICOS DE ESTIMACIÓN

• Los modelos multivariable estáticos, como sus análogos univariable estáticos, usan los datos históricos para obtener relaciones empíricas. Un modelo típico de esta categoría toma la forma:

Recurso = c11e1 + c21e2 + ...• Donde ei es la característica i-ésima del software y ci1, ci2 son constantes obtenidas

empíricamente para la característica i-ésima. • Un modelo multivariable dinámico proyecta los requisitos de recursos como una función del

tiempo. • Si se obtiene empíricamente el modelo, los recursos se definen en una serie de pasos

consecutivos en el tiempo que asignan cierto porcentaje de esfuerzo (o de otro recurso) a cada etapa del proceso de ingeniería del software.

• Cada paso puede ser además subdividido en tareas. El enfoque teórico de la modelización multivariable dinámica incluye una "curva continua de utilización del recurso" como hipótesis y, a partir de ella, obtiene ecuaciones que modelizan el comportamiento del recurso.

Page 5: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

COCOMO • COCOMO (Constructive Cost Model, modelo constructivo de coste), es una jerarquía de

modelos de estimación para el software. Dicha jerarquía se compone de la siguiente manera: • Modelo 1. El modelo COCOMO básico es un modelo univariable estático que calcula el

esfuerzo (y el coste) del desarrollo de software en función del tamaño del programa, expresado en líneas de código (LDC) estimadas.

• Modelo 2. El modelo COCOMO intermedio calcula el esfuerzo del desarrollo de software en función del tamaño del programa y de un conjunto de "conductores de coste", que incluyen la evaluación subjetiva del producto, del hardware, del personal y de los atributos del proyecto.

• Modelo 3. El modelo COCOMO avanzado incorpora todas las características de la versión intermedia y lleva a cabo una evaluación del impacto de los conductores de coste en cada fase (análisis, diseño, etc.) del proceso de ingeniería del software.

Page 6: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

COCOMO • Para ilustrar el modelo COCOMO, se presenta a continuación una visión general de las versiones

básica e intermedia. Los modelos COCOMO están definidos para tres tipos de proyectos de software: (1) modo orgánico —proyectos de software relativamente pequeños y sencillos en los que trabajan pequeños equipos, con buena experiencia en la aplicación, sobre un conjunto de requisitos poco rígidos; (2) modo semi-acopIado —proyectos de software intermedios (en tamaño y complejidad) en los que equipos, con variados niveles de experiencia, deben satisfacer requisitos poco o medio rígidos; (3) modo empotrado —proyectos de software que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringido.

• Las ecuaciones del COCOMO básico tienen la siguiente forma: – E = ab (KLDC) exp(bb) D = cb (E) exp(db)

• donde E es el esfuerzo aplicado en personas-mes, D es el tiempo de desarrollo en meses cronológicos y KLDC es el número estimado de líneas de código distribuidas (en miles) para el proyecto. Los coeficientes ab y cb y los exponentes bb y db se muestran en la tabla

Page 7: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

COCOMO

Proyecto de Software 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

Page 8: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

• El modelo básico se amplía para considerar un conjunto de "atributos conductores de coste" que pueden agruparse en cuatro categorías principales:

1. Atributos del productoa) Fiabilidad del software requerida b) Tamaño de la base de datos de la aplicación c) Complejidad del producto

2. Atributos del hardwarea) Restricciones de rendimiento en tiempo de ejecución b) Restricciones de memoria c) Volatilidad del entorno de la máquina virtual d) Tiempo de espera requerido

3. Atributos del personal a) Capacidad de análisis b) Capacidad del ingeniero de software c) Experiencia en aplicaciones d) Experiencia con la máquina virtual e) Experiencia con el lenguaje de programación

Page 9: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

4. Atributos del proyecto a. Utilización de herramientas de software b. Aplicación de métodos de ingeniería del software c. Planificación temporal del desarrollo requerida.

• Cada uno de los 15 atributos es valorado en una escala de 6 puntos que va desde "muy bajo" hasta "extra alto" (en importancia o valor). De acuerdo con la evaluación, se determina un multiplicador de esfuerzo y, con el producto de todos los multiplicadores de esfuerzo, se obtiene un factor de ajuste del esfuerzo (FAE). Los valores típicos para el FAE van de 0.9 a 1,4. La ecuación del modelo COCOMO intermedio toma la forma:

» E = ai (KLDC) exp(bi) x FAE

• donde E es el esfuerzo aplicado en personas-mes y LDC es el número estimado de líneas de código distribuidas para el proyecto. El coeficiente ai y el exponente bise muestran en la Tabla

Page 10: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

Proyecto de Software ai bi

Orgánico 3.2 1.05

Semiacoplado 3.0 1.12

Empotrado 2.8 1.20

Page 11: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

Modelo de estimación de Putnam

• El modelo de estimación de Putnam es un modelo multivariable dinámico que asume una distribución específica del esfuerzo a lo largo de la vida de un proyecto de desarrollo de software.

• El modelo se ha obtenido a partir de distribuciones de mano de obra en grandes proyectos (esfuerzo total de 30 personas-año o más). Sin embargo, se puede extrapolar a proyectos más pequeños.

• La distribución del esfuerzo en grandes proyectos de software puede ser caracterizada como muestra el grafico de Curva de Rayleigh-Norden .

• Las curvas de la figura toman una forma descrita analíticamente por Lord Rayleigh. Para desarrollar las curvas se han utilizado los datos empíricos de desarrollos de sistemas recopilados por Norden.

Page 12: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

Modelo de estimación de Putnam

• Se puede utilizar la curva de Rayleigh-Norden para obtener una "ecuación del software" que relaciona el número de líneas de código esperadas(sentencias fuente) con el esfuerzo y el tiempo de desarrollo:

» L = Ck K 1/3 td 4/3

• donde Ck es una constante del estado de la tecnología y refleja las "restricciones intrínsecas que frenan el progreso del programador".

• Valores típicos pueden ser: – Ck = 2000 para un entorno pobre de desarrollo de software (sin metodología, con una

documentación v unas revisiones pobres. un modo de ejecución no interactivo). – Ck = 8000 para un buen entorno de desarrollo de software (con una buena metodología,

adecuadas documentación y revisiones, modo de ejecución interactivo); – Ck = 11000 para un entorno "excelente" (con herramientas y técnicas automáticas).

Page 13: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

Modelo de estimación de Putnam

• Se puede obtener la constante Ck correspondiente al entorno propio a partir de los datos históricos recopilados sobre anteriores esfuerzos de desarrollo. Reorganizando la ecuación del software (anterior); podemos llegar a una expresión para el esfuerzo de desarrollo K:

» K = L3 / Ck 3 td

• donde K es el esfuerzo empleado (en personas-año) durante el ciclo de vida completo de desarrollo y de mantenimiento del software, y td es el tiempo de desarrollo en años.

• Se puede relacionar la ecuación para el esfuerzo de desarrollo con el coste de desarrollo, incluyendo el factor de tarificación laboral gravada ($/persona-año).

• Dadas las potencias de alto orden que aparecen en la ecuación del software, se puede demostrar que, postergando ligeramente la fecha de entrega, se puede obtener un sustancial ahorro en el esfuerzo humano aplicado al proyecto. Dicho de otro modo, la relación entre el esfuerzo aplicado y el tiempo cronológico para la entrega es altamente no lineal.

Page 14: MODELOS EMPÍRICOS DE ESTIMACIÓN Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para predecir.

Modelo de estimación de Putnam