¿Que es UMl?‎ > ‎

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 café. Un diagrama de estructura estática inicial podría ser:


ClaseRepresentada 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.
AtributoIdentifican 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 esvisibility 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 para indicar visibilidad privada, el símbolo para visibilidad protegida y el símbolo para indicar visibilidad pública.
OperacionEl conjunto de operaciones describen el comportamiento de los objetos de una clase. La síntaxis de una operación en UML esvisibility 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:
Asociación binaria
Asociación n-aria
Composición
Generalización
RefinamientoCada asociación puede presentar algunos elementos adicionales que dan detalle a la relación, como son:Rol: Identificado como un nombres al los finales de la linea, describe la semántica de la relación en el sentido indicado. Por ejemplo, la asociación de composición entre Maquina e Ingrediente recibe el nombre de existencias, como rol en ese sentido

Multiplicidad: Describe la cardinalidad de la relación. En el ejemplo anterior se utilizan 1, 1 ..*, 5, *, como indicadores de multiplicidad.
Asociación binariaSe 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



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ónEs una asociación fuerte, que implica tres cosas
Dependiencia existencial. El elemento dependiente desaparece al destruirse el que lo contiene y, si es de cardinalidad 1, es creado al mismo tiempo.
Hay una pertenencia fuerte. Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene
Los objetos contenidos no son compartidos, esto es, no hacen parte del estado de otro objeto.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ónLa 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étricaUna 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


PaqueteUn 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



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
DependenciaDenota 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.









Comments