1
UMLDiagramas de Actividades
(UML Ilustrado)
Universidad de los AndesDemián GutierrezNoviembre 2012
2
Diagramas de Actividades(¿Qué Muestran?)
Un Diagrama de Actividades no es más que un caso especial de un diagrama de
estados, en el que todos los estados(o la gran mayoría) son acciones
¿qué es una actividad y cuál es la diferencia con un estado?
3
Diagramas de Actividades(Estados y Actividades)
¿si estoy contento, eso es un estado o una actividad?
¿cuál es la diferencia entre estar contento o preparar una torta?
¿cómo paso de contento a triste?
¿qué sucede después de que termino de preparar la torta?
4
Diagramas de Actividades(Estados y Actividades)
¿Qué es una actividad y cual es la diferencia con un estado?
Suena el Timbre
Buscandoniños alcolegio
PreparandoTorta
HaciendoCena
AtendiendoVisitas :-/
Se van las visitas
contento tristemala
noticia
En las actividades generalmente se hace algún trabajo y se pasa a la siguiente
actividad cuando la actividad actual termina
En los estados generalmente no se hace nada,
simplemente “estoy” contento
Es común que una actividad esté
compuesta por una secuencia de acciones
5
Diagramas de Actividades(Estados y Actividades)
Estado
Actividad
Las actividades pueden estar
compuestas por otras actividades o acciones
(sub-diagramas)
6
Diagramas de Actividades(¿Qué Muestran?)
Se pueden usar para modelar la dinámica de una sociedad de objetos
El flujo de control entre un conjunto de estados o actividades, el flujo de control de una operación
(¿diagramas de flujo?)
Tomado de Booch, Rumbaugh, Jacobson, El Lenguaje Unificado de Modelado
La relación (de entrada / salida) de un conjunto de objetos con una serie de estados o actividades
7
Diagramas de Actividades(¿Qué Muestran?)
Los Diagramas de Actividades son usados (entre otras cosas) para elaborar modelos de flujos de trabajo*
(workflow) de un sistema.
*Un flujo de trabajo se puede ver como una serie de tareas (acciones) que son ejecutadas o realizadas por ciertos actores en
cierto orden preestablecido
Se pueden usar para modelar el flujo de navegación de una interfaz de usuario
(aunque los diagramas de estado también)
8
Diagramas de Actividades(¿Qué Muestran?)
Conjunto de actividades ¿Qué hacen las actividades?
¿En qué orden se ejecutan?
¿Dónde ocurren? ¿Quién las ejecuta?
¿Qué insumos requieren?(entradas)
¿Qué productos generan?(salidas)
¿Cuándo ocurren?
Los Diagramas de Actividades expresan:
9
Diagramas de Actividades(Ejemplo)
Inicio
Fin
Acción/Actividad
Eje de Actividad o Transición
Actividad
Separación(Fork / Split)
Unión (Join)
Decisión(Choose / Branch)
Mezcla(Merge)
Nodo Objeto o Parámetro de Entrada
Nodo Objeto o Parámetro de SalidaRecordar Etiquetas
10
Diagramas de Actividades(Ejemplo)
Noten el equilibrioentre las separaciones
y las uniones
Noten el equilibrioentre las separaciones
y las uniones
11
Diagramas de Actividades(Ejemplo)
Final deFlujo
Swimlanes (Carrileras /
Calles)
12
Diagramas de Actividades(Ejemplo)
El mismo diagrama anterior pero sin carrileras / calles, ver:
http://www.jot.fm/issues/issue_2004_07/column4/
13
Diagramas de Actividades(Ejemplo)
AcciónEvento
de Tiempo
¿por qué no hay nodo de inicio?
14
Diagramas de Actividades(Ejemplo)
Nota
Swimlanes Doble (Carrileras /
Calles)
Documento / Objeto
Señal (Recepción)
Señal (Emisión)
15
Diagramas de Actividades(Ejemplo)
Acción Recurrente (Iterativa)
Envío de Señal
(Evento)
Recepción de Señal (Evento)
¿cómo eliminaría la señal de ingreso de repuestos
duplicada?
16
Diagramas de Actividades
diagramas de actividades y casos de uso
17
Diagramas de Actividadesy Casos de Uso
18
Diagramas de Actividadesy Casos de Uso
Opción A:Un caso de uso general/abstracto para todo el proceso (actividades especificadas por separado)
19
Diagramas de Actividadesy Casos de Uso
Opción B:Casos de Uso separados para
las actividades más significativas
20
Implementación
¿implementación?
a continuación una de muchas formas de implementar estos
conceptos
21
Ejemplo de Workflow (1)(Ejemplo tomado de CLEDA)
Recibir Solicitud(Cliente)
Análisis Legal(Analista)
*
Recepción deDocumentos(Secretaria)
*
NotificarAprobación(Secretaria)
NotificarRechazo
(Secretaria)
PrepararContrato
(Dpto. Legal)
Análisispor Junta(Junta)
NotificarAprobación(Secretaria)
Firma deContrato(Cliente)
[aprobar] [else]
[aprobar]
[else]
MDocSolicitud
idnombreapellidocedula...workflow_id
MRecaudo
idnombretipo...
1
0..n
BD
Proceso de Solicitud de PréstamoModelado con un Diagrama de Actividades
22
Ejemplo de Workflow (2)(Ejemplo tomado de CLEDA)
Recibir Solicitud(Cliente)
Aceptar(Analista)
Rechazar(Analista)
GuardarTemporalmente
(Analista)
NotificarRechazo
(Secretaria)
RecibirRecaudo
(Secretaria)
RecaudosFaltantes(Sistema)
RecaudosCompletos(Sistema)
Rechazar(Junta)
Aceptar(Junta)
NotificarAprobación(Secretaria)
(Auto)Notificar
Aprobación(Secretaria)
FirmarContrato(Cliente)
PrepararContrato
(Dpto. Legal)
MDocSolicitud
idnombreapellidocedula...workflow_id
MRecaudo
idnombretipo...
1
0..n
BD
Proceso de Solicitud de PréstamoModelado con Redes de Petri
23
XML (Versión 1.5) (2)(Ejemplo tomado de CLEDA)
<net-petri-def name="..." doc-type="...">
<!-- *********************************** --> <!-- The list of places in the net-petri --> <!-- *********************************** -->
<!-- *********************************** --> <!-- The list of trans-set and trans --> <!-- *********************************** -->
<!-- *********************************** --> <!-- The list of states in the net-petri --> <!-- *********************************** -->
</net-petri-def>
24
XML (Versión 1.5) (3)(Ejemplo tomado de CLEDA)
<net-petri-def name="..." doc-type="...">
<!-- *********************************** --> <!-- The list of places in the net-petri --> <!-- *********************************** -->
<place-list> <place name="..." /> <place name="..." /> ... </place-list>
...
</net-petri-def>
25
XML (Versión 1.5) (4)(Ejemplo tomado de CLEDA)
<net-petri-def name="..." doc-type="..."> ... <trans-list> <trans-set name="..."> <agent-def time="..." class="..." method="..." />
<privilege name="..." /> <work-list name="..." />
<meta-data key="..." val="..." /> <meta-data key="..." val="..." /> ... <doc-section-state name="..." state="..." /> <doc-section-state name="..." state="..." /> ... <trans name="..." type="..."> <meta-data key="..." val="..." /> <meta-data key="..." val="..." /> ... <pre-place name="..." /> <pre-place name="..." /> ... <pos-place name="..." /> <pos-place name="..." /> ... </trans> ... </trans-set> ... </trans-list> ...</net-petri-def>
26
XML (Versión 1.5) (5)(Ejemplo tomado de CLEDA)
<net-petri-def name="..." doc-type="..."> ... <state-list> <state-grp name="..." terminal="...">
<meta-data key="..." val="..." /> <meta-data key="..." val="..." /> ... <doc-section-state name="..." state="..." /> <doc-section-state name="..." state="..." /> ... <state-set name="..."> <place name="..." tokens="..." /> <place name="..." tokens="..." /> ... </state-set> ... </state-grp> ... </state-list> ...</net-petri-def>
27
Arquitectura (General)(Ejemplo tomado de CLEDA)
BD
Motorde
Workflow(CledaFlow, CledaScheduler y
CledaBase)
Hib
erna
te
JDB
C
Documentos
MVCCledaMVC(Struts1)
oEcho2
Modelode
Dominio
Servlets
NavegadorWEB
CledaTags
CledaCore
Aplicación
arquitectura a 3 capas bien definida,validada con la experiencia de los proyectos desarrollados
y en constante evolución
28
Gracias
¡Gracias!
Top Related