Diagrama de Actividad - UML y Patrones 3ra Ed en español Diseño de Sistemas Autor: Milton Buzey - Enrique Porta Versión: 1.01 [16/07/05] Cátedra de Diseño de Sistemas Capítulo 28. Diagramas de actividad y modelado en UML Aplicando UML y Patrones: Una Introducción a Análisis y Diseño Orientado a Objetos y el Desarrollo Iterativo, Tercera Edición Por Craig Larman Objetivos Introducir a la notación UML del diagrama de actividad, con ejemplos, y diversas aplicaciones de modelado. Introducción Un diagrama de actividad UML muestra actividades secuenciales y paralelas en un proceso. Estos son útiles para modelar procesos de negocio, workflows, flujos de datos, y algoritmos complejos. 28.1. Ejemplo La notación básica UML del diagrama de actividad se muestra en la Figura 28.1, ilustrando una acción (action), partición (partition) , bifurcación (fork), unión (join), y nodos de objetos (object node). En esencia, este diagrama muestra una secuencia de acciones, alguna de las cuales pueden estar en paralelo. La mayor parte de la notación es autoexplicativa; dos puntos sutiles a tener en cuenta: Una vez que una acción finaliza, hay automáticamente una transición. El diagrama puede mostrar tanto flujos de control como flujos de datos. 1/7 Diagrama de Actividad - UML y Patrones 3ra Ed en español Diseño de Sistemas Autor: Milton Buzey - Enrique Porta Versión: 1.01 [16/07/05] Cátedra de Diseño de Sistemas Figura 28.1. Notación básica UML del Diagrama de actividad. 28.2. Cómo aplicar diagramas de actividad? Un diagrama de actividad UML ofrece abundante notación para mostrar una secuencia de actividades, incluyendo actividades en paralelo. Puede ser aplicado con cualquier perspectiva o propósito, pero es mas frecuente para visualizar procesos y workflow de negocios, y casos de uso. Modelado del proceso de negocio Uno de mis clientes está en el negocio de envío urgente de encomiendas vía marítima. El proceso de enviar una encomienda por vía marítima no es nada trivial; hay muchas partes involucradas (clientes, operarios, …) y muchas etapas. Aunque este proceso puede ser capturado en texto (en un texto de caso de uso), en este caso los diagramas de actividad son un gran ejemplo de que una imagen vale mas que mil palabras. Mi cliente usa diagramas de actividad para entender sus complicados procesos de negocios actuales visualizándolos. Las 2/7 Diagrama de Actividad - UML y Patrones 3ra Ed en español Diseño de Sistemas Autor: Milton Buzey - Enrique Porta Versión: 1.01 [16/07/05] Cátedra de Diseño de Sistemas particiones son útiles para ver las múltiples partes y acciones paralelas involucradas en el proceso de envío, y los nodos de objetos. Luego de modelar sus procesos actuales ellos exploran visualmente cambios y optimizaciones. Ver Figura 28.1 para un ejemplo simple de aplicación de diagramas de actividad para el modelado de procesos de negocio. Para mostrar el modelo de proceso para mi cliente llenaríamos una pared entera. Modelando Flujos de Datos A comienzo en los 70s, los diagramas de flujos de datos (DFD) se volvieron la forma mas frecuente para visualizar la mayoría de las etapas y datos involucrados en los procesos de sistemas de software. Esto no es lo mismo que modelar un proceso de negocios; mas bien, los DFD eran usualmente usados para mostrar flujos de datos en un sistema de computadora, aunque en teoría podrían ser usados en el modelado de procesos de negocio. Los DFD eran útiles para documentar la mayoría de los flujos de datos o para explorar un nuevo diseño de alto nivel en términos de flujos de datos. Ver Figura 28.2 para un ejemplo de DFD en la notación clásica de Gane-Sarson. Observe que los pasos del proceso están numerados, para indicar un orden. Figura 28.2. DFD clásico con la notación de Gane-Sarson. La información modelada en un DFD es útil para documentar, pero el UML no incluye la notación de los DFD. Afortunadamente, los diagramas de actividad UML pueden satisfacer las mismas metas y pueden ser usados para modelar flujos de datos, remplazando la anotación tradicional de los DFD. La Figura 28.3 ilustra la misma información que el DFD de la Figura 28.2, pero usando un diagrama de actividad UML. Nótese que agregando <<datastore>> a los nodos de objetos son usados para mostrar almacenes de datos. 3/7 Diagrama de Actividad - UML y Patrones 3ra Ed en español Diseño de Sistemas Autor: Milton Buzey - Enrique Porta Versión: 1.01 [16/07/05] Cátedra de Diseño de Sistemas Figura 28.3. Aplicando notación diagramas de actividad para mostrar un modelo de flujos de datos Modelado de programación concurrente y algoritmos en paralelo Aunque los detalles van mas allá de esta introducción, los algoritmos paralelos en problemas de programación concurrente involucran múltiples particiones, y comportamiento de bifurcaciones y uniones. Por ejemplo, tales algoritmos son usados en simulaciones 3D con modelado de elementos finitos, y son aplicados para modelar sistemas de reservas de petróleos, análisis de resistencia de materiales y modelado del tiempo. El espacio físico global es subdividido dentro de dos grandes bloques, y ejecuta muchos hilos (o procesos) paralelos, uno por cada sub-bloque. En estos casos los las particiones de los diagramas de actividad pueden ser usados para representar diferentes hilos o procesos del sistema operativo. Los nodos de objetos pueden ser usados para modelar los objetos y los datos compartidos. Y por supuesto, la bifurcación puede ser utilizada para modelar la creación y ejecución paralela de multiples hilos o procesos, uno por partición. 28.3. Mas notación UML para un Diagrama de Actividad ¿Cómo mostrar que un diagrama de actividad se expande en otro diagrama de actividad? La Figura 28.4 y Figura 28.5 ilustra el uso del símbolo rastrillo (rake). 4/7 Diagrama de Actividad - UML y Patrones 3ra Ed en español Diseño de Sistemas Autor: Milton Buzey - Enrique Porta Versión: 1.01 [16/07/05] Cátedra de Diseño de Sistemas Figure 28.4. Una actividad será expandida en otro diagrama. Figure 28.5. La expansión de una actividad. ¿Cómo mostrar una bifurcación condicional (conditional branches) ? Ver el símbolo de decisión usado en la Figura 28.5. El símbolo fusión (merge) relacionado muestra como los flujos pueden juntarse. Las señales son mostradas en la Figura 28.6. Son útiles, por ejemplo, cuando se necesita modelar eventos temporales que disparan una acción (30 días desde el envío de la última factura y no recibido el pago), o cancelan una solicitud. 5/7 Diagrama de Actividad - UML y Patrones 3ra Ed en español Diseño de Sistemas Autor: Milton Buzey - Enrique Porta Versión: 1.01 [16/07/05] Cátedra de Diseño de Sistemas Figure 28.6. Señales. Hay más notación disponible para diagramas de actividad UML. Esta corta introducción meramente destaca alguno de los elementos mas usados. 28.4. Pautas Unas pocas pautas se han originado en el modelado de actividades; éstas incluyen: Esta técnica provee mayor valor para los procesos mas complicados, usualmente involucra muchas partes. Los textos de los casos de usos son suficientes para procesos simples. Modelando un proceso de negocios, Se tiene la ventaja del símbolo rastrillo y los sub-diagramas de actividad. En la primera visión general, diagrama de "Nivel 0", se mantienen todas las acciones a un muy alto nivel de abstracción, así el diagrama es corto y rico. Expandir los detalles en sub-diagramas al nivel "nivel 1", y tal vez dependiendo del caso al nivel "nivel 2", así sucesivamente. Hay que esforzarse en hacer el adecuado nivel de abstracción 28.5. Ejemplo: Diagrama de Actividad NextGen El modelo parcial en la Figura 28.7 ilustra la aplicación de UML al caso de uso procesar venta. Tengo que mostrar este ejemplo del caso de estudio por completo, pero en realidad no me molestaría en crearlo como texto de caso de uso dado que la simplicidad del proceso hace que el diagrama de actividad tenga menor valor. 6/7 Diagrama de Actividad - UML y Patrones 3ra Ed en español Diseño de Sistemas Autor: Milton Buzey - Enrique Porta Versión: 1.01 [16/07/05] Cátedra de Diseño de Sistemas Figure 28.7. Modelando el caso de uso procesar venta con un diagrama de actividad. 28.6. Proceso: Diagrama de actividad en el UP Unas de las disciplinas en el UP es el modelado de Negocio; su propósito es entender y comunicar "la estructura y la dinámica de la organización en la cual un sistema está siendo desarrollado". Un artefacto clave de la disciplina de Modelado de Negocio es el Modelo de Objetos del Negocio (un súper conjunto del Modelo de Dominio del UP), el cual esencialmente visualiza el negocio, utilizando diagramas UML (de clases, de secuencia, y de actividad). Hasta aquí, los diagramas de actividad son especialmente aplicables dentro de la disciplina de Modelado de Negocio del UP. 28.7. Antecedentes Una plétora de modelado de procesos y lenguajes de diagramación de flujo de datos ha estado rondando desde siempre. Cada año, los diagramas de actividad UML se vuelven más populares transformándose en un estándar, aunque siempre con variaciones importantes. La semántica de los diagramas de actividad se basa en redes de Petri. 7/7