Académique Documents
Professionnel Documents
Culture Documents
FACULTAD DE INGENIERA
I N F O R M E D E C O N T R O L D E C A L I D A D D E
S O F T W A R E
M E T R I C A S D E P R O D U C T O
SEMESTRE :X
1
PG.
Tabla de contenidos
INTRODUCCIN ........................................................................................................... 3
2
INTRODUCCIN
3
1. MTRICAS DE PRODUCTO
Medicin es el proceso mediante el cual se asignan nmeros o smbolos a los atributos de las
entidades en el mundo real, de manera que se les define de acuerdo con reglas claramente
determinadas.
En ciencias fsicas, medicina, economa y ms recientemente en ciencias sociales, ahora es
posible medir atributos que anteriormente se consideraban inmensurables. Desde luego, tales
mediciones no son tan refinadas como muchas mediciones en las ciencias fsicas, pero existen
y con base en ellas se toman decisiones importantes. Sentimos que la obligacin de intentar
medir lo inmensurable para mejorar la comprensin de entidades particulares es tan
poderosa en la ingeniera del software como en cualquiera otra disciplina.
Aunque los trminos medida, medicin y mtrica con frecuencia se usan de modo
intercambiable, es importante observar las sutiles diferencias entre ellos. En el contexto de la
ingeniera del software.
Una medida proporciona un indicio cuantitativo de la extensin, cantidad, dimensin,
capacidad o tamao de algn atributo de un producto o proceso. La medicin es el acto de
determinar una medida. El IEEE Standard Glosary of Software Engineering Terminology,
define mtrica como una medida cuantitativa del grado en el que un sistema, componente o
proceso posee un atributo determinado.
Un ingeniero de software recolecta medidas y desarrolla mtricas de modo que se obtengan
indicadores. Un indicador es una mtrica o combinacin de mtricas que proporcionan
comprensin acerca del proceso de software, el proyecto de software o el producto en si. Un
4
indicador proporciona comprensin que permite al gerente de proyecto o a los ingenieros de
software ajustar el proceso, el proyecto o el producto para hacer mejor las cosas.
Durante las cuatro dcadas pasadas, muchos investigadores intentaron desarrollar una sola
mtrica que proporcionara una medida abarcadora de la complejidad del software. Fenton
[Fen94] caracteriza esta investigacin como una bsqueda del imposible Santo Grial. Aunque
se han propuesto decenas de medidas de complejidad [Zus90], cada una toma una visin un
poco diferente de lo que es la complejidad y de que atributos de un sistema conducen a la
complejidad. Por analoga, considere una mtrica para evaluar un automvil atractivo. Algunos
observadores pueden enfatizar el diseo de la carrocera; otros pueden considerar
caractersticas mecnicas; otros ms pueden destacar el costo o el rendimiento o el uso de
combustibles alternativos o la capacidad para reciclar cuando el carro sea chatarra. Dado que
cualquiera de estas caractersticas puede estar en desacuerdo con otras, es difcil derivar un
solo valor para el atractivo. El mismo problema ocurre con el software de computadora.
Aunque existe la necesidad de medir y de controlar la complejidad del software.
Antes de presentar una serie de mtricas de producto efectivas, es importante comprender los
principios de medicin bsicos. Roche sugiere un proceso de medicin que puede
caracterizarse mediante cinco actividades:
Formulacin. La derivacin de medidas y mtricas de software apropiadas para la
representacin del software que se est construyendo.
Recoleccin. Mecanismo que se usa para acumular datos requeridos para derivar las
mtricas formuladas.
Anlisis. El clculo de mtricas y la aplicacin de herramientas matemticas.
Interpretacin. Evaluacin de las mtricas resultantes para comprender la calidad de
la representacin.
Retroalimentacin. Recomendaciones derivadas de la interpretacin de las mtricas
del producto, transmitidas al equipo de software.
Aunque la formulacin, caracterizacin y validacin son cruciales, la recoleccin y el anlisis
son las actividades que impulsan el proceso de medicin. Roche [Roc94] sugiere los siguientes
principios para dichas actividades:
1) siempre que sea posible, la recoleccin y el anlisis de datos deben automatizarse;
5
2) deben aplicarse tcnicas estadsticas vlidas para establecer relaciones entre atributos de
producto internos y caractersticas de calidad externas (por ejemplo, si el nivel de complejidad
arquitectnica se correlaciona con el nmero de defectos reportados en el uso de produccin).
3) para cada mtrica deben establecerse lineamientos y recomendaciones interpretativos.
El paradigma Meta/Pregunta/Mtrica (MPM) fue desarrollado por Basili y Weiss [Bas84] como
una tcnica para identificar mtricas significativas para cualquier parte del proceso de
software. MPM enfatiza la necesidad de: 1) establecer una meta de medicin explicita que sea
especfica para la actividad del proceso o para la caracterstica del producto que se quiera
valorar, 2) definir un conjunto de preguntas que deban responderse con la finalidad de lograr
la meta y 3) identificar mtricas bien formuladas que ayuden a responder dichas preguntas.
Para definir cada meta de medicin, puede usarse una plantilla de definicin de meta [Bas94].
La plantilla toma la forma:
Analizar {el nombre de la actividad o atributo que se va a medir} con el propsito de {el
objetivo global del anlisis} con respecto a {el aspecto de la actividad o atributo que se
considera} desde el punto de vista de {las personas que tienen inters en la medicin} en el
contexto de {el entorno en el que tiene lugar la medicin}.
Como ejemplo, considere una plantilla de definicin de meta para CasaSegura:
Analizar la arquitectura del software CasaSegura con el propsito de evaluar los
componentes arquitectnicos con respecto a la capacidad de hacer CasaSegura mas
extensible desde el punto de vista de los ingenieros de software que realizan el trabajo en
el contexto de mejora del producto durante los prximos tres aos.
Ejiogu define un conjunto de atributos que deben abarcar las mtricas de software
efectivas. La mtrica derivada y las medidas que conducen a ella deben ser:
Simple y calculable. Debe ser relativamente fcil aprender como derivar la mtrica y
su clculo no debe demandar esfuerzo o tiempo excesivo.
Emprica e intuitivamente convincente. Debe satisfacer las nociones intuitivas del
ingeniero acerca del atributo de producto que se elabora (por ejemplo, una mtrica
6
que mide la cohesin del mdulo debe aumentar en valor conforme aumenta el nivel
de cohesin).
Congruente y objetiva. Siempre debe producir resultados que no tengan
ambigedades. Una tercera parte independiente debe poder derivar el mismo valor de
mtrica usando la misma informacin acerca del software.
Constante en su uso de unidades y dimensiones. El clculo matemtico de la mtrica
debe usar medidas que no conduzcan a combinaciones extraas de unidades. Por
ejemplo, multiplicar personas en los equipos de proyecto por variables de lenguaje de
programacin en el programa da como resultado una mezcla sospechosa de unidades
que no son intuitivamente convincentes.
Independiente del lenguaje de programacin. Debe basarse en el modelo de
requerimientos, el modelo de diseo o la estructura del programa en s. No debe
depender de los caprichos de la sintaxis o de la semntica del lenguaje de
programacin.
Un mecanismo efectivo para retroalimentacin de alta calidad. Debe proporcionar
informacin que pueda conducir a un producto final de mayor calidad.
El trabajo tcnico en la ingeniera del software comienza con la creacin del modelo de
requerimientos. En esta etapa se derivan los requerimientos y se establece un cimiento para
el diseo. Por tanto, son deseables mtricas de producto que proporcionen comprensin
acerca de la calidad del modelo de anlisis.
Aunque en la literatura han aparecido relativamente pocas mtricas de anlisis y
especificacin, es posible adaptar las mtricas que se usan frecuentemente para estimacin
de proyectos y aplicarlas en este contexto. Dichas mtricas examinan el modelo de
requerimientos con la intencin de predecir el tamao del sistema resultante. En ocasiones
(mas no siempre), el tamao es un indicador de la complejidad del diseo y casi siempre es
un indicador creciente de codificacin, integracin y esfuerzo de pruebas.
La mtrica de punto de funcin (PF) puede usarse de manera efectiva como medio para medir
la funcionalidad que entra a un sistema. Al usar datos histricos, la mtrica PF puede entonces
usarse para: 1) estimar el costo o esfuerzo requerido para disear, codificar y probar el
7
software; 2) predecir el nmero de errores que se encontraran durante las pruebas, y 3) prever
el nmero de componentes y/o de lneas fuente proyectadas en el sistema implementado.
Los puntos de funcin se derivan usando una relacin emprica basada en medidas contables
(directas) del dominio de informacin del software y en valoraciones cualitativas de la
complejidad del software. Los valores de dominio de informacin se definen en la forma
siguiente:5
Nmero de entradas externas (EE). Cada entrada externa se origina de un usuario o se
transmite desde otra aplicacin, y proporciona distintos datos orientados a aplicacin o
informacin de control. Con frecuencia, las entradas se usan para actualizar archivos lgicos
internos (ALI). Las entradas deben distinguirse de las consultas, que se cuentan por separado.
Nmero de salidas externas (SE). Cada salida externa es datos derivados dentro de la
aplicacin que ofrecen informacin al usuario. En este contexto, salida externa se refiere a
reportes, pantallas, mensajes de error, etc. Los tems de datos individuales dentro de un
reporte no se cuentan por separado.
Nmero de consultas externas (CE). Una consulta externa se define como una entrada en
lnea que da como resultado la generacin de alguna respuesta de software inmediata en la
forma de una salida en lnea (con frecuencia recuperada de un ALI).
Nmero de archivos lgicos internos (ALI). Cada archivo lgico interno es un agrupamiento
lgico de datos que reside dentro de la frontera de la aplicacin y se mantiene mediante
entradas externas.
Nmero de archivos de interfaz externos (AIE). Cada archivo de interfaz externo es un
agrupamiento lgico de datos que reside fuera de la aplicacin, pero que proporciona
informacin que puede usar la aplicacin.
Una vez recolectados dichos datos, la tabla de la figura 23.1 se completa y un valor de
complejidad
se asocia con cada conteo. Las organizaciones que usan mtodos de punto de funcin
desarrollan criterios para determinar si una entrada particular es simple, promedio o compleja.
No obstante, la determinacin de complejidad es un tanto subjetiva.
Para calcular puntos de funcin (PF), se usa la siguiente relacin:
PF=conteo total X [0.65 _ 0.01x (Fi)].
En esta mtrica podemos encontrar una lista de caractersticas que pueden usarse para
valorar la calidad del modelo de requerimientos y la correspondiente especificacin de
8
requerimientos: especificidad (falta de ambigedad), completitud, correccin,
comprensibilidad, verificabilidad, consistencia interna y externa, factibilidad, concisin,
rastreabilidad, modificabilidad, precisin y reusabilidad. Adems, los autores observan que las
especificaciones de alta calidad se almacenan electrnicamente, son ejecutables o al menos
interpretables, se anotan mediante importancia relativa, son estables, tienen versin, se
organizan, cuentan con referencia cruzada y se especifican en el nivel correcto de detalle.
Aunque muchas de estas caractersticas parecen ser cualitativas por naturaleza, Davis et al.
[Dav93] sugieren que cada una puede representarse usando una o ms mtricas. Por ejemplo,
se supone que existen nr requerimientos en una especificacin, tales que
nr =nf x nnf
donde nf es el nmero de requerimientos funcionales y nnf es el nmero de requerimientos no
funcionales (por ejemplo, rendimiento).
9
S(i )= f (i )
donde fout2out
(i) es el fan-out del mdulo i.
La complejidad de datos ofrece un indicio de la complejidad que hay en la interfaz interna para
un mdulo i y se define como
D(i )v(i )fout(i ) /16
Donde v(i) es el nmero de variables de entrada y salida que pasan hacia y desde el mdulo
i.
Finalmente, la complejidad del sistema se define como la suma de las complejidades
estructural y de datos y se especifica como:
C(i) =S(i )+D(i )
Conforme aumenta el valor de cada una de estas complejidades, la complejidad arquitectnica
global del sistema tambin aumenta. Esto conduce a una mayor probabilidad de que tambin
aumenten el esfuerzo de integracin y el de pruebas.
Denton [Fen91] sugiere algunas mtricas simples de morfologa (es decir, de forma) que
permiten la comparacin de diferentes arquitecturas de programa usando un conjunto de
dimensiones directas. Con respecto a la arquitectura se puede definirse la siguiente mtrica:
Tamao = n + a
Donde n es el nmero de nodos y a es el nmero de arcos.
Tamao = 17 +18 = 35
Profundidad trayectoria ms larga desde el nodo raz (superior) hasta un nodo hoja.
Ancho nmero mximo de nodos en cualquier nivel de la arquitectura.
La razn arco a nodo, r = a/n, mide la densidad de conectividad de la arquitectura y puede
proporcionar un indicio simple del acoplamiento de la arquitectura. Para la arquitectura que se
muestra. La comandancia de los sistemas de la fuerza area estadounidense [USA87]
desarroll algunos indicadores de calidad del software que se basan en las caractersticas de
diseo.
10
Tamao: el tamao d se define en funcin de cuatro versiones: poblacin, volumen, longitud
funcionalidad
Complejidad: existen muchas versiones diferentes de complejidad de software, en trminos
de caractersticas estructurales al examinar cmo se relacionan mutuamente las clases
Acoplamiento: conexiones fsicas (nmero de colaboraciones entre clases o el mensaje que
pasan entre los objetos.
Suficiencia: el grado en el que una abstraccin posee las caractersticas requeridas de l o
en el que un componente del diseo.
11
Factor de herencia de mtodo (FHM). El grado en el que la arquitectura de clase de un
sistema OO utiliza la herencia tanto para mtodos (operaciones) como para atributos se define
Como:
El valor de FHM [el factor de herencia de atributo (FHA) se define de forma analoga] ofrece un
indicio del impacto de la herencia sobre el software OO.
Factor de acoplamiento (FA). El aocopes un indicio de las conexiones entre elementos del
diseno OO. Lel apa suite de metricas MOOD define el acoplamiento en la forma siguiente:
Donde la suma ocurren desde i=0 hasta Tc, j=0 hasta Tc.
12
Nmero total de operaciones(Tanto heredadas como operaciones de instancia
privada)
Donde:
13
Interpretacin: a medida que el valor de Mc va ir aumentando entonces en factor de
acoplamiento ira disminuyendo
1.4.1Mtricas de interfaz.
14
Mtrica sugerida Descripcin
Correccin de plantilla Ver seccin 23.3.8
Complejidad de plantilla Nmero de regiones12 distintas definidas
por una interfaz
Complejidad de regin de plantilla Nmero promedio de distintos vnculos por
regin
Complejidad de reconocimiento Nmero promedio de distintos tems que el
usuario debe buscar antes de
realizar una navegacin o decidir la entrada
de datos
Tiempo de reconocimiento Tiempo promedio (en segundos) que tarda
un usuario en seleccionar la accin
adecuada para una tarea determinada
Esfuerzo de escritura Nmero promedio de golpes de tecla
requeridos para una funcin especfica
Esfuerzo de toma de ratn Nmero promedio de tomas de ratn por
funcin
Complejidad de seleccin Nmero promedio de vnculos que pueden
seleccionarse por pgina
Tiempo de adquisicin de contenido Nmero promedio de palabras de texto por
pgina web
Carga de memoria Nmero promedio de distintos tems de
datos que el usuario debe recordar
para lograr un objetivo especfico
15
Porcentaje de texto de cuerpo Porcentaje de palabras que son cuerpo
frente a texto de despliegue (es decir,
ttulos)
16
Mtrica sugerida Descripcin
Espera de pgina Tiempo promedio requerido para que una
pgina se descargue a diferentes
velocidades de conexin
1.4.4 Mtricas de navegacin. Las mtricas en esta categora abordan la complejidad del
flujo de navegacin. En general, son tiles solo para aplicaciones web estticas, que no
incluyen vnculos y paginas generados de manera dinmica.
Mtrica sugerida Descripcin
17
Conectividad Nmero total de vnculos internos, no
incluidos vnculos generados de
manera dinmica.
Usar un subconjunto de las mtricas sugeridas puede servir para derivar relaciones empricas
que permiten a un equipo de desarrollo webapp valorar la calidad tcnica y predecir el esfuerzo
con base en las estimaciones de complejidad estimadas. En esta rea todava queda mucho
trabajo por hacer.
1.5 MTRICAS PARA CDIGO FUENTE
La teora de Halstead de la ciencia del software propuso las primeras leyes analticas para
el software de computadora. Halstead asigno leyes cuantitativas al desarrollo de software de
computadora, usando un conjunto de medidas primitivas que pueden derivarse despus de
generar el cdigo o de que el diseo este completo. Las medidas son:
n1 = nmero de operadores distintos que aparecen en un programa.
n2 = nmero de operandos distintos que aparecen en un programa.
N1 = nmero total de ocurrencias de operador.
N2 = nmero total de ocurrencias de operando.
Halstead usa estas medidas primitivas para desarrollar: expresiones para la longitud de
programa global, volumen mnimo potencial para un algoritmo, volumen real (nmero de bits
requeridos para especificar un programa), nivel del programa (una medida de complejidad del
software), nivel del lenguaje (una constante para un lenguaje determinado) y otras
caractersticas, como esfuerzo de desarrollo, tiempo de desarrollo e incluso el nmero
proyectado de fallas en el software.
Halstead muestra que la longitud N puede estimarse
N = n1 log 2 n1 + n2 log 2 n2
y el volumen del programa puede definirse
V = N log 2 (n1 + n2 )
Debe observarse que V variara con el lenguaje de programacin y representa el volumen de
informacin (en bits) requerido para especificar un programa.
Tericamente, debe existir un volumen mnimo para un algoritmo particular. Halstead define
una razn de volumen L como la razn del volumen de la forma ms compacta de un programa
18
al volumen del programa real. En realidad, L siempre debe ser menor que 1. En trminos de
medidas primitivas, la razn de volumen puede expresarse como
2 n2
L= =
n1 N2
El trabajo de Halstead es sensible a la verificacin experimental y se ha llevado a cabo un gran
trabajo para investigar la ciencia del software.
v
=
PL
19
(K)
(k) =
(i)
Donde e(k) se calcula para el modulo k usando las ecuaciones (23.2), y la suma en el
denominador de la ecuacion (23.3) es la suma del esfuerzo de Halstead a travs de todos los
mdulos del sistema.
1.6.2 Mtricas para pruebas orientadas a objetos
Las mtricas del diseo OO proporcionan un indicio de la calidad del diseo. Tambin ofrecen
un indicio general de la cantidad de esfuerzo de prueba requerido para ejercitar un sistema
OO. Binder sugiere un amplio arreglo de mtricas de diseo que tienen influencia directa sobre
la comprobabilidad de un sistema OO. Las mtricas consideran aspectos de encapsulacin y
herencia.
1.6.3 Falta de cohesin en mtodos (FCOM). Mientras ms alto sea el valor de la FCOM,
mas estados deben ponerse a prueba para garantizar que los mtodos no generan efectos
colaterales.
1.6.3 Porcentaje pblico y protegido (PPP). Los atributos pblicos se heredan de otras
clases y, por tanto, son visibles para dichas clases. Los atributos protegidos son accesibles a
los mtodos en las subclases. Esta mtrica indica el porcentaje de los atributos de clase que
son pblicos o protegidos. Valores altos de PPP aumentan la probabilidad de efectos
colaterales entre las clases porque los atributos pblicos y protegidos conducen a alto
potencial para acoplamiento.16 Las pruebas deben disearse para garantizar el
descubrimiento de tales efectos colaterales.
1.6.4 Acceso pblico a miembros de datos (APD). Esta mtrica indica el nmero de clases
(o mtodos) que pueden acceder a otros atributos de clase, una violacin de la encapsulacin.
Valores altos de APD conducen al potencial de efectos colaterales entre clases. Las pruebas
deben disearse para garantizar el descubrimiento de tales efectos colaterales.
1.6.5 Nmero de clases raz (NCR). Esta mtrica es un conteo de las distintas jerarquas de
clase que se describen en el modelo de diseo. Deben desarrollarse las suites de prueba para
cada clase raz y la correspondiente jerarqua de clase. Conforme el NCR aumenta, tambin
aumenta el esfuerzo de prueba.
Fan-in (FIN). Cuando se usa en el contexto OO, el fan-in (abanico de entrada) en la jerarqua
de herencia es un indicio de herencia mltiple. FIN > 1 indica que una clase hereda sus
atributos y operaciones de ms de una clase raz. FIN > 1 debe evitarse cuando sea posible.
1.6.6 Nmero de hijos (NDH) y profundidad del rbol de herencia (PAH). Como se
mencion, los mtodos de superclase tendrn que volverse a probar para cada subclase.
20
1.7 MTRICAS PARA MANTENIMIENTO
Todas las mtricas de software presentadas en este captulo pueden usarse para el desarrollo
de nuevo software y para el mantenimiento del software existente. Sin embargo, se han
propuesto mtricas diseadas explcitamente para actividades de mantenimiento. IEEE Std.
982.1-1988 [IEE93] sugiere un ndice de madurez de software (IMS) que proporcione un indicio
de la estabilidad de un producto de software (con base en cambios que ocurran para cada
liberacin del producto). Para ello, se determina la siguiente informacin:
MT = nmero de mdulos en la liberacin actual.
Fc = nmero de mdulos en la liberacin actual que cambiaron.
Fa = nmero de mdulos en la liberacin actual que se agregaron.
Fd = nmero de mdulos de la liberacin anterior que se borraron en la liberacin actual
El ndice de madurez del software se calcula de la forma siguiente:
MT(Fa+FC+Fd)
IMS =
Mt
Conforme el IMS tiende a 1.0, el producto comienza a estabilizarse. El IMS tambin puede
usarse como una mtrica para planificar actividades de mantenimiento de software. El tiempo
medio para producir una liberacin de un producto de software puede correlacionarse con el
IMS, y es posible desarrollar modelos empricos para esfuerzo de mantenimiento.
21
CONCLUSIONES
En el presente trabajo se realiz el anlisis y diseo para luego evaluar la calidad del software
utilizando las diferentes mtricas que se expusieron en la clase .para el clculo de la calidad
del software utilizando las diferentes mtricas se tuvo que asignar valores empricos, estos
valores han sido asignados de acuerdo a criterio de cada uno de los integrantes del grupo
parael caulo respectivo.
22