You are on page 1of 12

1

Revisión Sistemática de Métricas de


Diseño Orientado a Objetos
Trabajo tutelado de Investigación
Autor: Juan José Olmedilla Arregui
Tutor: Tomás San Feliu Gilabert
Universidad Politécnica de Madrid, Facultad.de Informática
Septiembre 2005

Abstract— Since (Chidamber & Kemerer, 1991) multiple Object-Oriented (OO) metrics suites have been proposed, claiming, in
many cases, to be focused in design measurement and not so much in measurement of code or other products of the software
lifecycle. We are talking, of course, about those metrics not focused on productivity but rather in quality, therefore these metrics try
to evaluate, in a quantitative way, if certain properties such as encapsulation, cohesion, abstraction and coupling, supposingly
desirable for OO design, are being met. By the other hand, since the forthcoming of concepts such as design patterns (Gamma et
al., 1995) and refactorings (Fowler, 2000) new elements have been added to the OO literature to aid with the evaluation of designs.
This study performs a systematic review of the literature in order to find out the current state of the art of OO design metrics. The
main objective is to know which current OO metrics can be applied exclusively to the design. By the other hand we want to know
whether the OO properties mentioned above are still direct measurable attributes, or they are measured indirectly through new
directly measurable elements, or on the contrary the OO design quality metrics have completely changed.

Resumen—.Desde (Chidamber & Kemerer, 1991) se han propuesto múltiples conjuntos de métricas orientadas a objetos (OO),
pretendiendo, en muchos casos, estar centradas en la medición de los diseños y no tanto del código u otros productos del ciclo de
vida. Estamos hablando, por supuesto, de aquellas métricas enfocadas no a la productividad sino a la calidad, por tanto, estas
métricas tratan de evaluar, de manera cuantitativa, si ciertas propiedades supuestamente deseables del diseño OO se cumplen,
tales como encapsulamiento, cohesión, abstracción y acoplamiento. Por otro lado, desde la aparición de conceptos como los
patrones de diseño (Gamma et al., 1995) y las refactorizaciones (Fowler, 2000) nuevos elementos para juzgar lo que es un buen o
un mal diseño han entrado a formar parte de la literaratura especializada en orientación a objetos. El presente trabajo realiza una
revisión de la literatura para evaluar el estado actual de la cuestión entorno a las métricas OO de diseño. El objetivo fundamental es
discernir cuáles son las métricas OO que se pueden aplicar exclusivamente al diseño. Por otro lado, se pretende saber si las
propiedades OO antes mencionadas siguen siendo el objeto principal y directo de medición, o bien si se miden de manera indirecta
a través de nuevos elementos, como los patrones, o si por el contrario ha cambiado radicalmente la forma de medir la calidad de un
diseño OO.

Palabras clave— Diseño orientado a objetos, métricas de software.

—————————— ‹ ——————————

1 INTRODUCCIÓN

C ASI desde los albores de la Informática se han tratado


de medir de una manera u otra distintos atributos del
software. Estos atributos pueden ser, el tamaño, la
diseño se haya implementado en código. Por una parte,
interesa saber si un determinado diseño se ajusta a un de-
terminado nivel de calidad fijado de antemano y por otra
complejidad, la frecuencia esperada de aparición de errores, parte, interesa poder juzgar si el diseño de un producto
cobertura de pruebas, o incluso atributos del proceso soft- software ya existente tiene un nivel de calidad suficiente
ware como pueden ser la productividad. Dichos atributos para ser susceptible de mejoras o bien merece la pena reha-
se pueden medir directa o indirectamente, esto es, a través cer todo el producto desde sus fases iniciales. En el último
de la medición previa de otros atributos con los que se sabe caso, quizás el más complejo, se podría incluso llegar a de-
que aquellos tienen una relación matemática (N. Fenton et cidir si el coste económico de desarrollar el producto desde
al., 1994). Los objetivos perseguidos por dichas mediciones cero, partiendo de unos requisitos previos y alguna técnica
pueden ser la búsqueda de un método de estimación de de estimación de esfuerzo, es superior o inferior al coste de
esfuerzo de desarrollo, el cálculo de la cobertura de pruebas mejorar un diseño existente, siempre suponiendo que el
en el aseguramiento de la calidad o como en el caso que nos código existente sigue dicho diseño. Para ello sería necesa-
ocupa, la calidad en el diseño software Orientado a Objetos rio disponer de métricas tales que permitieran, en primer
(OO). lugar, establecer niveles cuantitativos de calidad en deter-
Estamos interesados en el uso de métricas que ayuden a minados aspectos o atributos, y en segundo lugar medir la
la detección de errores y a la mejora de la calidad en el di- calidad real del diseño así como el coste esperado de las
seño OO en fases tempranas, antes incluso de que dicho transformaciones del diseño (e implementación) aconseja-
2

bles para alcanzar dichos niveles. Esto implicaría, natural-


mente, no solamente un conjunto de métricas sino toda una
metodología de mejora de diseño OO basado en transfor-
maciones, ya sean éstas, refactorizaciones, aplicación de
reglas, heurísticas, patrones, etc.
El presente trabajo es un primer paso en la dirección antes
mencionada ya que nos quedaremos simplemente en la bús-
queda de métricas OO aplicables al diseño. Para ello se reali-
zará una revision sistemática de la literature en cuanto a mé-
tricas OO buscando aquellas que se refieran al diseño. En
primer lugar, en el apartado 2 se describen los antecedentes
en el cual se incluye una somera descripción de lo que se
entiende por atributos de calidad software y qué se entien-
de por elementos de diseño, que son al fin y al cabo lo que
pretendemos medir, así como la evolución de las métricas
OO en general. En el siguiente apartado, el 3, se describe la
metodología utilizada y los resultados de la revisión y, fi-
nalmente, se cierra el estudio con unas conclusiones, en el
apartado 4.

2 ANTECEDENTES
2.1 Atributos de calidad y entidades de diseño Fig. 1: Atributos de calidad ISO 9126
En primer lugar debemos acotar el contexto en el que nos
movemos, ya que la calidad, en el software, se puede en- nivel específico de rendimiento bajo determinadas
tender como calidad de proceso o de producto. La calidad condiciones de uso.
de proceso ha sido objeto de mucho interés en las últimas • Usabilidad: la capacidad del producto software de ser
décadas (Humphrey, 1989) y su desarrollo ha concienciado entendido, aprendido, usado y atractivo al usuario,
a los profesionales de la necesidad de aplicar la calidad a cuando se usa bajo ciertas condiciones.
otros aspectos del software. En nuestro caso estamos clara- • Eficiencia: la capacidad del software de ofrecer el
mente centrados en la calidad del producto software y, de- rendimiento apropiado con respecto a la cantidad de
ntro de ella, en el producto derivado de la fase de diseño recursos utilizados, bajo condiciones prefijadas.
(Software design, part 2, 2004). • Mantenibilidad: la capacidad del producto de ser
Fenton y Pfleeger (1998) explican que es un paso previo modificado. Dichas modificaciones pueden incluir co-
al establecimiento de las métricas el definir qué atributos o rrecciones, mejoras o adaptaciones a cambios en el en-
propiedades de qué elementos son los que queremos medir. torno y en los requisitos y especificaciones funciona-
Posteriormente podremos establecer si para medir dichos les.
atributos es necesario medir otros y derivar los que nos • Portabilidad: la capacidad del software de ser trasla-
interesan de ellos o bien se puede hacer directamente. En dado de un entorno (informático) a otro.
nuestro caso la única norma que hemos encontrado en la Estas características son generales para cualquier tipo de
literatura que da una definición de calidad de producto programa informático o software independientemente de si
software en base a atributos es ISO 9126 (ISO/IEC, 2001). el paradigma empleado para construirlo es el Orientado a
Dicha norma establece que la medición de la calidad de un Objetos, el estructurado u otro cualquiera, sin embargo si
producto software debe hacerse en base a sus atributos, que afectará a la manera de medirlas. Dichas características
siendo éstos internos, propiedades características de cómo se dividen a su vez en subcaracterísticas tal como se puede
se estructura el software, o externos, cualidades observables ver en la Fig. 1.
aún sin conocer cómo está construido. De hecho no se habla La norma ISO 9126 trata de establecer una definición ge-
de calidad, en general, sino de calidad interna y calidad neral de lo que es la calidad de producto software en gene-
externa, afirmándose que la calidad interna de un producto ral, tanto desde el punto de vista del usuario final como del
software influye directamente en su calidad externa. De que lo construye, de ahí que exista la visión externa como la
algún modo se está diciendo que mejorando la calidad in- interna. Sin embargo se puede decir que existen sub-
terna se mejora directamente la calidad observada en atri- productos intermedios en los que podemos hacer medicio-
butos de uso del producto software. Tanto la calidad inter- nes de calidad previas a las que se puedan hacer al dispo-
na como la externa se definen, en ISO 9126, como un con- ner el producto acabado y que, sin embargo nos pueden dar
junto de 6 características: una previsión de la calidad de este último. Es lógico pensar
• Funcionalidad: la capacidad del software de proveer que no todas las características antes mencionadas son
las funciones que cumplen con las necesidades implí- mensurables o tiene sentido en determinados productos
citas y explícitas cuando el mismo es utilizado bajo intermedios, como el diseño micro-arquitectónico, como es
ciertas condiciones. el caso que nos ocupa. De este modo debremos distinguir
• Fiabilidad: la capacidad del software de mantener un qué características son planteables y cuáles no en la fase de
JUAN JOSÉ OLMEDILLA ARREGUI.: REVISIÓN SISTEMÁTICA DE MÉTRICAS DE DISEÑO ORIENTADO A OBJETOS 3

Fig. 2: Calidad de producto en el ciclo de vida software

diseño: pensión a fallos, que interpretamos como antónimos


• Por lo que respecta a la característica de funcionali- de fiabilidad.
dad hemos de decir que su medición pretende diluci- • La usabilidad está directamente relacionada con la
dar si se ha hecho una cobertura correcta y completa forma en que el usuario percibe el producto termina-
de los requisitos de usuario, por tanto, se trata de algo do. No se han encontrado evidencias que permitan es-
que debiera hacerse durante la fase de análisis y me- tablecer esta característica como un atributo interno
dirse durante etapas posteriores al diseño, cuando ya de calidad del diseño. La comprensibilidad (ing. “Un-
se tiene el código mediante pruebas de cobertura. Lo derstandability”) se menciona en la literatura
que se ha venido llamando Aseguramiento de la Ca- (Bansiya & Davis, 2002; Deligiannis et al., 2003; Dum-
lidad cubre, entre otras cosas, la verificación de di- ke & Kuhrau, 1994) como una propiedad deseable en
chos requisitos de usuario. Por tanto la calidad de un el diseño, sin embargo es más que discutible que su
diseño no debería medirse por la funcionalidad, tal interpretación como la sub-característica usabilidad
como se define en ISO 9126. Las técnicas de mejora de de ISO 9126, más bien deberíamos tomarla como
diseño indican que, para ser aplicadas, el comporta- “analizabilidad” (ing “analasybility”). Sin embargo,
miento del diseño original debe ser fundamentalmen- Fowler (2000) argumenta que el usuario del diseño no
te correcto (Fowler, 2000) (en términos de funcionali- es mismo que el usuario del producto final, que po-
dad y de fiabilidad). Por tanto, si dos diseños respon- dría tratarse del desarrollador que ha de implemen-
den a los mismos requisitos y uno de ellos no se ajusta tarlo, o bien podría ser el mismo diseñador (u otro) en
totalmente a ellos o de manera correcta, no es que sea el futuro cuando se requiera introducir una nueva ca-
“peor” que el otro, es que simplemente es incorrecto o racterística al producto o se deba modificar el diseño
incompleto. por cualquier razón, este último caso ya está com-
• De la misma manera no deberíamos considerar la fia- prendido bajo el atributo “mantenibilidad”, pero el
bilidad como uno de los atributos internos que defi- anterior no y queda en terreno ambiguo.
nen la calidad del diseño, basándonos en el hecho de • La eficiencia, según la ISO 9126, se divide en e las
que esta característica se mide durante la etapa de sub-características “comportamiento temporal” y
pruebas. Sin embargo McCabe (1976) introdujo la mé- “utilización de recursos”, lo cual ha hecho de esta ca-
trica de Complejidad Ciclomática (CC) para predecir racterística un claro objetivo de medición en las fases
el número mínimo de pruebas que son necesarias pa- de pruebas, sin embargo existe una tendencia actual-
ra asegurar un determinado nivel de cobertura y por mente, sobre todo en el sector de las aplicaciones de
ende el número de defectos latentes. Trabajos poste- tiempo real, a medir en fases tempranas de diseño la
riores (Chidamber & Kemerer, 1994) establecieron eficiencia en términos de rendimiento. Este atributo
métricas equivalentes para el software OO y existen sería un buen objetivo a satisfacer en niveles de cali-
estudios (Basili et al., 1996; Briand et al., 2000; Brito e dad altos aunque probablemente no en los más bási-
Abreu & Melo, 1996) que tratan de predecir la fiabili- cos. Mejorar la comprensibilidad de un diseño OO
dad durante la etapa de diseño. Éstos y otros trabajos mediante la aplicación, por ejemplo, de patrones de
1 establecen una relación entre la complejidad, como diseño, introduce indirecciones que suelen penalizar
una propiedad OO, y la densidad de defectos o pro- el rendimiento, así que ambos atributos de calidad
parecen ser incompatibles, sin embargo si un diseño
1 En (Subramanyam & Krishnan, 2003) se puede ver una lista de estos es más comprensible gracias a su descomposición en
trabajos.
4

entidades permite un mejor aislamiento e identifica- tendemos convertir en nuestras métricas. En muchos de los
ción de aquellos “puntos calientes” donde tienden a conjuntos de métricas OO publicados se utilizan propieda-
acumularse los problemas de rendimiento (Fowler, des como cohesión, acoplamiento, encapsulamiento, com-
2000). plejidad y herencia que, sin ser todas específicas del diseño
• La mantenibilidad es objetivo indiscutible de la OO, son lo suficientemente concretas y además se pueden
mayoría del conocimiento OO sobre mejora del di- relacionar matemáticamente con los atributos generales de
seño, esto se deduce del hecho, entre otros, de que la diseño. Se han propuesto distintas medidas para dichas
mayor parte del esfuerzo de diseño en el paradigma propiedades e incluso las relaciones con los atributos gene-
OO se centra alrededor de conceptos como ocultación, rales de calidad de diseño, como en el caso de (Bansiya &
encapsulación y abstracción de datos lo cual mejora la Davis, 2002) donde a cada atributo de diseño le correspon-
comprensibilidad (analizabilidad) mediante la repre- de una de estas métricas. En (Miller et al., 1999) se eligieron
sentación de conceptos del dominio, separación de 11 propiedades, de hecho se trata de principios de diseño
componentes en unidades verificables (“testeables”), OO en el sentido de elemento de conocimiento OO de
etc. (Garzás & Piattini, 2005); y se utilizaron 5 medidas aplica-
• La portabilidad parece a todas luces completamente das a clases para medir el grado de satisfacción de dichas
fuera del alcance de la etapa de diseño, como atributo propiedades. En (Bansiya & Davis, 2002), sin embargo, las
mensurable de calidad, dado que el diseño debe medidas se hacen tanto sobre atributos de clase, como mé-
mantenerse conceptualmente separado del entorno de todos y paquetes.
implementación final; aún no siendo ésto más que Para que se entienda de qué tipo de propiedades OO es-
una generalización muy discutible tampoco hemos tamos hablando exponemos una lista no exhaustiva pero lo
encontrado suficiente evidencia como para apoyar suficientemente ilustrativa:
que este atributo o característica es importante, desde 1) Tamaño del diseño
el punto de vista de la calidad, durante etapas 2) Jerarquías (de clases)
tempranas de diseño. Aún en el caso de que se 3) Abstracción
considere que un diseño ha de tener en cuenta el 4) Encapsulamiento
entorno final de ejecución todo lo más se puede 5) Acoplamiento
considerar como un requisito más y por tanto se 6) Cohesión
cumplirá o no, pero no se cumple “mejor o peor”. 7) Composición
Bansiya y Davis (2002) utilizan un conjunto de seis 8) Herencia
características o atributos mensurables de calidad de 9) Polimorfismo
diseño, cuatro de ellos tomados directamente de ISO 9126, 10) Comunicación inter clases (ing. “Messaging”)
otros dos adaptados con otro nombre y otros dos no se 11) Complejidad
encuentran en dicha norma y los toman de conceptos Como ya se ha sugerido, estas propiedades se miden en
generales de diseño software presentes en la literatura. components o entidades del diseño (veáse Fig. 1) que habrá
Hasta ahora hemos hablado de atributos de calidad ge- que definir. Purao y Vaishnavi (2003) revisan las métricas
nerales para el diseño software pero no hemos particulari- de producto de sistemas OO y proponen un modelo de tra-
zado para el diseño OO ni tampoco hemos hablado de có- bajo y un formalismo , de acuerdo al cual, el producto pasa
mo observar o medir los niveles en que se satisfacen dichos por distintos “estados” durante el proceso de desarrollo y
atributos, éstos son conceptos abstractos no observables en cada uno de ellos se producen o modifican distintos
directamente en el diseño, al menos no de una manera componentes que llaman “entidades”. Estos autores revisa-
cuantificable. Como observan Fenton y Pfleeger (1994) de- ron las familias de métricas presentes en la literatura con el
bemos encontrar propiedades del objeto de estudio, el dise- fin de recopilar el conjunto de entidades mensurables en
ño en este caso, directamente observables y mensurables y cada uno de esos estados; ofrecemos en la TABLA I aque-
que tengan una relación conocida con los atributos que pre- llas entidades recopiladas para el “estado” de diseño.
JUAN JOSÉ OLMEDILLA ARREGUI.: REVISIÓN SISTEMÁTICA DE MÉTRICAS DE DISEÑO ORIENTADO A OBJETOS 5

Entidad Atributo
2.2 Métricas de Orientación a Objetos
Asociación Tamaño
Hasta ahora hemos hablado de nuestro objetivo, revi-
Atributo Posición
sar métricas OO propias del diseño, hemos situado par-
Clase Abstracción
te del dominio del problema explicando qué se entiende
Comportamiento
en este contexto por calidad y dónde se debería medir.
Comentarios
Antes de entrar en el método de trabajo y los hallazgos
Esfuerzo debemos ofrecer una visión retrospectiva e histórica de
Interacción lo que son las métricas OO en general.
Interfaz Para obtener una lista más exhaustivas de métricas se
Rendimiento
pueden consultar (Briand et al., 2000; Purao & Vaishna-
vi, 2003). Podemos adelantar que en su mayoría las mé-
Posición
tricas OO de diseño no son tales, aunque digan serlo, ya
Reutilización que necesitan el código fuente resultante del diseño pa-
Tamaño ra poderse aplicar. Otra conclusión importante que se
Estructura saca de este rápido análisis es que estas “suites” se cen-
tran en conjuntos bastante restringidos de propiedades
Jerarquía Estructura
OO, fundamentalmente, acoplamiento, cohesión, y
Enlace Cardinalidad herencia. Las primeras métricas OO, como se puede ver,
Método Abstracción tampoco estaban orientadas a objetivos específicos de
Esfuerzo calidad.
Interacción
2.2.1 La familia de métricas de Chidamber y
Interfaz Kemerer
Rendimiento
Posición
Reutilización
Tamaño
Estructura
Paquete Abstracción
Interacción
Tamaño
Estructura
Parametro Tamaño
Escenario Tamaño
Sistema Comportamiento
Cambio
Comentarios
Dinámica
Esfuerzo
Interfaz
Rendimiento
Requisitos
Reutilización
Tamaño
Estructura
Caso de uso Interfaz
Tamaño
Estructura

TABLA I: Entidades de diseño mensurables y sus atribu-


tos
6

Métrica Definición Propiedades

Weighted methods per class Complejidad


(WMC)
Considérese una clase C1 con los métodos M 1 , M 2 ,..., M n . Sea
c1 , c 2 ,..., c n la complejidad estática de los métodos. Entonces:
WMC = ∑i =1 ci
n
La complejidad estática se puede medir de mu-
chas maneras, siendo una de ellas CC(McCabe, 1976).
La métrica DIT de una clase A es su profundidad en el árbol de heren- Herencia
Depth of Inheritance tree (DIT) cia. Si A se encuentra en situación de herencia multiple la longitude
maxima hasta la raíz sera el DIT.
NOC de una clase es el número de subclases inmediatamente subordi- Herencia
Number of children (NOC)
nadas a una clase en la jerarquía.
Coupling between object classes CBO de una clase es el número de clases con las que está acoplada. Una Acoplamiento
(CBO) clase está acoplada a otra si utiliza sus métoods o variables de instancia,
excluyendo acoplamiento por herencia.
Response for a class (RFC) Comunicación
RFC = RS donde RS es el conjunto respuesta de la clase, dado

que RS = {M } Uall i {Ri } donde {Ri } = conjunto de los méto-


dos invocados por el método i y {M } es el conjunto de todos los
métodos de la clase. El conjunto respuesta de una clase es el conjunto
de métodos que se pueden ejecutar como respuesta a un mensaje reci-
bido por un objeto de la clase.
Considérese una clase C i con n métodos M 1 , M 2 ,..., M n . Sea
{ }
Lack of cohesion in methods Cohesión
(LCOM) I j el conjunto de variables de instancia usados por el método M i .
{ } { }
{( } {( }
n de conjuntos I 1 ,..., I n .
) )
Existen esos
Sea P = I i , I j I i I I j = Ø y Q = I i , I j I i I I j ≠ Ø .
Si todos los n conjuntos { } { }
I 1 ,..., I n son Ø entonces sea
P = Ø . LCOM = P − Q , si P > Q ó 0 en otro caso.
TABLA II: Métricas de C&K
S.R. Chidamber y C.F. Kemerer (C&K) fueron los primeros mismas. Se trata por un lado de un intento de adaptar las
(1991) en establecer un conjunto de 6 métricas de productos métricas ya en uso en el mundo estructurado (Halstead,
específica para código OO; todas menos uno se aplicaban a 1977; McCabe, 1976), cuyo uso está más bien orientado a la
las clases y trataban de medir la complejidad, acoplamien- productividad y el cálculo de coberturas de pruebas que a
to, cohesión, herencia y comunicación inter-clases. Pode- la calidad, y por otro lado de incorporar los, por aquel en-
mos ver en la TABLA II la definición de dichas métricas y la tonces, incipientes principios básicos del diseño orientado a
propiedad OO con la que se relacionan. Obviamente hay objetos (Meyer, 1988).
una relación directa entre cada una de las métricas y la
propiedad OO correspondiente, aunque en el caso de la 2.2.2 Métricas de Li y Henry
herencia existan dos métricas asociadas a ella. Por otro lado A partir de las métricas de C&K se van proponiendo modi-
no se establece ningún método de evaluación de calidad de ficaciones y ampliaciones sobre ellas, éste es el caso de Li y
producto ni se relacionan explícitamente los atributos de Henry (1993) que proponen varias modificaciones y añaden
calidad con las propiedades OO, de manera intuitivas, eso cuatro nuevas métricas. La modificación más resaltable es
sí, se sabe que el control de dichas propiedades ayuda, de la que se hace sobre la LCOM, que otros autores volverán a
manera general, a mejorar el diseño o el producto final o discutir (Henderson-Sellers et al., 1996), ya que se considera
que un buen sistema OO debe maximizar el uso de las que la definición original es ambigua y permite que dos

Métrica Definición Propiedades

Message passing coupling (MPC) MPC= número de métodos invocados en un clase. Acoplamiento/Comuni
cación
Data abstraction coupling (DAC) El número de atributos en una clase que tienen como tipo otra clase. Acoplamiento/Abstracc
ión
SIZE1 Es una variación de la tradicional LOC (Lineas de Código) definida Tamaño del diseño
específicamente para el lenguaje Ada. Obviamos la definición
SIZE2 SIZE2 = número de atributos + número de métodos locales. Tamaño del diseño

TABLA III: Métricas de Li y Henry


JUAN JOSÉ OLMEDILLA ARREGUI.: REVISIÓN SISTEMÁTICA DE MÉTRICAS DE DISEÑO ORIENTADO A OBJETOS 7

Métrica Definición Propiedades

Design size of classes (DSC) Número total de clases en el diseño Tamaño del diseño
Number of Hierarchies (NOH) Número de jerarquías de clases Jerarquías
Average number of ancestors Número medio de ancestros Abstracción
(ANA)
Data access Metric (DAM) Relación entre el número de atributos privados (protegidos) y el núme- Encapsulamiento
ro total de atributos de la clase.
Direct class coupling (DCC) Número de clases diferents con las que una clase está relacionada. Esta Acoplamiento
métrica incluye clases que están relacionadas directamente mediante la
declaración de atributos y el paso de parámetros de los métodos.
Cohesion among methods of class Esta métrica calcula la relación entre métodos de una clase basándose Cohesión
(CAM) en la lista de parámetros de los métodos. Se calcula utilizando la suma
de la intersección de parámetros de un método con el conjunto máximo
independiente de todos los tipos de parámetros de la clase.
Measure of aggregation (MOA) Mide la extension de la relación parte/todo, mediante el uso de atribu- Composición
tos. Es el número de declaraciones de variables cuyo tipo es definido
por el usuario.
Measure of functional abstraction Relación del número de métodos heredados por una clase y el número Herencia
(MFA) total de métodos accesibles por un método miembro.
Number of polymorphic methods Número de métodos que pueden mostrar comportamiento polimórfico Polimorfismo
(NPM) (virtual en C++ y no final en Java)
Class interface size (CIS) Número de métodos públicos en una clase Comunicación
Number of methods (NOM) Número de métodos definidos en una clase Complejidad

TABLA IV: Métricas de Bansiya y Davis


clases con distintos grados de cohesión real obtengan idén- queda, criterios de inclusión y exclusión, la forma de
ticos valores de LCOM. Por otra parte esta nueva suite de recogida de dato y los criterios de extracción (valida-
métricas tiene un objetivo claro, que es la medición y mejo- ción y criterios de calidad de los datos). Este protoco-
ra de la mantenibilidad del software OO, y para ello se lo se debe refinar tras las primeras búsquedas ya que
añaden la abstracción y el tamaño de diseño (aunque una normalmente los propios datos obtenidos van dando
de las dos métricas propuestas para él se basa en las líneas indicaciones sobre ajustes que deben realizarse, sobre
de código). Se da pues un cierto avance conceptual al in- todo en la forma de recogida de datos o los criterios
cluir de manera explícita un atributo de calidad de software de exclusión.
como objetivo de las métricas. En la TABLA III se pueden • Se ejecutan propiamente las búsquedas y se recogen
ver la modificación de LCOM y las cuatro nuevas métricas los datos.
propuestas por Li y Henry. • En la etapa de extracción de datos se validan los datos
y se clasifican según su “calidad” con lo que final-
2.2.3 Métricas de Henderson-Sellers mente se obtienen resultados y conclusiones.
Henderson-Sellers, Constantine y Graham (1996) ofrecieron • Finalmente se recogen los resultados en formatos de
su propia familia de métricas donde la mayoría estaban tablas u otros y se elabora un informe documental
relacionadas con el acoplamiento y la cohesión, solamente que es el objetivo final de la revisión. Kitchenham
la “profundidad media de herencia de una clase” o AID propone un formato de documento de revisión que,
(ing. Average Inheritance Depth) se relacionaba con la fundamentalmente, es el que se ha seguido en este
herencia. Esta medida tomaba el valor 0 si la clase no tenía trabajo. En dicho documento es importante documen-
antecesores y la media de los valores de AID de sus antece- tar los antecedentes y objetivos, el protocolo seguido a
sores más uno en otro caso. alto nivel, incluyendo las cuestiones de investigación
y los criterios de exclusión, así como los resultados fi-
3 METODOLOGÍA Y RESULTADOS nales en forma resumida, preferentemente de la ma-
nera más visual posible, tablas o gráficos.
3.1 Procedimiento de revision sistemática En las siguientes secciones recogemos el protocolo seguido,
aunque no con todo el detalle de todas las consultas realizadas
Para nuestro studio hemos seguido el procedimiento de
en las distintas fuentes, pues sería tedioso. Se eligió recoger los
revisión sistemática de la literatura especializada de Kit-
datos de las búsquedas en una base de datos diseñada “ad
chenham (2004). En dicho procedimiento se establecen una
hoc” con campo específicos donde tras la lectura inicial de los
serie de pasos a seguir que son:
resumenes (ing abstracts) o de los trabajos completos (si nos e
• Establecimiento del objetivo de revisión mediante
descataban directamente por los resumenes) se recogían dis-
“preguntas de la investigación” (ing. research ques-
tintos elementos como eran los criterios de calidad, que más
tions).
adelante veremos. Los trabajos que pasaron los criterios bási-
• Establecimiento de un protocolo de revisión donde se
cos de selección fueron recogidos en formato electrónico
establezcan las fuentes a utilizar, los patrones de bús-
(PDF). Se utilizó la herramienta Access para la base de datos
8

“ad hoc” y BibTeX y EndNote para la gestión bibliográfica. cubrir el máximo posible de publicaciones periódicas y ac-
tas de congresos relacionados con métricas, calidad de
3.2 Preguntas de la revision sistemática software, conocimiento OO y mantenimiento de software.
El objetivo primordial de esta revisión sistemática es dilu- Por tanto se eligieron dos portales agregadores de literatura
cidar qué métricas OO existen actualemente para medir la especializada y tres revistas específicas no incluidas en
calidad de un diseño previamente a su implementación, o ellas:
más bien, sin que se tengan que aplicar a él. Nos interesan • IEEE Digital Library
aquellas métricas que nos puedan servir para medir la cali- • ACM Digital Library
dad de los diseños independientemente de que hayan sido • Journal of Systems and Software, ed. Elsevier.
implementados o no, pero siempre con la idea de hacer una • Journal of Software Maintenance and Evolution, ed.
valoración exclusivamente en base al diseño. Nos interesa Wiley.
que la medición nos arroje resultados significativos en fun- • Software Practice and Experience, ed. Wiley.
ción de determinados atributos de calidad, en concreto, los Nuestra estrategia de búsqueda consistió en elaborar distin-
que establece la norma ISO 9126 o similares (extrapolables a tas consultas mediante expresiones booleanas formadas por
dicha norma). los siguientes términos (en inglés):
El objetivo futuro, a desarrollar en posteriores trabajos, • Object Oriented design
es el desarrollo de algún tipo de metodología o incluso • Metrics
herramienta que permita mejorar sistemáticamente los di- • Quality
seños hasta alcanzar un nivel preestablecido en función de • High level indicators
valores asignados a los atributos de calidad. Por tanto nos • Assessment
interesa saber también qué atributos o indicadores de cali- • Method
dad son los más utilizados en dichas métricas. • Patterns
Para acotar claramente nuestro campo de acción utiliza- • Heuristics
remos el término “diseño de micro-arquitectura” tal como • Bad smells
se entiende en el SWEBOK (Abran et al., 2004), que no lo • Principles
define explícitamente, pero sí diferencia entre patrones de • Rules
diseño micro y macro arquitectónicos. Por tanto nos referi- • Refactorings
remos a los objetos y las clases, su estructura y relación en- • Lessons learned
tre ellos pero no aspectos internos de sus métodos, más • Best practices
relacionados con la implementación. Algunos de los términos fueron desglosados en expresiones
Formulamos, pues, la cuestión inicial de investigación de booleanas de tipo “o” formadas por todos sus sinónimos, co-
la siguiente manera: mo por ejemplo “assess”, “assessing”, “evaluation” y “evalua-
Pregunta 1: ¿Existen métricas Orientadas a Objetos, basadas te”. Mediante la correcta manipulación de las leyes del algebra
únicamente en entidades de diseño, para la evaluación de calidad de Boole se consiguió una única expresión booleana con todos
mediante atributos internos de producto (tipo ISO 9126)? los términos y sus sinónimos, sin embargo, debido a la particu-
Por supuesto dichas métricas deben relacionarse cuanti- laridades sintácticas de cada buscador se tuvieron que hacer
tativamente con los atributos de calidad, bien directamente versiones para cada uno de ellos y, en algún caso, se tuvieron,
o bien mediante elementos intermedios como, por ejemplo, incluso, que eliminar términos para ampliar la búsqueda y
las propiedades OO. después eliminar manualmente estudios que no estaban rela-
La otra cuestión que nos importa puede formularse co- cionados con nuestro objetivo; esto fue así ya que en esos casos
mo: específicos la búsqueda inicial daba resultados muy escasos.
Pregunta 2: ¿Se miden las propiedades OO tradicionales (an- Siguiendo el procedimiento especificado por Kitchenham
tes mencionadas) o bien se utiliza nuevos elementos de conoci- se eliminaron repeticiones de estudios tanto de publicaciones
miento tales como los clasificados en (Garzás & Piattini, 2005)? en distintas búsquedas como de publicaciones distintas pero
Es importante, para posteriores trabajos, saber si elemen- que se referían al mismo trabajo de campo, siempre quedán-
tos tales como los patrones han sido aplicados a un diseño y donos con la más reciente.
cómo ésto ha impactado en el nivel medido de calidad. Si Tras los descartes por repetición quedaron 481 trabajosso-
las métricas fueran capaces de medir sobre la presencia de bre los cuales se realizó una primera revisión rápida sobre los
dichos elementos podríamos, en un futuro, llegar a crear resumenes y se descartaron todos aquellos que no se referían
una especie de “guía de aplicación de transformaciones de a métricas OO (en general). En una segunda revisión se des-
diseño” para la mejora del mismo. cartaron los trabajos de acuerdo a los criterios de exclusión.
Tanto en la primera como la segunda revisión se registraron
3.3 Método
en la base de datos las razones del descarte.
Todas las fuentes elegidas fueron digitales y se pretendía
JUAN JOSÉ OLMEDILLA ARREGUI.: REVISIÓN SISTEMÁTICA DE MÉTRICAS DE DISEÑO ORIENTADO A OBJETOS 9

Level Name Description

1 Ensayo aleatorio Evidencia obtenida de al menos un ensayo aleatorio controlado bien dise-
ñado.
2 Ensayo pseudo-aleatoriol Evidencia obtenida de al menos un ensayo pseudos-aleatorio controlado
bien diseñado.
3 Estudio concurrente de cohorte Evidencia obtenida de estudios comparativos con control concurrente y
(grupo de voluntarios) asignación no aleatoria, estudios de cohorte, estudio controlado de un caso
o series interrumpidas en el tiempo con un grupo de control.
4 Control histórico Evidencia obtenida de estudios comparativos con control histórico, dos o
más estudios de una sola rama, o series interrumpidas en el tiempo sin un
grupo de control paralelo.
5 Experimento aleatorio Evidencia obtenida de un experimento aleatorio ejecutado en un entorno
artificial.
6 Serie de casos Evidencia obtenida de una serie de casos, bien post-tes o pre-test.
7 Experimento pseudo-aleatorio Evidencia obtenida de un experimento pseudos-aleatorio ejecutado en un
entorno artificial.
8 Opinión de experto Evidencia obtenida de la opinion experta basada en la teoría o el consenso.

TABLA V: Niveles de calidad para las fuentes primarias

Número de Estudios Aceptados


Total Aceptados Descartados Modelos completos Diseño exclusivamente Intersección

481 23 458 4 9 2

TABLA VI: Resumen de los datos recogidos

Los trabajos no descartados, o “fuentes primarias”, fueron tudio en cuestión realmente se refiera a un método de eva-
registradas en la base de datos con un pequeño resumen y su luación o unas métricas aplicables a las entidades de dise-
nivel de calidad de acuerdo a los niveles que establecimos ño. Esto significa que el estudio habla de aplicar el método
(véase TABLA V) según el grado de experimentalidad. a documentos de diseño o diagramas UML (cualquiera de
Dado que todos los trabajos estaban por debajo del nivel 3, ellos) o bien se está aplicando al código pero se podría
decidimos no utilizar la calidad experimental como otro crite- hacer una extrapolación al diseño; esto último quiere decir
rio de exclusión y todos los trabajos que habían llegado hasta que las métricas aplicadas podrían, de alguna manera, cal-
este punto fueron tenidos en cuenta. cularse sólo con entidades de diseño, como por ejemplo las
distintas métricas de jerarquías o profundidad de herencia.
3.4 Criterios de exclusión En algún caso se ha marcado este valor com falso porque, si
El criterios de exclusión elegidos fueron: bien casi todas las métricas podrían hacerse sobre diseño, el
Criterio de Exclusión 1: El estudio no está centrado en mé- estudio lo hacía sobre código y además se incluía una mé-
tricas para la mejora del diseño, por ser demasiado generales in- trica imposible de aplicar a entidades de diseño como SI-
cluyendo, por ejemplo, mediciones de productividad o de asegu- ZE1 o LCOM.
ramiento de calidad. En la TABLA VI se puede observar el resumen del nú-
Criterio de Exclusión 2: El estudio no propone un modelo de mero de fuentes primarias, modelos completos, fuentes
evaluación con atributos de calidad como objetivo de las métricas. primarias cuyo método o métricas pueden aplicarse al di-
seño exclusivamente y el número de fuentes primarias que
3.5 Recogida y extracción de datos
son completas y de diseño exclusivamente.
Un objetivo indirecto del estudio es la recogida de los atri- En la TABLA VI podemos observar los atributos de cali-
butos de calidad usados como indicadores de calidad de dad que aparecen en los estudios primarios, con las deno-
diseño, así que se recogieron dichos atributos para todos los minaciones con que aparecen originalmente, en algún caso
estudios que pasaron los criterios de exclusión. Por cada hemos simplificado y lo hemos asimilado al nombre que
uno de los estudios se estableció un indicador booleano aparece en otros estudios y cuya semántica es la mimsa, sin
(Si/No) para registrar si el trabajo en cuestión proponía un embargo hemos mantenido todos los nombres originales
modelo de evaluación completo y cuantificado desde las aunque ello implica la aparición de sinónimos como anali-
métricas propuestas hasta los atributos de calidad, pasando zabilidad, inteligibilidad2 y comprensibilidad. Ha de tener-
(en su caso) a través de las propiedades OO elegidas. Aun- se en cuenta que en todo momento nos referimos a atribu-
que todas las fuentes primarias proponían de alguna mane-
ra métodos de evaluación de calidad de diseño OO, sola-
mente 4 de ellos realmente proponían un modelo completo 2 Hemos traducido “comprehensibility” por inteligibilidad y “understan-

cuantificado, los hemos denominado “modelos completos”. dability” por comprensibilidad cuando debiera ser al revés, sin embargo ha
sido necesario para mantener la coherencia con la traducción más extendida
Por otra parte también registramos el hecho de que el es- de “understandiblity” en la literatura de Ingeniería del Software española
10

Modelo Estudios aplica-


Indicador3 Fuentes primarias
Completo dos a diseño sólo
Adaptability 0 0 1
Analysability 1 0 1
Change proneness 0 0 0
Changeability 1 1 2
Completeness 0 2 2
Complexity 0 0 3
Comprehensibility 1 1 1
Consistency 0 2 2
Correctness 0 2 2
Effectiveness 1 1 1
Efficiency 0 0 0
Extensibility 1 1 4
Flexibility 1 1 1
Functionality 1 1 1
Maintainability 1 4 10
Performance 1 1 2
Realizability 0 1 1
Reliability 0 0 4
Reusability 2 2 5
Security 0 0 1
Stability 1 0 1
Testability 1 3 5
Traceability 0 1 1
Unambiguity 0 1 1
Understandability 1 2 4
Usability 0 0 1
Verifiability 0 0 0
TABLA VII: Indicadores de calidad de alto nivel recogidos
tos de calidad aplicados al diseño, por tanto la comprensibi- menos importantes que la mantenibilidad. Por otra, se ha
lidad debe ser entendida como la capacidad que tiene un observado que muchos estudios tratan de predecir y dis-
diseño de ser entendido por un desarrollador distinto a su munir los defectos tan pronto como sea posible en el ciclo
autor y no como la sub-caracerística de usabilidad de la ISO de vida, es decir, en la etapa de diseño. Una posible inter-
9126. pretación es que los métodos de evaluación de la calidad no
se interpretan como sustitución del Aseguramiento de la
3.6 Resultados Calidad y tratan de establecer un medio de medida y com-
A la vista de los resultados podemos afirmar que menos de paración de diseños distintos semánticament equivalentes,
la mitad de los estudios que tratan de establecer alguna o sea, construidos en base a los mismos requisitos y válidos
manera de evaluar la calidad de un diseño OO se basan en funcionalmente.
analizar únicamente entidades de diseño. De las 23 fuentes Dado el escaso número de estudios relevantes no se ha
primarias 14 se basan en el análisis del código fuente. considerado necesario realizar un análisis estadístico de los
Por otra parte, podemos observar que, viendo la TABLA datos obtenidos. Solamente 2 estudios presentan todas las
VII, para los llamados “modelos completos”, la mantenibi- características buscadas, estar basados en las entidades de
lidad, contando sus sub-características es el indicador más diseño y constituir un método de evaluación completo.A
recurrente con un total de 8 apariciones. La mantenibilidad continuación realizaremos una crítica de los dos estudios de
se compone de analizabilidad, cambiabilidad, estabilidad y nuestro interés. La TABLA VIII muestra el uso que hacen
testabilidad, y como ya hemos dicho, analizabilidad, inteli- dichos modelos de algunos elementos de conocimiento OO.
gibilidad y comprensibilidad son sinónimos, y lo mismo
puede decirse de la cambiabilidad, flexibilidad y extensibi- 3.6.1 El modelo QMOOD de Bansiya y Davis
lidad. Otro fasctor importante observado es la reusabilidad. Bansiya y Davis (2002) presentan un modelo para la eva-
Aparentemente cuando se trata de establecer un método luación de atributos de calidad de alto nivel en diseño
de evaluación de la calidad, la fiabilidad, la tendencia a los orientado a objetos llamado Quality Model for Object-
defectos y la validez funcional y consistencia son bastante Oriented Design (QMOOD). Se descompone en cuatro nive-
les: componentes de diseño OO (L4), métricas OO (L3), pro-
piedades de diseño OO (L2) y finalmente atributos de cali-
3 Incluimos aquí los nombres en inglés tal como aparecen en los estudios-

para evitar confusiones en la traducción.


dad de diseño (L1). Establece también enlaces entre niveles
JUAN JOSÉ OLMEDILLA ARREGUI.: REVISIÓN SISTEMÁTICA DE MÉTRICAS DE DISEÑO ORIENTADO A OBJETOS 11

Principios Patrones Heuristicas Malos Olores

Bansiya & Davis No No No No


Barber & Graser No Indirectamente Sí No
Marinescu & Ratiu (2004) No Parcialmente No Sí
Miller, Hsia & Kung Sí No No No

TABLA VIII: Uso de elementos de conocimiento OO en los cuatro modelos completos


adyacentes, L31 (del 1 al 3), L23 (del 3 al 2) y L12 (del 2 al ductos.
1). Este modelo sigue una filosofía muy parecida a la expli- Como en el caso anterior existen correspondencias que
cada en el apartado 2.1 y utiliza parcialmente los atributos guían los cálculos desde las métricas propiamente dichas
de la norma ISO 9126: reusabilidad, flexibilidad, compren- hasta los atributos de calidad, pero en este caso las propie-
sibilidad, funcionalidad, extensibilidad y efectividad. dades intermedias no son las usuales sino que se utilizan
En cada uno de los enlaces Bansiya y Davis identifican elementos de conocimiento OO: heurísticas y estrategias (en-
relaciones explícitas entre componentes de ambos niveles, tendidas como refactorizaciones y transformaciones del
para el L23 la correspondencia es uno a uno entre las métri- diseño que guían la aplicación de las herísticas). De esta
cas y las propiedades OO (tamaño de diseño, jerarquías, manera Barber y Graser incorporan el conocimiento OO no
cohesión, abstracción, encapsulamiento, acoplamiento, co- como un objetivo a alcanzar, como ocurre en (Miller et al.,
hesión, composición, herencia, polimorfismo, comunicación 1999), sino como una herramienta para incrementar el valor
inter clases y complejidad), y en L12 la correspondencia es de los atributos de calidad. Los atributos de calidad elegi-
incluso más explícita porque cada atributo de calidad es el dos por el diseñador y sus pesos asociados son objetivos de
resultado de la suma de cada una de las métricas obtenidas calidad; las métricas calculan el grado de cumplimiento de
multiplicada por su peso, como, por ejemplo, la reusabili- las heurísticas que se utilizan para calcular si se han alcan-
dad que es igual a -0.25*Acoplamiento +0.25*Cohesión zado los objetivos. La herramienta utiliza estrategias para
+0.5*comunicación +0.5Tamaño del diseño. ayudar al diseñador a cambiar los diseños (sugiriendo una
Los pesos pueden ser negativos o positivos y se han sido determinada transformación) para incrementar el grado de
calculados de manera intuitiva, de hecho, los autores in- cumplimiento de las heurísticas. El orden en que se sugie-
forman de que los pesos se pueden variar para ajustarse a ren las transformaciones viene determinado por los objeti-
los objetivos perseguidos por la organización que haga uso vos.
del modelo. Por otro lado, la importancia relativa de cada Por desgracia el artículo habla de una herramienta en
atributo de calidad queda a merced del diseñador con lo construcción y en nuestras búsquedas no hemos vuelto a
que éste podrá establecer qué tipo de calidad busca. encontrar ninguna mención al respecto. En el artículo no se
No se utiliza ningún tipo de elemento de conocimiento ofrecen medidas cuantitativas acerca de los cálculos de ca-
orientado a objetos con lo que, a nuestro entender, se pierde da heurística ni se listan las heurísticas y estrategias utiliza-
la oportunidad de utilizar información calidad de diseño das, por lo que este estudio queda incompleto.
recopilada colectivamente en los últimos 20 años.

3.6.2 El modelo RARE de Barer y Graser: 4 CONCLUSIONES


El modelo de Barber y Graser (2000) no es un método de Podemos concluir que ya existen trabajos en la literatura
evaluación sino más bien una herramienta para crear mode- que han establecido métricas específicas basadas en el dise-
los de evaluación mediante la especificación de los atribu- ño, como por ejemplo (Genero et al., 2001; Kiewkanya et al.,
tos de calidad que son objetivo del usuario, automatiza lo 2004) que establecen un conjunto de métricas sobre dia-
que Bansiya y Davis dejaban a merced del diseñador, o sea, gramas UML (de clases y secuencias). Sin embargo pocos
la importancia relativa de los atributos y los pesos de otros establecen un método completo de evaluación de calidad
elementos o propiedades. La herramienta se denomina del diseño (los dos anteriores, por ejemplo, se centran ex-
RARE (Referente Architecture Representation Environ- clusivamente en la mantenibilidad).
ment). Los autores afirman que los atributos de calidad Una conclusión importante es que la mantenibilidad es
impactan mutuamente y por tanto no es posible maximizar- el indicador de calidad más utilizado, lo cual es lógico da-
los todos al mismo tiempo, por lo que el diseñador debe do que la Orientación a Objetos se considera un paradigma
resolver los conflictos que surjan. Es decir, no es lo mismo que favorece la flexibilidad y la reutilización. Otros indica-
la calidad que se busca para el diseño de un sistema en dores de calidad como la eficiencia o la portabilidad no es-
tiempo real que para uno orientado a la interactividad tán presentes en los modelos completos, lo que puede de-
humana pero del que preveemos una alto nivel de cambios, berse a que los estudios están sesgados por no considerarse
los atributos a optimizar serán distintos, en uno se primará diferentes dominios de aplicación.
el rendimiento y en el otro la flexibilidad, que, en principio, Sólo cuatro estudios establecen un modelo completo de
suelen tener una relación inversa. Cada dominio de aplica- evaluación de calidad del diseño de manera cuantitativa y
ción buscará un nivel de calidad distinto, algo así como lo de ello sólo dos se pueden aplicar exclusivamente a entida-
que ocurre en el proceso software de una organización des de diseño.
donde buscaremos el nivel CMM 2 si la orientación es a En una futura investigación se perfilan ya dos objetivos
proyectos o el nivel 3 ó 4 si el objetivo es desarrollar pro- fundamentales, por un lado el establecimiento de jerarquías
12

entre atributos de calidad, quizás en conjuntos basados en sevier.


dominios específicos de aplicación (tiempo real, interactivi- Henderson-Sellers, B., Constantine, L. L., & Graham, I. M. (1996).
dad, procesamiento masivo de datos, proceso científico, Coupling and cohesion (towards a valid metrics suite for ob-
etc.), y por otro lado una mejor apliación de los elementos ject oriented analysis and design). Object Oriented Systems,
de conocimiento de micro arquitecturas OO mediante el 3, 142-158.
uso de ontologías. Humphrey, W. S. (1989). Managing the software process. Boston, MA,
USA: Addison-Wesley Longman Publishing Co., Inc.
5 BIBLIOGRAFÍA ISO/IEC. (2001). Software engineering -- product quality -- part 1:
Quality model. Geneva, Switzerland: ISO/IEC.
Abran, A., James, W. M., Bourque, P., & Dupuis, R. (2004). Guide to
Kiewkanya, M., Jindasawat, N., & Muenchaisri, P. (2004). A methodol-
the software engineering body of knowledge. 2004 version.
ogy for constructing maintainability model of object-oriented
Swebok: IEEE Press.
design.
Bansiya, J., & Davis, C. G. (2002). A hierarchical model for object-
Kitchenham, B. (2004). Procedures for performing systematic reviews
oriented design quality assessment. Software Engineering,
(Joint Technical Report No. NICTA Technical Report
IEEE Transactions on, 28(1), 4.
0400011T.1): Software Engineering Group, Department of
Barber, K. S., & Graser, T. J. (2000). Tool support for systematic class
Computer Science, Keele University and Empirical Software
identification in object-oriented software architectures.
Engineering National ICT Australia Ltd.
Basili, V. R., Briand, L. C., & Melo, W. L. (1996). A validation of object-
Li, W., & Henry, S. (1993). Maintenance metrics for the object oriented
oriented design metrics as quality indicators. Software Engi-
paradigm. Paper presented at the Software Metrics Sympo-
neering, IEEE Transactions on, 22(10), 751.
sium.
Briand, L. C., Wust, J., Daly, J. W., & Victor Porter, D. (2000). Exploring
Marinescu, R., & Ratiu, D. (2004). Quantifying the quality of object-
the relationships between design measures and software
oriented design: The factor-strategy model.
quality in object-oriented systems. Journal of Systems and
McCabe, T. J. (1976). A software complexity measure. Software Engi-
Software, 51(3), 245.
neering, IEEE Transactions on, 2, 308-320.
Brito e Abreu, F., & Melo, W. (1996). Evaluating the impact of object-
Meyer, B. (1988). Object-oriented software construction (1 ed.): Pren-
oriented design on software quality. Paper presented at the
tice Hall.
Software Metrics Symposium.
Miller, B. K., Hsia, P., & Kung, C. (1999). Object-oriented architecture
Chidamber, S. R., & Kemerer, C. F. (1991). Towards a metrics suite for
measures. Paper presented at the Hawaii International Con-
object oriented design. Paper presented at the OOPSLA '91:
ference on System Sciences.
Conference proceedings on Object-oriented programming
Purao, S., & Vaishnavi, V. (2003). Product metrics for object-oriented
systems, languages, and applications, New York, NY, USA.
systems. ACM Comput. Surv., 35(2), 191--221.
Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object
Software design, part 2. (2004).).
oriented design. Software Engineering, IEEE Transactions
Subramanyam, R., & Krishnan, M. S. (2003). Empirical analysis of ck
on, 20(6), 476.
metrics for object-oriented design complexity: Implications
Deligiannis, I., Shepperd, M., Roumeliotis, M., & Stamelos, I. (2003).
for software defects. Software Engineering, IEEE Transac-
An empirical investigation of an object-oriented design heu-
tions on, 29(4), 297.
ristic for maintainability. Journal of Systems and Software,
65(2), 127.
Dumke, R. R., & Kuhrau, I. (1994). Tool-based quality management in
object-oriented software development. Paper presented at
the Symposium Assessment of Quality Software Develop-
ment Tools.
Fenton, N., Pfleeger, S. L., & Glass, R. L. (1994). Science and sub-
stance: A challenge to software engineers. IEEE Software,
11(4), 86--95.
Fenton, N. E., & Pfleeger, S. L. (1998). Software metrics: A rigorous
and practical approach: PWS Publishing Co.
Fowler, M. (2000). Refactoring: Improving the design of existing code:
Addison-Wesley.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design
patterns: Elements of reusable object-oriented software.
Boston, MA, USA: Addison-Wesley Longman Publishing Co.,
Inc.
Garzás, J., & Piattini, M. (2005). An ontology for microarchitectural
design knowledge. Software, IEEE, 22(2), 28.
Genero, M., Piattini, M., & Jimenez, L. (2001). Empirical validation of
class diagram complexity metrics.
Halstead, M. H. (1977). Elements of software science. New York: El-

You might also like