You are on page 1of 4

Mtricas MOOD

Licenciatura en Ingeniera de Software


Mtricas de Software


Mtricas MOOD

El conjunto de mtricas MOOD (Metrics for Object oriented Design) definido por [Abreu y Melo,
1996] opera a nivel de sistema. Se refieren a mecanismos estructurales bsicos en el paradigma
de la orientacin a objetos como encapsulacin (MHF y AHF), herencia (MIF y AIF), polimorfismo
(PF) y paso de mensajes (COF).

En general, las mtricas a nivel de sistema pueden derivarse de otras mtricas usando mtodos
estadsticos como la media, etc. stas son utilizadas para identificar caractersticas del
sistema.Este conjunto de mtricas es explicado a continuacin.


Factor de Ocultamiento de los Mtodos (MHF, Method Hiding Factor).

El factor de ocultamiento de los mtodos mide la proporcin entre los mtodos definidos como
protegidos o privados y el nmero total de mtodos.

MHF se propone como una medida de encapsulacin, cantidad relativa de informacin oculta.

HEF =
H
H
(C

)
1C
=1
H

1C
=1
(C

)


H

(C

) = H
H
(C

) + H
v
(C

)

donde:

M
D
(C
i
): es el nmero de mtodos declarados en una clase.
M
H
(C
i
): es el nmero de mtodos protegidos o privados.
M
V
(C
i
): es el nmero de mtodos visibles.
T
C
: es el nmero total de clases en el sistema.

Propsito:
MHF se propone como una medida de encapsulacin, cantidad relativa de informacin oculta.

Consideraciones:
Abreu y Melo (1996) han demostrado empricamente que cuando se incrementa MHF, la densidad
de defectos y el esfuerzo necesario para corregirlos deberan disminuir. Para calcular esta
mtrica, los mtodos heredados no son considerados.


Factor de Ocultamiento de los Atributos (AHF, Attribute Hiding Factor).

El factor de ocultamiento de los atributos, se define como el cociente entre la suma de las
invisibilidades de todos los atributos definidos en todas las clases y el nmero total de atributos
definidos en el sistema considerado.

La invisibilidad de un atributo es el porcentaje del total de clases desde las cuales los atributos son
invisibles.

AHF se defini como una medida de encapsulacin.
Mtricas MOOD


AEF =
A
H
(C

)
1C
=1
A

1C
=1
(C

)


A

(C

) = A
H
(C

) + A
v
(C

)

donde:

A
D
(C
i
): es el nmero de atributos declarados en una clase.
A
H
(C
i
): es el nmero de atributos protegidos o privados.
A
V
(C
i
): es el nmero de atributos visibles.
T
C
: es el nmero total de clases en el sistema.

Propsito:
AHF se propone como una medida de encapsulacin.

Consideraciones:
Idealmente esta mtrica debe de ser siempre 100%, intentando ocultar todos los atributos. Las
pautas de diseo sugieren que no se debe emplear atributos pblicos, ya que se considera que
violan los principios de encapsulacin al exponer la implementacin de las
clases.

Para mejorar el rendimiento, a veces se evita el uso de mtodos que acceden o modifican
atributos (mtodos get/set) accediendo a ellos directamente. En esta prctica debe extremarse la
prudencia y evaluar si realmente los pros son mayores que los contras.


Factor de Herencia de los Mtodos (MIF, Method Inheritance Factor)

El factor de herencia de los mtodos, se define como el cociente entre la suma de los mtodos
heredados de todas las clases del sistema considerado y el nmero total de mtodos existentes
(tanto los definidos localmente como los heredados) en todas las clases.

MIF se define como una medida de herencia, y por lo tanto como una medida del nivel de
reutilizacin.


HIF =
H
I
(C

)
1C
=1
H
A
1C
=1
(C

)


H
A
(C

) = H

(C

) + H
I
(C

)
H

(C

) = H
N
(C

) + H
0
(C

)

donde:

M
N
(C
i
): es el nmero de mtodos nuevos en una clase.
M
O
(C
i
): es el nmero de mtodos redefinidos en una clase.
M
D
(C
i
): es el nmero de mtodos declarados en una clase.
M
A
(C
i
): es el nmero de mtodos que pueden ser invocados en relacin a C
i
.
M
I
(C
i
): es el nmero de mtodos heredados (y no redefinidos en C
i
).
T
C
: es el nmero total de clases en el sistema.



Mtricas MOOD

Propsito:
Sus autores proponen a MIF como una medida de la herencia y como consecuencia, una medida
del nivel de reutilizacin. Tambin se propone como ayuda para evaluar la cantidad de recursos
necesarios a la hora de realizar pruebas.

Consideraciones:
El uso de la herencia se ve como un compromiso entre la reusabilidad que proporciona, y la
comprensibilidad y mantenimiento del sistema.


Factor de Herencia de los Atributos (AIF, Attribute Inheritance Factor)

El factor de herencia de los atributos, se define como el cociente entre la suma de los atributos
heredados en todas las clases del sistema considerado y el nmero total de atributos existentes
(tanto los definidos localmente como los heredados) en todas las clases.

Al igual que MIF, AIF se considera como un medio para expresar la capacidad de reutilizacin en
un sistema.


AIF =
A
I
(C

)
1C
=1
A
A
1C
=1
(C

)


A
A
(C

) = A

(C

) + A
I
(C

)
A

(C

) = A
N
(C

) + A
0
(C

)

donde:

A
N
(C
i
): es el nmero de atributos nuevos en una clase.
A
O
(C
i
): es el nmero de atributos redefinidos en una clase.
A
D
(C
i
): es el nmero de atributos declarados en una clase.
A
A
(C
i
): es el nmero de atributos que pueden ser invocados asociados a C
i
.
A
I
(C
i
): es el nmero de atributos heredados (y no redefinidos en C
i
).
T
C
: es el nmero total de clases en el sistema.

Propsito:
Al igual que MIF, AIF se considera un medio para expresar el nivel de reusabilidad en un sistema.

Consideraciones:
Demasiada reutilizacin de cdigo a travs de herencia hace que el sistema sea ms difcil de
entender y mantener.


Factor de Polimorfismo (PF, Polymorphism Factor)

El factor de polimorfismo, se define como el cociente entre el nmero actual de posibles diferentes
situaciones de polimorfismo y el nmero mximo de posibles situaciones distintas de polimorfismo
para la clase C
i
.

PF es una medida del polimorfismo y una medida indirecta de la asociacin dinmica en un
sistema.



Mtricas MOOD


PF =
H
0
(C

)
1C
=1
|H
N
(C

) C(C

)]
1C
=1


H

(C

) = H
N
(C

) + H
0
(C

)

donde:

M
N
(C
i
): es el nmero de mtodos nuevos en una clase.
M
O
(C
i
): es el nmero de mtodos redefinidos en una clase.
M
D
(C
i
): es el nmero de mtodos declarados en una clase.
DC(C
i
): es el nmero de descendientes de C
i
.
T
C
: es el nmero total de clases en el sistema.

Propsito:
PF es una medida de polimorfismo y una medida indirecta de la asociacin dinmica en un
sistema.

Consideraciones:
El polimorfismo es debido a la herencia. Abreu indica que en algunos casos sobrecargando
mtodos se reduce la complejidad y por lo tanto, se incrementa la mantenibilidad y
comprensibilidad del sistema.

Harrison et al. (1998) muestran cmo esta mtrica no cumple todas las propiedades definidas en
(Kitchenham et al., 1995) para ser vlida ya que en un sistema sin herencia, el valor de PF resulta
indefinido, exhibiendo una discontinuidad.






















Bibliografa

Piattini, M. G., Garca, F. O., Garzs, J., Genero, M. F. (2008). Medicin y Estimacin del Software:
Tcnicas y Mtodos para Mejorar la Calidad y Productividad. Mxico: Alfaomega RA-MA.

Dolado, J. J., Fernndez, L. (2000). Medicin para la Gestin en la Ingeniera del Software.RA-MA.
Recuperado de http://www.cc.uah.es/drg/b/RodHarRama00.pdf

You might also like