an open modeling infrastructure - omg · 2009-05-28 · tools supporting the modeling...
TRANSCRIPT
![Page 1: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/1.jpg)
An Open Modeling Infrastructure
Olaf KathMarc Born
![Page 2: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/2.jpg)
Agenda
• Architecture Guidelines
• Users View
• Medini Toolset
• Model Transformations
• Conclusions
![Page 3: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/3.jpg)
Our Vision on MDA: A Modeling Infrastructure
open to a variety of modeling and model transformation techniques
and open to different domains
![Page 4: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/4.jpg)
Architecture Guidelines
• All modeling instruments and principles are defined by models themselves, model databases are derived
– We use the Meta Object Facility (MOF) for this purpose
• Based on these metamodels, domain specific visual modeling languages are defined
– We use different techniques here, e.g. UML based languages, textual languages, new graphical languages
• Also based on the metamodels, further processes like code generation or model transformations are defined
– We keep notation and these pro esses separate
![Page 5: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/5.jpg)
Architecture Guidelines:Concepts, Notations and Mappings
definitiondefinition ofofmodelingmodeling conceptsconcepts
notationnotationguideguide
forfor conceptsconcepts
definemappingbetween
concepts andnotation
modelmodeltransformatorstransformators
oror codecodegeneratorsgenerators
define modeltransformation
rules
modelmodeldatabasedatabase
automaticderivationof modeldatabases
apply notationguides to express
concepts inmodels
apply transformatorsfor automatic
system construction
modelrepresentation
![Page 6: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/6.jpg)
The Big Picture
PIMModel
Database
Tools PIM Tools PIM ModelingModeling
PSM ModelDatabase
Tools forTools forPSM PSM
ModelingModeling
Classifier
** Rules in English **[9] If the class is not abstract, an IDL component definition is being generated in the same module as the abstract interface with the name concatenate ( format_1 ( <class identifier> ), "Component" ). The component is declared to support the generated abstract interface for the class.
[11] If the class is not abstract, a home interface declaration for the component with the name concatenate ( format_1 ( <class identifier> ), "Home" ) is being generated, managing the component generated following Rule (9). This home interface contains a factory operation to create a component without parameters with the name concatenate ( "create_", format_2 ( <class identifier> ) ).
** Constraints in OCL **[9,11] if not self.isAbstract then
self.c_target->size() = 1 and self.home_target->size() = 1 andself.c_target.identifier = concat( format_1( self.identifier ), "Component") andself.home_target.identifier = concat( format_1( self.identifier ), "Home") andself.container.target = self.c_target.definedIn andself.container.target = self.home_target.definedIn andself.home_target.manages = self.c_target andself.c_target.supports = self.target
elseself.c_target->size() = 0 and self.home_target->size() = 1 andClass.allInstances()->forAll( c | not c.isAbstract implies
c = self.home_target.factory andc.identifier = concat( "create_", format_2(self.identifier) ) )
endif
OperationDef(from IDL Base)
InterfaceDef(from IDL Base)
Class
FactoryDef(from ComponentIDL)
ComponentDef(from ComponentIDL)
0..n
0..n
+supports 0..n
+components0..n
0..11 +c_target
0..1
+source
1HomeDef
(from ComponentIDL)
0...
1
+home_target0...
+source1
+factory
0..n
1+home
+component0..n
1
modelmodeltransformators transformators
ProgrammingProgrammingEnvironmentEnvironment
![Page 7: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/7.jpg)
Users View:PIM Modeling using EDOC
EDOCModel
Database
Rational RoseRational Rosebased Tool forbased Tool forEDOC PIM EDOC PIM ModelingModeling
CCM/OSPModel
Database
Rational RoseRational Rosebased Tool forbased Tool for
OSP/CCM PSM ModelingModeling
modellmodelltransformators transformators
eclipseeclipseProgrammingProgrammingEnvironmentEnvironment
![Page 8: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/8.jpg)
Users View:PSM Refinement using Modeling Tool
EDOCModel
Database
Rational RoseRational Rosebased Tool forbased Tool forEDOC PIM EDOC PIM ModelingModeling
OSP/CCMModel
Database
Rational RoseRational Rosebased Tool forbased Tool for
OSP/CCM PSM ModelingModeling
modellmodelltransformators transformators
eclipseeclipseProgrammingProgrammingEnvironmentEnvironment
![Page 9: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/9.jpg)
Users View:Generation of Java Code out of the PSM
EDOCModel
Database
Rational RoseRational Rosebased Tool forbased Tool forEDOC PIM EDOC PIM ModelingModeling
OSP/CCMModel
Database
Rational RoseRational Rosebased Tool forbased Tool forOSP/CCM PSM
ModelingModeling
modellmodelltransformators transformators
eclipseeclipseProgrammingProgrammingEnvironmentEnvironment
![Page 10: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/10.jpg)
EDOC<<metamodel>>
Tools supporting the Modeling Infrastructure
PIMModel
Database
PSMModel
Database
Automatically generate model databases out of the metamodels, usingIKVs medini tool chain
These model databasessupport mechanisms for• transactions• model changenotifications• XML import/export• ...
enago OSP<<metamodel>>
/CCM
![Page 11: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/11.jpg)
Applying the Medini tool set
EDOC PIMModel
Database
Tools forTools forEDOC PIM EDOC PIM ModelingModeling
OSP/CCMPSM ModelDatabase
Tools forTools forOSPOSP/CCM/CCM PSM PSM ModelingModeling
Classifier
** Rules in English **[9] If the class is not abstract, an IDL component definition is being generated in the same module as the abstract interface with the name concatenate ( format_1 ( <class identifier> ), "Component" ). The component is declared to support the generated abstract interface for the class.
[11] If the class is not abstract, a home interface declaration for the component with the name concatenate ( format_1 ( <class identifier> ), "Home" ) is being generated, managing the component generated following Rule (9). This home interface contains a factory operation to create a component without parameters with the name concatenate ( "create_", format_2 ( <class identifier> ) ).
** Constraints in OCL **[9,11] if not self.isAbstract then
self.c_target->size() = 1 and self.home_target->size() = 1 andself.c_target.identifier = concat( format_1( self.identifier ), "Component") andself.home_target.identifier = concat( format_1( self.identifier ), "Home") andself.container.target = self.c_target.definedIn andself.container.target = self.home_target.definedIn andself.home_target.manages = self.c_target andself.c_target.supports = self.target
elseself.c_target->size() = 0 and self.home_target->size() = 1 andClass.allInstances()->forAll( c | not c.isAbstract implies
c = self.home_target.factory andc.identifier = concat( "create_", format_2(self.identifier) ) )
endif
OperationDef(from IDL Base)
InterfaceDef(from IDL Base)
Class
FactoryDef(from ComponentIDL)
ComponentDef(from ComponentIDL)
0..n
0..n
+supports 0..n
+components0..n
0..11 +c_target
0..1
+source
1HomeDef
(from ComponentIDL)
0...
1
+home_target0...
+source1
+factory
0..n
1+home
+component0..n
1
modelmodeltransformators transformators
eclipseeclipseProgrammingProgrammingEnvironmentEnvironment
![Page 12: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/12.jpg)
Infrastructure: Generation of Repositories
![Page 13: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/13.jpg)
Generation of the EDOC Repository
Composition ComponentUsagename : String
1 0..n
+owner
1
+uses
0..nComponentUsages
ProcessComponentgranularity : ECA::CCA::GranularityKindisPersistent : BooleanprimitiveKind : StringprimitiveSpec : String
IsComposition
0..n
1
+usage 0..n
+uses
1
Uses// IDL
interface ProcessComponentDef: ProcessComponentDefClass,
PortOwnerDef,CompositionDef,UsageContextDef,ECA::ModelManagement::PackageDef
{ECA::CCA::GranularityKindDef granularity ()
raises ( Reflective::MofError );void set_granularity ( in
ECA::CCA::GranularityKindDef new_value) raises ( Reflective::MofError );
boolean is_persistent ( ) raises ( Reflective::MofError );
// ...};
// IDL
interface ProcessComponentDef: ProcessComponentDefClass,
PortOwnerDef,CompositionDef,UsageContextDef,ECA::ModelManagement::PackageDef
{ECA::CCA::GranularityKindDef granularity ()
raises ( Reflective::MofError );void set_granularity ( in
ECA::CCA::GranularityKindDef new_value) raises ( Reflective::MofError );
boolean is_persistent ( ) raises ( Reflective::MofError );
// ...};
MOF2IDLMOF2IDL
![Page 14: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/14.jpg)
Generation of the EDOC Repository(cont.)
Composition ComponentUsagename : String
1 0..n
+owner
1
+uses
0..nComponentUsages
ProcessComponentgranularity : ECA::CCA::GranularityKindisPersistent : BooleanprimitiveKind : StringprimitiveSpec : String
IsComposition
0..n
1
+usage 0..n
+uses
1
Uses// IDL
interface ProcessComponentDef: ProcessComponentDefClass,
PortOwnerDef,CompositionDef,UsageContextDef,ECA::ModelManagement::PackageDef
{ECA::CCA::GranularityKindDef granularity ()
raises ( Reflective::MofError );void set_granularity ( in ECA::CCA::GranularityKindDef
raises ( Reflective::MofError );void set_is_persistent ( in boolean new_value)
raises ( Reflective::MofError );// ...
};
// IDL
interface ProcessComponentDef: ProcessComponentDefClass,
PortOwnerDef,CompositionDef,UsageContextDef,ECA::ModelManagement::PackageDef
{ECA::CCA::GranularityKindDef granularity ()
raises ( Reflective::MofError );void set_granularity ( in ECA::CCA::GranularityKindDef
raises ( Reflective::MofError );void set_is_persistent ( in boolean new_value)
raises ( Reflective::MofError );// ...
};
/* C++ */
class ProcessComponentDefServant: virtual public ProcessComponentDefClassServant,virtual public PortOwnerDefServant,virtual public CompositionDefServant,virtual public UsageContextDefServant,virtual public
ModelManagement::PackageDefServant{public:
virtual ECA::CCA::GranularityKindDef_Ptrgranularity ();
virtual bool is_persistent ( ); virtual void set_is_persistent (bool
new_value); // ...};
/* C++ */
class ProcessComponentDefServant: virtual public ProcessComponentDefClassServant,virtual public PortOwnerDefServant,virtual public CompositionDefServant,virtual public UsageContextDefServant,virtual public
ModelManagement::PackageDefServant{public:
virtual ECA::CCA::GranularityKindDef_Ptrgranularity ();
virtual bool is_persistent ( ); virtual void set_is_persistent (bool
new_value); // ...};
MOF2C++MOF2C++
![Page 15: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/15.jpg)
EDOC Model Repository
• Repositories are generated with:– MOF2IDL Generator– MOF2C++ Generator
• EDOC repository implements thegenerated CORBA IDL interfaces
• Repository Control Center provides
– Debugging and Monitoring capabilities– Serialization
to XML– In the future:
Control overMedini
extensions
![Page 16: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/16.jpg)
Medini Extensions to repositories
• Repository implements the generatedCORBA IDL interfaces plus:
– Transaction capabilities
– Persistency
– Medini Extensions under development
• Consistency Management through activecommunication of model changes as Notifications
– Medini ActiveRepository Service (MARS)
• Validity Maintenance: repositorychecks meta-model constraints at run-time
![Page 17: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/17.jpg)
Model Transformations
![Page 18: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/18.jpg)
Transformations from EDOC to OSP/CCM
• Transformations are defined betweenmeta-models
– EDOC meta-model <> enago OSP/CCM meta-model
– They specify, how any EDOC compliantmodel (i.e. instances of the EDOC meta-model) is transformed to the OSP/CCM platform
• Transformations are by itself instancesof a (transformation-)meta-model
– this meta-model determines, how to define the model-transformations
– currently no OMG standard exists(initial submission deadline has just passed)
![Page 19: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/19.jpg)
Approaches on transformations
• Rule based transformations
– Specifiy how to construct a target from a source model
– Example language: UML ActionSemantics
• Declarative transformations
– Specify only the result of a transformation (i.e. as invariants and postconditions)
– Example language: Object Constraint Language (OCL)
• Other approaches use templates or scripting/semiformal languages
![Page 20: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/20.jpg)
Approaches on transformations(cont.)
• Rule based transformations
– Specifiy how to construct a target froma source model
– Example language: UML ActionSemantics
• Advantages:
– Significant and intuitive formalism
– Simple implementation derivation
• Disadvantages:
– Lack of (automatic) testability
– Rules are only „one-way“
• changes late in the software process cannot be propagated back
![Page 21: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/21.jpg)
Approaches on transformations(cont.)
•Declarative transformations
– Specify only the result of a transformation (i.e. as invariants and postconditions)
– Example language: Object ConstraintLanguage
•Advantages:
– Testability & Traceability
– „Two-way“ transformations
•Disadvantages:
– Complex formalism
(error-prone)
– Implementation more difficult
![Page 22: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/22.jpg)
Our Approach for Transformations
• Three steps towards a MOF Transformator Generator (MTG):
1.Specification and development of a Transformator Core Generator (”Skeleton Generator”)
• independent of any transformation concepts
• produces meta-model specific transformators (for EDOC and OSP)
2.Development of an EDOC to OSP/CCMtransformator based on generated skeleton
• Parallel implementation of code generators
• Realization of traceability, testability and parameterization (or interaction)
![Page 23: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/23.jpg)
The MOF Transformator Generator (MTG)
• Specification and development of a Transformator Core Generator (”Skeleton Generator”)
– First part of the whole Generator
– Input:
• Source (EDOC) or target (OSP/CCM) meta-models
– Output:
• meta-model specific Skeletons („Walker“) for model-transformations (EDOC) orcode-generation (OSP/CCM)
– Status: The Skeleton Generator producesalready utilizable transformators forhalf-automated development
![Page 24: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/24.jpg)
Operation of the generated Transformator Skeleton
MofFeaturescope : Model::MofScopeKindvisibility : Model::MofVisibilityKind
MofModelElement
MofNamespace MofTypedElement
MofScopeKindinstanceLevelclassifierLevel
<<enumeration>>
MofBehavioralFeatureMofStructuralFeature
multiplicity : Model::MofMultiplicityTy...isChangeable : Boolean
MofException
MofOperationisQuery : Boolean<<reference>> exceptions : Model::MofException
0..n
0..n
+except0..n
+operation0..n
CanRaise
MofAttributeisDerived : Boolean
MofReference<<reference>> referencedEnd : Model::MofAssociationEnd<<reference>> exposedEnd : Model::MofAssociationEnd
MofTag
MofModelElement1..n
0..n
+modelElement
1..n
+tag0..n
AttachesTo
MofConstraintexpression : Stringlanguage : StringevaluationPolicy : Model::MofEvaluationKind<<reference>> constrainedElements : Model::MofModelElement
1..n
0..n
+constrainedElement1..n
+constraint
0..n
Constraints
MofConstantvalue : String
MofTypedElement
MofParameterdirection : Model::MofDirectionKindmultiplicity : Model::MofMultiplicityType
MofDirectionKindin_dirout_dirinout_dirreturn_dir
<<enumeration>>
MofEvaluationKindimmediatedeferred
<<enumeration>>
Skeleton „walks“over source tree
transformation_procedure_1 ()
…
transformation_procedure_2 ()
transformation_procedure_3 ()
EDOC Source Model M1-level Instance
(in repository)
OSP/CCM Target ModelM1-level instance
(in repository)
![Page 25: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/25.jpg)
Transformations: final step (vision)
– Replacement of hand-written code with evaluated transformation rules
– Rule based or declarative approach for the transformations (possibly a combination)
– Gained experience from FhG FOKUS / IKV++ joint submission to the MOF2.0-IDL Request For Proposal and OMG process will influence the decision
![Page 26: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/26.jpg)
Advantages of our approach
• Platform independence through a formal specification of the transformations
• Testability
– rule and/or constraint based specification of transformations allow for validation and/or verification
• Traceability
– the trace of elements is easily extractable from transformation models
• Highest flexibility, late determinationof transformation model
![Page 27: An Open Modeling Infrastructure - OMG · 2009-05-28 · Tools supporting the Modeling Infrastructure PIM Model Database PSM Model Database Automatically generate model databases out](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec7e2134d6ec5103c1fa822/html5/thumbnails/27.jpg)
Conclusion
• Medini tool set supports infrastructure
– Integration of modeling tools, transformations
– Extensions during the project needed
• Transformations will be one essential
– Already realized part of the
– Possibly combined approach of rule and constraint based specification in future