Descripción principal |
Clases
Una clase se representa como una caja, separada en tres zonas por líneas horizontales.
En la zona superior se muestra el nombre de la clase y propiedades generales como el estereotipo. El nombre de la
clase aparece centrado y si la clase es abstracta se representa en cursiva. El estereotipo, si se muestra, se sitúa
sobre el nombre y entre el símbolo: << .... >>.
La zona central contiene una lista de atributos, uno en cada línea. La notación utilizada para representarlos incluye,
dependiendo del detalle, el nombre del atributo, su tipo y su valor por defecto, con el formato:
visibilidad nombre : tipo = valor-inicial { propiedades }
La visibilidad será en general publica (+), privada (-) o protegida (#), aunque puede haber otros tipos de visibilidad
dependiendo del lenguaje de programación empleado.
En la zona inferior se incluye una lista con las operaciones que proporciona la clase. Cada operación aparece en una
línea con formato:
visibilidad nombre (lista-de-parámetros): tipo-devuelto { propiedad }
La visibilidad será en general publica (+), privada (-) o protegida (#), aunque como con los atributos, puede haber
otros tipos de visibilidad dependiendo del lenguaje de programación. La lista de parámetros es una lista con los
parámetros recibidos en la operación separados por comas. El formato de un parámetro es:
nombre : tipo = valor-por-defecto
La notación especificada se puede simplificar según el nivel de detalle con el que se quiera trabajar en un momento
dado.
Relaciones
Una relación de asociación se representa como una línea continua entre las clases asociadas. En una relación de
asociación, ambos extremos de la línea pueden conectar con la misma clase, indicando que una instancia de una clase,
está asociada a otras instancias de la misma clase, lo que se conoce como asociación reflexiva.
La relación puede tener un nombre y un estereotipo, que se colocan junto a la línea. El nombre suele corresponderse
con expresiones verbales presentes en las especificaciones, y define la semántica de la asociación. Los estereotipos
permiten clasificar las relaciones en familias y se escribirán entre el símbolo: << ... >>.
Las diferentes propiedades de la relación se pueden representar con la siguiente notación:
-
Multiplicidad: La multiplicidad puede ser un número concreto, un rango o una colección de números. La
letra ‘n’ y el símbolo ‘*’ representan cualquier número.
-
Orden: Se puede especificar si las instancias guardan un orden con la palabra clave
‘{ordered}’. Si el modelo es suficientemente detallado, se puede incluir una restricción que indique el
criterio de ordenación.
-
Navegabilidad: La navegación desde una clase a la otra se representa poniendo una flecha sin relleno
en el extremo de la línea, indicando el sentido de la navegación.
-
Rol o nombre de la asociación: Este nombre se coloca junto al extremo de la línea que esta unida a una
clase, para expresar cómo esa clase hace uso de la otra clase con la que mantiene la asociación.
Además, existen notaciones específicas para los otros tipos de relación, como son:
-
Agregación: Se representa con un rombo hueco en la clase cuya instancia es una agregación de las
instancias de la otra.
-
Composición: Se representa con un rombo lleno en la clase cuya instancia contiene las instancias de la
otra clase.
-
Dependencia: Una línea discontinua con una flecha apuntando a la clase cliente. La relación puede
tener un estereotipo que se coloca junto a la línea, y entre el símbolo: << ... >>.
-
Herencia: Esta relación se representa como una línea continua con una flecha hueca en el extremo que
apunta a la superclase.
Interfaces
Una interfaz se representa como una caja con compartimentos, igual que las clases. En la zona superior se
incluye el nombre y el estereotipo <<Interface>>. La lista de operaciones se coloca en la zona inferior,
igual que en las representaciones de clases. La zona en la que se listan los atributos estará vacía o puede
omitirse.
Existe una representación más simple para la interfaz: un círculo pequeño asociado a una clase con el nombre de la
interfaz debajo. Las operaciones de la interfaz no aparecen en esta representación; si se quiere que aparezcan, debe
usarse la primera notación.
Entre una clase que implementa las operaciones que una interfaz ofrece y esa interfaz se establece una relación de
realización que, dependiendo de la notación elegida, se representará con una línea continua entre ellas cuando la
interfaz se representa como un círculo y con una flecha hueca discontinua apuntando a la interfaz cuando se represente
como una clase.
Paquetes
Los paquetes se representan mediante un icono con forma de carpeta y las dependencias con flechas discontinuas entre
los paquetes dependientes (ver Diagrama de paquetes).
(Nota.- Esta notación es la más habitual, pero MÉTRICA Versión 3 no exige su utilización).
|