Publicado el 20 de Julio del 2017
726 visualizaciones desde el 20 de Julio del 2017
36,8 KB
18 paginas
Creado hace 22a (29/05/2001)
CAPÍTULO 6
Métricas para Sistemas Orientados a Objetos
El Software Orientado a Objetos (OO) es fundamentalmente distinto del
software que se desarrolla utilizando métodos convencionales. Las métricas para
sistemas OO deben de ajustarse a las características que distinguen el software
OO del software convencional. Estas métricas hacen hincapié en el
encapsulamiento, la herencia, complejidad de clases y polimorfismo. Por lo tanto
las métricas OO se centran en métricas que se pueden aplicar a las características
de encapsulamiento, ocultamiento de
información, herencia y
técnicas de
abstracción de objetos que hagan única a esa clase. Como en todas las métricas
los objetivos principales de las métricas OO se derivan del software convencional:
comprender mejor la calidad del producto, estimar la efectividad del proceso y
mejorar la calidad del trabajo realizado a nivel del proyecto.
Se conoce que las medidas y las métricas son componentes clave de
cualquier disciplina de la ingeniería; la ingeniería de software orientada a objetos
no es una excepción. Lamentablemente, la utilización de métricas para sistemas
orientados a objetos ha progresado con mucha más lentitud que la utilización de
los demás métodos OO [Luis A. Laranjeira ‘90]. Sin embargo, a medida que los
sistemas OO van siendo más habituales, resulta fundamental que los ingenieros
del software dispongan de mecanismos cuantitativos para estimar la calidad de los
diseños y la efectividad de los programas 00.
113
6.1 Objetivo de las métricas Orientados a Objetos
Los objetivos principales de las métricas orientadas a objetos son los
mismos que
los existentes para
las métricas surgidas para el software
estrucutrado:
• Comprender mejor la calidad del producto
• Estimar la efectividad del proceso
•
.Mejorar la calidad del trabajo realizado en el nivel del
proyecto.
Cada uno de estos objetivos es importante en sí, pero para el ingeniero de
software, la calidad del producto debe de ser lo esencial. ¿Cómo se puede medir
la calidad de un sistema 0.0? ¿ Que características del modelo de diseño se
pueden estimar para decretar si el sistema será o no fácil de implementar, se
podrá probar, que será fácil de modificar, y lo que es más importante, resultará
tolerable para los usuarios finales? [Laranjeira 1990]. Estos argumentos se
tratarán de resolver a lo largo de este capítulo
6.2 Características del software Orientado a Objetos
El software orientado a objetos es esencialmente distinto del software que
se desarrolla utilizando métodos convencionales. Por esta razón, las métricas para
sistemas 00 deben de concordarse a las características que distinguen el software
00 del software convencional.
114
Berard [Laranjeira ‘90] define cinco características que dan lugar a unas
métricas especializadas:
• Localización,
• Encapsulamiento,
• Ocultamiento de información,
• Herencia y
• Técnicas de abstracción de objetos.
6.2.1 Localización
La localización es una característica del software que indica la forma que se
concentra
la
información dentro de un programa. En el contexto OO,
la
información se concentra mediante el encapsulamiento tanto de datos como de
procesos dentro de los límites de una clase u objeto.
Dado que el software convencional hace hincapié en las funciones como
mecanismos de localización, las métricas de software se han centrado en la
estructura interna o complejidad de las funciones (p. ej.: longitud del módulo,
cohesión, o complejidad ciclomática) o bien en la forma en que las funciones se
conectan entre sí (p. ej.: acoplamiento de módulos).
Dado que las clases constituyen la unidad básica de los sistemas 00, la
localización está basada en los objetos. Por tanto, las métricas deberían de ser
aplicables a la clase (objeto) como si se tratara de una entidad completa. Además,
la relación entre operaciones (funciones) y clases no es precisamente uno-a-uno.
115
Por tanto, las métricas que reflejan la forma en que colaboran las clases deben de
ser capaces de adaptarse a las relaciones uno-a-muchos y muchos-a-uno.
6.2.2 Encapsulamiento
Berard [Pressman ‘98] define el encapsulamiento como “el empaquetamiento
(o enlazado) de una colección de elementos. Entre
los ejemplos de
encapsulamiento de bajo nivel (software convencional) se cuentan los registros y
matrices, y los subprogramas (por ejemplo, procedimientos, funciones, subrutinas
y párrafos) son mecanismos de nivel medio para el encapsulamiento”.
Para los sistemas 00, el encapsulamiento comprende las responsabilidades de
una clase, incluyendo sus atributos (y otras clases para objetos agregados) y
operaciones, y los estados de la clase, según se definen mediante valores
específicos de atributos.
El encapsulamiento influye en las métricas cambiando el objetivo de la medida,
que pasa de ser un único módulo a ser un paquete de datos (atributos) y de
módulos de procesamiento (operaciones). Además, el encapsulamiento impulsa a
la medida hasta un nivel de abstracción más elevado.
6.2.3 Ocultamiento de información
El ocultamiento de
información suprime
los detalles operativos de un
componente de un programa. Tan sólo se proporciona la información necesaria
116
para acceder a ese componente o a aquellos otros componentes que deseen
acceder a él.
Un sistema 00 bien diseñado debería de impulsar al ocultamiento de
información. Por tanto, aquellas métricas que proporcionen una indicación del
grado en que se ha logrado el ocultamiento proporcionarán una indicación de la
calidad del diseño 00.
6.2.4 Herencia
La herencia es un mecanismo que hace posible que los compromisos de un
objeto se difundan a otros objetos. La herencia se produce a lo largo de todos los
niveles de la jerarquía de clases, bien es sabido que en general, el software
convencional, no admite esta característica.
Dado que la herencia es una característica fundamental de muchos
sistemas 00, hay muchas métricas 00 que se centran en ella. Esto se conocerá
entre los ejemplos que se tratarán más adelante: se cuentan el número de
descendientes (número de instancias inmediatas de una clase), número de
predecesores (número de generalizaciones inmediatas), y grado de anidamiento
de la jerarquía de clases (profundidad de una clase dentro de una jerarquía de
herencia) y otros.
6.2.5 Abstracción
La abstracción es un mecanismo que permite al diseñador centrarse en los
detalles esenciales de algún componente de un programa (tanto si es un dato
117
como si es un proceso) sin preocuparse por los detalles de nivel inferior. Cuando
los niveles de abstracción van elevándose, se ignoran más y más detalles, por lo
tanto, se proporciona una visión más general de un concepto u objeto. A medida
que pasamos a niveles mas reducidos de abstracción, se muestran más detalles,
esto es, se proporciona una visión más específica de un concepto u objeto.
Dado que una clase es una abstracción que se puede visualizar con muchos
niveles distintos de detalles, y de muchas maneras diferentes, las métricas OO
representan la abstracción en términos de medidas de una clase (p.ej.: número de
instancias por clase por aplicación).
6.3 Métricas para el modelo de diseño Orientado a Objetos
Gran parte del diseño orientado a objetos es subjetivo un diseñador
experimentado “sabe” como puede caracterizar un sistema 00 para que se
implemente de forma efectiva los requisitos del cliente. Pero a medida que los
modelos de diseño 00 van creciendo de tamaño y complejidad, puede resultar
beneficiosa una visión más objetiva de las características del diseño, tanto para el
diseñador experimentado como para el menos experimentado.
Una visión objetiva del diseño debería de tener un componente cuantitativo
y esto nos lleva a las métricas 00, en donde se pueden aplicar no solo al modelo
de diseño, sino también al modelo de análisis [Laranjeira.’90].
118
6.4 Métricas orientadas a Clases
Se sabe que la clase es la unidad principal de todo sistema 00. Por
consiguiente, las medidas y métricas para una clase individual, la jerarquía de
clases, y las colaboraciones de clases resultarán sumamente valiosas para un
ingeniero de software que tenga que estimar la calidad de un diseño. Se ha visto
que la clase encapsula a las operaciones (procesamiento) y a los atributos (datos).
La clase suele ser el “predecesor” de las subclases (que a veces se denominan
“descendientes”) que heredan sus atributos de operaciones. La clase suele
colaborar con otras clases. Todas estas características se pueden utilizar como
bases de las métricas explicadas , enseguida:
6.4.1 El conjunto de métricas CK
Uno de los conjuntos de métricas de software 00 a los que se hace más
ampliamente referencia es el propuesto por Chidamber y Kemener [Laranjeira ‘90].
Estas métricas propuestas de diseño basadas en clases, a las cuales suele
aludirse con el nombre de conjunto de métricas CK para sistemas 00.
Los métodos ponderad
Comentarios de: CAPÍTULO 6 Métricas para Sistemas Orientados a Objetos (0)
No hay comentarios