Introducción a BPMN
0. Índice de contenidos.
- 1. Introducción.
- 2. Entorno.
- 3. Actividades.
- 4. Participantes.
- 5. Conectores de flujo.
- 6. Eventos.
- 7. Conclusiones.
1. Introducción
El objetivo de este tutorial es introduciros en el mundo de las anotaciones de BPM mediante el uso de BPMN
¿Qué es BPMN?
BPMN es el acrónimo de Business Process Modeling Notation y no es otra cosa que una notación gráfica
estandarizada para el modelado de los procesos de negocio.
Su principal objetivo es : Resolver las dificultades de comunicación que tiene el lenguaje común
- Proporciona un método normalizado para representar procesos de negocio
- Facilita su entendimiento debido a la poca complejidad de su notación
- Proporciona un lenguaje común entre los usuarios de negocio y los técnicos
- Facilita la diagramación de los procesos de negocio
- ….
Está basado en la idea de que existen diferentes roles con diferentes responsabilidades y cuya comunicación se realiza de forma
similar a lo que sería un diagrama de estados pero dentro de un tiempo determinado.
Es muy similar a lo que sería un diagrama de estados.
Desarrollado originalmente por la BPMI pero mantenido en la actualidad por OMG
Actualmente tiene mayor uso la versión 1.2 pero cada vez es más facil ver la versión 2.0
2. Entorno.
El tutorial está escrito usando el siguiente entorno:
- Hardware: Portátil Asus G50Vseries (Core Duo P8600 2.4GHz, 4GB RAM,320 GB HD).
- Sistema operativo: Windows Vista Ultimate.
- Mozilla Firefox 2.0.0.20
3. Actividades
Una actividad representa una acción dentro de un proceso, sirve para denominar el trabajo realizado por un participante.
Una actividad puede ser en función de su ejecución :
- Manual (cuando se realiza por un participante humano)
- Automático (cuando se realiza por un participante de proceso o de sistema)
Una actividad puede ser :
- Independiente
- Emisor de una notificación
- Receptor de un mensaje
- Solicitud-Respuesta
Una actividad se puede implementar :
- Tarea (Task) : Unidad mínima de trabajo dentro de un proceso
- Subproceso (Sub-process) : Unidad compuesta de trabajo formado por más de una tarea o subproceso
En definitiva, un subproceso agrupa tareas en una única tarea.
Los subprocesos debido a que son agrupaciones de varias tareas y otros subprocesos tiene la propiedad de poder mostrarse
contraídos y expandidos.
Se representan con un rectángulo.
Ejemplo de componentes :
4. Participantes.
Un participante o pool representa a cualquier recurso involucrado en un proceso, tiene la función de ser
el contenedor gráfico que indica las actividades que se van a realizar así como las condiciones de su ejecución.
Lógicamente, las actividades contenidas dentro de un participante sólo podrán ser ejecutadas por dicho participante
Existen 3 tipos de participantes :
- Humano
- Sistema
- Proceso
Cada participante debería de ser un pool diferente
Ejemplo de participantes :
Un participante puede hacer uso de un modificador de ruta o lane
¿Qué es una ruta o lane?
Una ruta o lane representa una partición lógica del participante o pool
Puede ser :
- Vertical
- Horizontal
Se suelen utilizar para organizar y categorizar las actividades, con vistas a separar una parte sobre la que se realizará un
propósito específico
Ejemplo de ruta :
5. Conectores de flujo.
Un conector de flujo representa el orden de ejecución de las tareas.
En el caso de un participante, representa el tipo de transición en el tiempo de cada una de las tareas.
Cuando nos referimos al orden de ejecución dentro de un mismo participante se denomina : transición.
Se representan con una flecha.
Cuando nos referimos al orden de ejecución entre participantes se denomina : interacción.
Remarcar que en este segundo concepto lo que se produce es un intercambio de flujo de información entre los participantes
Reglas especiales para una interacción :
- 1)Dentro de un participante o pool no existen interacciones.
- 2)Se representa con una flecha punteada (distinto a una transición).
- 3)En un proceso automatizado todas las interacciones son entre el proceso y los participantes -> Función controladora.
Ejemplo de componentes de flujo :
6. Eventos.
Un evento representa situaciones que afectan al flujo de ejecución de un proceso.
Cualquier proceso puede disparar un evento o es un resultado .
Con los eventos se consigue que un proceso pueda : comenzar , pararse , interrumpirse , finalizar correctamente, etc.
Se representan con un círculo.
Existen 3 tipos de eventos :
- Inicio (Start) : Se representa con un círculo con una línea de traza.
- Intermedio (Intermediate) : Se representa con un círculo con una línea doble de traza.
- Fin (End) : Se representa con un círculo con una línea de traza ancha.
Ejemplo de eventos :
Categoría | Símbolo | Descripción |
Inicio Vacío | Vacío | Indica que es un evento de inicio del proceso pero sin indicar que lo define |
Intermedio Vacío | Vacío | Indica que se produce un cambio de estado en el diagrama ( punto KPI – Key Performance Indicator) |
Final vacío | Punto | Indica que el proceso finaliza en ese punto |
Mensaje | Sobre | Indica el envío o recepción de un mensaje |
Error | Rayo | Indica que se ha producido algún tipo de problema |
Cancelar | Símbolo X | Indica que se empide continuar por esa línea por algún motivo |
Señal | Triángulo | Indica algún tipo de información puntual |
Enlace | Flecha | |
Compensación | Rebobinado | Indica que se realizará algún tipo de acción para manetener la integridad |
Temporizador | Reloj | Indica el proceso se inicia en base a un tiempo o bien que hay que esperar un tiempo |
6. Condicionales.
Un condicional o gateway representa un punto de decisión en el proceso para que
el flujo sea condicionado y permita canalizar por diversas ramas durante su ejecución.
Se representan con un rombo.
Existen 3 tipos de condicionales :
- Exclusivo (Exclusively) : Sólo una rama puede ser ejecutada (basado en eventos / basado en datos)
- Inclusivo (Inclusively) : Una o más ramas pueden ser ejecutadas
- Paralelo (In parallel) : Todas las ramas pueden ser ejecutadas
Ejemplos de condicionales :
7. Conclusiones.
Espero haber conseguido el objetivo de este tutorial que ha sido introduciros en la notación BPMN y así poder sentar
las bases de lo que iremos haciendo en próximos tutoriales. Para cualquier cosa ya sabeis cómo contactar conmigo