El diagrama de clases recoge las clases de objetos y sus asociaciones. En este diagrama se representa la estructura y
el comportamiento de cada uno de los objetos del sistema y sus relaciones con los demás objetos, pero no muestra
información temporal.
Con el fin de facilitar la comprensión del diagrama, se pueden incluir paquetes como elementos del mismo, donde cada
uno de ellos agrupa un conjunto de clases.
Este diagrama no refleja los comportamientos temporales de las clases, aunque para mostrarlos se puede utilizar un
diagrama de transición de estados, otra de las técnicas propuestas en MÉTRICA Versión 3.
Los elementos básicos del diagrama son cuatro:
-
Clases
-
Relaciones
-
Interfaces
-
Paquetes
Clases
Una clase describe un conjunto de objetos con propiedades (atributos) similares y un comportamiento común. Los objetos
son instancias de las clases. No existe un procedimiento inmediato que permita localizar las clases del diagrama de
clases. Éstas suelen corresponderse con sustantivos que hacen referencia al ámbito del sistema de información y que se
encuentran en los documentos de las especificaciones de requisitos y los casos de uso.
Dentro de la estructura de una clase se definen los atributos y las operaciones o métodos:
-
Los atributos de una clase representan los datos asociados a los objetos instanciados por esa clase.
-
Las operaciones o métodos representan las funciones o procesos propios de los objetos de una clase, caracterizando
a dichos objetos.
El diagrama de clases permite representar clases abstractas. Una Clase abstracta es una clase que no puede
existir en la realidad, pero que es útil conceptualmente para el diseño del modelo orientado a objetos. Las clases
abstractas no son instanciables directamente sino en sus descendientes. Una clase abstracta suele ser situada en la
jerarquía de clases en una posición que le permita ser un depósito de métodos y atributos para ser compartidos o
heredados por las subclases de nivel inferior.
Las clases y en general todos los elementos de los diagramas, pueden estar clasificados de acuerdo a varios criterios,
como por ejemplo su objetivo dentro de un programa. Esta clasificación adicional se expresa mediante un
Estereotipo. Algunos de los autores de métodos OO, establecen una clasificación de todos los objetos que pueden
aparecer en un modelo. Los tipos son:
-
Objetos Entidad
-
Objetos límite o interfaz
-
Objetos de control
Éstos son estereotipos de clases. Un estereotipo representa una la meta-clasificación de un elemento.
Dependiendo de la herramienta utilizada, también se puede añadir información adicional a las clases para mostrar otras
propiedades de las mismas, como son las reglas de negocio, responsabilidades, manejo de eventos, excepciones,
etc.
Relaciones
Los tipos más importantes de relaciones estáticas entre clases son los siguientes:
-
Asociación. Las relaciones de asociación representan un conjunto de enlaces entre objetos o
instancias de clases. Es el tipo de relación más general, y denota básicamente una dependencia semántica. Por
ejemplo, una Persona trabaja para una Empresa.
Cada asociación puede presentar elementos adicionales que doten de mayor detalle al tipo de relación:
-
Rol, o nombre de la asociación, que describe la semántica de la relación en el sentido
indicado. Por ejemplo, la asociación entre Persona y Empresa recibe el nombre de trabaja para,
como rol en ese sentido.
-
Multiplicidad, que describe la cardinalidad de la relación, es decir, especifica cuántas
instancias de una clase están asociadas a una instancia de la otra clase. Los tipos de multiplicidad
son: Uno a uno, uno a muchos y muchos a muchos.
-
Herencia. Las jerarquías de generalización/especialización se conocen como herencia. Herencia
es el mecanismo que permite a una clase de objetos incorporar atributos y métodos de otra clase, añadiéndolos a
los que ya posee. Con la herencia se refleja una relación "es_un" entre clases. La clase de la cual se hereda
se denomina superclase, y la que hereda subclase.
La generalización define una superclase a partir de otras. Por ejemplo, de las clases profesor y
estudiante se obtiene la superclase persona. La especialización o especificación es la operación
inversa, y en ella una clase se descompone en una o varias subclases. Por ejemplo, de la clase empleado
se pueden obtener las subclases secretaria, técnico e ingeniero.
-
Agregación. La agregación es un tipo de relación jerárquica entre un objeto que representa la
totalidad de ese objeto y las partes que lo componen. Permite el agrupamiento físico de estructuras
relacionadas lógicamente. Los objetos "son-parte-de" otro objeto completo. Por ejemplo,
motor,ruedas, carrocería son parte de automóvil.
-
Composición. La composición es una forma de agregación donde la relación de propiedad es más
fuerte, e incluso coinciden los tiempos de vida del objeto completo y las partes que lo componen. Por ejemplo,
en un sistema de Máquina de café, las relaciones entre la clase máquina y producto, o entre
máquina y depósito de monedas, son de composición.
-
Dependencia. Una relación de dependencia se utiliza entre dos clases o entre una clase y una
interfaz, e indica que una clase requiere de otra para proporcionar alguno de sus servicios.
Interfaces
Una interfaz es una especificación de la semántica de un conjunto de operaciones de una clase o paquete que
son visibles desde otras clases o paquetes. Normalmente, se corresponde con una parte del comportamiento del elemento
que la proporciona.
Paquetes
Los paquetes se usan para dividir el modelo de clases del sistema de información, agrupando clases u otros paquetes
según los criterios que sean oportunos. Las dependencias entre ellos se definen a partir de las relaciones establecidas
entre los distintos elementos que se agrupan en estos paquetes (ver Diagrama de paquetes).
|