POEM - Process Oriented Enterprise Modelling

The Process Modeling City
(POEM / BPMN tutorials, posters, examples)

BPMN = Business Process Modeling Notation
POEM = Process Oriented Enterprise Modelling methodology. For describing business processes, roles, aretefacts and their instances.

Basic info

POEM poster

Useful links

POEM -> POEM packages -> Roles/relationshpis/communication channels


Roles in organization are often presented using hierarchical organigram. Although this kind of representation is simple and frequently used, it has difficulties representing more complex relations between roles. Roles in organization should be strictly defined to avoid misunderstandings and to make communication between them easier. This diagram is answer to questions like “Who works in our organization?”, “Who communicates with whom?”, “Who supervises whom?” an alike. Although roles can be represented in original BPMN as pools or lanes, structure of roles can not be shown.

Description, concepts and relations

The structure of roles and groups of roles in organization or project is represented by diagram Roles and relationships . Proposed diagram includes the following basic concepts: roles, groups and relations. This diagram provides an overview of all process roles and relationships among them.

Basic concepts represented in this diagram are role (Rx), group of roles (Gx) and relations. Special type of this diagram includes also role instances (RIx).


Graphical appearance of roles is defined similar to actors in UML Use Case model. Concepts in this diagram are specialised UML class diagram concepts. Role and Working group are stereotypes of UML's class concept. We defined the following types of relations, where R X and R Y are pair of related roles and G X means group of roles:

•  Rx is special kind of Ry (stereotype of UML:Inheritance) . Using this relation, specialization of roles can be presented. For example, working group is_special_kind_of project group or workgroup leader is_special_kind_of project leader.

•  Rxcollaborates in Gx (stereotype of UML:Aggregation).

•  Rx replaces Ry (stereotype of UML :Association). Let's explain the meaning of relation “ replaces” by example. Imagine that role Rx replaces Ry and Ry is responsible for Px . If Ry is missing (sick or on vacation), then Rx is responsible for performing of process Px.

•  Rx communicates with Ry (stereotype of BPMN :Message flow). This relation means which communication paths in the structure of roles are allowed (preferred). If the relation is numbered, the sequence of communication is defined.

•  Rx supervises Ry (stereotype of UML :Association). Using this relation hierarchical organizational structure can be described. For example, Board of directors supervises Project manager.

•  Rx default reporting channel R Y (mixture of stereotypes of UML :Association and BPMN :Message flow). Using this relation we define default reporting channel between two roles. Using this relation, the clutter on diagram can be reduced, because communication link is defined only once (on the role diagram level) and it doesn't need to be defined in workflow or process diagram for every message passing again. For example: EU project manager sends reports to Regional EU project agency, which can be modelled using default reporting channel relation.

•  RIx plays role of Rx. This association, which connects role and role instance, denotes which person in organization plays which role. For example, John plays role of Programmer, Software Analyst and Configuration manager.


Example, shown on figure below, represents roles, groups of roles and their relations in project XY and relations, which are important to Software Project Manager.


Syntax of Roles/relationships diagram is shown in table below. Definitions of some non-terminal symbols (e.g. <Role>, <WorkingGroup>) are not presented in details, because they are not essential for understanding. Using symbol N, the sequence of message sending between roles can be defined.

G::=<{collaborates_in, default_reporting_channel, supervises, communicates_with, replaces, is_special_kind_of, plays_role_of, N}, {<RolesAssociationDefintions>, <RolesInstanceDefinitions> <Association>, <Actor>, <ActorInstance>, <Role>, <WorkGroup>, <WorkGroupInstance>, <communicationAssociation>}, GRRCC, P>, where P:

GRRCC::={<RolesAssociationDefintions> ''.''}+ | {<RolesInstanceDefinitions> ''.''}+

<RolesAssociationDefintions >::={<Actor> <Association> <Actor>} |

{{<Actor>}+ cooperates_in <WorkGroup>}

<RolesInstanceDefinitions>::=<ActorInstance> plays_role_of <Actor>

<Actor>::={<Role> | <Work_group>}

<ActorInstance>::={<RoleInstance> | <WorkGroupInstance>}

<Association>::= {replaces | <communicationAssociation> | supervises | default_reporting_channel}

<communicationAssociation>::= {communicates_with | communicates_with (N)}

Visio plugin

Download POEM - Visio plugin and use the stencil (POEM_RRCC.vss).



Top Creative Commons License
Creative Commons Attribution Non-commercial Share Alike (by-nc-sa)