lunes, 27 de abril de 2015

UML Capitulo 15: La Vista de Actividades


¡Hola de nuevo internauta!,

      En la entrada de hoy hablaremos sobre la vista de actividades que permite mostrar el flujo de control a través de los pasos de la ejecución mediante un grafo de nodos y flujos. Dividiremos la entrada en una introducción para explicar los componentes que forman esta vista y otras dos secciones con una explicación más detallada y ejemplos gráficos.

¡Así que sin más dilación, al meollo!.

1. Introducción

Cómo hemos explicado anteriormente esta vista muestra el flujo de control a través de grafos de nodos y flujos cuyo pasos pueden ser concurrentes o secuenciales. Involucrando constructores de sincronización y de bifurcación.

Los grafos de nodos son dibujados en lo que se denomina una actividad para representar gráficamente la ejecución de una sentencia, por eso se les llama nodos de actividad.

Cuando un grafo de actividad representa una acción básica predefinida se denominan acción. Un ejemplo de acción es crear un objeto. Esto lo veremos más adelante.

2. Actividad

Una actividad representa la ejecución de una sentencia en un procedimiento. Su ejecución comienza cuando hay indicadores de control o tokens en su flujo de entrada y siempre espera a que finalice su cómputo.

Los nodos de actividad poseen las siguientes características:

  • Pueden anidarse.
  • Pueden contener bifurcaciones así como divisiones de control en hilos concurrentes. Las actividades concurrentes pueden ejecutarse simultáneamente o en cualquier orden.


Ejemplo Diagrama de Actividad
Ejemplo de Diagrama de Actividad
(obtenido del libro El Lenguaje Unificado de Modelado.Booch, Jacobson y Rumbaugh)

Ahora vamos a explicar un poco el diagrama de actividad:

  1. Se inicia la actividad y se establece el pedido del cliente.
  2. En la decisión se comparan las condiciones de guardas(pedido único o suscripción).
    1. Pedido único:
      1. Se asignan los asientos seleccionados en el nodo de actividad anterior(establecer pedido).
      2. Se carga en la tarjeta de crédito del cliente.
    2. Suscripción:
      1. Se ejecutan de manera concurrente (indicado por la barra de sincronización) los nodos de actividad asignar asientos y otorgar bonificación (en caso de que el cliente la tenga por algo).
      2. Se carga en la cuenta del cliente el pago.
      3. Se unen de nuevo los flujos (indicado en la barra de sincronización final).
  3. Se fusionan de nuevo los flujos ya que lo siguiente es común a ambos y se  envía el paquete por correo.
  4. Fin del la actividad.
Vemos que en el flujo de la ejecución concurrente no se especifica si se ejecuta simultáneamente o no pero usando el sentido común tenemos dos tipos de ejecuciones para los nodos de actividad:

  • Asignar asientos y otorgar bonificación pueden ejecutarse simultáneamente. Tras lo cual se ejecutaría cargar en la cuenta.
  • Se ejecuta primero asignar asientos para calcular el importe y reservar dichos asientos en el sistema, a continuación se ejecuta otorgar bonificación por si aplica algún descuento, y por último, se ejecuta cargar en cuenta para el pago.
Si la ejecución va a ser simultánea o secuencial, y en este caso en qué orden, se especificará en la documentación del proyecto. Pues un diagrama de actividad sólo nos indica la ejecución de la sentencia de manera gráfica.

Dentro de una actividad puede que cada flujo forme parte de una responsabilidad distinta, cuando esto sucede se usan las particiones o swimlane (hace referencia alas calles de la piscina en inglés):

  • Particiones: Organiza las actividades de acuerdo con su responsabilidad. Todas las actividades forman parte del mismo flujo pero cada flujo forma parte de un departamento distinto.
Ejemplo Diagrama Actividad Particionado
Ejemplo de Diagrama de Actividad Particionado
(obtenido del libro El Lenguaje Unificado de Modelado.Booch, Jacobson y Rumbaugh)
3. Acción

Es una acción primitiva como puede ser crear un enlace o destruir un objeto y que es usada frecuentemente. No se define una sintaxis porque se espera que se use un lenguaje de programación o de acción existente.


Y hasta aquí la entrada de hoy, ¡gracias por leerme!.

No hay comentarios:

Publicar un comentario