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

Similar documents
bahmanzamani.com Computer Engineering i Dept. University of Isfahan

Role of Executable UML in MDA. Presented by Shahid Alam

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

A (Very) Short Introduction to Model-Driven Development (MDD)

MDSE USE CASES. Chapter #3

the Use of a Pattern Language

INTRODUCTION. Chapter #1

ADT: Eclipse development tools for ATL

Practical Model-Driven Development with the IBM Software Development Platform

Model Driven Architecture - The Vision

MDA Driven xuml Plug-in for JAVA

Introduction to MDE and Model Transformation

A UML SIMULATOR BASED ON A GENERIC MODEL EXECUTION ENGINE

TOWARDS MODEL TRANSFORMATION DESIGN PATTERNS

Model Driven Engineering (MDE)

All you need are models Anneke Kleppe, Klasse Objecten

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

Current trends and frameworks for modeldriven approaches to software development

Sequence Diagram Generation with Model Transformation Technology

MDSE PRINCIPLES. Chapter #2

Transformational Design with

Object-Oriented Theories for Model Driven Architecture

Introduction to Dependable Systems: Meta-modeling and modeldriven

MDA and Integration of Legacy Systems: An Industrial Case Study

Modelling in Enterprise Architecture. MSc Business Information Systems

Software Engineering from a

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

Model-Driven Systems Engineering for Netcentric System of Systems With DEVS Unified Process

An Introduction to MDE

Methods for the Development

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

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

Middlesex University Research Repository

Transformation of the system sequence diagram to an interface navigation diagram

Definition of Information Systems

Open Code Translation from Executable UML Models

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

Model Migration Case for TTC 2010

Design Patterns Application with MDE

Reusable Object-Oriented Model

Definition of Visual Language Editors Using Declarative Languages

TWO APPROACHES IN SYSTEM MODELING AND THEIR ILLUSTRATIONS WITH MDA AND RM-ODP

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

Pontis Interpretive MDD platform. May 2008

Comparative analysis of MDA tools

Software Architecture

From Object Composition to Model Transformation with the MDA

Softwaretechnik. Lecture 19: Model Driven Engineering. Peter Thiemann. University of Freiburg, Germany

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

Model Driven Architecture

Ontology-based Model Transformation

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

CSSE 490 Model-Based Software Engineering: Domain Engineering

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

Integrating Software Architecture Concepts into the MDA Platform with UML Profile

Raising the Level of Development: Models, Architectures, Programs

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

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

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

Orthographic Software Modeling A Practical Approach to View Based Development

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

Designing Component-Based Architectures with Rational Rose RealTime

Eclipse Development Tools for Epsilon

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Model Transformers for Test Generation from System Models

Object-Oriented Design

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

Model Abstraction versus Model to Text Transformation

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

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

Language engineering and Domain Specific Languages

Model-Driven Architecture

An Open Modeling Infrastructure. Olaf Kath Marc Born

Dresden OCL2 in MOFLON

Rational Software White paper

* Corresponding Author

MODEL DRIVEN ARCHITECTURE A REVIEW OF CURRENT LITERATURE

Defining Model Driven Engineering Processes

EXECUTABLE UML. Author : Selo Sulistyo and Warsun Najib

Existing Model Metrics and Relations to Model Quality

Reengineering of Distributed Middleware Systems To a Model Driven Architecture (MDA)

Model Driven Architecture with Enterprise Architect

ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION

What Is UML? The Goals and Features of UML. Overview. The goals of UML

Defining Domain-Specific Modeling Languages

INF5120 Modellbasert Systemutvikling Modelbased System development

From Models to Components. Rapid Service Creation with

OMG Specifications for Enterprise Interoperability

Model Migration Case for TTC 2010

Using MDA in egovernment

Towards UML Profile for Human Machine Interface Applications of In-vehicle Infotainment Platforms

OO Analysis and Design with UML 2 and UP

MDA, META-MODELLING and MODEL TRANSFORMATION. Introducing new Technology into the Defence Industry

Open Work of Two-Hemisphere Model Transformation Definition into UML Class Diagram in the Context of MDA

Lecture 2: Software Engineering (a review)

SysML, It s Coming Are You Prepared?

Perspectives on User Story Based Visual Transformations

Tool Paper: Combining Alf and UML in Modeling Tools An Example with Papyrus

QoS-aware model-driven SOA using SoaML

Transcription:

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com Department of Software Systems Engineering University of Isfahan Fall 2013 Overview Model & Modeling UML & UML Profile Model Driven Approaches MDE MDA The dream comes true xuml OOIS UML 12/16/2013 An Introduction to MDE, Bahman Zamani 2 /34 1

Model [Sel 06] What is a model? A model is a representation of a system. A representation of a system that hides some of the properties and highlights the ones that are of interest for the user. A model is an abstraction. 12/16/2013 An Introduction to MDE, Bahman Zamani 3 /34 Model Forms Mathematical, eg Linear Programming Physical, eg Aircraft or bridge Diagrammatic, eg Use case model http://www.cise.ufl.edu/~davis/morgan/image13.gif http://www.javaworld.com/javaworld/jw 07 2004/images/jw 0719 jsf1.gif http://yourmilitaryaircraft.com/pics/c130 20.jpg http://texnrails.com/images/track/tms/1200701.jpg 12/16/2013 An Introduction to MDE, Bahman Zamani 4 /34 2

Why Model? In most of the engineering disciplines, it is de rigueur to use models when designing a complex system [Sel 03]. Since today's software systems are becoming more and more complex, benefiting from using models is inevitable [Sel 03]. 12/16/2013 An Introduction to MDE, Bahman Zamani 5 /34 Four aims of modeling 1. Visualize a system (visualization) 1. Specify the structure and behavior of the system (specification) 2. Give templates that guide in constructing systems (construction) 3. Document the design decisions (documentation) 12/16/2013 An Introduction to MDE, Bahman Zamani 6 /34 3

Raising the Level of Abstraction [Mel02] The history of software development is a history of raising the level of abstraction: Higher Level of Abstraction Programming languages Structured: Fortran, Cobol, C OO: Smalltalk, C++, Java Mnemonics code (assembly) Machine code At first, each higher layer of abstraction was introduced only as a concept. Then the tools for automatic conversion to lower layers are invented! 12/16/2013 An Introduction to MDE, Bahman Zamani 7 /34 The Unified Modeling Language (UML) To do modeling we need a modeling language UML is a graphical language for visualizing specifying constructing documenting http://www.uml.org/ the software artifacts. In the graphical modeling of OO software systems, UML is the dominant approach. UML 1.1 adopted by OMG (www.omg.org) in November 1997 Current release is UML 2.4.1 (Dec 2013). 12/16/2013 An Introduction to MDE, Bahman Zamani 8 /34 4

UML 2.2 Diagrams [http://en.wikipedia.org/wiki/unified_modeling_language] 12/16/2013 An Introduction to MDE, Bahman Zamani 9 /34 UML Profile [zam 09] A mechanism provided by UML that allows us to Extend it for specific purposes, in other words To define a Domain Specific Modeling Language (DSML) Defining a UML Profile includes Identifying a subset of UML metamodel Specifying the well formedness rules, preferably by OCL Defining Stereotypes, Tagged Values, and Constraints 12/16/2013 An Introduction to MDE, Bahman Zamani 10 /34 5

Model Driven Approaches MDA: Model Driven Architecture MDD: Model Driven Development MDE: Model Driven Engineering MDSD: Model Driven Software Development MDSE: Model Driven Software Engineering Don t worry, just go Model-Driven! http://www.t one.net/~om/nctblog/ist2_2771207_dizzy.jpg 12/16/2013 An Introduction to MDE, Bahman Zamani 11 /34 Model Driven Approach of Software Development Despite the processes that are code centric, in these approaches, models are the main artifacts which drive the development Model Driven [Zam 09] http://www.clker.com/clipart-2403.html The ultimate goal is to automatically generate programs from the corresponding models [Sel 03]. 12/16/2013 An Introduction to MDE, Bahman Zamani 12 /34 6

A metaphor for MDE http://www.theenterprisearchitect.eu/archive/2009/08/05/a metaphor for model driven engineering 12/16/2013 An Introduction to MDE, Bahman Zamani 13 /34 An MDE Roadmap [Zam 09] 12/16/2013 An Introduction to MDE, Bahman Zamani 14 /34 7

An MDE Roadmap [Zam 09] MDE is a model centric approach. The software development is indeed a correct application of some transformations. That means developers transform artifacts from one level of abstraction to another level, until they obtain a working code. For applying MDE, we need a modeling tool to utilize automatic execution of transformations. 12/16/2013 An Introduction to MDE, Bahman Zamani 15 /34 Round-Trip Engineering Transformations [Zam 09] Modes of transformation Manual Automatic Types of transformation Model to Model Refinement Refactoring Model to Code = Forward Engineering Code to Model = Backward Engineering Code to Code Don t leave, Next talk is on Transformations! 12/16/2013 An Introduction to MDE, Bahman Zamani 16 /34 8

Model Driven Architecture (MDA) A primary example of MDD An example of MDE vision A framework for MDSD [Sen 03] The realization of MDE principles around a set of OMG standards [Bez 05] MDA Separates the specification of functionality from the specification of the implementation There are two types of models Platform Independent Model (PIM) Platform Specific Model (PSM) Design once, build it on any platform (.NET, J2EE, CORBA, ) http://www.omg.org/mda/ 12/16/2013 An Introduction to MDE, Bahman Zamani 17 /34 MDA: Mapping from PIM to PSM PIM The PSM is derived from the PIM by applying a set of systematic transformation rules called mapping Maps to Maps to Maps to CORBA Model Java/EJB Model Other Model Maps to Maps to Maps to CORBA Java/EJB Other 12/16/2013 An Introduction to MDE, Bahman Zamani 18 /34 9

Executable UML (xuml) [Mel02] xuml is a profile of UML that allow defining the behavior of a single subject matter in sufficient detail that it can be executed. To build a system, we build an executable UML of each subject matter. Typically, the system includes subject matters such as the application a user interface some general services The xuml models for each of these subject matters are then woven together by an xuml model compiler. 12/16/2013 An Introduction to MDE, Bahman Zamani 19 /34 xuml [Mel02] Uses three basic types of models: UML class diagrams abstract common real world objects into classes UML state charts each active object has a lifecycle which is abstracted as state machines Action Language specifies the behavior of the object as it goes through each state of its lifecycle Other UML diagrams can be used to support the construction of xuml models 12/16/2013 An Introduction to MDE, Bahman Zamani 20 /34 10

xuml [Mel02] An xuml specification comprises a set of models. 12/16/2013 An Introduction to MDE, Bahman Zamani 21 /34 Model Compilers [Mel02] An xuml model completely specifies the semantics of a single subject matter. An xuml model compiler turns an xuml model into an implementation using a set of decisions about the target hardware and software environment. There exist many compilers that can translate an xuml model into, for example Multi tasking C++ optimized for embedded systems, targeting Windows, Solaris, etc Multi processing C++ with transaction safety and rollback Fault tolerant, multi processing C++ with persistence supporting three processor types and two operating systems Example of off the shelf compilers Example: BridgePoint, iuml, Rational Rose Do not modify generated code! 12/16/2013 An Introduction to MDE, Bahman Zamani 22 /34 11

Note: following slides are based on the book: Dragan Milicev, Model Driven Development with Executable UML, Wrox Programmer to Programmer, 2009. The book proposes a new executable profile of UML for the domain of information systems referred to as the OOIS UML profile 12/16/2013 An Introduction to MDE, Bahman Zamani 23 /34 Modeling Languages The concrete notation of modeling and implementation languages can be textual (sequential) or visual (diagrammatic) Both textual and diagrammatic languages have their advantages and drawbacks Usually, a combination of both is most efficient in modeling 12/16/2013 An Introduction to MDE, Bahman Zamani 24 /34 12

Modeling Languages 12/16/2013 An Introduction to MDE, Bahman Zamani 25 /34 Modeling Tools Tools are key factors to successful production Different kinds of software systems are used as modeling tools: Model editor: is used for creating and editing models, responsible for their specification, visualization, and consistency checking Transformers, translators, generators, or compilers: transform models into lower level forms Code generator: sometimes called model compiler 12/16/2013 An Introduction to MDE, Bahman Zamani 26 /34 13

Executable UML Foundation A recent initiative of OMG is the work on the Executable UML Foundation The approach described in this book is a result of an independent and simultaneous work that is similar with the Executable UML Foundation in many aspects, most notably in its idea of the formalization of the runtime semantics of a selected part of UML However, the approach presented in this book is tailored for one particular, yet very broad, domain of applications (information systems), and brings other concepts that are suitable for modeling in that domain 12/16/2013 An Introduction to MDE, Bahman Zamani 27 /34 Profiling UML Making a profile of UML for modeling information systems is actually the core goal of this book It is a profile of UML for object oriented information systems (OOIS), called the OOIS profile of UML (OOIS UML for short) 12/16/2013 An Introduction to MDE, Bahman Zamani 28 /34 14

Key Features of OOIS UML A quick look at what can be done with OOIS UML, not precisely how Using a simple example of a small information system for an imaginary school named Easylearn 12/16/2013 An Introduction to MDE, Bahman Zamani 29 /34 Key Features of OOIS UML A running application is resulted, without writing a single line of code, from the model ( MDD) 12/16/2013 An Introduction to MDE, Bahman Zamani 30 /34 15

The organization of OOIS UML OOIS UML is an MDD method consists of: Language is defined as an executable profile of UML Model library some reusable, general purpose models, built in the OOIS UML language, available to modelers Run time environment the execution engine for maintaining the object space to the running application Design process a set of guidelines and hints of how to apply the language 12/16/2013 An Introduction to MDE, Bahman Zamani 31 /34 The organization of OOIS UML The (major part of) models built in OOIS UML are formal and executable When a model is developed, it can be executed within the run time environment, after a possibly needed compilation, such as a standard computer program The generic GUI of the execution environment enables rapid prototyping of the system and a kind of model debugging 12/16/2013 An Introduction to MDE, Bahman Zamani 32 /34 16

References [Bez 05] Jean B ezivin. On the unification power of models. Software and System Modeling, 4:171 188, May. 2005. [Bez 06a] Jean B ezivin and Fr ed eric Jouault. Using ATL for checking models. ENTCS, 152:69 81, Mar. 2006. [Bez 06b] Jean B ezivin. Model driven engineering: An emerging technical space, LNCS 4143, pages 36 64. Springer, 2006. [Dug 07] Asif Dugar. Model Driven Deevelopment for Enterprise Applications, MSc thesis, Concordia University, Canada, 2007. [Jou 08] Frédéric Jouault, Freddy Allilaire, Jean Bézivin, and Ivan Kurtev. ATL: A model transformation tool, Science of Computer Programming, 77(1 2):31 39, Jun. 2008. [Mel02] Stephen J. Mellor and Marc J. Balcer, Executable UML: A Foundation for Model Driven Architecture, Addison Wesley, 2002. [Mil09] Dragan Milicev, Model Driven Development with Executable UML, Wrox Programmer to Programmer, 2009. [MOF2] OMG. MOF Core Specification, v2.0. OMG document: formal/06 01 01, 2006. [Obj 05] Object Management Group (OMG). Unified Modeling Language (UML): Infrastructure, v2.0. OMG document: formal/05 07 05, 2005. [Pre 10] Roger S. Pressman, Software Engineering: A Practitioner's Approach, Seventh Edition, McGraw Hill, 2010. [Sch 06] Douglas C. Schmidt. Guest editor s introduction: Model driven engineering. IEEE Computer, 39(2):25 31, Feb. 2006. [Sel 03] Bran Selic. The pragmatics of model driven development. IEEE Software, 20(5):19 25, Sep. 2003. [Sel 06] Bran Selic. Model driven development: Its essence and opportunities. In Proc. ISORC 06, pages 313 319, Los Alamitos, CA, USA, 2006. IEEE Computer Society Press. [UML2] OMG. UML Infrastructure, v2.0. OMG document: formal/05 07 04, 2005. [Zam 09] Bahman Zamani. On Verifying the Use of a Pattern Language in Model Driven Design. PhD thesis, Concordia University, Canada, 2009. 12/16/2013 An Introduction to MDE, Bahman Zamani 33 /34 Thank You! Questions? 12/16/2013 An Introduction to MDE, Bahman Zamani 34 /34 17