blob: 90275c660ba1ddb9ecc6dfa87b35335ed3ba3050 [file] [log] [blame]
Currently this project is under development. This document describes a general workflow and will
point out where the solution is currently incomplete and needs further work.
The following workflow has used to create the profile and generate EMF source code for the static profile:
1. The original OMG model BPMNProfile.xmi has to be copied to file BPMNProfile_modified.uml.
The copied model has to be modified to work correctly as input for EMF to be used as EMF meta model.
Also the derived properties have do be specified via OCL expressions according to the specification
in a way the Eclipse OCL project supports (via EAnnotations). Constraints that cannot be expressed
via OCL, code for derived properties has to be written in Java in the generated Java sources.
The modifications to the model are at the current state incomplete. The following chances have already been done:
The structureRef properties of the following classes have been modified.
The was typed with uml::Class and
EAnnotation(source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"){ derivation->self.base_Class }
was added to the property
* BPMNProfile::CoreStructure::Common::Events::Escalation
* BPMNProfile::CoreStructure::Common::Events::BPMNSignal
* BPMNProfile::CoreStructure::Common::Events::Error
The structureRef property of the following class were modified by adding
the EAnnotaion defined above above:
BPMNProfile::CoreStructure::Common::ItemDefinition
2. Define a file "bpmn.uml" containing a profile that merges all packages from the modified profile from the OMG standard.
Annotate the profile with the EPackage stereotype from the Ecore UML profile and set
* nsURI to http://www.omg.org/spec/BPMNProfile/20121112/BPMNProfile.xmi
* base package to "org.eclipse.upr"
* package name to "bpmn"
3. Copy that file and save under name "bpmn.profile.uml". In this file we actually replace the package merge declaration
by actual copies of the merged packages. This can be done using the standard Eclipse UML model tree editor, via main menu entry
UML Editor -> Package -> Merge ...
Unfortunately this does not work currently. There are several reasons for this. For one many UML elements that need to be merged
do not have it's "name" property set (e.g. Associations). Another problem seems to be that packages are being merged that nest each other.
4. Create a GenModel from file "bpmn.profile.uml", loading this model as a meta model.
Set copyright text on root element and add EAnnotation to root element, so that the OCL expressions get compiled to Java source code.
This was not done yet, since the package merge does not work.