Model driven Engineering & Model driven Architecture

Similar documents
An Exercise in Iterative Domain- Specific Language Design. Marcel van Amstel Mark van den Brand Luc Engelen

Modelling in Enterprise Architecture. MSc Business Information Systems

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

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

Model Driven Architecture - The Vision

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Raising the Level of Development: Models, Architectures, Programs

Model Driven Architecture

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

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

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

Model Driven Engineering (MDE)

Introduction to MDE and Model Transformation

Transformational Design with

Software Industrialization

All you need are models Anneke Kleppe, Klasse Objecten

ADT: Eclipse development tools for ATL

Transforming UML Collaborating Statecharts for Verification and Simulation

The Model-Driven Semantic Web Emerging Standards & Technologies

BLU AGE 2009 Edition Agile Model Transformation

The Model Driven (R)evolution. Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc.

Comparative analysis of MDA tools

Compositional Model Based Software Development

Introduction to Dependable Systems: Meta-modeling and modeldriven

MDA and Integration of Legacy Systems: An Industrial Case Study

Semantics-Based Integration of Embedded Systems Models

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel

M B S E. Model Transformations in Model-Based Systems Engineering. Chris Paredis Associate Director. Model-Based Systems Engineering Center

Model-Based Techniques in the Development of Net-Centric Applications. Timothy A. Anderson Basil C. Krikeles. June 20, 2007

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture

Overview of lectures today and Wednesday

QoS-aware model-driven SOA using SoaML

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

* Corresponding Author

An Introduction to MDE

Model-Driven Architecture

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

Outline. SLD challenges Platform Based Design (PBD) Leveraging state of the art CAD Metropolis. Case study: Wireless Sensor Network

Model Abstraction versus Model to Text Transformation

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24,

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

Christian Doppler Laboratory

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

Generation Rules in POMA Architecture

The Eclipse Modeling Framework and MDA Status and Opportunities

Practical Model-Driven Development with the IBM Software Development Platform

SWE 760 Lecture 1: Introduction to Analysis & Design of Real-Time Embedded Systems

Model Driven Development of Component Centric Applications

Metamodeling with Metamodels. Using. UML/MOF including OCL

Open Source egovernment Reference Architecture. Cory Casanave, President. Data Access Technologies, Inc.

From Object Composition to Model Transformation with the MDA

Integrating Software Architecture Concepts into the MDA Platform with UML Profile

Methods for the Development

UML 2.0 State Machines

3rd Lecture Languages for information modeling

CODAGEN TECHNOLOGIES AND MODEL-DRIVEN ARCHITECTURE (MDA)

Role of Executable UML in MDA. Presented by Shahid Alam

Dottorato di Ricerca in Informatica. Università di Bologna e Padova. Whole Platform. Riccardo Solmi. March 2005

The rcos Modeler. ICTAC Summer School 2013 ECNU, Shanghai, China. Volker Stolz, Zhiming Liu. Friday, August 30, 13

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

A Metamodel independent approach for Conflict Detection to support distributed development in MDE. Mostafa Pordel A THESIS

MOMOCS D2.1 XIRUP S UPPORTING T OOLS R EQUIREMENTS. Model driven Modernisation of Complex Systems. Dissemination Level: Work package:

Ontology-based Model Transformation

From Models to Components. Rapid Service Creation with

OMG Specifications for Enterprise Interoperability

INF5120 Model-Based System Development

Investigation of System Timing Concerns in Embedded Systems: Tool-based Analysis of AADL Models

Grammars. Prof. Andreas Prinz. Introduction, Compilers. Examples Meta-models vs. Grammars Summary

... is a Programming Environment (PE)?... is Generic Language Technology (GLT)?

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

ModelicaML: Getting Started Issue April 2012

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Powering EII with MOA

Static analysis and testing of executable DSL specification

Software Architecture

ACM Technical Solution Architecture - Development and Deployment of ACM Solutions- ECM Fast Start Workshop 1Q2011

Sequence Diagram Generation with Model Transformation Technology

Applying UML Modeling and MDA to Real-Time Software Development

Eclipse technology in IFMS Interface Management System

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

FREQUENTLY ASKED QUESTIONS

Improving Military Information Technology Through Common Conceptual Models

ECLIPSE MODELING PROJECT

Managing Application Configuration Data with CIM

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Distributed Systems Programming (F21DS1) Formal Verification

MDSE USE CASES. Chapter #3

Current trends and frameworks for modeldriven approaches to software development

Tools to Develop New Linux Applications

Spemmet - A Tool for Modeling Software Processes with SPEM

Reusable Object-Oriented Model

Knowledge Discovery: How to Reverse-Engineer Legacy Systems

A UML SIMULATOR BASED ON A GENERIC MODEL EXECUTION ENGINE

IBM Rational Software Architect

An introduction to MOF MetaObject Facility.

Architectural Design

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

Defining Domain-Specific Modeling Languages

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

Enabling Multi-View Modeling With SysML Profiles and Model Transformations. Aditya A. Shah, Dirk Schaefer and Christiaan J.J.

Transcription:

Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven

Model driven software engineering Models often used for both hardware and software design probably manually translated into design documents and code no guarantee of consistency between model, design and resulting code / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 1

Model driven software engineering Modeling languages whole range over the years: data oriented, e.g., E/R models, class diagrams behaviour oriented, e.g., use cases, state machines, sequence diagrams, activity diagrams architecture oriented, e.g., package diagrams, component diagrams standardization initiative of OMG: Unified Modeling Language / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 2

Model driven software engineering UML diagrams for architectural models: All UML diagrams can be useful to describe aspects of the architectural model Four UML diagrams are particularly suitable for architecture modelling: Package diagrams Subsystem diagrams Component diagrams Deployment diagrams / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 3

Model driven software engineering Package diagram: Component diagram: Deployment diagram: / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 4

Model driven software engineering The following list is a minimal set of requirements for a language to be an ADL. The languages must : Be suitable for communicating an architecture to all interested parties Support the tasks of architecture creation, refinement and validation Provide a basis for further implementation, so it must be able to add information to the ADL specification to enable the final system specification to be derived from the ADL Provide the ability to represent most of the common architectural styles Support analytical capabilities or provide quick generating prototype implementations / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 5

Model driven software engineering ADLs have in common: Graphical syntax with often a textual form and a formally defined syntax and semantics Features for modeling distributed systems Little support for capturing design information, except through general purpose annotation mechanisms Ability to represent hierarchical levels of detail including the creation of substructures by instantiating templates / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 6

Model driven software engineering ADLs differ in their ability to: Handle real-time constructs, such as deadlines and task priorities, at the architectural level Support the specification of different architectural styles. Few handle object oriented class inheritance or dynamic architectures Support analysis Handle different instantiations of the same architecture, in relation to product line architectures / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 7

Model driven software engineering Positive elements of ADL ADLs represent a formal way of representing architecture ADLs are intended to be both human and machine readable ADLs support describing a system at a higher level than previously possible ADLs permit analysis of architectures completeness, consistency, ambiguity, and performance ADLs can support automatic generation of software systems / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 8

Model driven software engineering Negative elements of ADL There is not universal agreement on what ADLs should represent, particularly as regards the behavior of the architecture Representations currently in use are relatively difficult to parse and are not supported by commercial tools Most ADLs tend to be very vertically optimized toward a particular kind of analysis / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 9

Model driven software engineering Automatic transformation of domain specific models into software models Automatic translation from software models into executable code Ingredients: syntax and semantics of modeling formalisms should be described correctness preserving transformation steps should be defined code generators should be developed / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 10

Model driven software engineering Software generation: Increase in productivity Increase in quality Based on existing formalisms UML domain specific extensions Prototyping of tooling model transformations code generation / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 11

Model driven software engineering Domain specific languages Little language for specific application domains Terminology of application domain domain concepts Restricted number of language constructs Easy to learn for domain engineers Examples: SQL YACC (compilers) Risla (modeling of financial products) WebDSL / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 12

Model driven software engineering State-of-the-art technology: component based software development Code Generation Aspect Oriented Programming Coordination Architectures Design Patterns

Model driven software engineering Program Generators Automatic production of programs by means of other programs A program generator reads meta-data and produces well-formed source code Grammars Database model UML diagrams A program generators makes your project agile

Model driven software engineering Advantages Increase in productivity: generating tedious and boring parts of the code code generators produce thousands of lines of code in seconds changes are quickly propagated agile development Increase of quality: bulky handwritten code tend to have inconsistent quality because increase of knowledge during development bug fixes and code improvements can be consistently roled out using a generator

Model driven software engineering Advantages Increase of Consistency: in API design and naming convention single point of definition explicit documented design decisions Architectural consistency: Programmers work within the architecture Well-documented and -maintained code generator provides a consistent structure and approach Abstraction: language-independent definition Lifting problem description to a higher level Easier porting to different languages and platforms Design can be validate on an abstract level

Model driven software engineering Models of program generators: Code munging: given information in some input code, one or more output files are generated, e.g., scanner or parser Inline-code expander: take source code with special mark-up code as input and creates production code in separate output file, e.g., imbedded SQL is replaced by C Mixed-code generation: take source code with special mark-up code as input and replace this inline

Model driven software engineering Examples of program generators: Programming environment generators API generators UML based generators Domain Specific Languages

Domain specific languages DSLs & Model driven software engineering: Domain specific variants of UML profiles: extending/adapting existing UML diagrams, e.g., SysML meta modeling: entirely new diagrams / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 19

Domain specific languages SysML offers improvements over UML, which tends to be software-centric: SysML's semantics are more flexible and expressive two new diagram types: requirement and parametric diagrams for performance analysis and quantitative analysis SysML removes many of UML's software-centric constructs SysML has allocation tables for requirements allocation, functional allocation, and structural allocation This capability facilitates automated verification and validation and gap analysis / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 20

Domain specific languages Example of a newly developed DSL Specifying, Simulating, Verifying and Implementing the Controllers of a Conveyor Belt using model transformations We defined a domain specific language (DSL) for modeling communicating systems Simulation via transformation from our DSL to POOSL Stepwise refinement to adapt the characteristics of the communication channels to the Lego Mindstorms platform / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 21

Domain specific languages Specifying, Simulating, Verifying and Implementing the Controllers of a Conveyor Belt using model transformations To verify the system, we implemented a transformation from our DSL to Promela, the language used by the model checker Spin We implemented a transformation from our DSL into Not Quite C (NQC), a programming language for Lego Mindstorms controllers / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 22

Domain specific languages Concurrent objects Controllers Hardware Conveyors Motors Sensors Communication Wireless Wired

Domain specific languages State machine based Combination of: graphical models and textual models Conditional message exchange plus activities No data yet No timing yet

Domain specific Languages

Domain specific languages Platforms Simulation POOSL Execution NQC Synchronous/ Asynchronous Lossless/ Lossy #Objects DSL Both Both Unlimited POOSL Synchronous Lossless Unlimited NQC Asynchronous Lossy Limited PROMELA Both Lossless Unlimited Verification PROMELA/SPIN

Domain specific languages Model transformations DSL T 1 T 2 T DSL 3 DSL (Lossless (Asynchronous) T 1 T 2 Communication) T 3 DSL (Limited number of objects) Simulation Verification Execution

Domain specific languages Requirements for a DSL: Unambiguous semantics Formal composition rules Unambiguous transformability Strongly-typed and deterministic IO Encapsulation Expressiveness Readability

Model Driven Architecture

MDA Today's Software Environment: Worldwide distributed systems Heterogeneous platforms, languages, and applications Increasing interconnectivity within and between companies New technologies: XML,.NET and web services

MDA Heterogeneous platforms and languages Programming languages ~3 million COBOL programmers ~1.6 million VB programmers ~1.1 million C/C++ programmers Operating systems Unix, MVS, VMS, MacOS, Windows (about 10), PalmOS Windows 3.1: it s still out there! Embedded devices (mobile, set-top, etc.)

MDA Good News Increased standarization Internet protocols, SQL, UML Increased openness Linux, apache, etc. Less custom specific development Component reuse, ERP applications

MDA Bad news Legacy applications and databases ERP applications that are difficult to adapt Multiple, competing middleware Develop software for the future: adaptable to future modifications

MDA MDA is a more sophisticated way of using UML Raising level of abstraction: General trend Already well-established for front and back ends WYSIWYG GUI modeling and data modeling Hand coding no longer predominates Tuning allowed

MDA: what is it? The Model-Driven Architecture approach defines system functionality using a platform-independent model (PIM) using an appropriate domain-specific language: Then, given a platform definition model (PDM) corresponding to CORBA,.NET, the Web, etc., the PIM is translated to one or more platform-specific models (PSMs) that computers can run The PSM may use different Domain Specific Languages, or a General Purpose Language Automated tools generally perform this translation or mapping

MDA: what is it? MDA is related to multiple standards: Unified Modeling Language (UML), Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC), Software Process Engineering Metamodel (SPEM), and Common Warehouse Metamodel (CWM) The term architecture in Model-driven architecture does not refer to the architecture of the system being modeled, but to the architecture of the various standards and model forms that serve as the technology basis for MDA

MDA Informal UML models provide Informal modeling Used to sketch out basic concepts Advantages over other informal diagram techniques: it has some form of semantics Not suited for code generators and interpretation Analogously informal text can not be compiled and executed as 3GLs

MDA Formal UML models provide Precise: Precision and details are not the same Computationally complete Missing properties and unresolved references are not acceptable 3GL analogy... Incomplete programs can not be compiled executable UML

MDA: how does it work? Platform Independent Model (PIM) in UML is developed by architect, no assumptions on platform on programming language on databases on architecture (2-tier vs 3-tier) High level of abstraction

MDA: how does it work? PIM model is mapped to XMI, XML representation of UML PIM model is transformed into Platform Specific Model (PSM) Architectural decisions are resolved/instantiated 2 tier vs 3 tier CORBA.NET

MDA: how does it work? The architecture implementation contains a series of declarative XML-based templates that generate PSM code Template resolves architectural issues for a certain layer Layers can be exchanged with other ones Mechanisms to provide architecture code extensions

MDA: does it work? Important to model-driven architecture is the notion of model transformations: QVT (Query/View/Transformation) Xtend (openarchitectureware) ATL (ATLAS Transformation Language) Plain Java XSLT

MDA Various MDA implementations: Commercial: OptimalJ from CompuWare (dead as far as I know) Rational Rose (IBM) OSLO (Microsoft) DSL based Open Source Eclipse based: OAW ATLAS

Architecture-Driven Modernization ADM is the inverse of MDA Process of understanding and evolving existing software assets for the purpose of Software improvement Modifications Interoperability Refactoring Restructuring Reuse Porting Migration Translation into another language Enterprise application integration Service-oriented architecture MDA migration / Faculteit Wiskunde en Informatica 6-1-2010 PAGE 44