项目作者: uniba-dsg

项目描述 :
Static analysis for BPMN 2.0 process models.
高级语言: Java
项目地址: git://github.com/uniba-dsg/BPMNspector.git
创建时间: 2015-01-29T14:45:25Z
项目社区:https://github.com/uniba-dsg/BPMNspector

开源协议:GNU Lesser General Public License v3.0

下载


" class="reference-link">BPMNspector

Static analysis for BPMN 2.0 process models

Build Status Dependency Status Coverage Status Download

What is it? || Description

Creating valid, standard compliant BPMN 2.0 process models is not trivial. Even when state-of-art modeling tools are used, model often violate some of the constraints stated in the standard document.

BPMNspector checks single files - or complete directories - of BPMN files and reports violations of BPMN 2.0 constraints.

BPMNspector currently supports:

  • Schema validation: Ensures correctness regarding the official OMG XSD files
  • Reference Checking: Ensures that all used references exist and that only valid types are used
  • Check of Advanced Constraints:
    • 44 (of 50) constraints defined for the “descriptive conformance sub class” are checked
    • all additional “analytic conformance sub class” constraints are checked
    • 45 (of 49) constraints for the “common executable conformance sub class” are checked
    • 8 (of 12) further constraints for “full conformance sub class” are checked
  • Support of imports: (resolvable) imports of processes, WSDL and XSD files are also checked
  • Automated fixes of various violations: Fix found violations automatically

This software is licensed under the LGPL Version 3 Open Source License.

For further information visit http://www.uni-bamberg.de/pi/bpmn-constraints.

What do I need? || Requirements

As BPMNspector uses gradlew only a Java 8 installation is needed - download and configuration of needed libraries is performed on the fly.

  • JDK 1.8.0 (or higher)
    • JAVA_HOME should point to the jdk directory
    • PATH should include JAVA_HOME/bin

How do I use BPMNspector? || Usage

To use BPMNspector simply run the start script:

  1. $ BPMNspector fileToValidate.bpmn

After completion a HTML report will be opened automatically - all reports are stored in {BPMNspector.home}/reports.

Available options are listed by calling:

  1. $ BPMNspector -h

or here:

  1. usage: BPMNspector <file or directory> [-c <[opt1[,opt2]...>] [-d] [-f
  2. <NONE | AUTO | INTERACTIVE>] [-h] [-o] [-r <ALL | XML | HTML |
  3. NONE>]
  4. Options:
  5. -c,--checks <[opt1[,opt2]...> defines which checks should be
  6. performed.
  7. Allowed values:
  8. EXT - checks conformance to EXT rules
  9. ALL - performs all checks (default)
  10. REF - checks the correctness of
  11. references
  12. XSD - performs an XML schema validation
  13. -d,--debug run BPMNspector in debug mode
  14. -f <NONE | AUTO | INTERACTIVE> configures automated fixing options.
  15. Allowed values:
  16. AUTO - all fixable violations will be
  17. fixed automatically
  18. NONE - No fixes should be performed
  19. (default)
  20. INTERACTIVE - ask for each violation
  21. -h,--help prints this usage information
  22. -o,--open open the report file upon completion
  23. -r <ALL | XML | HTML | NONE> defines which report type should be
  24. generated.
  25. Allowed values:
  26. ALL - create all report types
  27. XML - create XML reports
  28. HTML - create HTML reports (default)
  29. NONE - No report files should be created
  30. Examples:
  31. BPMNspector myfile.bpmn
  32. BPMNspector c:\absolute\path\to\folder -c REF -d
  33. BPMNspector c:\absolute\path\to\file.bpmn -o -r HTML

How can I use BPMNspector as a developer? || Development

Run…

  1. $ gradlew idea
  2. # or
  3. $ gradlew eclipse

… to create project files for your favorite IDE.

Structure of Software/Repository

The repository is structured in the following way:

  1. |- gradle: contains the gradle wapper
  2. |- lib: all libs required for the tool which aren't available via public repositories
  3. |- src
  4. |-- main
  5. |--- java: contains all java classes
  6. |---- api: contains the API files needed for integration in other tools
  7. |---- de.uniba.dsg.bpmnspector: implementation of BPMNspector
  8. |--- resources: contains all needed resource files (e.g., schema validation files)
  9. |-- test
  10. |--- java: contains the sources of all JUnit test classes
  11. |--- resources: contains all needed test resource files

Technical Documentation / Javadoc

Run…

  1. $ gradlew javadoc

… to generate the Javadoc documentation.

Licensing

LGPL Version 3: http://www.gnu.org/licenses/lgpl-3.0.html

Authors

Matthias Geiger, Philipp Neugebauer and Andreas Vorndran

BPMNspector is partly based on the practical part of two Bachelor theses:

  • Andreas has developed the reference checking mechanism de.uniba.dsg.bpmnspector.refcheck - this part has already been published here
  • Philipp created the Schematron validation part of BPMNspector de.uniba.dsg.bpmnspector.schematron - the standalone version is SchematronBPMNValidator

Found a bug?

Report your issue here at GitHub!

Contribute?

Just Fork and send a Pull request.