The document discusses validation of BPMN models during interchange between modeling tools. It describes using pixel-based image diffs, DI-based diffs, XML validation, and semantic model validation using meta models to check for differences in imported and exported models. Common interchange problems mentioned include missing or changed element IDs, incorrect ordering of DI elements, and semantic errors like pools referencing processes.
2. Agenda
1. Creating Reference Models
2. Validation Process
3. Diagram Validation
4. Semantic Model Validation
1. XML
2. BPMN Meta Model
5. Common Interchang Problems
3. Creating Reference Models
Which modeling tool to use?
Requirements:
−PNG export
- Symbols close to the BPMN Spec
- No colors
- No shadows
- No 3D icons
−XML export
- Schema-valid
- Conform to BPMN 2.0 Spec
−API for automation of hundreds of test cases
23. Pixel-based Diff: Discussion
Pros:
−Spots even slightest differences (could detect encoding problems)
−Open Source tools available: ImageMagic, PerceptualDiff
Cons:
−Too pedantic (we dont want to make all tools look exactly the same)
- Could be solved by re-import to reference modeling tool
−Bounding box detection and cropping needed
- Open Source implementation of algorithm available: camunda fox
24. DI-based Diff
Normalize DI and compare positions and dimensions
Open Source implementation of algorithm available: camunda fox
25. DI-based Diff
Can also be used as an overlay to highlight differences in a model
26. XML Validation
1. XML Schema validation
2. Check if elements still are present & have same IDs and attributes
3. XML Diff using tools like XMLUnit for Java
−One defines rules of what is considered equal in XML
through so-called Difference Listeners
27. Semantic Model Validation
1. Load process with EMF meta model provided by the BPMN Spec
- Open Source implementation available: camunda fox quickstart
2. Meta Model Diff
- Open Source implementation available: Eclipse EMF Compare
- Any difference reported is likely to be an interchange problem
29. Common Interchange Problems
Element IDs not preserved
Ordering of DI elements
Node center instead of upper left corner
Unicode Support
Wrong semantic element referenced in DI
Pool references Process
Data Store & Data Object instead of References