Está en la página 1de 51

Captulo 19

Mtricas del Software


Lic. Ramiro Estigarribia
Introduccin
Un elemento clave de cualquier
proceso de Ingeniera es la medicin.

Empleamos medidas para entender mejor los
atributos de los modelos que creamos.

Pero, fundamentalmente, empleamos las medidas
para valorar la calidad de los productos de
ingeniera o de los sistemas que construimos.
Lic. Ramiro Estigarribia
Ingeniera del Software y
otras disciplinas
A diferencia de otras disciplinas, la ingeniera del software
no est basada en las leyes cuantitativas de la Fsica.
Las medidas absolutas, tales como el voltaje, la masa, la
velocidad o la temperatura no son comunes en el mundo
del software.

En su lugar, intentamos obtener un conjunto de medidas
indirectas que dan lugar a mtricas que proporcionan
una indicacin de la calidad del software.

Se trata de buscar una aproximacin o una idea.

Medidas en la Fsica
Definicin de Medicin
Es el proceso por el que se asignan nmeros o
smbolos a los atributos de las entidades del mundo
real.

En las ciencias fsicas, medicina y otras ciencias,
somos ahora capaces de medir atributos que
previamente pensbamos que no eran medibles.

Sentimos que la obligacin de intentar "medir lo no
medible" para mejorar nuestra comprensin de
entidades particulares como la ingeniera del
software.
El Software no es
medible?
Muchos profesionales del software piensan que el
software no es medible.

Un argumento es que se deberan posponer los
intentos de medicin hasta que comprendamos
mejor el software.

Esto hoy se considera un error.

Calidad del Software
Incluso los desarrolladores del software ms
hastiados estarn de acuerdo en que un
software de alta calidad es una de las metas
ms importantes.

Pero... Cmo medimos la calidad?

Calidad del Software
segn Pressman
La calidad del software es, segn Pressman:

La concordancia con los requisitos funcionales y
de rendimiento, con los estndares de
desarrollo y con las caractersticas implcitas
que se espera del software desarrollado e
implementado.
Medir el Software
1. Los requisitos del software son la base de
las medidas de la calidad. La falta de
concordancia con esos requisitos es una
falta de calidad.

2. Existen criterios de desarrollo que guan la
manera en que se hace la ingeniera del
software. Si no se siguen los criterios,
habr probablemente poca calidad.
Medir el Software (cont...)
3. Existe un conjunto de requisitos implcitos
que a menudo no se nombran (por ejemplo,
facilidad de mantenimiento).

Si el software cumple con sus requisitos
explcitos pero falla en los implcitos, la
calidad tampoco ser fiable.

Dimensiones de la Calidad
Clasificacin de factores de
Calidad segn McCall
Factores de la Calidad
Correccin: Hasta dnde satisface un programa su
especificacin y logra los objetivos propuestos por
el cliente.

Fiabilidad: Hasta dnde se puede esperar que un
programa lleve a cabo su funcin con la exactitud
requerida.

Eficiencia: La cantidad de recursos informticos y de
cdigo necesarios para que un programa realice su
funcin.


Factores de la Calidad
(cont..)
Integridad: Hasta dnde se puede controlar el acceso
al software o a los datos por personas no
autorizadas.

Usabilidad: El esfuerzo necesario para aprender a
operar el sistema.
Facilidad de mantenimiento: El esfuerzo necesario
para localizar y arreglar un error.

Flexibilidad: El esfuerzo necesario para modificar un
programa que ya est en funcionamiento.


Factores de la Calidad
(cont..)
Facilidad de prueba: El esfuerzo necesario para
probar un programa.
Portabilidad: El esfuerzo necesario para transferir el
programa de un entorno hardware/software a otro.
Reusabilidad: Hasta dnde se puede volver a
emplear un programa (o partes).
Interoperatividad: El esfuerzo necesario para acoplar
un sistema con otro.

La Frmula de Medicin de
la Calidad
Es difcil y en algunos casos improbable, desarrollar
medidas directas de los factores de calidad
anteriores.

Es por eso, que se definen y emplean un conjunto de
mtricas para desarrollar expresiones para todos los
factores de acuerdo con la siguiente relacin:

Fq = c1 * m1 + c2 * m2 + + cn * mn

Donde Fq es el factor de calidad del software.
Cn son coeficientes y Mn son puntajes obtenidos.

Modelo De Furps (1987)
Hewlett-Packard ha desarrollado un conjunto de
factores de calidad del software al que se le ha
dado el acrnimo de FURPS:
FUNCIONALITY
USABILITY
RELIABILITY
PERFORMANCE
SUPPORTABILITY

Factores de Furps
Funcionalidad: se evala el conjunto de caractersticas
y capacidades del programa, la generalidad de las
funciones entregadas y la seguridad del sistema
global.

Facilidad de uso: se valora considerando factores
humanos, la esttica, la consistencia y la
documentacin.

Fiabilidad: se evala midiendo la frecuencia y gravedad
de los fallos, la exactitud de las salidas (resultados), y
la capacidad de recuperacin de un fallo.

Factores de Furps (cont..)
Rendimiento: se mide por la velocidad de
procesamiento, el tiempo de respuesta, consumo de
recursos, rendimiento efectivo total y eficacia.

Capacidad de soporte: combina la capacidad de
ampliar el programa (extensibilidad), as como
capacidad de hacer pruebas, compatibilidad,
capacidad de configuracin, la facilidad de
instalacin de un sistema y la facilidad con que se
pueden localizar los problemas.

Factores de calidad
ISO 9126
El estndar ISO 9126 ha sido creado en un intento
de identificar los atributos clave de calidad del
software.

El estndar identifica seis atributos clave de calidad:

Funcionalidad.
Confiabilidad.
Usabilidad.
Eficiencia.
Facilidad de mantenimiento.
Portabilidad.
ISO 9126
El Reto de Medir el
Software
La medicin asigna nmeros o smbolos a atributos de
entidades del mundo real.

Para conseguirlo se necesita un modelo de medicin
que comprenda un conjunto consistente de reglas.

Durante dcadas, investigadores han intentado
desarrollar una sola mtrica que proporcione una
medida completa de la complejidad del software.
Fenton le bautiz a esta investigacin como:
La bsqueda de lo imposible.




Mtricas del modelo de
anlisis
El trabajo tcnico en la ingeniera del software
empieza con la creacin del modelo de anlisis.

En esta fase se obtienen los requisitos y se
establece el fundamento para el diseo.

Por tanto, son deseables las mtricas tcnicas que
proporcionan una visin interna a la calidad
del modelo de anlisis.

Mtricas basadas en la
funcin
La mtrica de punto de funcin (PF) se puede usar
para predecir el tamao de un sistema.

Un ejemplo es el diagrama de flujo de datos, de una
funcin de una aplicacin de software llamada
Hogar Seguro.

La funcin administra la interaccin con el usuario,
aceptando una contrasea de usuario para activar/
desactivar el sistema y permitiendo consultas sobre
el estado de las zonas de seguridad y varios
sensores.


Programa Hogar Seguro
Hogar Seguro
El diagrama de flujo de datos se evala para
determinar las medidas clave necesarias para el
clculo de la mtrica de PF.:
Entradas de usuario
o Contrasea
o Interruptor de emergencias
o Activar/Desactivar
Consultas de usuario
o Consulta de zona
o Consulta de sensor

Hogar Seguro (cont...)
Salidas de usuario
o Mensajes
o Estado del Sensor
Archivos
o Datos de configuracin del Sistema
Interfaces externas
o Sensor de Prueba
o Configuracin de Zona
o Activar/Desactivar
o Alerta de Alarma

Hogar Seguro
Hogar Seguro
La cuenta total debe ajustarse usando la
ecuacin:
PF = cuenta-total * (0.65 + 0.01 * sumatoria [ Fi ] )

Fi son valores de complejidad.
Para el propsito de este ejemplo, asumimos que es
46 (un producto moderadamente complejo)

Por lo tanto:
PF = 50* [0.65+(0.01*46)]=56



Mtricas del Modelo de
Diseo
Es inconcebible que el diseo de un nuevo avin, un
nuevo chip de computadora o un nuevo edificio se
realizar sin definir las medidas del diseo,
sin determinar las mtricas para varios aspectos de la
calidad del diseo y usarlas para guiar la evolucin del
diseo.
Y sin embargo, el diseo de sistemas complejos
basados en computadora a menudo consigue
proseguir sin virtualmente ninguna medicin.
Mtrica del modelo del
diseo
Las mtricas para software, no son perfectas.

Muchos expertos argumentan que se
necesita ms experimentacin hasta que se
puedan emplear bien las mtricas de diseo.

Sin embargo el diseo sin medicin es una
alternativa inaceptable.

Mtricas de diseo de alto
nivel
stas se concentran en las caractersticas de la
estructura del programa dndole nfasis a la
estructura arquitectnica y en la eficiencia de los
mdulos.

Estas mtricas son de caja negra, en el sentido de
que no se requiere ningn conocimiento del trabajo
interno de ningn modo en particular del sistema.

Mtricas de Fenton
Fenton [91] sugiere varias mtricas que permiten
comparar diferentes arquitecturas de programa
mediante un conjunto de dimensiones directas.

Tamao = n + a

n: nmero de nodos (mdulos)
a: nmero de arcos (lneas de control)


tamao = 17 + 18 = 35
Mtricas de Fenton
Profundidad = el camino ms largo desde el nodo raz
En el ejemplo: Profundidad =4

Anchura = mximo nmero de nodos de cualquier
nivel de la arquitectura.
En el ejemplo: Anchura = 6

Relacin arco/nodo, R = a/n
Mide la conectividad y el acoplamiento.
R = 18/17 = 1,06.

Mtricas de cohesin
Un mdulo con alta cohesin ejecutar una nica
tarea sencilla, interactuando muy poco o nada con
el resto de mdulos del programa.
Se busca que los mdulos tengan una alta
cohesin.
Mtricas de Acoplamiento
El acoplamiento de mdulo proporciona una indicacin
de la conectividad de un mdulo con otros
mdulos, datos globales y entorno exterior.

El bajo acoplamiento entre las unidades de software
es el estado ideal que siempre se intenta obtener.
Cuanto menos dependiente sean las partes que
constituyen un sistema informtico, mejor ser el
resultado.

Mtricas de complejidad
Se pueden calcular una variedad de mtricas del
software para determinar la complejidad de un
programa.

Muchas de stas se basan en una representacin
denominada grafo de flujo, un grafo es una
representacin compuesta de nodos y enlaces.

La mtrica de complejidad ms ampliamente usada (y
debatida) para el software es la complejidad
ciclomtica, originalmente desarrollada por Thomas
McCabe.

Mtricas de diseo de
interfaz
Para entender su importancia, basta recordar que la
interfaz del usuario ser la nica conexin que
podrn tener con los usuarios del sistema.

Aunque existe amplia literatura sobre el diseo de
interfaces, se ha publicado poco sobre mtricas de
la calidad y facilidad de uso.

Una IGU (Interfaz Grfica de Usuario) tpica usa
entidades de representacin, iconos, grficos, texto,
mens, ventanas y otras para ayudar al usuario a
completar tareas.


Mtricas de diseo de
interfaz
Se pueden asignar costos a cada secuencia de
acciones de acuerdo con la siguiente relacin:

Costos = Sumatoria [frecuencia de transicin (ki) x
costos de transicin (k) ]

Donde k es la transicin i especfica de una entidad de
representacin a la siguiente cuando se realiza una
tarea especfica.


Mtricas de diseo de
interfaz
El costo puede estar caracterizado en trminos
de: tiempo, retraso del proceso o cualquier
otro valor razonable, tal como la distancia
que debe moverse el ratn entre entidades
de la representacin.

Mtricas de cdigo fuente
La ciencia del software asigna leyes cuantitativas al
desarrollo del software, usando un conjunto de
medidas primitivas que pueden obtenerse una vez
que se ha generado o estimado el cdigo despus
de completar el diseo. Estas medidas se listan a
continuacin:

n1: nmero de operadores diferentes
n2: nmero de operandos diferentes
N1: el nmero total de veces que aparece el
operador
N2: el nmero total de veces que aparece el operando




Mtricas de cdigo fuente
El investigador Halstead defini las siguiente frmulas:

Largo del Programa: N = N1 + N2
Tamao del Vocabulario del programa: n = n1 + n2
Volumen del Programa: V = N * log2(n)
Nivel de Dificultad: D = (n1/2) * (N2/n2)
Nivel de Programa: L = 1/D
Esfuerzo de Implementacin: E = V*D
Tiempo de Entendimiento: T = E/18


Mtricas de cdigo fuente
* Se debera tener en cuenta que V variar con el
lenguaje de programacin y representa el volumen
de informacin (en bits) necesarios para especificar
un programa.

* 18 es el nmero que Halstead encontr
experimentalmente para expresar esta magnitud en
segundos.



Mtricas de mantenimiento
Se han propuesto mtricas diseadas explcitamente
para actividades de mantenimiento.

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.

Mtricas de mantenimiento
Mr = nmero de mdulos en la versin actual
Fc = nmero de mdulos en la versin actual que se
han cambiado
Fa = nmero de mdulos en la versin actual que se
han aadido
Fd = nmero de mdulos de la versin anterior que se
han borrado en la versin actual

El ndice de madurez del software se calcula de la
siguiente manera:
IMS = [Mr (Fa + Fc + Fd)] / Mr

Mtricas de mantenimiento
A medida que el IMS se aproxima a 1.0 el producto se
empieza a estabilizar.

El IMS puede emplearse tambin como mtrica para
la planificacin de las actividades de mantenimiento
del software.


Conclusiones
Las mtricas del software intentan obtener una
manera cuantitativa de valorar la calidad de los
atributos internos del producto.

Para que sea til en el contexto del mundo real, una
mtrica debe ser simple, calculable, consistente y
objetiva.

Debera ser independiente del lenguaje de
programacin y proporcionar una realimentacin
eficaz para el desarrollador de software.





Conclusiones (cont...)
Podemos afirmar que estamos ante "la bsqueda de
lo imposible":

Sin bien cada da podremos acercarnos ms a una
mtrica exacta en el Software, en la medida en que
los mtodos de programacin evolucionan, se
necesitar replantear todo.

Y este ciclo repetitivo de cambios, no parece acabar,
al menos mientras dure la era de la tecnologa.

Artculo Recomendado
http://www.crosstalkonline.org/storage/issue-
archives/2009/200903/200903-Minkiewicz.pdf

The Evolution of Software Size: A Search for Value
Arlene F. Minkiewicz, PRICE Systems, LLC


Tarea opcional (1 punto extra):
Escribir una breve crtica, y enviar por mail.

También podría gustarte