My friend deals with telecom processes. There is a specificity that I covered before: a lot of coordination between systems and relatively little human participation.
Anyway, he was interested in BPMN and wanted to assess it with a test case. Here is the case as I’ve got it; if you found it incomplete or contradictory, that’s fine and normal for a real-world cases.
A case based on the Star Wars: two space cruisers are on alert to repel a possible aliens attack.
a) Ship paths are plotted centrally and synchronized on the basis of data obtained in real time, aiming at maximum security and full dangerous zones coverage.
b) The appearance of an alien object on the radar is recorded and replicated to the mate ship’s tracking system - this way each target receives its own individual id. When it’s lost by both ships the target obtains lost status - there is no means to differentiate a new target from a target that once has been tracked and then lost.
c) The system that assigns targets to one cruiser or another is centralized and works on the basis of priorities (no matter which ones). The system may transfer a target from one cruiser to another if priorities have changed - that is, each target is marked with 1 or 2, indicating to whom it is assigned at any given time.
d) A command to open fire is displayed on a touch screen display and the operator makes a decision by pressing the button. Even at this moment the system may reassign the target to another cruiser.
e) If the target is hit then the workflow ends, otherwise the failed attempt is logged and the process continues. It’s assumed for simplicity that the laser weapon is used and the outcome of a shot is determine promptly enough.
It’s assumed that the whole process runs continuously.
Rather unusual domain for BPMN, right? So the questions arise:
- Can the task be solved with a help of BPMN?
- Is it worth it?
- Well, the solution itself, if any.
Hope you found the case interesting; I was intrigued.
My version of the BPMN diagram (click to open in a new window):
- The tracking system receives discrete signals - dots on a radar screen. Each dot is compared to the targets database. If dot coordinates and characteristics are close enough to those of one of known targets then it’s assumed to be this target, in this case a message containing coordinates is sent to the target tracking process. Otherwise a message produces a new target tracking instance.
- Target tracking process awaits either of three events: target coordinates message receive, target destruction message receive and timeout - if there were no detection nor destruction during given timeframe then it’s assumed that the target is lost and the process ends.
- Fire control system analyzes the information about all targets in continuous loop. Targets are assigned to either first or second cruiser and some targets are decided to be attacked. The system may also decide to cancel an attack or reassign target to another cruiser - in the latter case two commands are issued: “cancel fire” to original cruiser and “fire” to the new one.
- “Fire” message instantiates a new “Shot” process instance. Operator must confirm opening fire - if he does, the cruiser shoots and if it hits the target a message is sent to the target tracking processes which ends that process. As long as the operator makes the decision the system may decide that the target isn’t a threat anymore or that it should be reassigned to another cruiser. In either cases “cancel fire” message interrupts the “Confirm Shot” task and ends the “Shot” process.
Initially I wasn’t sure that it’s doable. But at the end of the day the range of tasks that can be solved by BPMN increased significantly in my view.
The key design question was - how many systems and how many processes are there. Once it was determined, the diagram was drawn “by itself”.
As you can see there is no assumption about the number of cruisers. “Two cruisers” mentioned in the task turned out to be a trap: it’s actually easier to design for N case. There also may be any number of tracking systems and weapons - the diagram will work if there are several radars and guns per cruiser, some of them damaged or out of ammo. The fire control system is single and extending it to N case would be a non-trivial task.
There may be aircraft carriers instead of space cruisers and recon planes they launch as target detectors.