You are on page 1of 26

Mtricas en POO

Universidad Politcnica Salesiana

Vinicio Changoluisa Octubre 2012


Vinicio Changoluisa

Mtricas para sistemas orientados a objetos


La mayora de las mtricas orientadas a objetos se basan en las caractersticas distintivas del software orientado a objetos respecto al software convencional: Localizacin: forma en que se concentra la informacin dentro de un programa. Encapsulamiento: empaquetamiento de una coleccin de elementos. Ocultamiento de la informacin: supresin de los detalles operativos de un componente. Herencia: mecanismo que permite la propagacin de responsabilidades de un objeto a otro. Abstraccin: mecanismo que permite concentrarse en los detalles esenciales de un componente sin considerar los de nivel inferior.
Vinicio Changoluisa

Mtricas para sistemas orientados a objetos


Clasificacin de las mtricas: Mtricas a nivel del sistema Mtricas orientadas a clases Mtricas para pruebas orientadas a objetos Mtricas para proyectos orientados a objetos Mtricas orientadas a operaciones

Vinicio Changoluisa

Mtricas a nivel del sistema


Mtricas MOOD (Metrics for Object Oriented Design) [Brito e Abreu y Melo 1996] Proporcin de mtodos ocultos (Method Hiding Factor MHF). Es la proporcin entre la suma de los grados de invisibilidad de los mtodos en todas las clases (mtodos protegidos y privados) y el nmero total de mtodos definidos en el sistema.

Vinicio Changoluisa

Mtricas a nivel del sistema

MHF se propone como una medida de encapsulacin, cantidad

relativa de informacin oculta.

Cuando MHF incrementa el esfuerzo para corregirlos disminuye


Vinicio Changoluisa

Mtricas a nivel del sistema


Proporcin de atributos ocultos ((Attribute Hiding Factor

AHF-). Es la proporcin entre la suma de los grados de invisibilidad de los atributos en todas las clases (atributos protegidos y privados) y el nmero total de atributos definidos en el sistema

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 Vinicio Changoluisa las clases.

Mtricas a nivel del sistema


Proporcin de mtodos heredados (Method Inheritance

Factor MIF). Proporcin entre el nmero de mtodos heredados y el nmero total de mtodos.

MIF: Medida de la herencia (reuso)

Vinicio Changoluisa

Mtricas a nivel del sistema


Proporcin o factor de polimorfismo (POF): es la proporcin

entre el nmero real de posibles situaciones polimorfas para una clase Ci y el mximo nmero posible de situaciones polimorfas en Ci. Es decir, es el nmero de mtodos heredados redefinidos dividido entre el mximo nmero de situaciones polimorfas distintas posibles

Abreu indica que sobrecargando los mtodos se reduce la


Vinicio Changoluisa

complejidad, si incrementa la mantenibilidad y comprensin.

Mtricas orientadas a clases


Conjunto de mtricas CK [Chidamber y Kemerer 1994]: 1. Mtodos ponderados por clase (Weighted Methods per Class -WMC-): recoge la nocin de complejidad por mtodo. Para una clase C con M1, M2, ...,Mn mtodos con un peso de complejidad c1, c2, ..., cn respectivamente: WMC = ci
Si todos los mtodos tienen igual complejidad ci = 1 y WMC = n

Mientras ms alto mas complejo y difcil de utilizar.


Vinicio Changoluisa

Mtricas orientadas a clases


Clases con un gran nmero de mtodos requieren ms

tiempo y esfuerzo para desarrollarlas y mantenerlas. Estas clases tienden a ser especficas de la aplicacin, limitando su posibilidad de reuso. Lorenz y Kidd sugieren un umbral de 40 o 20, dependiendo si las clases son o no de interface de usuario respectivamente

Vinicio Changoluisa

Mtricas orientadas a clases


Profundidad del rbol de herencia ((Depth of Inheritance Tree DIT-)): Longitud del camino mximo entre un nodo y la raz del rbol.
2.

En el nivel cero de la jerarqua se encuentra la clase raz. El uso de la herencia es visto como un compromiso : Ms alto Ms reutiliza el cdigo Ms complejo (difcil de explicar comportamiento) Bajos niveles de herencia cdigo escrito en un estilo funcional NO aprovecha el concepto de herencia
Vinicio Changoluisa

Mtricas orientadas a clases


3.

Nmero de hijos ((Number of Children NOC-): es el nmero de descendientes inmediatos de una clase (nodo).

Es un indicador del nivel de reuso

NH grande mas reutilizacin por herencia problemas de abstraccin de cdigo Dificultad para modificar una clase, afecta a todos los hijos.
Vinicio Changoluisa

Mtricas orientadas a clases


4.

Acoplamiento entre clases (Coupling Factor CF-): nmero de clases que se acoplan con una clase dada. Hay dependencia entre dos clases cuando una de ellas usa mtodos o variables de la otra clase Comunicacin entre clases

Mayor CF peor modularidad peor encapsulamiento

Vinicio Changoluisa

Mtricas orientadas a clases


Respuesta para una clase (Response For a Class RFC): es el nmero de mtodos que responden a una peticin . Mayor RPC mas complicada las pruebas y el mantenimiento 6. Mtrica de falta de cohesin (MFC): nmero de grupos de mtodos locales que no acceden a atributos comunes. MFC es el nmero de conjuntos disjuntos de mtodos locales. MFC Alto la clase debe dividirse
5.

Vinicio Changoluisa

Ciencia del software de Halstead


Ciencia del software de Halstead

Mtricas basadas en el clculo de palabras clave (reservadas) y variables. 1. Operadores (palabras reservadas):
Sentencias de control, operadores: If, for while, swtich, do

while, +, - ,*
2.

Operandos:
Variables y constantes

Vinicio Changoluisa

Ciencia del software de Halstead


Halstead distingue entre:

El nmero de operadores y operandos nicos y b. El nmero total de operadores y operando.


a.
n1 - nmero de operadores nicos que aparecen en un

programa N1 - nmero total de ocurrencias de operadores n2 - nmero de operandos nicos que aparecen en un programa N2 - nmero total de ocurrencias de operandos

Vinicio Changoluisa

Ciencia del software de Halstead


Halstead propone calcular: longitud, volumen y esfuerzo.

Longitud:
N= N1+N2

Donde N es una simple medida del tamao de un programa.


Cuanto ms grande sea el tamao de N, mayor ser la dificultad para comprender el programa y mayor el esfuerzo para mantenerlo. N es una medida alternativa al simple conteo de lneas de cdigo. Aunque es casi igual de fcil de calcular, N es ms sensible a la complejidad que el contar el nmero de lneas porque N no asume que todas las instrucciones son igual de fcil o de difcil de entender.
Vinicio Changoluisa

Ciencia del software de Halstead


Volumen:
V = N x log2(n)
donde n = n1 + n2

El volumen da un peso extra al nmero de operadores y

operandos nicos. Por ejemplo, si dos programas tienen la misma longitud N pero uno tiene mayor nmero de operadores y operandos nicos, que naturalmente lo hacen ms difcil de entender y mantener, este tendr un mayor volumen.
Vinicio Changoluisa

Ciencia del software de Halstead


Esfuerzo
E =V / L
Donde L = (2/n1 )*(n2 /N2 )

El esfuerzo es una medida del trabajo requerido para

desarrollar un programa. Desde el punto de vista del mantenimiento, el esfuerzo se puede interpretar como una medida del trabajo requerido para comprender un software ya desarrollado.

Vinicio Changoluisa

Mtricas orientadas a clases


Mtricas de Lorenz y Kidd [Lorenz y Kidd 1994]: Dividen las mtricas en cuatro categoras:

Tamao (recuento de atributos y operaciones), 2. Herencia (reutilizacin del cdigo a lo ancho y alto de la jerarqua de clases), 3. Valores internos (cohesin y anlisis de cdigo) y 4. Valores externos (acoplamiento y reuso).
1.

Vinicio Changoluisa

Mtricas orientadas a clases


Mtricas de Lorenz y Kidd [Lorenz y Kidd 1994]: Tamao de clase (TC). El tamao general de una clase se determina utilizando las siguientes medidas:
Nmero total de operaciones Nmero de atributos

Nmero de operaciones invalidadas por una subclase

(NOI). La invalidacin consiste en la sustitucin en la subclase de una operacin heredada por una versin especializada para su propio uso(reescritura de mtodos).

Vinicio Changoluisa

Mtricas orientadas a clases


Nmero de operaciones aadidas por una subclase

(NOA): operaciones propias de la subclase que no aparecen en las superclases. ndice de especializacin (IE): IE = (NOI nivel)/ Mtotal nivel: nivel de la clase en la jerarqua de clases Mtotal: Nmero total de mtodos de la clase

Vinicio Changoluisa

Mtricas orientadas a operaciones


Mtricas de Lorenz y Kidd [Lorenz y Kidd 1994]: 1. Tamao medio de operacin (TOmed): } a) LOC b) Nmero de mensajes enviados por la operacin 2. Complejidad de operacin (CO): se puede aplicar cualquier mtrica de complejidad del software convencional 3. Nmero medio de parmetros por operacin (NPmed) Tan largo como sea el nmero de parmetros de operacin, ms compleja ser la colaboracin entre objetos.
Vinicio Changoluisa

Mtricas para pruebas orientadas a objetos


Mtricas para pruebas orientadas a objetos [Binder 1994]: 1. Encapsulamiento
a) Carencia de cohesin en mtodos (CCM): se aplica la

mtrica LOC de CK. b) Porcentaje pblico y protegido (PPP): porcentaje de atributos pblicos de la clase c) Acceso pblico a datos miembro(APD): nmero de clases que pueden acceder a atributos de otras clases, violando el encapsulamiento

Vinicio Changoluisa

Mtricas para pruebas orientadas a objetos


2.

Herencia
a) Nmero de clases raz (NCR): nmero de jerarquas de

clases distintas. b) Admisin (ADM): indicacin de la herencia mltiple. Si ADM > 1 la clase hereda de ms de una clase raz. c) Nmero de descendientes (NOD) y profundidad del rbol de la herencia d) (APM): se aplican las correspondientes mtricas CK

Vinicio Changoluisa

Mtricas para proyectos orientados a objetos


Mtricas de Lorenz y Kidd [Lorenz y Kidd 1994] Nmero de guiones de escenario (NGE): un guin de escenario es una secuencia detallada de pasos que describen la interaccin entre el usuario y la aplicacin. Nmero de clases clave (NCC): clases que se centran en el dominio de negocio del problema en cuestin. Nmero de subsistemas (NSUB): proporcionan una idea de la asignacin de recursos, de la planificacin y del esfuerzo global de integracin.

Vinicio Changoluisa

You might also like