In LSPS, you can create BPMN processes just the way you know them; however, LSPS provides support for GO-BPMN processes, processes with a conservative goal-based extension of BPMN.
Such a process has a goal-based unstructured layer, which allows you to separate what the process should achieve from how it should achieve it:
Let you just dive in and demonstrate the goal-oriented approach on an example.
Let you consider a process for arranging a business trip:
Once the trip is arranged, the purpose of the process has been met: this is the main goal: we identified the main goal, to arrange the trip, and the 3 sub-goals it comprises. In GO-BPMN, the goals are represented explicitly by Achieve Goals elements arranged in the required hierarchy.
In this case, the main goal will be the top Achieve Goal, that is, an Achieve Goal with no incoming "arrows" or decompositions: such goals are started, or triggered, by the process: when the process starts, the top goals start. The represent the ultimate required result.
As already defined above, to achieve the goal we must achieve multiple minor things subordinate to the main goal. The sub-goals are represented again by Achieve Goals. However, these are connected to their main goal and will be triggered all at once by the main goal: The sub-goals are executed in parallel manner.
Since we have defined what we want to achieve, let's get to the how-to-achieve part. This is defined by Plans.
Each goal can be achieved in one or multiple ways: You can book a hotel, tickets, and the airport transportation in different ways, for example, by phone or online.
Generally, it does not matter how we achieve it: Therefore, a goal can have multiple Plans. The inside of a Plan defines how to achieve the task ahead using the standard BPMN flows that perform the action.
Now, decompose the sub-goals into plans. You should end up with a hierarchy similar to the one depicted below.
Let's start by defining a dummy flow in one of the Plans.
This flow simply starts the plan execution and immediately finishes: the None Start Event produces a token which passes through the Flow to the Simple End Event, which consumes the token. In your processes, you will want to execute Tasks, split your flow with Gateways, etc.
Some Goals or the entire Process might need to run only under certain conditions, for example, if the business trip gets cancelled, it does not make any sense to continue the execution. You might even need to rollback what was already arranged.
You can deal with conditions in goal hierarchies either using a Maintain Goal or with preconditions and deactivate conditions of Achieve Goals:
Let you take a look at the execution of a goal hierarchy and its process: note that the goal hierarchy is part of the process.
When you instantiate the model, the following happens:
One process instance is created for each process: the context data is created (variables are created and have their initial values assigned).
Note that only processes that have the flags Executable and Instantiate Automatically are instantiated immediately.
Goal-oriented approach to processes makes only sense if there are multiple parallel actions required to meet the goal.
If you want to use the goal-based approach, make sure the business process analysis is performed accordingly: the "extraction" of goals requires a change in the mind set. However, this additional effort can result in more autonomoyou business processes.
When designing such a process, you should proceed as follows:
If your model does not require any of the above, consider using plain BPMN.
Proceed to Simple Model.