1. Towards Cross Language Process Model Reuse – A
Language Independent Representation of Process Models
Khurram Shahzad, Mturi Elias, Paul Johannesson
Information Systems Laboratory (SysLab)
Department of Computer and Systems Science (DSV),
Royal Institute of Technology (KTH)/ Stockholm University (SU), Sweden
2. Agenda
1. Background
2. The Generic Process Description
3. The Generic Data Model
4. Using the Generic Data Model
5. The Benefits and Conclusion
3. Background
The Universal Process Model Repository (UPR)
Project aims to
Provide basic understanding of process models
offer a starting point for modeling business processes
There are several modeling languages
Have different elements and control structures
Specification of business processes varies from one language
to another
In order to support multiple languages, a common format is
needed
Therefore in this paper we propose a generic data model for
storing and sharing process models between different modeling
languages
4. Generic Process Description
In the Process Model Repository, process
definitions will exist at two levels,
The user level is a higher level at which a business
process is viewed as a process model.
The repository level is a lower level at which a
business process is stored as a process description.
Process
Transformation
User level
Inserted
Process
Conversion Description Process
Process Model
Retrieved Description DB
Repository level
Actor
5. Generic Process Description
A business process is defined as,
“A collection of related, structured activities or tasks that
produce a specific service or product (serve a particular
goal) for a particular customer or customers.”
A process model is defined as,
“A graphical depiction of a business process detailing the
arrangement of task interdependency, controls, and
allocated resources.”
PD = {Elements, Control-flow, Process Logic}
6. Generic Process Description (Cont..)
Four perspectives
of a business
process are used to
develop a generic
meta model.
Functional
Behavioral
Organizational
Informational
7. Generic Process Description (Cont…)
The Generic Process Description Defined:
PD = {Elements, Control-flow, Process Logic}
Where,
Elements = {start-event, activity, participant, resource, end-event}
Control flow = {operator, connection}
; connection = sequence flow, message flow, association
Process logic = {(start-event, activity, connection), (activity,
activity, connection), (participant, activity, connection),
(activity, operator, connection), (operator, activity,
connection), (activity, stop event, connection), (resource,
activity, connection), (activity, resource, connection)}
8. The Generic Data Model
The generic data
model consists of
Partial data model
Mapping specification
9. The Generic Data Model
Partial Data Model is generated from generic PD
Entities derived from elements and control flow
Relationships derived from process logic
Mapping specification entity is derived from the
generic process description and language specific
process description
It consists of elements of a generic process description,
their corresponding elements in the specific process
description and their associated construct.
10. Matching Process Languages to the Generic Metamodel
Generic Activity Diagram BPMN EPC YAWL
Metamodel
Subprocess Subprocess Sub process
Activity Activity Task Function Task
Event
Start Event Initial node Start Event Pre-activity Event Input condition on
activity
End Event Final node End event Post-activity Event Output condition
(process) on activity
Control Flow
Operator Forknode, join, AND/OR/XOR, XOR, AND, OR AND, split & join
decision, merge Complex connector
Connection Control flow, Sequence flow, Control flow No formal name of
Object flow association, message the construct
flow
Participant Pool Org. Unit, Org
Role
Resource
Informational Object Node Data objects Information
resource objects
11. Lang. Specific Process Description Defined
Using the results from the matching, we define the language specific
process description
Process Description for BPMN.
Elements = {start event, tasks, pools, dataobject, end event}
Operators = { AND, OR, XOR}
Connection = {sequence flow-ID, message flow-ID, association-ID} ;
ID is unique identifier
Process logic = {(start-event, task, connection) (task, task,
connection), (pool, task, connection) (task, operator, connection)
(operator, task, connection) (dataobject, task, connection) (task,
dataobject, connection) (task, stop event, connection) (operator,
operator, connection)}
12. Using the Generic Data Model
The use of the data model can be explained using
two use cases:
Store Process Model
Retrieve Process Model
On Storing
Identificatio Conversion Storing in
n of to PD UPR
Elements <<uses>> <<uses>>
Retrieval Conversion Conversion
from UPR to PD to PM
<<uses>> <<uses>>
Actor
On Retrieving
13. Retrieving a Process Model from the UPR
Assumption: a process is identified
Input: identified process description
Output: a process model in BPMN
Create alias for the data model
Algorithm for extracting process models is composed
of three phases:
1. Data Retrieval from a Process Description DB
2. Conversion to Process Description (BPMN)
3. Conversion to BPMN Process Model
14. Example of PD DB
Process Table Event Table
ProcessID ProcessName VersionID Language
EventID EventType
1 Eye care 1 BPMN
referral 1 Start event
2 End event
Activity Table
ActivityID ActivityName ProcessID RelatedActivityID
1 Offer a time-slot 1 2
2 Get payment 1 3
15. Example of BPMN Process Description
Process Description (BPMN)
(start-event, task, connection) = (receive a call, 1, sequenceflow-null) //
where in sequenceflow-null, sequenceflow is the type of flow null is
the label. 1 is the taskID.
(task, task, connection) = (1, 2, sequenceflow-null ); (2, 4, messageflow-
null)…
(pool, task, connection) = (patient, 2, messageflow-null ); (primaycare, 1,
messageflow-null )…
(task, operator, connection) = (5, OR-diagnose?, sequenceflow-null )
(operator, task, connection) = (OR-diagnose?, 7, sequenceflow-yes); (OR-
diagnose?, 8, sequenceflow-no)…
(task, end event, connection) = (12, A, sequenceflow-null); (10, B,
sequenceflow-null)…
16. Example of Process Model Generation
Using the draw function of the algorithm, a process model can
be developed
Step 1: Draw (startevent, task, connection)
Step 2: Draw (task, task, connection)
Step 3: Draw (Pool, task, connection)
Step 4: Draw (task, operator, connection)
Step 5: Draw (operator, task, connection)
Step 6: Draw (task, endevent, connection)
17. The Benefits and Conclusion
The model support storing of a process model
Independent of process modeling language
The automated method for storing and retrieval
facilitate users to use the model without any effort
Process model can be shared and reused without
language restriction
However only the fundamental elements are captured,
therefore, only basic understanding of a process model
can be provided.
18. Questions Raised
1. Can you describe the Completeness and Incompleteness of your
Generic Process Description?
2. Why only Curti’s framework is used to develop the business
process metamodel? Why not other frameworks?
3. How does the proposed repository differ from MIT Handbook?
4. What if BPMN 2.0 is upgraded to BPMN 2.1, how will you
deal with the changes
5. And many more