Técnicas de descomposición

27

Click here to load reader

Transcript of Técnicas de descomposición

Page 1: Técnicas de descomposición

Técnicas de descomposición

La precisión de una estimación se predice basándose en algunas cosas como:

• Considerar el tamaño del producto a construir• Habilidad para traducir la estimación del

tamaño en esfuerzo humano, tiempo y dinero• Grado en que el plan de proyecto refleja las

habilidades del equipo• La estabilidad de los requisitos del software

Page 2: Técnicas de descomposición

Tamaño del software

• Una estimación de proyectos es tan buena como lo es la estimación del trabajo que se va a desarrollar.

Tamaño= producción cuantificable LDC

PF

Page 3: Técnicas de descomposición

PF. consisten en medir la productividad en base a la funcionalidad de un sistema. Esta métrica obtiene parámetros como:

• Entrada y salida externas• Interacciones con el usuario• Interfaces externas• Archivos utilizados por el sistema

Page 4: Técnicas de descomposición

Otra forma de medir el software:

• número de componentes que lo integran, • cantidad de modificaciones a los componentes

existentes• el esfuerzo que implica cada modificación.

Page 5: Técnicas de descomposición

Estimación basada en el problema

• Planificadores ayudados de LDC y PF

– descomponer el software en funciones que se puedan estimar individualmente

– calcular LDC para cada función individual– combinar las estimaciones para producir una

estimación global del proyecto.

Page 6: Técnicas de descomposición

Modelos de Estimación de CostosModelos Empiricos

• En general el costo total de un software está determinado por dos factores:– Esfuerzo para completar una actividad– Tiempo calendario se necesita para completar una

actividad• Los modelos empíricos son de gran ayuda,

pero no son definitivos• “El uso de este producto es responsabilidad de

quien lo recomienda y de quien lo consume”

Page 7: Técnicas de descomposición

Modelos Empiricos (cont.)

• Un modelo de estimación se extrae utilizando el análisis de regresión sobre los datos recopilados de proyectos de software anteriores. La estructura global de los modelos es:

• Dónde:• A y B = Constantes empíricas• E es el esfuerzo de personas mes • ev es la variable de estimación (LDC o PF).

E=A+B * (ev) C

Page 8: Técnicas de descomposición

Modelos Empiricos (cont.)

• Más conocidos:

• E = 5.2 x (KLDC)0.91 Modelo de Walston-Felix• E = 5.5 + 0,73 x (KLDC)1.16 Modelo de Bailey-Basili• E = 3.2 x (KLDC)1.05 Modelo simple de Boehm• E = 5.288 x (KLDC)1.047 Modelo Doty para KLDC > 9

Page 9: Técnicas de descomposición

• También hay algunos modelos propuestos para Puntos de Función.

• E = -13.39 + 0.0545 PF Modelo de Albretch y Gaffney• E = 60.62 x 7.728 x 10-8 PF3 Modelo de Kemerer• E = 585.7 + 15.12 PF Modelo de Matson, Bamett y

Mellichamp

Page 10: Técnicas de descomposición

Técnicas de Estimación

• Modelado del algoritmo de costos: MétricaCosto

• Opinión de expertos: Especialistas + análisis conclusiones

• Estimación por analogía: similaridad facil estimación

• Ley de Parkingson: recursos disponibles + tiempo costo

• Asignación de precios para ganar: presupuesto esfuerzo

Page 11: Técnicas de descomposición

Modelo COCOMO (Constructive Cost Model)

Originado en 1981 por Boehm (proyectos grandes) Software Engineering Economics" (Prentice-Hall)

• bien documentado, • es de dominio público, • su uso está extendido,• incluye tres submodelos.

Page 12: Técnicas de descomposición

• La jerarquía de modelos de Boehm esta constituida por los siguientes:

• Modelo I. El Modelo COCOMO básico calcula el esfuerzo y el costo del desarrollo de Software en función del tamaño del programa, expresado en las líneas estimadas.

Page 13: Técnicas de descomposición

• Modelo II. 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 costos que incluyen la evaluación subjetiva del producto, del hardware, del personal y de los atributos del proyecto.

• Modelo III. 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 costos en cada caso (análisis, diseño, etc.) del proceso de ingeniería de Software.

Page 14: Técnicas de descomposición

• Los modelos COCOMO están definidos para tres tipos de proyecto de software

• Modelo 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 el conjunto de requisitos poco rígidos (por ejemplo, un programa de análisis termal desarrollado para un grupo calórico).

Page 15: Técnicas de descomposición

• Modelo Semiacoplado. Proyectos de software intermedios (en tamaño y complejidad) en los que los equipos, con variados niveles de experiencia, deben satisfacer requisitos poco o medio rígidos (por ejemplo, un sistema de procesamiento de transacciones con requisitos fijos para un hardware de terminal o un software de gestión de base de datos).

• Modelo Empotrado. Proyectos de software que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringidas (por ejemplo, software de control de navegación para un avión).

Page 16: Técnicas de descomposición

• La función básica que utilizan los tres modelos es:

E = a(KLDC)b * m(X) donde:• a y b son constantes • KLDC son las líneas de código (en miles)• m(X) Es un multiplicador que depende de 15

atributos.

Page 17: Técnicas de descomposición

• Además se tiene las fórmulas:

T = Tiempo de duración del desarrollo = c Esfuerzo d (meses)P= Personal = E/T (personas)

• Y las tablas:

PROYECTO SOFTWARE

a b c d

Orgánico 3,2 1,05 2,5 0,38

Semi-acoplado 3,0 1,12 2,5 0,35

Empotrado 2,8 1,20 2,5 0,32

Proyecto a b c d

Orgánico 2.40 1.05 2.50 0.38

Semilibre 3.00 1.12 2.50 0.35

Rígido 3.60 1.20 2.50 0.32

MODELO BASICO

MODELO INTERMEDIO

Page 18: Técnicas de descomposición

CONDUCTORES DE COSTE VALORACIÓNMuy bajo

Bajo Nominal

Alto Muyalto

Extr. alto

Fiabilidad requerida del software 0,75 0,88 1.00 1,15 1,40 -

Tamaño de la base de datos - 0,94 1.00 1,08 1,16 -

Complejidad del producto 0,70 0,85 1.00 1,15 1,30 1,65

Restricciones del tiempo de ejecución - - 1.00 1,11 1,30 1,66

Restricciones del almacenamiento principal - - 1.00 1,06 1,21 1,56

Volatilidad de la máquina virtual - 0,87 1.00 1,15 1,30 -

Tiempo de respuesta del ordenador - 0,87 1.00 1,07 1,15 -

Capacidad del analista 1,46 1,19 1.00 0,86 0,71 -

Experiencia en la aplicación 1,29 1,13 1.00 0,91 0,82 -

Capacidad de los programadores 1,42 1,17 1.00 0,86 0,70 -

Experiencia en S.O. utilizado 1,21 1,10 1.00 0,90 - -

Experiencia en el lenguaje de programación 1,14 1,07 1.00 0,95 - -

Prácticas de programación modernas 1,24 1,10 1.00 0,91 0,82 -

Utilización de herramientas software 1,24 1,10 1.00 0,91 0,83 -

Limitaciones de planificación del proyecto 1,23 1,08 1.00 1,04 1,10 -

Page 19: Técnicas de descomposición

EJEMPLO

• Se tiene un proyecto X, para el cual se desea realizar la estimación de costos, los datos proporcionados son:

• Desarrollo en VB• Puntos de Función = 261,36• Se tiene la tabla de equivalenciasde LDC siguiente:

LENGUAJE LDC/PF

Ensamblador 320

C 150

COBOL 105

Pascal 91

Prolog/LISP 64

C++ 64

Visual Basic 32

SQL 12

Page 20: Técnicas de descomposición

• Para calcular el Esfuerzo, necesitaremos hallar la variable KDLC (Kilo-líneas de código), donde los PF son 261,36 (dato conocido) y las líneas por cada PF equivalen a 32 según vemos en la tabla

• Tras saber el número de LDC por cada PF, por el hecho de ser Visual Basic el resultado de los KLDC será el siguiente:

KLDC = (PF * Líneas de código por cada PF)/1000 = (261,36*32)/1000= 8,363 KLDC

Page 21: Técnicas de descomposición

• En nuestro caso el tipo orgánico será el más apropiado ya que el número de líneas de código no supera los 50 KLDC, y además el proyecto no es muy complejo, usar la tabla del modelo intermedio.

• Y por otro lado también hemos de hallar la variable m(x), la cual se obtiene mediante la multiplicación de los valores evaluados en los diferentes 15 conductores de coste que se observan en la tabla:

Page 22: Técnicas de descomposición

• Tras ponderar los valores adecuados, los cuales se deben justificar, se puede calcular que:

m(x)=1,15*1,00*0,85*1,11*1,00*1,00*1,07*0,86*0,82*0,70*1,00*0,95*1,00*0,91*1,08

= 0,53508480

Page 23: Técnicas de descomposición

Justificación de los valores

• Atributos de software

• Fiabilidad requerida del software: Si se produce un fallo por el pago de un pedido, o fallo en alguna reserva, etc... puede ocasionar grandes pérdidas a la empresa (Valoración Alta).

• Tamaño de la base de datos: La base de datos de nuestro producto será de tipo estándar (Valoración Nominal).

• Complejidad del producto: La aplicación no va a realizar cálculos complejos (Valoración Baja).

Page 24: Técnicas de descomposición

Justificación de los valores (cont)• Atributos de hardware

• Restricciones del tiempo de ejecución: En los requerimientos se exige alto rendimiento (Valoración Alta).

• Restricciones del almacenamiento principal: No hay restricciones al respecto (Valoración Nominal).

• Volatilidad de la máquina virtual: Se usarán sistemas de la “Familia Windows” (Valoración Nominal).

• Tiempo de respuesta del ordenador: Deberá ser interactivo con el usuario (Valoración Alta).

Page 25: Técnicas de descomposición

Justificación de los valores (cont)• Atributos del personal

• Capacidad del analista: Capacidad alta relativamente, debido a la experiencia en análisis en proyecto similar (Valoración Alta)

• Experiencia en la aplicación: Se tiene cierta experiencia en aplicaciones de esta envergadura (Valoración muy alta).

• Capacidad de los programadores: Teóricamente deberá tenerse una capacidad muy alta por la experiencia en anteriores proyectos similares (Valoración muy alta).

• Experiencia en S.O. utilizado: Con Windows 2000 Professional la experiencia es a nivel usuario (Valoración Nominal).

• Experiencia en el lenguaje de programación: Es relativamente alta, dado que se controlan las nociones básicas y las propias del proyecto (Valoración Alta).

Page 26: Técnicas de descomposición

Justificación de los valores (cont)

• Atributos del proyecto

• Prácticas de programación modernas: Se usarán prácticas de programación mayormente convencional (Valoración Nominal).

• Utilización de herramientas software: Se usarán herramientas estándar que no exigirán apenas formación, de las cuales se tiene cierta experiencia (Valoración Alta).

• Limitaciones de planificación del proyecto: Existen pocos límites de planificación. (Valoración Baja).

Page 27: Técnicas de descomposición

• Cálculo del esfuerzo del desarrollo:

• E = a KLDC b * m(x) = 3,2 * (8.363)^1,05 * 0,53508480 = 15,91 personas /mes

• Cálculo tiempo de desarrollo:

• T = c Esfuerzo d = 2,5 * (15,91)^0,38 = 7,15 meses

• Productividad:

• PR = LDC/Esfuerzo = 8363/15,91 = 525 ,64 LDC/personas mes

• Personal promedio:

• P = E/T = 15,91/7,15 = 2,22 personas