An Open Modeling Infrastructure. Olaf Kath Marc Born

Similar documents
MOF 2.0 IDL CORBA Components based Repositories

OCL Support in MOF Repositories

From Models to Components. Rapid Service Creation with

MDA-based Service Creation for OSA/Parlay within 3Gbeyond Environments

All you need are models Anneke Kleppe, Klasse Objecten

Model Driven Development Unified Modeling Language (UML)

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

Object Security. Model Driven Security. Ulrich Lang, Rudolf Schreiner. Protection of Resources in Complex Distributed Systems

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

Index. business modeling syntax 181 business process modeling 57 business rule 40

Model Transformers for Test Generation from System Models

Metamodeling with Metamodels. Using. UML/MOF including OCL

Model Driven Engineering

It s all Done with Mirrors Patterns and OCL. KMF Kent Modelling Framework D.H.Akehurst and O.Patrascoiu

Model Driven Architecture

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

The Eclipse Modeling Framework and MDA Status and Opportunities

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

Significant Productivity Enhancement through Model Driven Techniques: A Success Story

Impacts of changes in enterprise software construction for telecommunications

Executive Summary. Round Trip Engineering of Space Systems. Change Log. Executive Summary. Visas

UML 2.0 State Machines

ADT: Eclipse development tools for ATL

Raising the Level of Development: Models, Architectures, Programs

Towards a Transformation Chain Modeling Language

Model Driven Engineering (MDE)

Model driven Engineering & Model driven Architecture

BLU AGE 2009 Edition Agile Model Transformation

The Specifications Exchange Service of an RM-ODP Framework

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

INF5120 Model-Based System Development

Introduction to Dependable Systems: Meta-modeling and modeldriven

Meta Object Facility (MOF) Specification

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Second OMG Workshop on Web Services Modeling. Easy Development of Scalable Web Services Based on Model-Driven Process Management

MDA and Integration of Legacy Systems: An Industrial Case Study

ISO/IEC INTERNATIONAL STANDARD

Using Model Driven Architecture to Manage Metadata

CISC836: Models in Software Development: Methods, Techniques and Tools

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

From a Specification Level PIM to a Design Level PIM in the Context of Software Radios

Integration of the Semantic Web with Meta Object Facilities

Event Metamodel and Profile (EMP) Proposed RFP Updated Sept, 2007

Unified Modeling Language (UML)

CWM: Model Driven Architecture

SUMMARY: MODEL DRIVEN SECURITY

Reusable Object-Oriented Model

Modelling in Enterprise Architecture. MSc Business Information Systems

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

An Introduction to MDE

Introduction to MDE and Model Transformation

ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION

SCOS-2000 Technical Note

Model Transformation Techniques

Model-Driven QoS Provisioning Techniques for CCM DRE Systems

Model Driven Architecture - The Vision

3rd Lecture Languages for information modeling

Model Abstraction versus Model to Text Transformation

The etrice Eclipse Project Proposal

An introduction to MOF MetaObject Facility.

Algebraic Semantics of EMOF/OCL Metamodels

Heavyweight extensions to the UML metamodel to describe the C3 architectural style Abstract Keywords 2. Strategies to extend UML 1.

On Implementing MOF 2.0 New Features for Modelling Language Abstractions

Security Issues Formalization

This paper is more intended to set up a basis for a constructive discussion than to offer definitive answers and closed solutions.

Formal Methods for Software Engineers

Building Compilable Class Models

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

DEV427 MODEL-DRIVEN DEVELOPMENT USING PowerDesigner. Xiao-Yun WANG PowerDesigner Chief Architect

Object Management Group Model Driven Architecture (MDA) MDA Guide rev. 2.0 OMG Document ormsc/

Model Driven Architecture and Rhapsody

OMG Workshop MDA. Tool Chains for MDA? Let's consider leaving our tool chains behind us.

OCL for the Specification of Model Transformation Contracts

Object-Oriented Theories for Model Driven Architecture

ITBIS393 Web-Based Information Systems

Integrating Software Architecture Concepts into the MDA Platform with UML Profile

Methods for the Development

Model Querying with Graphical Notation of QVT Relations

Model-Driven Architecture

A Metamodel-Based OCL-Compiler for UML and MOF

CODAGEN TECHNOLOGIES AND MODEL-DRIVEN ARCHITECTURE (MDA)

COMET. Component and Model-based development Methodology. Adapted from COMET I and COMBINE. COMET Toolset Handbook

Traceability in Model to Text Transformations

Defining Domain-Specific Modeling Languages

Process-Integrated Refinement Patterns in UML

XML in the Development of Component Systems. XML and the CORBA Component Model

Role of Executable UML in MDA. Presented by Shahid Alam

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

ISO/IEC INTERNATIONAL STANDARD. Information technology Open Distributed Processing Unified Modeling Language (UML) Version 1.4.

ATL TRANSFORMATION EXAMPLE

Improving Military Information Technology Through Common Conceptual Models

!MDA$based*Teaching*and* Research*in*Software*Engineering*!

ISO/IEC JTC 1/SC 32 N 0823

Model Driven Architecture (MDA)

02291: System Integration

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

SysML Past, Present, and Future. J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd

Transcription:

An Open Modeling Infrastructure Olaf Kath Marc Born

Agenda Architecture Guidelines Users View Medini Toolset Model Transformations Conclusions

Our Vision on MDA: A Modeling Infrastructure open to a variety of modeling and model transformation techniques and open to different domains

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

Architecture Guidelines: Concepts, Notations and Mappings define mapping between concepts and notation definition of modeling concepts define model transformation rules notation guide for concepts automatic derivation of model databases model database model representation model transformators or code generators apply notation guides to express concepts in models apply transformators for automatic system construction

The Big Picture Tools PIM Modeling Tools for PSM Modeling Programming Environment PIM Model Database PSM Model Database Classifier InterfaceDef (from IDL Base) OperationDef (from IDL Base) +supports 0..n +components 0..n ComponentDef Class +source (from ComponentIDL) 1 +c_target 1 0..1 +source 1 +component FactoryDef (from ComponentIDL) +factory +home HomeDef (from ComponentIDL) 0..n 0... +home_target ** 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 model 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 and transformators self.c_target.identifier = concat( format_1( self.identifier ), "Component") and self.home_target.identifier = concat( format_1( self.identifier ), "Home") and self.container.target = self.c_target.definedin and self.container.target = self.home_target.definedin and self.home_target.manages = self.c_target and self.c_target.supports = self.target else self.c_target->size() = 0 and self.home_target->size() = 1 and Class.allInstances()->forAll( c not c.isabstract implies c = self.home_target.factory and c.identifier = concat( "create_", format_2(self.identifier) ) ) endif

Users View: PIM Modeling using EDOC Rational Rose based Tool for EDOC PIM Modeling Rational Rose based Tool for OSP/CCM PSM Modeling eclipse Programming Environment EDOC Model Database CCM/OSP Model Database modell transformators

Users View: PSM Refinement using Modeling Tool Rational Rose based Tool for EDOC PIM Modeling Rational Rose based Tool for OSP/CCM PSM Modeling eclipse Programming Environment EDOC Model Database OSP/CCM Model Database modell transformators

Users View: Generation of Java Code out of the PSM Rational Rose based Tool for EDOC PIM Modeling Rational Rose based Tool for OSP/CCM PSM Modeling eclipse Programming Environment EDOC Model Database OSP/CCM Model Database modell transformators

Tools supporting the Modeling Infrastructure <<metamodel>> EDOC Automatically generate model databases out of <<metamodel>> the metamodels, using enago OSP IKVs medini tool chain /CCM These model databases support mechanisms for transactions model change notifications XML import/export... PIM Model Database PSM Model Database

Applying the Medini tool set Tools for EDOC PIM Modeling Tools for OSP/CCM PSM Modeling eclipse Programming Environment EDOC PIM Model Database OSP/CCM PSM Model Database Classifier InterfaceDef (from IDL Base) OperationDef (from IDL Base) +supports 0..n +components 0..n ComponentDef Class +source (from ComponentIDL) 1 +c_target 1 0..1 +source 1 +component FactoryDef (from ComponentIDL) +factory +home HomeDef (from ComponentIDL) 0..n 0... +home_target ** 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 model 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 and transformators self.c_target.identifier = concat( format_1( self.identifier ), "Component") and self.home_target.identifier = concat( format_1( self.identifier ), "Home") and self.container.target = self.c_target.definedin and self.container.target = self.home_target.definedin and self.home_target.manages = self.c_target and self.c_target.supports = self.target else self.c_target->size() = 0 and self.home_target->size() = 1 and Class.allInstances()->forAll( c not c.isabstract implies c = self.home_target.factory and c.identifier = concat( "create_", format_2(self.identifier) ) ) endif

Infrastructure: Generation of Repositories

Generation of the EDOC Repository Composition 1 ComponentUsages 0..n +owner +uses ComponentUsage name : String +usage 0..n // // IDL IDL IsComposition Uses interface interface ProcessComponentDef : ProcessComponentDefClass, PortOwnerDef, PortOwnerDef, CompositionDef, CompositionDef, +uses UsageContextDef, UsageContextDef, ECA::ModelManagement::PackageDef 1 ProcessComponent granularity : ECA ::CCA::GranularityKind { ispersistent : Boolean primitivekind : String primitivespec : String MOF2IDL ECA::CCA::GranularityKindDef granularity granularity () () raises raises ( Reflective::MofError ); ); void void set_granularity set_granularity ( in in ECA::CCA::GranularityKindDef new_value) new_value) raises raises ( Reflective::MofError ); ); boolean boolean is_persistent is_persistent ( ) raises raises ( Reflective::MofError ); ); // //...... }; };

Composition Generation of the EDOC Repository (cont.) 1 ComponentUsages 0..n ComponentUsage name : String +owner class ProcessComponentDefServant +uses IsComposition /* /* C++ C++ */ */ class ProcessComponentDefServant : virtual virtual public +usage public MOF2C++ 0..n ProcessComponentDefClassServant, virtual // IDL virtual public public PortOwnerDefServant, // IDL virtual virtual Uses public public CompositionDefServant, virtual interface virtual public public UsageContextDefServant, interface virtual virtual ProcessComponentDef public public : ProcessComponentDefClass, PortOwnerDef, ModelManagement::PackageDefServant PortOwnerDef, CompositionDef, { CompositionDef, +uses public: UsageContextDef, public: UsageContextDef, virtual virtual ECA::CCA::GranularityKindDef_Ptr ECA::ModelManagement::PackageDef granularity granularity (); (); virtual virtual bool bool is_persistent is_persistent ECA::CCA::GranularityKindDef granularity ( ); ); virtual granularity () () raises virtual void raises ( void set_is_persistent (bool Reflective::MofError ); (bool new_value); ); void void set_granularity new_value); // set_granularity... ( in in ECA::CCA::GranularityKindDef raises //... }; raises ( Reflective::MofError ); ); void void }; set_is_persistent ( in in boolean boolean new_value) new_value) raises raises ( Reflective::MofError ); ); // //...... }; }; 1 ProcessComponent granularity : ECA ::CCA::GranularityKind { ispersistent : Boolean primitivekind : String primitivespec : String

EDOC Model Repository Repositories are generated with: MOF2IDL Generator MOF2C++ Generator EDOC repository implements the generated CORBA IDL interfaces Repository Control Center provides Debugging and Monitoring capabilities Serialization to XML In the future: Control over Medini extensions

Medini Extensions to repositories Repository implements the generated CORBA IDL interfaces plus: Transaction capabilities Persistency Medini Extensions under development Consistency Management through active communication of model changes as Notifications Medini ActiveRepository Service (MARS) Validity Maintenance: repository checks meta-model constraints at runtime

Model Transformations

Transformations from EDOC to OSP/CCM Transformations are defined between meta-models EDOC meta-model <> enago OSP/CCM metamodel They specify, how any EDOC compliant model (i.e. instances of the EDOC metamodel) is transformed to the OSP/CCM platform Transformations are by itself instances of 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)

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

Approaches on transformations (cont.) Rule based transformations Specifiy how to construct a target from a 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 can not be propagated back

Approaches on transformations (cont.) Declarative transformations Specify only the result of a transformation (i.e. as invariants and postconditions) Example language: Object Constraint Language Advantages: Testability & Traceability Two-way transformations Disadvantages: Complex formalism (error-prone) Implementation more difficult

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/CCM transformator based on generated skeleton Parallel implementation of code generators Realization of traceability, testability and parameterization (or interaction)

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) metamodels Output: meta-model specific Skeletons ( Walker ) for model-transformations (EDOC) or code-generation (OSP/CCM) Status: The Skeleton Generator produces already utilizable transformators for half-automated development

Operation of the generated Transformator Skeleton Skeleton walks over source tree MofModelElement transformation_procedure_1 () AttachesTo +modelelement MofModelElement 1..n +constrainedelement 1..n MofFeature MofNamespace scope : Model::MofScopeKind visibility : Model::MofVisibilityKind MofTypedElement MofTypedElement MofBehavioralFeature MofStructuralFeature multiplicity : Model::MofMultiplicityTy... ischangeable : Boolean transformation_procedure_2 () +tag 0..n MofTag Constraints MofException MofAttribute +except 0..n isderived : Boolean CanRaise 0..n +operation MofOperation isquery : Boolean <<reference>> exceptions : Model::MofException <<enumeration>> MofScopeKind instancelevel classifierlevel MofReference <<reference>> referencedend : Model::MofAssociationEnd <<reference>> exposedend : Model::MofAssociationEnd transformation_procedure_3 () +constraint 0..n MofConstraint expression: String language: String evaluationpolicy: Model::MofEvaluationKind <<reference>>constrainedelements: Model::MofModelElement <<enumeration>> MofEvaluationKind immediate defered MofConstant value: String MofParameter direction: Model::MofDirectionKind multiplicity: Model::MofMultiplicityType <<enumeration>> MofDirectionKind in_dir out_dir inout_dir return_dir EDOC Source Model M1-level Instance (in repository) OSP/CCM Target Model M1-level instance (in repository)

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

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 determination of transformation model

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