You are on page 1of 34

CALIDAD DE SOFTWARE

Calidad de Software

Contenido
1. 2. 3. 4. 5. 6. Introduccin a Calidad de Software Mediciones del Software Actividades de Control de Calidad de Software Actividades de Garanta de Calidad de Software Gestin de Calidad de Software Enfoque de Proceso para mejora de Software

Calidad de Software

Contenido
Mediciones del Software Qu es una mtrica? Mtricas de Proyecto y Tcnicas para el Software Clsico Ejemplos de mtricas Estimacin con base en Mtrica Puntos de Funcin y LDC
Calidad de Software

Mtricas de Software (1)


Qu es una mtrica? Aunque los trminos medida, medicin y mtrica se utilizan a menudo indistintamente, es importante destacar las diferencias entre ellos, antes de establecer una definicin precisa del concepto mtrica. Dentro del contexto de ingeniera de software, una medida proporciona una indicacin cuantitativa de extensin, cantidad, dimensiones, capacidad o tamao de algunos atributos de un proceso o producto.
Calidad de Software

Mtricas de Software (2)


Qu es una mtrica? La medicin es el acto de determinar una medida.
Por ejemplo, una medida de dimensiones de un producto de software son sus lneas de cdigo (LDC), una medicin de un producto particular puede sealar 10250 LDC.

El IEEE Standard Glossary of Software Engineering Terms (1993), define mtrica como una medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado.

Calidad de Software

Mtricas de Software (3)


Podemos definir las Mtricas de Software o Medidas de Software como: La aplicacin continua de tcnicas basadas en las medidas de los procesos de desarrollo del software y sus productos, para producir una informacin de gestin significativa y a tiempo. Esta informacin se utilizar para mejorar esos procesos y los productos que se obtienen de ellos. Esencialmente, las Mtricas de Software se aplican al producto software y a los procesos mediante los que se desarrolla.
Calidad de Software

Mtricas de Software (4)


reas de Aplicacin
La ms consolidada de las reas en el estudio de las mtricas es la correspondiente a las tcnicas de estimacin de costos y tamao. Existen distintos paquetes en el mercado que proporcionan estimacin del tamao del software a desarrollar, costo de desarrollo del sistema y duracin del proyecto de desarrollo o mejora del software. Ejemplo COCOMO, desarrollado por Barry Boehm en 1981 aunque existen otros como son ESTIMACS, SOFTCOST, SPQR o COPMO.

Calidad de Software

Mtricas de Software (5)


Por qu Medir? Es decir, por qu determinar cuantitativamente una medida o mtrica del software?. Esencialmente se hace para poder estimar y predecir costos, y para conocer la productividad y calidad del producto, evaluar la madurez de una organizacin, etc.

Calidad de Software

Mtricas de Software (6)


Mtricas de Proyecto y Tcnicas para el Software Clsico
Las Mtricas de Proyecto son usadas para predecir las necesidades del proyecto, tales como cantidad de personal y el esfuerzo total. Las Mtricas Tcnicas son medidas usadas para validar la calidad del software segn se va desarrollando. Estas medidas de atributos internos del producto proporcionan al desarrollador una indicacin en tiempo real de la eficacia del anlisis, diseo y estructura del cdigo, la efectividad de los casos de prueba, y la calidad global del software en construccin.

Calidad de Software

Mtricas de Software (7)


Mtricas de Proyecto y Tcnicas para el Software Clsico
Mtricas de Proyecto
Para el Tamao de la aplicacin: Nmero de Lnea de Cdigo (LdC). PdF (usando equivalencias) Para la Cantidad de personal: LdC por persona da. PdPF por persona da. Para el tiempo: En funcin de persona da

Mtricas Tcnicas
Del Modelo de Anlisis: (Examinan el modelo de anlisis para predecir el tamao del sistema resultante). Mtrica basada en la funcin. Mtrica Bang. Del Modelo de Diseo: Mtricas de la complejidad estructural, de datos y del sistema de Card y Glass Mtricas de cohesin Mtricas de complejidad (Ciclomtica) Mtricas de interfaz Del cdigo fuente: La teora de Halstead. De las pruebas: Uso de las mtricas basadas en la funcin pueden emplearse para estimar el esfuerzo global de las pruebas. Del Mantenimiento: Todas las Mtricas tcnicas pueden ser usadas. Calidad de Software

Algunas Mtricas (1)


Ejemplos de mtricas son los siguientes:
Fiabilidad = 1 - (nmero de errores/ nmero de lneas de cdigo) Facilidad de mantenimiento = 1 - 0.1 (nmero medio de das-hombre por correccin) Portabilidad = 1 - (esfuerzo para portar / esfuerzo para implementar) Flexibilidad = 1 - 0.05 (nmero medio de das-hombre por cambio)
Calidad de Software

Algunas Mtricas (2)


Otros indicadores que se pueden utilizar para evaluar la fiabilidad de un producto son los siguientes:

Calidad de Software

Algunas Mtricas (3)


Otras mtricas se refieren al esfuerzo necesario para aprender a manejar el sistema, o la velocidad a la que trabaja el usuario una vez entrenado, o los errores que se cometen en el trabajo normal. Pero para medir lo agradable que resulta la interfaz, lo mejor es hacer encuestas a los usuarios. Otras mtricas se refieren al proceso de mantenimiento, como:
Tiempo medio de reparacin o cambio Nmero de problemas sin resolver Tiempo empleado en problemas sin resolver Porcentaje de cambios que introducen defectos Nmero de mdulos afectados por cada cambio

Calidad de Software

Algunas Mtricas (4)


Tambin las mtricas de complejidad se utilizan como indicadores de la facilidad de mantenimiento. La estructuracin del cdigo y de la documentacin asociada suele estar muy relacionada con la facilidad de mantenimiento. Pero es ms una forma de identificar potenciales puntos peligrosos que una prediccin de pobre mantenibilidad.

Calidad de Software

Mtricas de Tamao (1)


Lneas de Cdigo La medida ms utilizada de la longitud del cdigo fuente de un programa es el Nmero de Lneas de Cdigo (Lines of Code en ingles, abreviado LOC). La definicin ms comn es la siguiente: Una lnea de cdigo es cualquier lnea de un texto de un programa que no es un comentario o lnea en blanco, sin tener en cuenta el nmero de instrucciones o parte de instrucciones en la lnea. Esta medida se suele representar por NCLOC (No Comentary Lines of Code). Si queremos conocer la longitud real del programa esta sera:
LOC = NCLOC + CLOC
donde CLOC (Comentary Lines of Code (es el nmero de lneas de comentarios))

Una medida indirecta de la densidad de comentarios sera: CLOC / LOC

Calidad de Software

Mtricas de Tamao (2)


Prediccin de la longitud
Existen una serie de modelos que veremos ms adelante para la prediccin del coste, que dependen de la habilidad para predecir la longitud (NLOC) con exactitud en la fase de definicin de especificaciones del sistema a implantar. Un modo intuitivo de predecir la longitud es obteniendo una relacin entre la longitud de los distintos productos obtenidos durante el ciclo de vida.

Walston y Flix D = 49 L 1.01


Donde: D Longitud de la documentacin medida en pginas L Longitud del cdigo del programa medida en miles de LOC
Calidad de Software

Mtricas de Funcionalidad
El concepto de funcionalidad de un producto se origina a partir de una nocin intuitiva de la cantidad de funciones que proporciona. Ha habido dos intentos serios para medir la funcionalidad de un producto software. Uno de ellos se debe a Albrecht y corresponde a los Puntos de Funcin (FPA, del ingls Function Point Analysis) y otro debido a DeMarco, los Bang, que no ha tenido una gran difusin.
Calidad de Software

Mtricas Cualitativas (1)


Es difcil, y en algunos casos imposible, desarrollar medidas directas de atributos tales como: Portabilidad, Reusabilidad, etc. Por lo tanto se define un conjunto de mtricas usadas para desarrollar expresiones para cada uno de los factores de acuerdo con la siguiente relacin: Fc = c1 * m1 + c2*m2 + ... + cn*mn Donde: Fc = Es un factor de calidad ci = Coeficiente (peso) (depende de los productos en particular) mi = Mtricas que afectan al factor

Calidad de Software

Mtricas Cuantitativas (2)


El IMS: Otro ndice de calidad, es el siguiente: el estndar IEEE 982.1-1988, sugiere un ndice de madurez del Software (IMS), que proporciona una indicacin de la estabilidad de un producto de software (basada en los cambios que se producen en cada versin del producto). Se determina en base a la siguiente informacin:
MT = nmero de mdulos en la versin actual Fm = nmero de mdulos en la versin actual que han sido modificados Fa = nmero de mdulos en la versin actual que han sido agregados Fe = nmero de mdulos de la versin anterior que se han eliminado en la versin actual El ndice de madurez del software se calcula como: [MT - (Fa + Fm + Fe )] IMS = ---------------------------MT A medida que IMS se aproxima a 1; el producto comienza a estabilizarse. Calidad de Software

Mtrica de complejidad de McCabe


La complejidad del software, propuesta por McCabe, se basa en la representacin del flujo de control lgico de un programa. Para describir el flujo de control se utiliza un grafo de programa.
Cada crculo representa una tarea de procesamiento (una o ms sentencias de cdigo); el flujo de control (ramificaciones) se representa mediante flechas conectivas.

(Ms adelante se tratar con detalle)

Calidad de Software

10

Mtrica Puntos de Funcin (1)


Un punto de funcin es una mtrica sinttica que se compone de la suma ponderada de los totales de las entradas, las salidas, las consultas, los archivos lgicos, e interfaces que se identifican en la aplicacin. Algunos ejemplos de los usos de puntos de funcin:
Estudios de la produccin de software:
o o o o puntos de funcin por persona-mes horas de trabajo por punto de funcin costo de desarrollo por punto de funcin costo de mantencin por punto de funcin Calidad de Software

Mtrica Puntos de Funcin (2)


Estudios del consumo de software:
o puntos de funcin que posee una empresa o puntos de funcin que necesitan distintos tipos de usuarios finales o toma de decisiones de construir, arrendar o comprar o toma de decisiones de contratar o desarrollar localmente o anlisis de valor de proyectos de software

Estudios de la calidad de software:


o casos de prueba y nmero de ejecucin por punto de funcin o defectos descubiertos por punto de funcin
Calidad de Software

11

Estimacin con Mtrica Puntos de Funcin (1) Un punto de funcin es una mtrica sinttica que se compone de la suma ponderada de los totales de las entradas, las salidas, las consultas, los archivos lgicos, e interfaces que se identifican en la aplicacin.

Calidad de Software

Estimacin con Mtrica Puntos de Funcin (2)


Ejemplos de entradas: pantallas de datos llenadas por usuarios, cintas magnticas, discos flexibles, entradas sensoriales, por lpiz magntico, mouse clicks. Entradas: Pantallas o formularios a travs de los cuales usuarios humanos de una aplicacin u otros programas agregan nuevos datos o actualizan datos existentes. Si una pantalla de entrada es muy grande para ser desplegada de una vez (asumiendo 80 columnas y 25 lneas) y requiere de una segunda pantalla, el conjunto cuenta como una (1) sola entrada. Se deben considerar entradas que requieren procesamiento nico.

Calidad de Software

12

Estimacin con Mtrica Puntos de Funcin (3)

1-4 tem de datos referenciados 0 o 1 archivo referenciado 2 archivos referenciados 3 o ms archivos referenciados Simple (3) Simple (3) Medio (4)

5-15 tem de datos referenciados Simple (3) Medio (4) Complejo (6)

16 o ms tems de datos referenciados Medio (4) Complejo (6) Complejo (6)

Calidad de Software

Estimacin con Mtrica Puntos de Funcin (4)


Ejemplos de salidas: pantallas de datos de salidas, informes impreso, archivos en disco flexible, sets de cheques, facturas impresas. En general, contabilizar como una salida entidades que son referenciables por un nombre; contabilizar independientemente salidas que comparten los datos pero varan en formato. Por ejemplo, una tabla y un histograma. Salidas: Pantallas o informes que la aplicacin produce para uso humano o para otros programas. Las salidas que requieren procesamiento separado deben ser contabilizadas: en una aplicacin de remuneraciones una funcin de salida que genere 100 cheques contara como una sola salida.

Calidad de Software

13

Estimacin con Mtrica Puntos de Funcin (5)

1-5 tems de datos referenciados 0 o 1 archivo referenciado 2 o 3 archivos referenciados 4 o ms archivos referenciados Simple (4) Simple (4) Medio (5)

6-19 tems de datos referenciados Simple (4) Medio (5) Complejo (7)

20 o ms tems de datos referenciados Medio (5) Complejo (7) Complejo (7)

Calidad de Software

Estimacin con Mtrica Puntos de Funcin (6)


Ejemplos de archivos internos lgicos: Coleccin lgica de registro que la aplicacin modifica o actualiza. Un archivo puede ser plano en una base de datos en PC, una rama de una base de datos jerrquica, una tabla de una base de datos relacional.
1-19 tems de datos referenciados 1 formato/relacin de registro lgico 2-5 formatos/relaciones de registro lgico 6 o ms formatos/ relaciones de registro lgico Simple (7) Simple (7) 20-50 tems de datos referenciados Simple (7) Medio (10) 51 o ms tems de datos referenciados Medio (10) Complejo (15)

Medio (10)

Complejo (15)

Complejo (15)

Calidad de Software

14

Estimacin con Mtrica Puntos de Funcin (7)


Ejemplos de (archivos externos lgicos de) interfaz: bases de datos compartidas, archivos lgicos direccionables desde o hacia otra aplicacin. Interfaces: Archivos compartidos con otras aplicaciones, como archivos en cinta magntica que vienen o que van, bases de datos compartidas, o listas de parmetros.
1-19 tems de datos referenciados 1 formato/relacin de registro lgico 2-5 formatos/relaciones de registro lgico Simple (5) Simple (5) 20-50 tems de datos referenciados Simple (5) Medio (7) 51 o ms tems de datos referenciados Medio (7) Complejo (10)

6 o ms formatos/ Medio (7) relaciones de registro lgico

Complejo (10)

Complejo (10)

Calidad de Software

Estimacin con Mtrica Puntos de Funcin (8)


Las consultas se dividen en dos partes: la porcin de entrada y la porcin de salida. La porcin de entrada sera la pregunta (por ejemplo: qu vuelos LAN salen de Santiago a Via del Mar despus de las 5 p.m.?) y la porcin de salida la respuesta (por ejemplo: Vuelo 123 a las 6:05 p.m.).
Parte Salida 0 o 1 archivo referenciado 2 o 3 archivos referenciados 4 o ms archivos referenciados Ejemplos de consultas: consulta de un usuario sin actualizar un archivo, mensajes de ayuda, mensajes de seleccin. 1-5 tems de datos referenciados Simple (4) Simple (4) Medio (5) 6-19 tems de datos referenciados Simple (4) Medio (5) Complejo (7) 20 o ms tems de datos referenciados Medio (5) Complejo (7) Complejo (7)

Calidad de Software

15

Estimacin con Mtrica Puntos de Funcin (9)

Las consultas se dividen en dos partes: la porcin de entrada y la porcin de salida. Ejemplos de consultas: consulta de un usuario sin actualizar un archivo, mensajes de ayuda, mensajes de seleccin.
Parte Entrada 1-4 tems de datos referenciados Simple (3) Simple (3) Medio (4) 5-15 tems de datos referenciados Simple (3) Medio (4) Complejo (6) 16 o ms tems de datos referenciados Medio (4) Complejo (6) Complejo (6)

0 o 1 archivo referenciado 2 archivos referenciados 3 o ms archivos referenciados

Calidad de Software

Estimacin con Mtrica Puntos de Funcin (10)

Calidad de Software

16

Estimacin con Mtrica Puntos de Funcin (11)


C 1 c o m u nic aci n d e d a to s C 2 fu n c ion e s dis trib u ida s im p lica q u e d ato s y /o in fo rm a c i n d e co n tro l s o n e n via d as o re cib id a s sob re fa c ilid a d es d e c om u n ica ci n. L a eva luac in se re fle ja ra e n un 0 p a ra a p lica cion e s b a tch, y u n 5 p a ra a p lic a cio n es e n qu e p re do m in a e l tele p roce s o .

C 3 o b je tiv o s d e p e rfo rm a nc e

C4 co n fig u ra ci n fu e rte m en te

u s ada

C 5 ta s a d e tra n sa c cio n es

C 6 e n tra d a de d a tos e n ln e a C 7 e fic ie n c ia d e l u s u a rio fin a l

C 8 a c tu a liz ac i n e n ln e a

a n a liza si u n a ap lica ci n e s m o n o ltica y o p e ra en u n so lo p ro ce sad o r o si e s d istrib u id a e n tre va rios p ro ce sad o re s. L a e va lu a ci n a rro ja ra u n 0 p a ra a p lica cion e s m on o ltica s pu ra s, y un 5 pa ra ap lica cio n e s qu e se e je cu ta n d in m ica m e nte e n va rio s p ro ce sa do re s. la e va lu a cin se ra un 0 si n o h a y e sta b le cid o n ing n crite rio e sp e cia l de p e rfo rm a n ce p o r lo s u sua rio s, y u n 5 si lo s u su a rio s insiste n en o b je tivos d e pe rfo rm a n ce m u y rig u roso s q ue re qu ie re n u n e sfue rzo co n sid e ra b le p a ra se r lo g ra do s. la e va lu a cin se ra u n 0 si la ap lica ci n n o tien e re striccio n e s e spe cia les d e u so , y u n 5 si e l u so an ticip a do re qu ie re e sp e cia l e sfue rzo pa ra ser lo g ra d o. la e va lu a ci n se ra un 0 si e l vo lu m e n d e tran sa ccio n e s n o e s sig n ifica tivo , y u n 5 si e l vo lu m e n e s lo su ficie n te m e n te sig n ifica tivo co m o p a ra p ro du cir stre ss e n la ap lica ci n y re q ue rir u n e sfue rzo e sp e cia l pa ra a lca n za r th ro ug h pu ts d e sead o s. la e va lu a cin se ra u n 0 si m e n o s d e l 1 5 % d e la s tra n sa ccion e s so n in te ra ctiva s, y un 5 si m s de l 5 0 % d e la s tra n sa ccio ne s so n inte ra ctiva s. la e va lu a ci n se ra un 0 si no h a y u sua rio s fin a le s o n o h ay re q u e rim ie n to s e spe cia le s p a ra lo s u su a rio s fina les, y u n 5 si los re q u e rim ie n to s de e ficie n cia de u su a rio s fin a le s son lo su ficien te m en te rg id o s co m o p a ra re qu e rir u n e sfu e rzo e spe cia l pa ra alca n za rlo s. la e va lua ci n se ra un 0 si n o h a y, y un 5 si la s a ctu a liza cio ne s son o b lig a to ria s y e sp e cia lm en te d ifcile s, q u iz s d e b id o a la n e ce sid ad d e p ro te ge r da to s d e ca m b io s a ccid e nta le s.

Calidad de Software

Estimacin con Mtrica Puntos de Funcin (12)


C9 procesamiento complejo

C10 reusabilidad

C11 facilidad de instalacin

C12 facilidad operacional

C13 sitios mltiples

C14 facilitamiento del cambio

la evaluacin sera un 0 si no hay, y un 5 en casos que requieren decisiones lgicas extensas, matemtica compleja, procesamiento truculento de excepciones, o esquemas de seguridad elaborados. la evaluacin sera un 0 si la funcionalidad se planifica para permanecer local a la aplicacin actual, y un 5 si mucha de la funcionalidad y los artefactos del proyecto se pretende que sean usados ampliamente por otras aplicaciones. la evaluacin sera un 0 si este factor es insignificante, y un 5 si la instalacin es importante y tan restrictiva que requiere un esfuerzo especial para cumplirla satisfactoriamente. la evaluacin sera un 0 si este factor es insignificante, y un 5 si la facilidad operacional es tan restrictiva que requiere un esfuerzo especial para alcanzarla. la evaluacin sera un 0 si hay solo un sitio planificado de uso, y un 5 si el proyecto y sus artefactos se pretenden sean usados en muchos lugares. la evaluacin sera un 0 si el cambio no ocurre, y un 5 si la aplicacin se desarrolla especficamente para permitir a los usuarios finales el hacer cambios rpidos para controlar datos o tablas que ellos mantienen con la ayuda de la aplicacin.

Calidad de Software

17

Estimacin con Mtrica Puntos de Funcin (13)


La escala de evaluacin tiene el siguiente significado: 0 factor no presente o sin influencia 1 influencia insignificante 2 influencia moderada 3 influencia promedio 4 influencia significativa 5 influencia fuerte

Calidad de Software

Estimacin con Mtrica Puntos de Funcin (14)


El procedimiento para calcular el factor de ajuste es el siguiente: asignar una evaluacin individual a cada uno de los 14 factores sumar las evaluaciones (esta dar un valor entre 0 y 70) multiplicar la suma de evaluaciones por 0.01 para obtener un valor decimal sumar 0.65 al valor decimal para crear un factor de complejidad (un valor entre 0.65 y 1.35)
Calidad de Software

18

Estimacin con Mtrica Puntos de Funcin (15)


Suponga una aplicacin con 10 entradas, 10 salidas, 10 consultas, 1 archivo de datos y 1 archivo de interfaz, todos ellos de complejidad promedio. Suponga que los factores de influencia se determinaron de la siguiente manera:
C1 0, C2 0, C3 4, C4 3, C5 3, C6 4, C7 4, C8 2, C9 3, C10 0, C11 4, C12 4, C13 5, C14 4

La suma de los factores de influencia es 40.


Calidad de Software

Estimacin con Mtrica Puntos de Funcin (17)


Clculo de puntos de funcin no ajustados:
Clculo de factor de complejidad: 40 * 0,01 + 0,65 = 1,05 Clculo del valor final de puntos de funcin ajustados: 147 * 1,05 = 154

Calidad de Software

19

Mtricas de Tamao (3) Modelos de Estimacin


Utilizan frmulas derivadas empricamente para predecir los datos que son requeridos en la situacin. Las estimaciones realizadas por un modelo no abarcan todos los tipos de software ya que estos modelos se obtienen de una muestra limitada de proyectos. Los modelos de recurso consisten de una o ms ecuaciones obtenidas empricamente que predicen:
Esfuerzo (persona mes) Duracin del proyecto (en meses cronolgicos) Otros datos pertinentes al proyecto

Calidad de Software

Mtricas de Tamao (3) Modelos de Estimacin


Generalmente, los modelos de estimacin del esfuerzo consisten de dos partes:
P1: Una base, para el clculo, como funcin del tamao del software y es de la siguiente forma:
E = A + B* (KLDC)c, Donde:
E es la estimacin del esfuerzo en hombre mes (H M) A, B, y C son constantes; y KLDC es el nmero estimado de miles de lnea de cdigo en el sistema final.

Calidad de Software

20

Mtricas de Tamao (3) Modelos de Estimacin


P2: Un proceso de ajuste (modificar la base de estimacin para calcular la influencia de los factores ambientales) Factores tpicos son:
Atributos del producto (Fiabilidad, complejidad, etc) Atributos de hardware (Velocidad de ejecucin, restricciones de memoria, tiempo de respuesta, etc ) Atributos del personal (Capacidad de anlisis, capacidad con el lenguaje, planificacin temporal, etc) Atributos del proyecto (Utilizacin de herramientas de software, mtodos, etc.)

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO (1)


Como ejemplo el modelo COCOMO (COnstructive COst MOdel) usa las lneas de cdigo elevadas a una potencia entre 1.05 y 1.20 para determinar la base de clculo. Los exponentes especficos dependen ya sea que el proyecto es simple, medio o complejo. El modelo usa 15 factores multiplicadores independientes que influyen en el ajuste de la base de clculo.
Calidad de Software

21

Modelos de Estimacin Ejemplo: COCOMO (2)


Barry Boehm presenta una jerarqua de modelos de estimacin de software los cuales toman la siguiente forma:
Modelo Bsico: Calcula el esfuerzo y costo en funcin del tamao del programa expresado en lneas de cdigo (LDC) estimadas. Modelo Medio: Calcula el esfuerzo en funcin del tamao de programa y de un conjunto de guas de costos que incluye una evaluacin subjetiva del producto, Hardware, personal, y de los atributos del proyecto. Modelo Avanzado: Incorpora las caractersticas del modelo medio ms una evaluacin ms detallada a niveles (mdulo, subsistema, sistema) del software a desarrollar y efectos multiplicadores del esfuerzo.

Estos modelos se pueden aplicar a tres tipos de proyectos de software:


Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO (3)


Proyectos de aplicacin:
Proyectos relativamente pequeos y sencillos en los que se trabaja con pequeos equipos que cuentan con buena experiencia en las aplicaciones. Inventarios, remuneraciones, etc. Hasta 50 KLDC.

Proyectos utilitarios:
Para proyectos de complejidad y tamao medio (Parametrizados, mayores exigencias de calidad, seguridad, fiabilidad, etc.) en los que trabajan equipos con distintos niveles de experiencia.

Proyectos de sistema:
Para proyectos que deben ser desarrollados dentro de un conjunto estricto de hardware, software y de restricciones operativas. Sistemas operativos, tiempo real, no admiten fallos, sistemas de control, manejo de dispositivos de E/S. Fuertes restricciones de tiempo, seguridad, espacio. Hasta 300 KLDC.

Estudiaremos los modelos Bsicos y Medio. Calidad de Software

22

Modelos de Estimacin Ejemplo: COCOMO (4)


DEFINICIONES
Costo esencial preponderante: Est dado por el nmero de instrucciones fuentes liberadas (escritas) para el proyecto: C = f (DSI), Donde: (LDC) D = DELIBERAD escritas, etc. Excluir software de soporte, bibliotecas, subrutinas ya

S = SOURCE Instrucciones entregadas para ser compiladas, excluye comentarios y todo el software utilitario sin modificacin alguna. Las instrucciones son definidas como lneas de cdigo, por lo tanto, si tengo varias instrucciones en una lnea, se consideran como nica instruccin. Si tenemos una instruccin que se tiene en ms de una lnea se considerar como ms de una instruccin. El tiempo considerado por COCOMO va desde el comienzo de la fase de diseo hasta el trmino de la integracin y prueba del producto.
(figura 5 1) Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO (5)


COCOMO excluye los siguientes costos:
Entrenamiento del personal Conversin del sistema Planificacin de la instalacin No considera personal como secretarias, jouniors, etc. Slo aquellos que estn en el proyecto directamente.

Supone que los requerimientos no sufrirn modificaciones sustanciales. Supone una media en los aranceles de pago a los hombres mes en cada fase. Ejemplo: (Hombre mes)
6000 diseo producto 5000 diseo detallado 5500 mantencin

Calidad de Software

23

Modelos de Estimacin Ejemplo: COCOMO BSICO (6)


MODELO BASICO
Tiene la siguiente forma: E = ab (KLDC)bb T = cb (E)db Donde: E = Esfuerzo hombre mes (F. Diseo, F. Integracin) T = Tiempo de desarrollo en meses. KLDC = 1000s de LDC estimadas para el proyecto. Ab, bb, cd, db tienen los siguientes valores, dependiendo del tipo de proyecto de software:
Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO BSICO (7)


Mode Organic Semidetached Embedded Effort MM = 2.4 (KDSI) 1.05 MM = 3.0 (KDSI) 1.12 MM = 3.6 (KDSI) 1.20 Schedule TDEV = 2.5 (MM) 038 TDEV = 2.5 (MM) 035 TDEV = 2.5 (MM) 032

TABLE 6 1: Basic COCOMO Effort and Schedule Equations

Proyecto Aplicacin Utilitario Sistema

ab 2.4 3,0 3.6

bb 1.05 1.12 1,20

cb 2.5 2.5 2.5

db 0.38 0.35 0.32

Calidad de Software

24

Modelos de Estimacin Ejemplo: COCOMO BSICO (8)


H-M

KLDC

X: La proporcionalidad se pierde por problemas clsicos como: Comunicacin, sincronizacin.

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO BSICO (9)


Ejemplo:
Sea una empresa que est pensando en desarrollar un nuevo programa computacional. Desea hacerlo con un grupo de programadores y analistas que han realizado sistemas similares por varios aos. Un estudio inicial determin que el tamao del programa era del orden de 32 mil LDC. Encontrar el esfuerzo que demandar. El tiempo que tomar el proyecto, la productividad y tamao promedio del equipo de trabajo. Sol. Esfuerzo = E = 2.4 * (KLDC) 1.05 = 2.4 * 321.05 = 91 [H M] Tiempo = 2.5 * (E) 0.38 = 2.5 * 91 0.38 = 14 [Mes] Productividad = KLDC / ESFUERZO Equipo Medio de Trabajo = ESFUERZO / TIEMPO Productividad = 32 * 10 3 / 91 = 352 [LDC ] / [H M ] Por lo tanto demanda una productividad de 352 lneas al mes por cada hombre. Equipo medio de Trabajo (EMT) = 91 / 14 = 6.5 [H] Por lo tanto un promedio de 6 7 personas en cada equipo. Calidad de Software

25

Modelos de Estimacin Ejemplo: COCOMO BSICO (10)


Distribucin de actividades: Cundo y Quienes se necesitan y Cuntos Qu tareas y responsabilidades se desea asignar Control sobre el proyecto, que nos fija un marco para determinar los esfuerzos necesarios en cada actividad (Tablas 7 1, 7 2, 7 3) Como se lee:
Ejemplo, para un proyecto de sistemas de tamao medio se tiene: Planes y requerimientos Diseo del producto Programacin Integracin y Prueba 8% se distribuye 46, 14, 6, 4, 8, 12, 4, 6 18% 54% 28%

Cul es el % total del esfuerzo total que se destina a programacin?: 0,06* 8 + 0,12*18 + 0,55*54 + 0.4 * 28 44,98% 45 % del esfuerzo se dedica a programacin total.

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO BSICO (11)


Ejemplo:
Para un proyecto de sistema de 512 KLDC, cunto tiempo y esfuerzo demanda la fase de diseo del producto; cunta gente requiere y qu hacen estas personas. (Utilizando la tabla). Sol. Muy grande (VL) 512 KLDC El esfuerzo: Por tabla (6 2) o por frmula (6 1).
Esfuerzo TOTAL = 6420 [H - M] Tiempo = 41 [Mes] EMT total = 157
Calidad de Software

26

Modelos de Estimacin Ejemplo: COCOMO BSICO (12)


Parciales (%) diseo tablas 7 1 y 6-8
ESF = 0.18 * 6420 = 1155,6 [H - M] Tiempo = 0.38 * 41 = 15.56 [Mes] EMT = ESF/Tiempo = 1155,6 / 15.56 = 74,26 Qu hacen? Cada persona en la fase de diseo tabla 7 1 Diseo (% total 18) 1155.6 [H - M]
Anlisis de Req. Diseo Programacin Planificacin d e la prueba Verificacin y validacin Funciones de Oficina Manuales Adm. Config. Certif. calidad

(VL)
10% 42% 14% 8% 10% 7% 2% 7% 7.4 31.0 10.4 5.9 7.4 5.2 1.5 5.2

7.4 Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO MEDIO (1) G1


MODELO INTERMEDIO Se trata de incorporar un conjunto de variables para darle mayor fiabilidad a la estimacin de costos. El modelo bsico no toma consideraciones relativas a los programadores, metodologas distintas, fiabilidad que se le exige al producto, etc. Qu otras variables influyen es la estimacin de costos? Boehm estudi 104 variables y determin que 15 de ellas inciden en la estimacin del costo (incidencias relevantes). Estas variables estn subdivididas en 4 grupos de atributos:
Del producto (3) Del personal (5) Del computador (4) Del proyecto (3)

Calidad de Software

27

Modelos de Estimacin Ejemplo: COCOMO MEDIO (2) G1


1. Atributos del producto: RELY = Fiabilidad que se le exige al software. DATA = Tamao de la B. de D. De la Aplicacin. CPLX = Complejidad del producto 2. Atributos del hardware: TIME = Exigencia del tiempo respuesta STOR = Restriccin de almacenamiento principal. VIRT = Volatividad de la mquina virtual (h s/w). (tiene que ver con la obsolescencia, portabilidad, por ejemplo trabajar con MS Windows). TURN = Tiempo de respuesta del computador. 3. Atributos del personal: ACAP = Capacidad del analista. AEXP = Experiencia del personal con las aplicaciones PCAP = Capacidad del programador VEXP = Experiencia del personal con la Maquina Virtual LEXP = Experiencia en el lenguaje de programacin 4. Atributos del proyecto: MODP = Uso de modernas prcticas de programacin TOOL = Uso de herramientas de software SCED = Tiempo que se exige al proyecto. Esto es compararlo con el resultado del COCOMO bsico para el esfuerzo

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO MEDIO (3) G1


Cada uno de los 15 atributos es valorado en una escala de 6 puntos que va desde MUY BAJO a EXTRA ALTO (en importancia de valor). Basado en esta evaluacin se determina un multiplicador de esfuerzo a partir de las TABLAS 8 2 y 8 3; y el producto de todos los multiplicadores de esfuerzo es un factor de ajuste (M (x) que generalmente est entre 0.9 y 1.4)
Calidad de Software

28

Modelos de Estimacin Ejemplo: COCOMO MEDIO (4) G1


MANEJADOR DE COSTO ATRIBUTOS DEL PRODUCTO Fiabilidad del software requerida Tamao de la base de datos Complejidad del producto ATRIBUTOS DEL HARDWARE Restriccin de rendimiento en tiempo de ejecucin Restriccin de memoria Volatilidad del entorno de la mquina virtual Tiempo de vuelta requerido ATRIBUTOS DEL PERSONAL Capacidad de anlisis Capacidad del ingeniero de software Experiencia con las aplicaciones Experiencia con la mquina virtual Experiencia con el lemguaje de programacin ATRIBUTOS DEL PROYECTO Utilizacin de la herramienta de software Aplicacin de los mtodos de ingeniera de software Planificacin temporal del desarrollo requerido 1.24 1.24 1.23 1.1 1.1 1.08 1,0 1,0 1,0 0.91 0.91 1.04 0.82 0.83 1,10 0.77 1.46 1.29 1.42 1.21 1.14 1.19 1.13 1.17 1,10 1.07 1,0 1,0 1,0 1,0 1,0 0.88 0.91 0.86 0,90 0.95 0.71 0.82 0,70 0.87 0.87 1,0 1,0 1,0 1,0 1.11 1.06 1.15 1.07 1,30 1.21 1,30 1.15 1.66 1.56 0,70 0.75 0.88 0.94 0.85 1.0 1,0 1,0 1.15 1.08 1.15 1,40 1.16 1,30 1.65 MUY BAJA BAJA NORMAL ALTA MUY ALTA EXTRA ALTA

TABLA 8 2

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO MEDIO (1) G2


MODELO INTERMEDIO Se trata de incorporar un conjunto de variables para darle mayor fiabilidad a la estimacin de costos. El modelo bsico no toma consideraciones relativas a los programadores, metodologas distintas, fiabilidad que se le exige al producto, etc. Qu otras variables influyen es la estimacin de costos? Boehm estudi 104 variables y determin que 15 de ellas inciden en la estimacin del costo (incidencias relevantes). Estas variables estn subdivididas en 4 grupos de atributos:
Del producto (3) Del personal (5) Del computador (4) Del proyecto (3)

Calidad de Software

29

Modelos de Estimacin Ejemplo: COCOMO MEDIO (3) G2


Cada uno de los 15 atributos es valorado en una escala de 6 puntos que va desde MUY BAJO a EXTRA ALTO (en importancia de valor). Basado en esta evaluacin se determina un multiplicador de esfuerzo a partir de las TABLAS 8 2 y 8 3; y el producto de todos los multiplicadores de esfuerzo es un factor de ajuste (M (x) que generalmente est entre 0.9 y 1.4)
Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO MEDIO (4) G2


MANEJADOR DE COSTO ATRIBUTOS DEL PRODUCTO Fiabilidad del software requerida Tamao de la base de datos Complejidad del producto ATRIBUTOS DEL HARDWARE Restriccin de rendimiento en tiempo de ejecucin Restriccin de memoria Volatilidad del entorno de la mquina virtual Tiempo de vuelta requerido ATRIBUTOS DEL PERSONAL Capacidad de anlisis Capacidad del ingeniero de software Experiencia con las aplicaciones Experiencia con la mquina virtual Experiencia con el lemguaje de programacin ATRIBUTOS DEL PROYECTO Utilizacin de la herramienta de software Aplicacin de los mtodos de ingeniera de software Planificacin temporal del desarrollo requerido 1.24 1.24 1.23 1.1 1.1 1.08 1,0 1,0 1,0 0.91 0.91 1.04 0.82 0.83 1,10 0.77 1.46 1.29 1.42 1.21 1.14 1.19 1.13 1.17 1,10 1.07 1,0 1,0 1,0 1,0 1,0 0.88 0.91 0.86 0,90 0.95 0.71 0.82 0,70 0.87 0.87 1,0 1,0 1,0 1,0 1.11 1.06 1.15 1.07 1,30 1.21 1,30 1.15 1.66 1.56 0,70 0.75 0.88 0.94 0.85 1.0 1,0 1,0 1.15 1.08 1.15 1,40 1.16 1,30 1.65 MUY BAJA BAJA NORMAL ALTA MUY ALTA EXTRA ALTA

TABLA 8 2

Calidad de Software

30

Modelos de Estimacin Ejemplo: COCOMO MEDIO (5) G2


A. FIABILIDAD DEL SOFTWARE REQUERIDA Escala Muy alto Alto Normal Bajo Muy bajo Valor 1.40 1.15 1.00 0.88 0.75 Definicin Riesgo de vidas humanas Altas perdidas financieras Moderado, perdidas recuperables Bajo, prdidas recuperables No existe inconvenientes

B. TAMAO DE LA BASE DE DATOS DE LA APLICACIN Escala Valor Definicin Muy alto 1.16 (Dato-bytes / DSI)> = 1000 Alto 1.08 100<= (Datos-bytes/DSI)< 1000 Normal 1.00 10<= (Dato-bytes/DSI) <1000 Bajo 0.94 (Dato-byte/DSI) < 10 C. COMPLEJIDAD DEL PRODUCTO Escala Valor Definicin Extra alto 1.65 Prioridades dinmicas, micro cdigo Muy alto 1.30 Recursividad servicio de interrupcin de mquinas alto 1.15 Alto control, fsico I / D Normal 1.00 Simple control, librera matemtica standard, mltiples archivos Bajo 0.85 Almacenamiento directo, no tiene dependencias de I / D, simples archivos Muy bajo 0.70 Cdigo sencillo, expresiones simples, simple I/O, arreglos

TABLA 8 3 -1: ATRIBUTOS DEL PRODUCTO

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO MEDIO (6) G2


A. RESTRICCIONES DE RENDIMIENTO EN TIEMPO DE EJECUCIN Escala Valor Definicin Extra alto 1.66 95% de uso disponible de tiempo de CPU Muy alto 1.30 85% de uso disponible de tiempo de CPU Alto 1.11 70% de uso disponible de tiempo de CPU Normal 1.00 50% de uso disponible de tiempo de CPU B. RESTRICCIONES DE MEMORIA Escala Valor Definicin Extra alto 1.56 95% de uso disponible de memoria Muy alto 1.21 85% de uso disponible de memoria Alto 1.06 70% de uso disponible de memoria Normal 1.00 50% de uso disponible de memoria C. VOLATILIDAD DEL ENTORNO DE LA MQUINA VIRTUAL Escala Valor Definicin Muy alto 1.30 Mayor cambio: 2 semanas: menor cambio: 2 das Alto 1.15 Mayor cambio: 2 meses: menor cambio: 1 semana Normal 1.00 Mayor cambio: 6 meses: menor cambio: 2 semanas Bajo 0.87 Mayor cambio: 12 meses: menor cambio: 1 mesTABLA 8 3 -2: ATRIBUTOS DEL HARDWARE

Calidad de Software

31

Modelos de Estimacin Ejemplo: COCOMO MEDIO (7) G2


A. CAPACIDAD DE ANLISIS Escala Valor Definicin Muy alta 0.71 90th percentile Alta 0.86 75th percentile Normal 1.00 55th percentile Baja 1.19 35th percentile Muy baja 1.46 15th percentile C. CAPACIDAD DEL INGENIERO DE SOFTWARE Escala Valor Definicin Muy alta 0.70 90th percentile Alta 0.86 75th percentile Normal 1.00 55th percentile Baja 1.17 35th percentile Muy baja 1.42 15th percentile B. EXPERIENCIA CON LAS APLICACIONES Escala Valor Definicin Muy alta 0.82 12 aos Alta 0.91 6 aos Normal 1.00 3 aos Baja 1.13 1 ao Muy baja 1.29 4 meses o menos D. EXPERIENCIA CON LA MQUINA VIRTUAL Escala Valor Definicin alta 0.90 3 aos Normal 1.00 1 ao Baja 1.10 4 meses Muy baja 1.21 menos que un mes E. EXPERIENCIA Escala Valor Alta 0.95 Normal 1.00 Baja 1.07 Muy baja 1.14 CON EL LENGUAJE DE PROGRAMACIN Definicin 3 aos 1 ao 4 meses 1 mes

TABLA 8 3 -3: ATRIBUTOS DEL PERSONAL

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO MEDIO (8) G2


A. APLICACIN DE LOS MTODOS DE LA INGENIERA DEL SOFTWARE Escala Valor Definicin Muy alto 0.82 Uso rutinario Alto 0.91 Uso general Normal 1.00 Algunas veces Bajo 1.10 Se esta comenzando a usar Muy bajo 1.24 No uso c. Planificacin temporal del desarrollo requerida Escala Valor Definicin Muy alto 1.10 160% de lo normal alto 1.04 130% de lo normal Normal 1.00 1.00% de lo normal Bajo 1.08 85% de lo normal Muy bajo 1.23 75% de lo normal B. UTILIZACIN DE LA HERRAMIENTA DEL SOFTWARE Escala Valor Definicin Extra alto 0.77 El mejor software disponible para desarrollo Muy alto 0.83 Herramientas para requerimientos diseo, mantencin, programacin y prueba Alto 0.91 Herramientas poderosas para maxicomputer, herramientas de prueba. Normal 1.00 Herramientas bsicas para mini/ maxicomputadoras. Bajo 1.10 Herramientas bsicas para minicomputadoras Muy bajo 1.24 Herramientas bsicas para minicomputadoras

TABLA 8 3 -4: ATRIBUTOS DEL PROYECTO

Calidad de Software

32

Modelos de Estimacin Ejemplo: COCOMO MEDIO (9) G3 Este modelo tiene la forma:
E = aa (KLDC) T = cb (E) db
bb

* M (x)

M(x) se obtiene de la productoria de m(xi) (i=1,...,15) de las tablas 8 2 y 8 3 (el producto de todos los multiplicadores de esfuerzo es un factor de ajuste)

Calidad de Software

Modelos de Estimacin Ejemplo: COCOMO MEDIO (10) G3


E = aa (KLDC) T = cb (E) db
bb

* M (x)

M(x) se obtiene de la productoria de m(xi) (i=1,...,15) de las tablas 8 2 y 8 3

Proyecto Aplicacin Utilitario Sistema

ab 3.2 3,0 2.8

bb 1.05 1.12 1,20

cb 2.5 2.5 2.5

db 0.38 0.35 0.32

Calidad de Software

33

Modelos de Estimacin Ejemplo: COCOMO MEDIO (11) G3


E = aa (KLDC) T = cb (E) db
bb

* M (x)

M(x) se obtiene de la productoria de m(xi) (i=1,...,15) de las tablas 8 2 y 8 3

Ejemplo: Un desarrollo de 32 KLDC (Utilitario) tiene un esfuerzo nominal de: ESF = 145,6 [H - M]. Se nos exige baja fiabilidad dado que no se desea uno con altas exigencias: Factor = 0.75 (muy baja). Significa que el resto es nominal, es decir todo valen 1.
As: ESF = 145,6* 0,75 = 110 [H - M]
Calidad de Software

34

You might also like