1 Jorge Villalobos Jorge Arias Darío CorrealBPMN: Una Sintaxis para Expresar Procesos de Negocio en el Contexto de una Arquitectura Empresarial Departamento de Ingeniería de Sistemas y Computación Jorge Villalobos Jorge Arias Darío Correal © 2008 – Todos los derechos reservados
2 Agenda del día Contexto Introducción a BPMNdescanso Caso de estudio 2 (parte 1) almuerzo Otros elementos del lenguaje BPMN 2:00 - 4:00 (120 minutos) descanso Caso de estudio 2 (parte 2)
3 Otros elementos del lenguaje BPMNContexto Escenario 3 Patrones de control
4 Contexto Elementos básicos del lenguaje:Eventos: iniciales, intermedios y finales Actividades: tareas y subprocesos Pools y lanes Flujo secuencial y flujo de mensajes Gateways basados en datos (AND, OR, XOR) y basados en eventos (XOR) Data objects Anotaciones
5 Preguntas?
6 ¿Qué no podemos expresar con lo que llevamos?“Esta secuencia de tareas se debe repetir hasta que la consulta sea exitosa” ciclos “Si se presenta un problema durante la ejecución de la tarea, se debe llevar a cabo una acción de recuperación” excepciones eventos en actividades “Si la tarea no se ha terminado en 2 horas, debe iniciarse un proceso de reclamo” eventos y reglas de negocio “Si dos de los tres conceptos son favorables se aprueba la solicitud”
7 Tercer escenario: proceso de pruebas de softwareContexto del escenario Ciclos y múltiples instancias Otros tipos de eventos Excepciones Transacciones
8 Proceso de pruebas de softwareUna empresa de desarrollo de software tiene un proceso de pruebas, que se puede clasificar en tres grandes etapas: diseño, construcción y ejecución. En la primera se diseñan los escenarios de prueba y los casos que se van a validar en cada uno. En la segunda, se implementan los escenarios y los casos de prueba y en la tercera se ejecutan las pruebas. Dependiendo de los resultados se llevan a cabo distintas actividades. Cada una de las etapas anteriores es desarrollada por un equipo distinto, teniendo en cuenta que algunas de las actividades se pueden desarrollar en paralelo.
9 Estructura global del proceso
10 Representación de ciclosUn gateway XOR se utiliza para hacer sincronización: cada flujo que llega pasa derecho Si un grupo de conectores de flujo llegan a una actividad, se interpreta como implícito un gateway XOR a la entrada
11 Representación de ciclosLos ciclos arbitrarios se representan con conectores de flujo que van a actividades anteriores El flujo inicial y el flujo del ciclo se conectan a través de un XOR antes de la actividad
12 Actividades cíclicas Tiene asociada una condición, que indica cuántas veces se repite Su comportamiento depende del punto en el que se evalúe la condición Puede ser una tarea o un subproceso
13 La actividad se repite hasta que se cumpla una condición dadaActividades cíclicas La actividad se repite hasta que se cumpla una condición dada Se puede remplazar por un ciclo arbitrario, pero esta notación es más concisa y fácil de leer
14 Eventos de inicio implícitosEjemplo Evento con mensaje Link event Excepción Tarea cíclica Eventos de inicio implícitos
15 Evento de enlace (link event)Permite dividir un proceso en varias partes Es únicamente una facilidad de lectura del proceso
16 Evento de enlace (link event)Evita flujos de control muy largos
17 Actividades de instancias múltiplesCalificar examen Calificar examen Calificar examen La actividad de instancia múltiples veces en paralelo Los atributos definen el esquema de instanciación Calificar examen
18 Eventos basados en reglasEl evento se genera cuando una regla se cumple La regla está expresada en términos de datos del proceso
19 Manejo de excepciones El flujo de excepción ocurre por fuera del flujo normal Es iniciado por un evento intermedio Sirve para modelar situaciones particulares Se asocian con una actividad
20 Eventos intermedios para sincronizar y hacer pausasEl flujo normal se interrumpe hasta que se cumple una condición, que puede ser cualquier evento intermedio
21 Subprocesos ad-Hoc No hay un orden predefinido entre las actividades
22 Grupos Grupo Pueden incluir elementos de varios poolsNo tienen ninguna implicación en la ejecución
23 Transacciones: ejemplo
24 Transacciones No es una secuencia de flujo Evento de compensación Actividad de compensación El evento de compensación se genera cuando se cancela la transacción dentro de la cual se encuentra la actividad Sólo se ejecuta cuando la actividad ya ha sido terminada
25 Transacciones Es un tipo particular de subprocesoPuede terminar de tres maneras: Todo OK (todas las actividades se terminaron): avanza por el flujo normal de control Cancelación: se compensaron las actividades que ya habían terminado cuando se canceló la transacción, avanza por el flujo de cancelación Excepción: avanza por el flujo de manejo de la excepción
26 Evento de cancelar transacciónTransacciones Es un tipo particular de subproceso Dentro del subproceso se puede crear el evento de cancelación Evento de cancelar transacción
27 Manejo de errores
28 Manejo de errores
29 Transacciones: ejemplo
30 Un ejemplo completo
31 Preguntas?
32 Patrones de control Contexto Presentación de algunos patrones
33 Patrones de control Se utilizan para definir la capacidad de expresión de un lenguaje de workflow, en su dimensión de control Son 20 patrones básicos, divididos en 6 grupos: Basic Control Patterns Advanced Branching and Synchronization Patterns Structural Patterns Patterns Involving Multiple Instances State-based patterns Cancellation Patterns
34 Patrones de control Se han convertido en una herramienta metodológica de trabajo Propuestos en 2003 por Van der Aalst BPMN fue diseñado pensando en cumplir con todos los patrones Más información en:
35 Basic Control Patterns P1: Sequence¿Ejemplo de uso?
36 Basic Control Patterns P2: Parallel Split¿Ejemplo de uso?
37 Basic Control Patterns P3: Synchronization¿Ejemplo de uso?
38 Basic Control Patterns P4: Exclusive Choice¿Ejemplo de uso?
39 Basic Control Patterns P5: Simple Merge¿Ejemplo de uso?
40 Advanced Branching and Synchronization P6: Multiple Choice¿Ejemplo de uso?
41 Advanced Branching and Synchronization P7: Synchronizing Merge¿Ejemplo de uso?
42 Advanced Branching and Synchronization P8: Multiple merge¿Ejemplo de uso?
43 Advanced Branching and Synchronization P9: Discriminator¿Ejemplo de uso?
44 Structural Patterns P10: Arbitrary Cycles¿Ejemplo de uso?
45 Agenda del día Contexto Introducción a BPMNdescanso Caso de estudio 2 (parte 1) almuerzo Otros elementos del lenguaje BPMN 4:00 - 4:15 (15 minutos) descanso Caso de estudio 2 (parte 2)
46 Agenda del día Contexto Introducción a BPMNdescanso Caso de estudio 2 (parte 1) almuerzo Otros elementos del lenguaje BPMN 4:15 - 5:50 (95 minutos) descanso Caso de estudio 2 (parte 2)
47 Caso de estudio 2 (parte 2)Especificación de un proceso en el contexto del sector bancario, que sólo se pueda expresar usando los elementos extendidos
48 Caso de estudio: enunciadoObjetivo Duración: 75 minutos de trabajo en grupo 30 minutos de presentaciones y conclusiones Organización: Preparación Tareas Cierre