There are various process modelling techniques, explained in research literatures. But here are three of the process models that my research is based upon at the moment.
- Artifact based (or State based) models
- Activity based (or Flow based) models
- Rule based models
Two examples for artifact based modelling techniques are state machines and state charts. This modelling technique, take an artifact (eg.,- a Google Doc, Software Bug or AWS virtual machine) and specify the states of that artifact go through (eg.,- For a Software Bug, it can haves states like "created", "assigned", "resolved" and "tested").
Advantages of Artifact based models are declarative and specification oriented language can be used to describe a process. This modelling technique enables the user to describe a high level description of the process rather specifying nitty-gritty details on how the artifact go through.
Activity based (or Flow based) models
Two examples for activity based modelling techniques are BPMN and BPEL. This model is consisted of a set of activities and the activities are associated with other activities to generate a flow (eg - Bank loan approval process can have a set of activities like "Open up a loan request form based on client request", "get the approval from manager" and "send the response of approval back to the client"). This technique provides a procedural language to specify what the execution runtime of the model should do. So each activity represent some task and tasks are linked together, to represent the execution order among such tasks.
Rule based models
Two examples for rule based modelling techniques are event-condition-action rules and javascript. This technique models a process via a set of rules (eg.,- For a AWS-EC2 VM, there can be a process with a set of ECA rules like "if VM utilisation > 95%, then increase CPU power of that VM"). Typically activity based models and rule based models can be interchanged. That means, a process escribed in a activity based model also can be described using a rule based model as both techniques provide a procedural language to specify what the execution runtime of the model should do. The main difference between the activity based models and rule based models is, rule based models don't describe links among each rules. But the activity based models explicitly describe the links among each activities. So the execution engine of the rule based model has to infer (or generate) the links between rules before executing the process. One advantage of rule based modelling techniques is that it is easy to model a process. But it has consistency issues as some execution semantics (like execution order or rules) are not explicitly specified.