DIAGRAMA DE ACTIVIDADES
Un diagrama de actividades muestra el flujo de actividades, siendo un actividad una ejecución general entre los objetos que se está ejecutando en un momento dado dentro de una máquina de estados, el resultado de un actividad es una acción que producen un cambio en el estado del sistema o la devolución de un valor. Las acciones incluyen llamadas a otras operaciones, envío de señales, creación o destrucción de objetos o simples cálculos. Gráficamente un diagrama de actividades será un conjunto de arcos y nodos. Desde un punto de vista conceptual, el diagrama de actividades muestra cómo fluye el control de unas clases a otras con la finalidad de culminar con un flujo de control total que se corresponde con la consecución de un proceso más complejo. Por este motivo, en un diagrama de actividades aparecerán acciones y actividades correspondientes a distintas clases. Colaborando todas ellas para conseguir un mismo fin. Ejemplo: Hacer un pedido.
Contenido del diagrama de actividades
Básicamente un diagrama de actividades contiene:
- Estados de actividad
- Estados de acción
- Transiciones
- Objetos
Estados de actividad y estados de acción
La representación de ambos es un rectángulo con las puntas redondeadas, en cuyo interior se representa bien una actividad o bien una acción. La forma de expresar tanto una actividad como una acción, no queda impuesta por UML, se podría utilizar lenguaje natural, una especificación formal de expresiones, un metalenguaje, etc. La idea central es la siguiente: “Un estado que represente una acción es atómico, lo que significa que su ejecución se puede considerar instantánea y no puede ser interrumpida”, Al igual que en el diagrama de estados, el de actividad cuenta con un punto inicial (representado por un círculo) y uno final (representado como dos círculos concéntricos). En la siguiente figura, podemos ver ejemplos de estados de acción.
En cambio un estado de actividad, sí puede descomponerse en más sub- actividades representadas a través de otros diagramas de actividades. Además estos estados sí pueden ser interrumpidos y tardan un cierto tiempo en completarse. En los estados de actividad podemos encontrar otros elementos adicionales como son: acciones de entrada (entry) y de salida (exit) del estado en cuestión, así como definición de submáquinas, como podemos ver en la figura siguiente:
Transiciones
Las transiciones reflejan el paso de un estado a otro, bien sea de actividad o de acción. Esta transición se produce como resultado de la finalización del estado del que parte el arco dirigido que marca la transición. Como todo flujo de control debe empezar y terminar en algún momento, podemos indicar esto utilizando dos disparadores de inicio y fin tal y como queda reflejado en el ejemplo siguiente.
Figura 48: Transiciones
Bifurcaciones
Un flujo de control no tiene porqué ser siempre secuencial, puede presentar caminos alternativos. Para poder representar dichos caminos alternativos o bifurcación se utilizará como símbolo el rombo. Dicha bifurcación tendrá una transición de entrada y dos o más de salida. En cada transición de salida se colocará una expresión booleana que será evaluada una vez al llegar a la bifurcación, las guardas de la bifurcación han de ser excluyentes y contemplar todos los casos ya que de otro modo la ejecución del flujo de control quedaría interrumpida. Para poder cubrir todas las posibilidades se puede utilizar la palabra ELSE, para indicar una transición obligada a un determinado estado cuando el resto de guardas han fallado. Veamos un ejemplo de bifurcación.
Figura 49: Bifurcaciones
División y unión
No sólo existe el flujo secuencial y la bifurcación, también hay algunos casos en los que se requieren tareas concurrentes. UML representa gráficamente el proceso de división, que representa la concurrencia, y el momento de la unión de nuevo al flujo de control secuencial, por una línea horizontal ancha. Podemos ver cómo se representa gráficamente.
Figura 50: División y unión
Calles
Cuando se modelan flujos de trabajo de organizaciones, es especialmente útil dividir los estados de actividades en grupos, cada grupo tiene un nombre concreto y se denominan calles. Cada calle representa a la parte de la organización responsable de las actividades que aparecen en esa calle. Gráficamente quedaría como se muestra a continuación.
Figura 51: Calles
DIAGRAMA DE COLABORACIÓN
Un diagrama de colaboración destaca la organización de los objetos que participan en una interacción, un diagrama de colaboración se construye colocando en primer lugar los objetos que participan en la colaboración como nodos de un grafo. A continuación se representa los enlaces que conectan esos objetos como arcos de grafo, por último, estos enlaces se adorna con los mensajes que envían y reciben los objetos, esto da al lector una señal visual clara del flujo de control en el contexto de la organización estructural de los objetos que colaboran
Figura 45: Flujo de Control
Los diagramas colaboración tienen dos características que los distinguen de los diagramas de secuencia, el primero para indicar cómo se enlaza un objeto a otro, se puede asociar un objeto al extremo más lejano de un enlace con la palabra local que indica que el objeto designado es local al emisor. En segundo lugar está el número de secuencia, para indicar la ordenación temporal de los mensajes, se precede de un número iniciando con el numeral 1, que se incrementa secuencialmente por cada nuevo mensaje en el flujo de control.
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.
En esta entrada dedicada al diagramas de componentes veremos qué es un diagrama de componentes, los símbolos de este diagrama y cómo dibujar uno de forma muy sencilla. Al final del artículo podrás encontrar unos cuantos diagramas para ilustrar a modo de ejemplo toda la teoría.
Qué es un diagrama de componentes
El diagrama de componentes es uno de los principales diagramas UML. 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.
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.
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.
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.
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:
que biemmm
ResponderEliminar