Elementos básicos en un diagrama de estructura estática

Un diagrama de estructura estática muestra el conjunto de clases y objetos importantes que hacen parte de un sistema, junto con las relaciones existentes entre estas clases y objetos. Muestra de una manera estática la estructura de información del sistema y la visibilidad que tiene cada una de las clases, dada por sus relaciones con las demás en el modelo.

Supongamos el modelamiento de una máquina de cafe. Un diagrama de estructura estática inicial podría ser:

Diagrama de clases de la Cafetera

Clase

Representada por un rectángulo con tres divisiones internas, son los elementos fundamentales del diagrama.Una clase describe un conjunto de objetos con caracteristicas y comportamiento idéntico. En el ejemplo se encuentran las clases Ingrediente, Producto, Maquina, DepositoMonedas y DepositoMonedasIguales.

Los tres compartimientos estándares alojan el nombre de la clase, sus atributos y sus mensajes, respectivamente.

Atributo

Identifican las características propias de cada clase. Generalmente son de tipos simples, ya que los atributos de tipos compuestos se representan mediante asociaciones de composición con otras clases. La sintáxis de un atributo es
visibility name : type-expression = initial-value { property-string }

Donde visibility es uno de los siguientes:

+       public visibility
#  protected visibility
-       private visibility

type-expression es el tipo del atributo con nombre name. Puede especificarse como se ve un valor inicial y un conjunto de propiedades del atributo.

En el caso del ejemplo, la clase Ingrediente tiene dos atributos: uno denominado cantidad, de tipo float y con valor inicial 0; y el atributo nombre de tipo string sin valor inicial. En este caso, la herramienta utilizada ha cambiado la representación de la visibilidad, utilizando el símbolo Simbolo en Rose para visibilidad privadapara indicar visibilidad privada, el símbolo Simbolo en Rose para visibilidad protegidapara visibilidad protegida y el símbolo Simbolo en Rose para visibilidad publicapara indicar visibilidad pública.

Operacion

El conjunto de operaciones describen el comportamiento de los objetos de una clase. La síntaxis de una operación en UML es
visibility name ( parameter-list ) : return-type-expression { property-string }

Cada uno de los parámetros en parameter-list se denota igual que un atributo. Los demás elementos son los mismos encontrados en la notación de un atributo.

Asociación (rol, multiplicidad, cualificador)

Una asociación en general es una línea que une dos o más símbolos. Pueden tener varios tipos de adornos, que definen su semántica y características. Los tipos de asociaciones entre clases presentes en un diagrama estático son: Cada asociación puede presentar algunos elementos adicionales que dan detalle a la relación, como son:

Asociación binaria

Se identifica como una línea sólida que une dos clases. Representa una relación de algún tipo entre las dos clases, no muy fuerte ( es decir, no se exige dependencia existencial ni encapsulamiento).

En posible ejemplo es la relación entre una compañía y sus empleados

Ejemplo de asociacion binaria

en este caso la relación recibe el nombre genérico Trabaja Para, la compañía tiene uno o más instancias de la clase Persona denominadas empleado y cada empleado conoce su empleador (en este caso único).

Composición

Es una asociación fuerte, que implica tres cosas Se denota dibujando un rombo relleno del lado de la clase que contiene a la otra en la relación. En el ejemplo inicial de esta hoja se presentan varios ejemplos de relaciones de composición entre Maquina y Producto, Maquina y DepositoMonedas y Maquina y DepositoMonedasIguales.

Existe tambien una relación de composición menos fuerte (no se exige dependencia existencial, por ejemplo) que es denotada por una un rombo sin rellenar en uno de los extremos. Un ejemplo puede encontrarse entre Producto e Ingrediente.

Generalización

La relación de generalización denota una relación de herencia entre clases. Se representa dibujando un triángulo sin rellenar en el lado de la superclase. La subclase hereda todos los atributos y mensajes descritos en la superclase. En el ejemplo se encuentra una generalización entre DepositoMonedas (superclase) y DepositoMonedasIguales (subclase).

Clase paramétrica

Una clase paramétrica representa el concepto de clase genérica en los conceptos básicos OO o de template en C++. Se dibuja como una clase acompañada de un rectángulo en la esquina superior derecha, con los parámetros del caso.

Por ejemplo, la clase Lista que utiliza un parámetro formal Tipo se vería de la siguiente manera

Ejemplo de clase parametrica

Paquete

Un paquete es una forma de agrupar clases (u otros elementos en otro tipo de diagramas) en modelos grandes. Pueden tener asociaciones de dependencia o de generalización entre ellos. Un ejemplo puede ser el siguiente

Ejemplo de paquetes

En este caso existen tres paquetes (que se muestran vacios en este caso, con su contenido encapsulado), con dos de ellos dependiendo del Modelo del Mundo

Dependencia

Denota una relación semántica entre dos elementos (clases o paquetes, por el momento) del modelo. Indica que cambiar el elemento independiente puede requerir cambios en los dependientes. Se muestra como una linea punteada direccional, indicando el sentido de la dependencia. Puede tener por medio de estereotipos una explicación del tipo de dependencia presentada.

En el ejemplo anterior pueden verse dos relaciones de dependencia hacia el paquete Modelo del Mundo.
 

Nota

Es un comentario dentro de un diagrama. Puede estar relacionado con uno o más elementos en el diagrama mediante lineas punteadas. Pueden representar aclaraciones al diagrama o restricciones sobre los elementos relacionados (cuando el texto se encuentra entre '['y ']'). Se representa mediante un rectángulo con su borde superior derecho doblado.

En el ejemplo inicial de esta hoja se encuentran dos notas: Una relacionada con la clase máquina y otra con el depósito de monedas iguales.
 

Vea más conceptos aquí.



Pablo Figueroa
Versión 1.1