Skip to content
/ bpmn Public

Business Process Model and Notation (BPMN)

Notifications You must be signed in to change notification settings

MontiCore/bpmn

Repository files navigation

Business Process Model and Notation (BPMN)

The Business Process Model and Notation (BPMN) is a standardized language for modeling business processes and workflows. This project implements the Workflow DSL, a textual notation for process models based on the BPMN 2.0.2 language specification and developed with the MontiCore language workbench. The project also provides comprehensive tooling for working with the language.

A detailed documentation for language engineers using or extending the Workflow DSL is located here.

Build the Project

  • Install Gradle 7.5
  • Install Java 11
  • Build with command gradle build

BPMN Tool

After building the project, a CLI tool can be found here.

Actions and Parameters of the Tool

The tool provides quite a number of executable actions and configurable parameters. The possible options are:

Option Explanation
-h,--help Prints this help dialog.
-i,--input <file> Reads the source file (mandatory) and parses the contents.
-path <dirlist> Sets the artifact path for imported symbols, space separated (default is: .).
-pp,--prettyprint <file> Prints the AST to stdout or the specified file (optional).
-s,--symboltable <file> Serializes the symbol table of the given artifact.
-v,--version Prints version information.
-ref,--reference <file> Parses the file as a reference process model and checks if the the input process model specified by -i is conform to it.
-m,--map <string> Specify the names of stereotypes that are used as incarnation mappings in the concrete model. Default : 'incarnates'

Small Example Workflow Model

The following example model PaperAuthoring illustrates the textual syntax of the Workflow DSL:

process PaperAuthoring {

  start event Start;
  end event Done;

  task Introduction;
  task Main;
  task Conclusion;
  task Draft;
  task Research;
  task Review;

  merge xor StartIteration;
  split xor EndIteration;
  split and SplitWork;
  merge and MergeWork;


  Start -> Research -> Draft -> StartIteration -> SplitWork -> Introduction -> MergeWork;
                                                 SplitWork -> Main -> MergeWork;
                                                 SplitWork -> Conclusion -> MergeWork -> Review -> EndIteration -> Done;
               EndIteration -> StartIteration;


}

This example model describes the process of writing a scientific paper:

  • The process has one start event Start and one end event Done
  • It defines the tasks Introduction, Main, Conclusion, Draft, Research, and Review
  • The Workflow begins with the task Research followed by Draft.
  • Then comes the split and gateway after which the tasks Introduction, Main, and Conclusion are executed in parallel
  • These three tasks are followed up by the merge and gateway.
  • Next up is the task Review.
  • Finally, a split xor gateway allows us to choose between redoing the tasks Introduction, Main, and Conclusion or end the process.

Step 1: Parsing and printing the model

You can parse the example model PaperAuthoring and then print it to the console using the following command:

  java -jar WorkflowCLI/target/libs/BPMN.jar -i doc/PaperAuthoring.wfm -pp

Step 2: Storing the symbol table

The symbols defined in the example model PaperAuthoring can be serialized and stored in a .wfsym file using the following command:

  java -jar WorkflowCLI/target/libs/BPMN.jar -i doc/PaperAuthoring.wfm -s doc/PaperAuthoring.wfsym

Step 3: Conformance Checking to Reference Models

The example model PaperAuthoring can be viewed as a reference model for writing scientific publications [KRS+24]. We can check whether a concrete process model conforms to it using the option -r.

The process model Thesis is a conforming model. The check can be executed as follows:

  java -jar WorkflowCLI/target/libs/BPMN.jar -i doc/Thesis.wfm -ref doc/PaperAuthoring.wfm

The process model AntiPatternMerge is, however, not conform, as it closes a parallel executed branches of tasks with a merge xor gateway. When executing the conformance check, the algorithm finds a sequence of tasks via backtracking that are not permitted by PaperAuthoring:

  java -jar WorkflowCLI/target/libs/BPMN.jar -i doc/AntiPatternMerge.wfm -ref doc/PaperAuthoring.wfm

Step 4: Loading symbols from a class diagram

More complex Workflow models, such as the OrderToDeliveryWorkflow described here. may import symbols from class diagrams in order to utilize custom data types. To load the serialized symbol table of the class diagram OrderToDelivery, the artifact path has to be set to doc/ using the option -path:

  java -jar WorkflowCLI/target/libs/BPMN.jar -i doc/de/monticore/bpmn/examples/OrderToDeliveryWorkflow.wfm -path doc/ -pp

About

Business Process Model and Notation (BPMN)

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 10

Languages