Diagrama de componentes

Un diagrama de componentes es un diagrama tipo del Lenguaje Unificado de Modelado.
Un diagrama de componentes representa cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes.
Está clasificado como diagrama de estructura y, como tal, representa de forma estática el sistema de información. Habitualmente se utiliza después de haber creado el diagrama de clases, pues necesita información de este diagrama como pueden ser las propias clases.
 Este diagrama proporciona una vista de alto nivel de los componentes dentro de un sistema. Los componentes pueden ser un componente de software, como una base de datos o una interfaz de usuario; o un componente de hardware como un circuito, microchip o dispositivo; o una unidad de negocio como un proveedor, nómina o envío.
Los componentes físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura de software pero pueden ser usados para modelar y documentar cualquier arquitectura de sistema.

Algunos usos de este tipo de diagrama es el siguiente:
·         Se utilizan en desarrollo basado en componentes para describir sistemas con arquitectura orientada a servicios.
·         Mostrar la estructura del propio código.
·         Se puede utilizar para centrarse en la relación entre los componentes mientras se ocultan los detalles de las especificaciones.
·         Ayudar a comunicar y explicar las funciones del sistema que se está construyendo a los interesados o stakeholders.

Para su construcción se debe plantear en primer lugar identificar los componentes que utilizará el sistema de información, así como las distintas interfaces. Una forma típica y común para una primera aproximación en sistemas sencillos es utilizar un componente central al que los demás componentes se unen, y que se utiliza como componente gestor del sistema.

Elementos del diagrama de componentes
El diagrama de componentes está formado por tres elementos: Componente, Interfaz y Relación de dependencia.
Componente
Un componente es un bloque de unidades lógicas del sistema, una abstracción ligeramente más alta que las clases. Se representa como un rectángulo con un rectángulo más pequeño en la esquina superior derecha con pestañas o la palabra escrita encima del nombre del componente para ayudar a distinguirlo de una clase.
Un componente puede representar dos tipos de elementos: componentes lógicos (como por ejemplo componentes de negocio o proceso) o componentes físicos (como componentes .NET, EJB…). Por ejemplo, en una aplicación desarrollada en java habrá, con total seguridad, varios componentes “.java”, que son componentes lógicos del sistema.
Es representado a través de un rectángulo que tiene, a su vez, dos rectángulos a la izquierda, tal y como se muestra en la siguiente imagen:
  

Otra notación, utilizada en las últimas versiones de UML consiste en un rectángulo con un rectángulo más pequeño en la esquina superior derecha con pestañas.



Otra notación de componente

También es posible utilizar el diagrama de paquetes para hacer un conjunto de varios módulos. Con esto se consigue representar la unión de esos módulos para un fin concreto.





Paquete con varios componentes




Ejemplos de componentes podrían ser los siguientes: Gestión de E/S, Animal, Persona, Gestión de incidencias, Gestor de workflow,… Como ves son conceptos muy amplios y que pueden ser más o menos específicos dependiendo de la profundidad que se puede dar al diagrama.

Lo ideal es que los componentes estén diseñados de forma que tengan una gran cohesión y un bajo acoplamiento, para favorecer su reutilización.

Diagrama de componentes

Mientras que otros diagramas UML describen la funcionalidad de un sistema, los diagramas de componentes se utilizan para modelar los componentes que ayudan a hacer esas funcionalidades, representando la forma en la que estos se organizan y sus dependencias.
Una relación de dependencia se representa mediante una flecha discontinua que va desde el componente que requiere de otro componente hasta el requerido.
Notación de una relación de dependencia



Las relaciones de dependencia pueden unir, además de componentes con otros componentes, componentes con interfaces.
Interfaz
La interfaz está siempre asociada a un componente y se utiliza para representar la zona del módulo que es utilizada para la comunicación con otro de los componentes.
Se representa con una línea que tiene al final un circulo no relleno:

Otros módulos pueden conectarse a una interfaz. Esto se hace cuando un componente requiere o utiliza al otro componente mediante su interfaz, que son las operaciones externas que ofrece el componente. Se representa con un linea que termina en un semicírculo que rodea la interfaz del otro componente. En el diagrama se vería de la siguiente manera:




Relación de dependencia

Aunque puedes mostrar más detalles sobre la relación entre dos componentes utilizando la notación de interfaces (interfaz proporcionada y la interfaz requerida), también puedes usar una flecha de dependencia para mostrar la relación entre dos componentes. Es una relación más general.
La relación de dependencia representa que un componente requiere de otro para ejecutar su trabajo. Es diferente a la interfaz, pues esta identifica que un componente ofrece una serie de operaciones. En cualquier caso, en ocasiones para simplificar el diagrama no se usan las interfaces sino que solamente se utilizan relaciones de dependencia.

Recursos

Descargar DOCx Hora 12
Descargar PPTx Hora 12


Recursos

Descargar DOCx Hora 10
Descargar PPTx Hora 10


Diagramas de interacción / Equivalencia semántica

Los diagramas de secuencia y los diagramas de colaboración son semánticamente equivalentes. Esto implica que se puede partir de un diagrama en una forma  y convertirlo a la otra sin pérdida de información.

  • El diagrama de colaboración muestra cómo las instancias específicas de las clases trabajan juntas para conseguir un objetivo común.
  • Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro.
  • Muestra las relaciones sobre los objetos sin mostrar la dimensión temporal de dichas relaciones.




Generar por cada caso un diagrama de colaboración.

Caso I


Caso II

Caso III



Sin alumnos 
Diagramas de interacción

Los diagramas de secuencia y los diagramas de colaboración  (ambos llamados diagramas de interacción) son diagramas que se utilizan para modelar los aspectos dinámicos de los sistemas.

Un  diagrama de interacción muestra una interacción , que consiste en un conjunto  de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos. Modela aspectos dinámicos de un sistema.

Un diagrama de secuencia es un diagrama de interacción  que destaca la ordenación temporal de los mensajes; un diagrama de colaboración es un diagrama de interacción que  destaca la organización estructural de los objetos que envían  y reciben mensajes en su interacción.

Pasos para la construcción de un diagrama de colaboración:


1. Modelar diagramas de Casos de uso, Clases y Secuencia.
2. De los tres diagramas anteriores, extraer  los objetos que participan en la colaboración como nodos del grafo.
3. Representar los enlaces  como mensajes que envían y reciben los objetos para dar una clara señal del flujo de control en el contexto de la organización estructural del os objetos que colaboran.
4. Controlar que la ordenación temporal de los enlaces / mensajes. Verificar aquellos que se encuentren anidados, los que marquen una bifurcación o una iteración.
5. Controlar si las instancias de una clase colaboran para cumplir un objetivo común, si  los enlaces entre objetos se han logrado.

Ejemplos

Anidamiento de mensajes


Se ejecutan las acciones en el sgte. orden: 1, 2, 3.1, 3, 4,5,6.




Bifuración / Iteración








Recursos

Descargar DOCx Hora 10
Descargar PPTx Hora 10


Diagrama de Colaboración / Interacción / Comunicación

Recursos

Descargar DOCx Hora 10

Descargar PPTx Hora 10


El diagrama de colaboración es un tipo de diagrama de interacción cuyo objetivo es describir el comportamiento dinámico del sistema de información mostrando cómo interactúan los objetos entre sí, es decir, con qué otros objetos tiene vínculos o intercambia mensajes un determinado objeto.

  • Muestra cómo las instancias específicas de las clases trabajan juntas para conseguir un objetivo común.
  • Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro. Dicha implementación es llamada "enlace".
Descripción

Un diagrama de colaboración muestra la misma información que un diagrama de secuencia pero de forma diferente. En los diagramas de colaboración no existe una secuencia temporal en el eje vertical; es decir, la colocación de los mensajes en el diagrama no indica cuál es el orden en el que se suceden. Además, la colocación de los objetos es más flexible y permite mostrar de forma más clara cuáles son las colaboraciones entre ellos. En estos diagramas la comunicación entre objetos se denomina vínculo o enlace (link) y estará particularizada mediante los mensajes que intercambian.

Notación


Objeto

Un objeto se representa con un rectángulo dentro del que se incluye el nombre del objeto y, si se desea, el nombre de la clase, separando ambos por dos puntos.

Vínculo


En el diagrama, un vínculo se representa como una línea continua que une ambos objetos y que puede tener uno o varios mensajes asociados en ambas direcciones. Como un vínculo instancia una relación de asociación entre clases, también se puede indicar la navegabilidad del mismo mediante una flecha.


Mensaje

Un mensaje se representa con una pequeña flecha colocada junto a la línea del vínculo al que está asociado. La dirección de la flecha va del objeto emisor del mensaje al receptor del mismo. Junto a ella, se coloca el nombre del mensaje y sus argumentos.

A diferencia de los diagramas de secuencia, en los diagramas de colaboración siempre se muestra el número de secuencia del mensaje delante de su nombre, ya que no hay otra forma de conocer la secuencia de los mismos.

Además, los mensajes pueden tener asociadas condiciones e iteraciones que se representarán como en los diagramas de secuencia.

Ejemplo
Diagrama de colaboración para el caso de uso: Prestar un ejemplar de una aplicación encargada de los préstamos y reservas de una biblioteca.





Ejercicio

Convertir el diagrama de colaboración del caso de uso de ejemplo en un diagrama de secuencia.

Conclusión

El Diagrama de Colaboración modela la interacción entre los objetos de un Caso de Uso 

Los objetos están conectados por enlaces (links) en los cuales se representan los mensajes enviados acompañados de una flecha que indica su dirección.

El Diagrama de Colaboración ofrece una mejor visión del escenario cuando el analista está intentando comprender la participación de un objeto en el sistema.

Son útiles en la fase exploratoria para identificar objetos.

La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás.

La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces .

Sintaxis para mensajes: predecesor / guarda secuencia: retorno := msg(args) 

Un mensaje desencadena una acción en el objeto destinatario § Un mensaje se envía si han sido enviados los mensajes de una lista (sincronización): 


Un mensaje se envía de manera condicionada: 


Un mensaje que devuelve un resultado: 

Ejemplo

Ejercicio ¿Secuencia o colaboración?

Lista de eventos caso de uso Extraer dinero (cajero).
  • El usuario introduce la tarjeta de cambio de divisas en el cajero.
  • El cajero solicita al banco la verificación de la clave / password.
  • El banco le ofrece al cajero una respuesta afirmativa.
  • El usuario introduce en el cajero la cantidad a retirar y la moneda en que ha de ser retirada.
  • El cajero le envía al banco la cantidad a retirar y las divisas a obtener. 
  • El banco envía a la cuenta una petición para actualizar saldos. n La cuenta le ofrece el nuevo saldo al banco. 
  • El banco le envía al cajero la orden de expender la cantidad de dinero deseada en la moneda que se requirió. 

Los diagramas de secuencia se leen de arriba abajo y de izquierda a derecha. Los de colaboración requieren de una numeración para seguir el control.

Los diagramas de secuencia suelen ser + complejos y difíciles de leer. Mientras que los de colaboración ocupan menos espacio y son + fáciles de comprender.

Se les llama de colaboración, muestran una parte estática (diagrama de clases) y otra dinámica ( diagrama de secuencia).
Tienen una equivalencia semántica.





 
|