BPMN Inspector is a RESTful web application that allows users to upload a set of BPMN models, optionally filter them, and then explore their features by performing a set of analyses.
BPMN Inspector is made available through a RESTful web application that allows users to upload a set of BPMN models, optionally pre-filter them, and then explore their features by performing a set of quantitative and qualitative analyses.
The BPMN models file can be uploaded in formats such as .bpmn, .xml, or a .zip. In the case of .zip format, the contents are extracted, and the extensions are examined to discard any types of file that do not conform to the .bpmn or .xml formats. After the uploading phase, is shown a preview page of the list of each model belonging to the collection. Each model presents a set of general information such as name, model type (Process Collaboration, Choreography, or Conversation), whether the model is valid, whether it is already in the list (duplicated), whether the label's model is in the English language and the file size. In this preview window, it is possible to filter the models and download them into a .zip file, or inspect the collection by optionally applying some filters. The collection can be filtered considering both or one of two aspects: model features or model type. Considering the model's features, they can be filtered by: (i) deleting duplicate models; (ii) deleting syntactically invalid models; and (iii) deleting models whose labels are in a language different than English. Regarding the model's type, they can be filtered by considering Process Collaboration, Choreography, and Conversation models differently.
This is the main phase of the application and consists of a set of analyses that are performed on the collection of BPMN models previously uploaded. The inspection process involves four main analyses:
- BPMN Element Usage;
- BPMN Element Combined Usage;
- BPMN Syntactic Validation;
- BPMN Good Modeling Practices.
This analysis focuses on the syntactic dimension of BPMN, investigating the usage of BPMN elements in the collection of models uploaded. Each model belonging to the collection is analyzed and all elements of the notation it contains are counted, generating a .csv report containing this information. The analysis of the report allows for a dynamic generation of graphs. The first is generated by extracting the model size, i.e., the total number of elements used to design each model. Then, is generated the practical complexity graph, which refers to the number of different types of elements used for designing a model. Finally, two additional graphs are generated: the former for the number of occurrences of each element of the notation, and the latter for the distribution of BPMN elements i.e., the total number of models containing a specific element.
This analysis aims to detect possible relations between BPMN elements. BPMN Inspector analyzes pairs and then groups of BPMN elements to find those most frequently used. To gather information about possible combinations, the tool relies on a Python script that calculates the Pearson correlation coefficient ρ between each pair of elements. For each pair, the script evaluates a correlation index from -1 to 1, where 0 is no correlation, 1 corresponds to elements designed always together, and −1 to alternatively used elements. Then the tool targeted groups of elements. It starts with the pair of elements that are mostly used in combination and then proceeds by adding the element most frequently used with that combination, and so on. The tool then automatically generates sets of elements and calculates the percentage of occurrence in the model collection. In addition, to represent these combinations, a funnel graph is automatically generated. Finally, two reports are generated: one with the confusion matrix containing the Pearson coefficient values of each pair of elements, and the second one containing the percentage values of the most used sets of elements in the collection.
This analysis focuses on handling the syntactic violations that can occur in the BPMN models. To check whether the collected models include syntactic errors, BPMN Inspector compares each model with the standard BPMN XML schema provided by the OMG group. To do such an analysis, we developed a BPMN schema validator. The validator analyzes the entire collection and detects whether a model is syntactically valid or not. It generates a .csv report containing the list of the models analyzed and if invalid, also an array of the errors related to the model. In the web application, is automatically generated a histogram chart displays the type of errors and their count, along with a table that includes the error code and a link to the XMLdation wiki site providing a detailed description of the error.
Finally, the last analysis, investigates if the model's collection adheres to a set of established good modeling practices defined by this work. To do that, BPMN inspector integrates a tool called BEBoP (understandaBility vErifier for Business Process models). BEBoP is a tool that verifies the understandability of business process models, ensuring that they have been designed according to established good modeling practices. It automatically checks whether a model adheres to these practices. BPMN Inspector performs such an analysis for each model considering a set of forty good modeling practices and generates a .csv report containing boolean values to evaluate the model's adherence to each guideline. In the web application, a radar graph is generated to indicate the violation of good modeling practices in terms of percentage, considering the total number of models in the collection.
A video tutorial on its usage is available by clicking the following link: Tutorial.
- Node 16.14 or later;
- JDK 19 or later (Be sure that you have set the JAVA_HOME environment variable pointing to version 19 of the Java JDK);
- Python 3.9.X or higher.
There are several ways to run BPMN Inspector:
- Clone this repository and run the tool in local by executing the following comand:
.\mvnw
Once launched, the application will be available at http://localhost:8080.
- (Recomended!) Pull the docker image "Dockerfile" present in the folder of the project or available online at DockerHub;
2.1 Generate a Docker image locally
- Generate the .jar file for building the image
mvn clean package -Pproduction
- Creating the Docker image from the main folder of the project by executing the following comand:
docker build -t bpmn-inspector-image .
- Run the Docker container from the main folder of the project by executing the following comand:
docker run -p 8080:8080 bpmn-inspector
Once launched, the application will be available at http://localhost:8080.
- Import the project into an IDE and run the class "Application.java"
To refers to BPMN Inspector you can cite the following research paper:
- Compagnucci, I., Corradini, F., Fornari, F., & Re, B. (2023). BPMN Inspector: A Tool for Extracting Features from BPMN Models. In BPM (Demos / Resources Forum) 2023: 122-126. BPM 2023 Best Paper Award of the Demonstrations and Resources Forum
To refers to BPMN Inspector you can cite the following research paper on which the tool was adopted:
-
Compagnucci, I., Corradini, F., Fornari, F., & Re, B. (2024). A Study on the Usage of the BPMN Notation for Designing Process Collaboration, Choreography, and Conversation Models. In Business & Information Systems Engineering (Vol. 66, pp. 43-66). Springer. on the special issue "The Impact of the Business Process Model and Notation."
-
Compagnucci, I., Corradini, F., Fornari, F., & Re, B. (2021). Trends on the Usage of BPMN 2.0 from Publicly Available Repositories. In International Conference on Perspectives in Business Informatics Research, LNBIP (Vol. 430, pp. 84–99). Springer.
BPMN Inspector is under the MIT license.