Selected work · 08 / 08Business process modeling

BPMN & Petri Nets: Internship Process

From business requirements to coordinated workflows with documented formal correctness: an internship lifecycle modeled in BPMN, translated into Petri nets for three roles, extended with a new policy, and verified sound before and after the change.

Token game, live. Click to replay.
placetransitiontokenfiring
3participants coordinated by messages
9 → 15message flows after the extension
44 → 57places in the composed Petri net
0dead transitions in both versions
2 / 2composed systems verified sound
01 / The process

Three roles, one internship.

The workflow follows an internship from the first interview to the final employment decision, across three participants who only coordinate through messages:

Supervisor

Conducts the interview, assigns the intern to a work group, receives the final evaluation and decides whether to offer a job contract.

Intern

Contacts the project leader, receives activities and deadlines, performs the work and submits reports.

Project leader

Matches activities to the intern's competencies, sets deadlines, evaluates reports and manages the remaining internship time.

Nine message flows

Connect the three pools in the baseline collaboration, with competence-checking loops, repeated assignments and deadline signals.

BPMN collaboration diagram with three pools, Supervisor, Trainee and Project Leader, connected by dashed message flows
The baseline BPMN collaboration, drawn in Camunda Modeler. Open it full size to read every task and message flow.
02 / Petri nets

From diagrams to formal models.

BPMN is great for people; verification needs a formal model. I translated the process into three views: the BPMN collaboration, one workflow net per role, and a composed system where communication places connect the roles and a final synchronization transition waits for all three to finish before marking the common end. Global completion becomes an explicit modeling decision.

Workflow netBaseline: places / transitions / arcsExtended: places / transitions / arcs
Supervisor6 / 6 / 129 / 10 / 20
Intern11 / 11 / 2214 / 15 / 30
Project leader20 / 22 / 4424 / 28 / 56
Composed system44 / 39 / 9657 / 50 / 128

Counts from the WoPeD net statistics. The demo at the top plays the baseline composed system, read directly from its PNML file.

03 / The extension

Coordinating a restart.

The variant adds a business decision: after the final evaluation, the Supervisor can extend the internship. That one decision needs a coordination protocol:

  1. The Supervisor announces the extension to both the Intern and the Project leader.
  2. Both acknowledge that they are ready to continue.
  3. The composed net synchronizes the Supervisor's continuation with both acknowledgements: the restart transition needs three input places at once.
  4. The internship resumes from the work-group assignment.

The cost is visible in the models: the BPMN collaboration grows from 9 to 15 message flows, the composed net from 44 to 57 places and from 39 to 50 transitions.

04 / Verification

Sound, before and after.

A workflow net is sound when three things hold: every reachable state can still reach the end (option to complete), reaching the end leaves no stray tokens (proper completion), and every task can actually happen (no dead transitions). The analysis was run in WoPeD on every net, together with coverability graphs and S-component coverage for the single roles.

Composed systemBaselineExtended
Soundnesspassedpassed
Source / sink places1 / 11 / 1
Unbounded places00
Dead transitions00
Non-live transitions00
Free-choice violation groups13
PT-handles / TP-handles16 / 1540 / 24

The role nets on their own are free-choice and well-structured. Composing them adds structural dependencies: the integrated systems are sound but not free-choice and not fully well-structured. Telling these two kinds of property apart, what the model guarantees and what its shape looks like, is the point of the analysis.

Checked again for this page. Playing the baseline composed net 3,000 times with random choices, every run ended with exactly one token in END: the same proper completion the analysis certifies.

From requirements to proofs.

The two BPMN models and all eight Petri nets are on GitHub in editable form, with the report that connects the business scenario to the formal analysis.

Next case study · 01 / 08High-Performance Mehrotra Lasso Solver