Skip to content

timKraeuter/TERMGRAPH-2022

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TERMGRAPH-2022

The extended abstract of this paper has been published as a preprint on EasyChair. The follow up paper was published at ICGT-2023.

BPMN Semantics formalization

The following tables depict how graph transformation rules for BPMN-FlowNodes are generated. It depicts BPMN-FlowNodes on the left and the corresponding rule generation template on the right.

Process instantiation and termination

Rule generation templates for start and end events

Activities

Rule generation templates for activities and subprocesses

Gateways

Rule generation templates for gateways

Events

Rule generation templates for message throw events Rule generation templates for message catch events and receive tasks Rule generation templates for link events

Process termination

Process termination is implemented by the following graph transformation rule in Groove:

Atomic property AllTerminated implemented in Groove.

The rule is called Terminate and is automatically added during graph grammar generation. The dashed red borders mark parts of negative application conditions, grey parts remain untouched, blue parts are deleted and green parts are added.

Model Checking BPMN

BPMN-specific properties

BPMN-specific properties currently have to be checked in Groove due to an unresolved bug and unfinished implementation.

  • Make sure Java is installed on your machine to run Groove (tested with Java version 1.8.0_301)
  • Clone/download this repository.
  • Start Groove by running the following command in this directory:
java -jar artifacts\groove-5_8_1\bin\Simulator.jar
  • Load a graph grammar. You can generate one using the tool below and unzip it on your local machine.
  • Run LTL verification by copying one of the desired properties (listed below) and right-clicking in the LTS-Simulation tab. Select Verify < Check LTL property (full state space) and paste the copied LTL property.

check ltl property

Safeness

The atomic property Unsafe is implemented by the following graph condition in Groove:

Atomic property Unsafe implemented in Groove.

The property matches whenever two tokens of one process snapshot have the same position (but have different identities).

Verify the following LTL property in Groove for safeness:

G(!Unsafe)

Option to complete

The atomic property AllTerminated is implemented by the following graph condition in Groove:

Atomic property AllTerminated implemented in Groove.

The property matches whenever there is no process snapshot in the state running. All process snapshots are terminated, i.e., have no tokens.

Verify the following LTL property in Groove for option to complete:

F(G(AllTerminated))

Custom properties

Defining atomic propositions directly in the tool by distributing tokens over the process model has not been implemented yet. Thus, for the time being, custom properties have to be checked in Groove by defining atomic propositions there.

Adding this feature is planned for the full version of the paper due to the current time constraints.

Implementation

Tool

The tool is available online here.

Atomic property Unsafe implemented in Groove.

The sourcecode of the tool is available here and instructions how to run it locally on your machine can be found here.

Test suite

The test classes of the testsuite can be found in the subproject generator here. The BPMN files (see bpmnModelsSemanticsTest) and generated graph grammars from the BPMN models can be found here.

BPMN feature Test class Test case
Exclusive event-based gateway instantiation BPMNToGrooveGatewayTest Exclusive Event Based Gateway - Instantiate
Receive task instantiation BPMNToGrooveTaskTest Instantiate Receive Task
Activity BPMNToGrooveTaskTest Sequential Tasks
Implicit Parallel Gateway
Implicit Exclusive Gateway
Send/Receive Message Tasks
Subprocess BPMNToGrooveCallActivityTest Call activity - Simple
Call activity - Implicit exclusive and parallel gateway
Call activity - Complex
Call activity - No start event
Call activity - Terminate end event
Gateway BPMNToGrooveGatewayTest Parallel Gateway
Parallel Gateway - Complex
Exclusive Gateway
Inclusive Gateway
Inclusive Gateway - Complex
Exclusive Event Based Gateway
Events BPMNToGrooveEventsTest Message events
Two Incoming Message Flows
Message Events without Message Flows
Two End Events
Terminate End Event
Link Event
Signal events
Signal events - Multi Activation
Signal events - Multi Activation - Same Process
Intermediate Throw Event
Boundary Events BPMNToGrooveBoundaryEventsTest Subprocess - Interrupting Boundary Events
Subprocess - Non-Interrupting Boundary Events
Task - Interrupting Boundary Events
Task - Non-Interrupting Boundary Events
Event Sub Process BPMNToGrooveEventSubProcessTest Event sub process - Interrupting
Event sub process - Non-interrupting

Further Groove resources:

Feel free to contact me for further information.

About

Sources for my extended abstract at TERMGRAPH-2022

Topics

Resources

License

Stars

Watchers

Forks

Languages