Model Driven Engineering (MDE)Engineering (MDE) and Domain ... · pour la production, l’évolution et l’exécution de sytèmes logiciels) Grands Eclipse ... W b/XML/SOAP SVG GML
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ModelModel DrivenDriven Engineering (MDE)Engineering (MDE)Model Model DrivenDriven Engineering (MDE)Engineering (MDE)and Domain and Domain SpecificSpecific LanguagesLanguages ((DSLsDSLs))
Richard Soley and the OMG staff, MDA Whitepaper Draft 3.2
November 27 2000November 27, 2000
… At the core of MDA are the concepts of models, ofmetamodels defining the abstract languages in whichthe models are captured and of transformations thatthe models are captured, and of transformations thattake one or more models and produce one or moreother models from them. …
Separating the platform dependent and independent parts of systems
We don't want anymore to pay such a high price for simply moving our information system to afor simply moving our information system to a new middleware platform (COM, CORBA, Java, HTML, XML, DotNet, etc.) when our business system stays stable.We are prepared to pay a last price for building the abstract models of our business and services that will guarantee us against technological obsolescenceobsolescence.From there, any platform provider will also have to provide the mapping solutions from standard business models before we buy.
A metamodel is a simplified ontology,i.e. a set of concepts and relations betweenthese conceptsthese concepts.
conformsTo
TerminalModel
A model is a graph composed of elements(nodes and edges). Each such elementcorresponds to a concept in the metamodelcorresponds to a concept in the metamodel.
MissionThe Eclipse Modeling Project will focus on the evolution and promotionevolution and promotionof model-based development technologies within the Eclipse community.It will unite projects falling into this classification to bring holistic model-based
► Abstract syntax development► Eclipse Modeling Framework (EMF) : The EMF project is a modeling framework
and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command‐based editing of the model, and a basic editor.
► Concrete Syntax Development► Graphical Modeling Framework (GMF) : provides a generative component and
runtime infrastructure for developing graphical editors based on EMF and GEF.runtime infrastructure for developing graphical editors based on EMF and GEF.
► Textual Modeling Framework (TMF) (Xtext and TCS)
► CBCS: Computer‐Based Complex System► A complex system with a significant number of hardware/software components► A complex system with a significant number of hardware/software components► Compare with de Rosnay's biological or ecological complex systems
► A CBCS is composed of a large number of components► A CBCS is constantly in evolution► A CBCS is constantly in evolution
► Past, present, future► No stops when parts are added, removed or under maintenance
► A CBCS has a structure (static architecture) and a dynamic behavior► A CBCS is composed of components that may be also CBCSs (no limit in nesting)► A CBCS has a goal defining its purpose in the context in which it is operating
► The goal of a CBCS is part of its metadata► A CBCS h h t b d i i► A CBCS has a heterogeneous‐based engineering► A CBCS is a distributed system► A CBCS may not be understood by one unique human operator► The interactions between different parts of a CBCS follow specific patterns and may► The interactions between different parts of a CBCS follow specific patterns and may
be characterized by the relations that hold between them► These relations may be implicitly or explicitly defined
► Move from heterogeneous to homogeneous► Extract multiple, consistent and precise views of a system► Allow operations on these views: reasoning, combination, confrontation,
alignment, etc.g
► Help implementing various operations on these systems► Understand it► Understand it► Design it► Realize it► M it► Measure it► Control it► Maintain it► Etc.
► Model Based tools for complex system management (megamodel based)
1 H t t th ti l d ?1. How to represent the partial correspondances?2. How to compute the partial correspondances?3. How to use the partial correspondances?
► Understanding and defining systems from many perspectives► We call this the “whole systems perspective” also called “macro modeling”► We call this the whole systems perspective , also called macro modeling► “Systems” are inclusive of the enterprise, business architectures, systems architectures,
processes rules, services and information.► Systems are not islands they are composed of and interact with other systems► Today's models typically represent one perspective of one system and are difficult to
combine with other perspectives so the whole system of systems can be understood► Different perspectives come from different stakeholders using different tools and
different languages – but they all talk about the same systems and expressdifferent languages – but they all talk about the same systems and express overlapping (redundant) information
► Must be done in an open environment that can leverage a broad community
► Model definition and integration► M d li l d fi i i d i i► Modeling language definition and integration► Support for viewpoints► Support for an open world► Semantic linking between viewpoints and languages► Improved Domain & Language Model Modularity ► Improved Reuse of Model & Language Concepts p g g p► Integration of Current Models & Languages ► “Alignments” as first class models including shared and linking concepts
► System engineering in general is highly “tool oriented”:► i / ifi i d i i l i d l i► Composite H/S system specification, design, implementation, deployment, maintenance,
etc.
► Tools are ubiquitous in these contexts
► 100 t l i d t t 1000 t l i d t t ?► 100 tools in a department, 1000 tools in a department, more?
► 150.000 iPhone apps, 50.000 Android apps, more AppStores, etc.
► Tools have various characteristics► APIs & functionalities
► Features & services
► Human‐driven, semi‐automated or fully automated► , y
► Simple or composite
► Tool interoperability is becoming a critical issue
► Tools on the cloud
► MDE seems to be the only realistic way to approach this huge integration problem
Conclusions: Some Facts, Artifacts & Counter facts
► MDE is not about UML, is not about visual programming► MDE is about defining domain languages, writing domain code, generating
platform code, and applying this to many different situations► In MDE, a model is written in a given language (DSL); The abstract syntax of a g g g ( ) y
DSL is provided by a metamodel► Most models are not executable, but they are always precise (cf. Ch.
Simonyi)y )► Models are not always produced by humans► Models are not always models of the code, but also models of the data, etc.► Th t ti di i li f ti t b d l ll t► The systematic discipline of representing systems by models allows to move
from an heterogeneous to an homogeneous operational vision of the world► Models may be transformed; Model transformation is the central operation
►Models as first class entities: the new unification/integrationgparadigm
►Models of the hardware, of the software, of the architecture, of the code, of the legacy, of the assets portfolio, of the data, of the process, of the business, of the IT, etc.►M d l f h b i ( bj l )►Models of the business (objects, rules, process, events)
► Internalization (business model reappropriation)
►Business driven IT construction►Business driven IT construction
►Semantic maps of engineering tools available in a given context(behind each tool there is a metamodel hiding)(behind each tool there is a metamodel hiding)