Professional Documents
Culture Documents
E
N secciones anteriores de este libro, se mencionó que las métricas y mediciones son com-
ponentes clave para cualquier disciplina de ingeniería -y la ingeniería de software orien-
tada a objetos no es una excepción-. Desgraciadamente, el uso de métricas para sistemas
O 0 ha progresado mucho más despacio que'el uso de otros métodos OO. Ed Berard [BER95]
mencionó la ironía de las mediciones, cuando declaraba que:
La gente involucrada en el software parece tener una relación amor-odio con las métricas. Por una par-
te, menosprecian y desconfían de cualquier cosa que parezca o suene a medición. Son rápidos, bastante rápi-
dos para señalar las «imperfecciones», en los argumentos de cualquiera que hable acerca de las mediciones
a los productos de software, procesos de software, y (especialmente) personas involucradas en software.
Por otra parte, esta misma gente parece no tener problemas al identificar qué lenguaje de programación es
el mejor, las estupideces que los administradores hacen para «arruinar» proyectos, y la metodología de tra-
bajo en qué situaciones.
La «relación amor-odio» que Berard declara es real. Más aun, como los sistemas O 0 se
encuentran cada vez más implantados, es esencial que los ingenieros en software posean medi-
ciones cuantitativas, para la evaluación de calidad de diseños, a niveles arquitectónicos y de
componentes.
Estas mediciones permiten al ingeniero evaluar el software al inicio del proceso, haciendo
cambios que reducirán la complejidad y mejorarán la viabilidad, a largo plazo, del producto
final.
¿Qué es? Construir software O 0 ha sido la arquitectura 00,las clases y sub- riores. Los resultados del análisis son
I
una actividad de ingeniería, que confía sistemas que conforman la arquitectu- interpretados para obtener una visión
más en el juicio, folklore y referencias ra, las operaciones y atributos que inherente a la calidad del software, y
cualitativas, que en la evaluación cuan- constituyen una clase. El comprobador los resultados de la interpretación con-
titativa. Las métricas O0 se han intro- necesita las referencias cuantitativas, ducen a la modificación de resultados
ducido para ayudar a un ingeniero del que le ayudarán e n la selección d e de trabajo deducidos del análisis, dise-
software a usar el análisis cuantitativo, casos de prueba y sus objetivos. Las ño, codificación o prueba.
para evaluar la calidad en el diseño métricas técnicas proporcionan una ¿Cuál es el producto obtenido? Las
antes de que un sistema se construya. base desde la cual el análisis, el dise- métricas d e software que se calculan
El enfoque de métricas O 0 está en la ño y la verificación pueden conducirse mediante los datos recolectados de los
clase -la piedra fundamental de la de manera más objetiva, y ser evalua- modelos de análisis y diseño, código
arquitectura 00-, dos más cuantitativamente. fuente y casos de prueba.
¿Quién lo hace? Los ingenieros del soft- ¿Cuáles son los pasos? El primer paso ¿Cómo puedo estar seguro de que
ware se ayudan de las métricas para en el proceso de medición es deducir lo he hecho correctamente?Debe
construir software de mayor calidad. las mediciones de software y métricas establecer los objetivos d e l a s medi-
¿Por qué es importpnte? Como se que pudieran ser apropiadas para la ciones antes de que la recolección de
expuso en el vistazo rápido del Capí- representación del software en consi- datos comience, definiendo cada métri-
tulo 19, la evaluación cualitativa d e deración. Después, se recolectan los c a O0 d e manera concreta. Definir
software debe complementarse con el datos requeridos para aplicar las métri- solamente algunas métricas y después
análisis cuantitativo. Un ingeniero del cas formuladas. Una vez computados, utilizarlas, para obtener una vista inhe-
software necesita un criterio objetivo se analizan basándose en orientacio- rente a la calidad d e un producto d e
para ayudarse a conducir el diseño de nes preestablecidas y en datos ante- ingeniería de software.
421
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRftCTICO
Los objetivos primarios para las métricas orientadas a Cada uno de estos objetivos es importante, pero para
objetos no son diferentes de aquellos de las métricas el ingeniero de software la calidad del producto debe
desarrolladas para el software convencional: ser lo más importante. Pero ¿cómo medir la calidad de
un sistema OO? ¿Qué característicasdel modelo de dise-
para entender mejor la calidad del producto. ño pueden y deben evaluarse para determinar si el sis-
para evaluar la efectividad del proceso. tema será fácil de implementar, fácil de verificar, simple
de modificar y, lo más importante, aceptable para los
para mejorar la calidad del trabajo llevado a Cabo al usuarios finales? Estas preguntas serán contestadas en
nivel del proyecto. la parte restante del capítulo.
Las métricas para cualquier producto de ingeniería son Ya que el software convencional enfatiza la función
reguladas por las características únicas del producto. como un mecanismo de localización, las métricas de '
Por ejemplo, sería inútil o sin sentido contar las millas software se han enfocado a la estructura interna o fun-
por galón de consumo para un automóvil eléctrico. La ciones de complejidad (por ejemplo, longitud del módu-
métrica es firme para los automóviles convencionales lo, cohesión o complejidad ciclomática), o a la manera
(es decir, impulsados por sistemas de combustión inter- como las funciones se conectan entre sí (acoplamiento
na a gasolina) pero no se aplica cuando el modo de pro- de módulos).
pulsión cambia radicalmente. El software orientado a
objetos es fundamentalmente diferente del software
desarrollado con el uso de métodos convencionales. Por Métricos técnicas pam software convencional
esta razón, las métricas para sistemas O 0 deben ser afi- se describen en el Copltulo 19.
nadas a las características que distinguen al software
O 0 del software convencional. Puesto que la clase es la unidad básica de un siste-
Berard [BER95] define cinco características que ma 00, la localización se basa en los objetos. Por esta
regulan las métricas especializadas: Localización, razón, las métricas deben aplicarse a la clase (objeto),
encapsulación, ocultamiento de información, herencia como a una entidad completa. En suma, la relación entre
y técnicas de abstracción de objetos. Cada una de estas operaciones (funciones) y clases no es necesariamente
características se discute brevemente en las secciones uno a uno. Por lo tanto, las métricas que reflejan la mane-
siguientes'. ra en la que las clases colaboran deben ser capaces de
acomodarse a relaciones uno a muchos y muchos a uno.
24.2.2. Encapsulación
Una extensión de búsqueda para métricas O0 la puedes obtener
Berard [BER95] define la encapsulación como el
en: www.objenv.com /tetus / oo-metrics.html «empaquetamiento (o ligamento) de una colección de
elementos. Ejemplos de bajo nivel de encapsulación
[para software convencional] incluyen registros y matri-
24.2.1. Localización ces, [y] subprogramas (por ejemplo, procedimientos,
La localización es una característica del software que funciones, subrutinas y párrafos), son mecanismos de
indica la manera en que la información se concentra en nivel medio para la encapsu1ación.n
un programa. Por ejemplo, los métodos convenciona-
les para la descomposición funcional organizan la infor-
mación en torno a las funciones que son típicamente Los conceptos básicos de diseño se describen
implementadas como módulos procedimentales. Los en el Copltulo 13. Su aplicacibn al software O0
métodos manejados por datos localizan la información se discute en ei Capíiuio 20.
en tomo a estructuras de datos específicas. En el con-
texto 00, la información se concentra por la encapsu- Para los sistemas 00, la encapsulación engloba las
lación de datos y procesos dentro de los límites de una responsabilidades de una clase, incluyendo sus atribu-
clase u objeto. tos (y otras clases para objetos agregados) y operacio-
nes, y los estados de la clase, definidos por valores de una jerarquía de clases. En general, el software con-
atributos específicos. vencional no cumple esta característica.
La encapsulación influye en las métricas, cambian- Ya que la herencia es una característica vital en
do el enfoque de las mediciones de un módulo simple, muchos sistemas 00, muchos métodos O 0 se centran
a un paquete de datos (atributos) y módulos de proce- en ella. Los ejemplos (discutidos más adelante en este
so (operaciones). capítulo) incluyen múltiples hijos (instancias inmedia-
En suma, la encapsulación eleva la medición a un tas de una clase), múltiples padres (generalizaciones
nivel de abstracción más alto. inmediatas), y jerarquías de clase a un nivel de anida-
Por ejemplo, más adelante en este capítulo se intro- miento (profundidad de una clase en la jerarquía de
ducirán las métricas asociadas con el número de opera- herencia).
ciones por clase. Contrasta este nivel de abstracción con
las métricas que se centran en contar condiciones boo- 24.2.5. Abstracción
leanas (complejidad ciclomática) o en contar líneas de
código. La abstracción es un mecanismo que permite al dise-
ñador concentrarse en los detalles esenciales de un com-
ponente de programa (ya sean datos o procesos),
24.2.3. Ocultación de información prestando poca atención a los detalles de bajo nivel.
La ocultación de información suprime (u oculta) los Como Berard declara: «la abstracción es un concepto
detalles operacionales de un componente de programa. relativo. A medida que se mueve a niveles más altos de
Solo se proporciona la información necesaria para acce- abstracción, se ignoran más y más detalles, es decir, se
der al componente a aquellos otros componentes que tiene una visión más general de un concepto o elemen-
deseen acceder. to. A medida que se mueve a niveles de abstracción más
Un sistema O 0 bien diseñado debe implementar bajos, se introducen más detalles, es decir, se tiene una
ocultación de información. Por esta razón, las métricas visión más específica de un concepto o elemento.»
que proporcionan una indicación del grado de oculta- Ya que una clase es una abstracción, que puede visua-
ción logrado suministran un'indicio de la calidad del lizarse a diferentes niveles de detalle de diferentes de
diseño OO. maneras (por ejemplo, como una lista de operaciones,
como una secuencia de estados, como una serie de cola-
boraciones), las métricas O 0 representan abstracciones
24.2.4. Herencia en términos de mediciones de una clase (por ejemplo,
La herencia es un mecanismo que habilita las respon- número de instancias por clase por aplicación, número
sabilidades de un objeto, para propagarse a otros obje- o clases parametrizadas por aplicación, y proporción de
tos. La herencia ocurre a través de todos los niveles de clases parametrizadas con clases no parametrizadas).
Mucho acerca del diseño orientado a objetos es sub- dad. La población se mide haciendo un recuento de las
jetivo -un diseñador experimentado «sabe» como entidades 00,como las clases u operaciones. Las medi-
caracterizar a un sistema 00, para que implemente das de volumen son idénticas a las de población, pero
efectivamente los requerimientos del cliente-. Pero, se realizan dinámicamente - e n un instante de tiempo
cuando un modelo de diseño O 0 crece en tamaño y dado- . La longitud es la medida de una cadena de ele-
complejidad, una visión más objetiva de las caracte- mentos de diseño interconectados (por ejemplo, la pro-
rísticas del diseño puede beneficiar al diseñador expe- fundidad de un árbol de herencia es una medida de
rimentado (que adquiere vista adicional), y al novato longitud). Las métricas defuncionalidad proporcionan
(que obtiene indicadores de calidad que de otra mane- una indicación indirecta del valor entregado al cliente
ra no estarían disponibles). por una aplicación OO.
Complejidad. Así como el tamaño, existen diferen-
¿Qué características pueden tes enfoques de la complejidad del software [ZUS97].
- medirse cuando se evalúa Whitmire la define en términos de características estruc-
un diseño OO? turales, examinando cómo se interrelacionan las clases
Como parte de un tratamiento detallado de las métri- de un diseño O 0 con otras.
cas de software para sistemas 00,Whitmire [WHI97] Acoplamiento. Las conexiones físicas entre los ele-
describe nueve características distintas y medibles de mentos del diseño O 0 (por ejemplo, el número de cola-
un diseño 00: boraciones entre clases o el número de mensajes
Tamano. El tamaño se define en términos de cuatro intercambiados entre objetos), representan el acopla-
enfoques: población, volumen, longitud y funcionali- miento dentro de un sistema OO.
423
INGENIERÍA DEL SOFTWARE. U N E N F O Q U E P R f f C T I C O
Por esta razón, las medidas y métricas para una clase Así mismo, la clase «padre» es de las que heredan las
individual, la jerarquía de clases y las colaboraciones subclases (algunas veces llamadas hijas), sus atributos
de clases poseen un valor incalculable, para el ingenie- y operaciones. La clase, normalmente, colabora con
ro del software que ha de evaluar la calidad del diseño. otras clases. Cada una de estas características pueden
En capítulos anteriores se estudió que la clase encap- usarse como base de la medición2,
sula operaciones (procesamiento) y atributos (datos).
424
CAPfTULO 2 4 M É T R I C A S TÉCNICAS P A R A S I S T E M A S O R I E N T A D O S A OBJETOS
425
iNGENIERfA DEL S O F T W A R E . U N E N F O Q U E PRACTICO
ij
mismos atributos4. Si no existen métodos que accedan
a los mismos atributos, entonces CCM = O.
Para ilustrar el caso en el que CCM es diferente de O,
I /
considérese una clase con 6 métodos. Cuatio de los méto-
dos tienen uno o más atributos en común (es decir, acce-
den a atributos comunes). De esta manera, CCM = 4.
Si CCM es alto, los métodos deben acoplarse a otro,
por medio de los atributos. Esto incrementa la comple-
jidad del diseño de clases. En general, los valores altos
para CCM implican que la clase debe diseñarse mejor
descomponiendo en dos o más clases distintas. Aunque
existan casos en los que un valor alto para CCM es jus-
tificable, es deseable mantener la cohesión alta, es decir,
mantener CCM bajo.
La definición formal es un poco más compleja. Véase [CH194] para Para un tratamiento más completo, véase [LOR94].
más detalle.
426
CAPfTULO 24 MÉTRICAS TÉCNICAS PARA SISTEMAS ORIENTADOS A O B J E T O S
La métrica MPC propuesta por Chidamber y Keme- 24.4.3. La colección de métricas MDOO
rer (Sección 24.4.1) es también una métrica ponderada Harrison, Counseil y Nithi [HAR98] propusieron un
del tamaño de clase. conjunto de métricas para el diseño orientado a objetos
Como se indicó con anterioridad, valores grandes (MDOO), que proporcionan indicadores cuantitativos
para TC indican que la clase debe tener bastante res- para el diseño de características OO. A continuación,
ponsabilidad. Esto reducirá la reutilización de la clase una muestra de métricas MDOO:
y complicará la implementación y las pruebas. En gene-
ral, operaciones y atributos heredados o públicos deben
ser ponderados con mayor importancia, cuando se deter-
mina el tamaño de clase. [LOR94] Operaciones y atri-
butos privados, permiten la especialización y son más
propios del diseño.
También se pueden calcular los promedios para el
número de atributos y operaciones de clase. Cuanto
menor sea el valor promedio para el tamaño, será más
posible que las clases dentro del sistema puedan reuti- Factor de herencia de métodos (FHM). El grado
lizarse. en que la arquitectura de clases de un sistema O 0 hace
uso de la herencia tanto para métodos (operaciones)
Número de operaciones redefinidas para una sub-
clase (NOR). Existen casos en que una subclase reem- como atributos, se define como:
plaza una operación heredada de su superclase por una FHM = ZMi(Ci)l ZMa(Ci)
versión especializada para su propio uso. A esto se le donde el sumatorio va desde i=l hasta TC. TC se defi-
llama redefinición. Los valores grandes para el NOR, ne como el número total de clases en la arquitectura, Ci
generalmente indican un problema de diseño. Tal como es una clase dentro de la arquitectura, y
indican Lorenz y Kidd:
Ma(Ci)= M&) + Mi(Ci)
Dado que una subclase debe ser la especialización de sus
superclases, deben, sobre todo, extender los servicios (opera- donde
ciones) de las superclases. Esto debe resultar en nuevos nom- Ma(Cj)= al número de métodos que pueden ser invo-
bres de métodos únicos.
cados en relación con Ci
Si el NOR es grande, el diseñador ha violado la abs- MdCi) = al número de métodos declarados en la clase
tracción representada por la superclase. Esto provoca
una débil jerarquía de clases y un software 00, que Ci
Mi(Ci)= al número de métodos heredados (y no rede-
puede ser difícil de probar y modificar.
finidos) en Ci
Número de operaciones añadidas por una sub- El valor de FHM (el factor de herencia de atributo,
clase (NOA). Las subclases se especializan añadiendo FHA, se define de manera análoga), proporciona una
operaciones y atributos privados. A medida que el referencia sobre impacto de la herencia en software OO.
valor NOA se incrementa, la subclase se aleja de la
abstracción representada por la superclase. En gene- Factor de acoplamiento (FA). Con anterioridad, en
ral, a medida que la profundidad de la jerarquía de este capítulo se indicó que el acoplamiento es un indi-
clases incrementa (APH se vuelve grande), el valor cador de las conexiones entre los elementos del diseño
para NOA a niveles más bajos en la jerarquía debería OO. La colección de métricas MDOO define el factor
disminuir. de acoplamiento de la siguiente manera:
Índice de especialización (IES). El índice de espe- FA = [Ei? es-cliente (Ci, Cj)/ 1 (TC2- TC)
cialización proporciona una indicación aproximada del donde los sumatorios van desde i = 1 hasta TC y desde
grado de especialización, para cada una de las subcla- j = 1 hasta TC. La función
ses en un sistema OO. La especialización se puede alcan-
zar añadiendo o eliminando operaciones, pero también Es cliente = 1, si existe una relación entre la clase
redefiniendo. cliente, C, y la clase servidora C, y C, f C,.
IE = [NOR x nivel ] 1 Altota, Es-cliente = O, en cualquier otro caso.
427
DEL S O F T W A R E . U N E N F O Q U E PRACTICO
INGENIER~A
Ya que la clase es la unidad dominante en los siste- enviados por una sola operación se incrementan, es má5
mas 00, se han propuesto menos métricas para ope- probable que las responsabilidades no hayan sido correc-
raciones que las relacionadas con las clases. Churcher tamente asignadas dentro de la clase.
y Shepperd [CHU95] discuten lo anterior cuando
declaran que:
los métricas pueden aplicarse a nivel de componentes,
Resultados de estudios recientes indican que los métodos pero también pueden oplicarse a operaciones. Véase el
tienden a ser pequeños, tanto en términos de número de sen-
Capítulo 19 para más detalles.
tencias como en complejidad lógica [WIL93], sugiriendo que
la estructura de conectividddde un sistema debe ser mas impor-
tante que el contenido de los módulos individuales.
De cualquier modo, existen algunas ideas que pue- Complejidad de operación (CO). La complejidad
den llegar a apreciarse, examinando las características de una operación puede ser calculada usando cualquiera
promedio para los métodos (operaciones). A continua- de las métricas de complejidad (Capítulo 19) propues-
ción se resumen tres simples métricas, propuestas por tas para el software convencional [ZUS90]. Ya que las
Lorenz y Kidd [LOR94]: operaciones deben limitarse a una responsabilidad espe-
cífica, el diseñador debería esforzarse por mantener la
Tamaño medio de operación (Tomedio).Aunque
CO tan baja como sea posible.
las líneas de código podrían ser usadas como un indi-
cador para el tamaño de operación, la medida LDC ado- Número de parámetros de media por operación
lece de todos los problemas discutidos en el Capítulo 4. (NPmedia).Tan largo como sea el número de paráme-
Por esta razón, el número de mensajes enviados por la tros de operación, más compleja será la colaboración
operación proporciona una alternativa para el tamaño entre objetos. En general, NPmediadebe mantenerse tan
de operación. A medida que el número de mensajes baja como sea posible.
Las métricas de diseño anotadas en las Secciones 24.4 organizan en categorías, que reflejan características de
y 24.5 proporcionan una indicación de la calidad de diseño importantes.
diseño. También proveen una indicación general de la
Encapsulución
cantidad de esfuerzo de pruebas requerido para probar
un sistema OO. Carencia de cohesión en métodos (CCM)6.Cuanto
Binder [BIN94] sugiere que una amplia gama de más alto sea el valor CCM será necesario probar más
métricas de diseño tienen una influencia directa en la estados para asegurar que los métodos no generan efec-
«comprobabilidad» de un sistema OO. Las métricas se tos colaterales.
428
CAPITULO 2 4 MÉTRICAS TÉCNICAS PARA SISTEMAS O R I E N T A D O S A OBIETOS
PROYECTOS -
s
0
-
0
Como se presentó en la Parte Dos de este libro, el tra- mación del tamaño de implementación del software. El
bajo del jefe de proyecto es planear, coordinar, registrar tamaño es directamente proporcional al esfuerzo y la
y controlar un proyecto de software. En el Capítulo 20 duración. Las siguientes métricas [LOR94] pueden pro-
se presentaron algunos de los aspectos especiales aso- porcionar una visión sobre el tamaño del software:
ciados con la gestión de proyecto para proyectos OO.
Pero ¿qué hay acerca de las métricas'? ¿Existen métri-
cas O 0 especializadas que puedan ser utilizadas por el l a aplicobilidod de un modelo de procesos evolutivos,
jefe de proyecto para proporcionar una visión interna llamado el modelo recusivo/paralelo, se discute en el
adicional sobre el progreso de su proyecto? *. La res- Capítulo 20.
puesta, desde luego es <<sí>>.
La primera actividad ejecutada por el jefe de pro-
Número de escenario (NE). El número de escena-
yecto es planificar, y una de las primeras tareas de pla-
rios o casos uso (Capítulos 11 y 21) es directamente
nificación es la estimación. Retomando el modelo
proporcional al número de clases requeridas para cubrir
evolutivo de procesos, la planificación se vuelve a revi-
los requisitos, el número de estados para cada clase, el
sar después de cada iteración del software. De este
número de métodos, atributos y colaboraciones. El NE
modo, la planificación (y sus estimaciones de proyec-
es un importante indicador del tamaño de un programa.
to) es revisada nuevamente después de cada iteración
de AOO, D O 0 e incluso POO. Número de clases clave (NCC). Una clase clave se
Uno de los aspectos clave, al que debe hacer frente centra directamente en el dominio del negocio para el
un jefe de proyecto durante la planificación, es una esti- problema, y tendrá una menor probabilidad de ser imple-
'Véase la Sección 24.4.1 para una descripción de NCC y APM Una descripción interesante de la colección de métricas CK (Sec-
ción 24.4.1) para el uso en la administración de la toma de decisio-
nes puede encontrarse en [CH198].
429
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
mentada por medio de la reutilización’. Por esta razón, Las métricas NE, NCC y NSUB pueden recolectar-
valores altos para NCC indican gran trabajo de desa- se sobre proyectos O 0 pasados, y están relacionados con
rrollo substancial. Lorenz y Kidd [LOR94] sugieren que el esfuerzo invertido en el proyecto como un todo, y en
entre el 20 y el 40 por 100 de todas las clases en un sis- actividades de procesos individuales (por ejemplo, AOO,
tema O 0 típico corresponde a las clases clave. El resto DOO, PO0 y pruebas 00).Estos datos pueden también
es infraestructura de soporte (GUI, comunicaciones, utilizarse junto con métricas de diseño discutidas con
bases de datos, etc.). anterioridad en este capítulo, para calcular «métricas de
productividad», tales como el número de clases prome-
Número de subsistemas (NSUB). El número de sub- dio por desarrollador o promedio de métodos por per-
sistemas proporciona una visión sobre la asignación de sondmes. Colectivamente, estas métricas pueden usarse
recursos, la planificación (con énfasis particular en el para estimar el esfuerzo, duración, personal y otra infor-
desarrollo paralelo) y el esfuerzo de integración global. mación de proyecto para el proyecto actual.
[BER9.5] Berard, E., Metrics for Object-Oriented Software [HAR98] Harrison, R., S.J. Counseil y R.V. Nithi, «An Eva-
Engineering, publicado en internet en comp.software- luation of the MOOD Set of Object-Oriented Software
eng, 28 de enero de 199.5. Metricw, IEEE Trans. Software Engineering, vol. 24, n . O 6,
ICHI941 Chidamber, S.R., y C.F. Kemerer, «A Metrics Sui- Junio de 1998, pp. 491-496.
430
CAPfTULO 2 4 M É T R I C A S T É C N I C A S P A R A S I S T E M A S O R I E N T A D O S A OBJETOS
-P Y -
P AC
-
Una variedad de libros de AOO, DO0 y Comprobación O 0 (Object-Oriented Metrics: Measures of Complexity, Prentice-
(véase Otras lecturas y fuentes de información en los Capítu- Hall, 1996) ofrecen los únicos libros dedicados a métricas
los 20, 21 y 22) que hacen referencia de paso a las métricas OO. Otros libros dedicados a las métricas de software con-
00,pero hay pocos que abordan el tema con detalle. Los libros vencional (véase otras lecturas y fuentes de información en
escritos por Jacobson (Ohject-Oriented Software Engineering, los Capítulos 4 y 19) contienen discusiones limitadas de
Addison-Wesley, 1994) y Graham (Ohjecto-Oriented Met- métricas OO.
hods, Addison-Wesley, segunda edición, 1993). Proporcionan Una amplia variedad de fuentes de información para métri-
un tratamiento más extenso que la mayoría. cas orientadas a objetos y temas relacionados se encuentra
Whitmire [WHI971 presenta el tratamiento matemática y disponible en intemet. Una lista reciente de referencias a sitios
extensamente más sofisticado de las métricas O 0 publicadas (páginas) web relevantes a las métricas O 0 pueden encon-
a la fecha. Lorenz y Kidd [LOR94] y Hendersen-Sellers trarse en http://www. mhhe.pressman5.com
43 1