Introduction to Model Driven Engineering using Eclipse. Frameworks

Similar documents
Applying Model Driven Technologies in the Creation. of Domain Specific Modeling Languages

Introduction to OpenArchitectureWare

The Eclipse Modeling Framework and MDA Status and Opportunities

Introduction to Dependable Systems: Meta-modeling and modeldriven

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

Automatized Generating of GUIs for Domain-Specific Languages

New and Noteworthy. Peter Friese Bernd Kolb

Introduction to MDE and Model Transformation

Introduction to EGF. Benoît Langlois / Thales Global Services.

Eclipse technology in IFMS Interface Management System

with openarchitectureware

project in an industrial context

Comparing graphical DSL editors

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

Introduction to the Generic Eclipse Modeling System by Jules White

The Future of Software Radio MDD Tools. Dom Paniscotti Bruce Trask

Challenges for advanced domain-specific modeling. István Ráth. Budapest University of Technology and Economics

ECLIPSE MODELING PROJECT

JBPM Course Content. Module-1 JBPM overview, Drools overview

Experimental transformations between Business Process and SOA models

openarchitectureware 4.1 An introduction

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

Applying Model Intelligence Frameworks for Deployment Problem in Real-Time and Embedded Systems

The etrice Eclipse Project Proposal

Defining Domain-Specific Modeling Languages

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

The PISA Project A Model Driven Development case study

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best

Software Factories Application within the ASE5 project

Model Transformations for Embedded System Design and Virtual Platforms

DRAFT. Consolidation of the Generator Infrastructure MDGEN Model Driven Generation

The Galilean Moons of Eclipse

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

ADT: Eclipse development tools for ATL

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

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

Model driven Engineering & Model driven Architecture

An Introduction to MDE

3rd Lecture Languages for information modeling

Software Language Engineering of Architectural Viewpoints

Model transformations. Model transformations. Model transformations. Model transformations

BLU AGE 2009 Edition Agile Model Transformation

GMF 2.0 Europa Simultaneous Release

BIG MODELS AN ALTERNATIVE APPROACH

Tools to Develop New Linux Applications

Eclipse Modeling Framework (EMF) Paweł Żalejko

AD105 Introduction to Application Development for the IBM Workplace Managed Client

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

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

Knowledge Discovery: How to Reverse-Engineer Legacy Systems

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

ATHABASCA UNIVERSITY RULE ENHANCED BUSINESS PROCESS MODELING OF SERVICE ORIENTED ARCHITECTURES LUIS ROCHA. A project submitted in partial fulfillment

DSM model-to-text generation: from MetaDepth to Android with EGL

Christian Doppler Laboratory

Custom Code Rules Deep Dive

Software Industrialization

building DSLs with language workbenches

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger

EGF Creation Review. Benoît Langlois - Thales/TCS/EPM. April 22, 2009

Specification and Automated Detection of Code Smells using OCL

From a lot of Boxes to a lot of Words

Programming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis

DSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis

Language engineering and Domain Specific Languages

ATL: Atlas Transformation Language. ATL User Manual

Getting the Most from Eclipse

Rational Functional Tester - Tips and Tricks

Proseminar. (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker. Model-Driven Software Engineering. Software Engineering Group

Kermeta. in compiled mode

Acceleo Galileo Simultaneous Release

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

EXECUTABLE MODELING WITH FUML AND ALF IN PAPYRUS: TOOLING AND EXPERIMENTS

INTRODUCTION. Chapter #1

INF5120 and INF9120 Modelbased System development

Semantic Web T LS Update

MDSE PRINCIPLES. Chapter #2

Transition from EBNF to Xtext

INF5120 Model-Based System Development

ABAP DSL Workbench SAP TechED 2016

Sequence Diagram Generation with Model Transformation Technology

Executing SyncCharts with Ptolemy

Wikileaking Eclipse Modeling - Spilling the beans on how industry uses EMF based tooling successfully! Ronan Barrett, Ericsson

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler

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

JIVE: Dynamic Analysis for Java

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

Dániel Darvas Domain-specific languages (DSLs): what, how and when?

SEAMLESS INTEGRATION OF METAEDIT+ AND ECLIPSE TO COMBINE MODELING AND CODING

Expressing Feature-Based Variability in Structural Models

The JSF Tools Project

Transformational Design with

Deliverable D4.2. SHAPE MDE Toolset User s Guide

Semantics-Based Integration of Embedded Systems Models

Grammar Composition & Extension

University of Mannheim

TmL Creation Review. First Proposal

Papyrus: Advent of an Open Source IME at Eclipse (Redux)

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

10 Thoughts 2 Demos * Discussions

Model Driven Engineering (MDE)

Transcription:

Introduction to Model Driven Engineering using Eclipse Model Driven Development Generator s Bruce Trask Angel Roman MDE Systems Abstraction Model Driven Development Refinement 1

Part I Agenda What is Model Driven Engineering Part II MDE, Eclipse in Action, Live Demo Questions and Answers 2

Warning The live demo in this tutorial is real and contains pictures of coding done without model driven development. Some of the scenes you will see may not be appropriate for children under the age of 13 3

Model Driven Development Summary Abstraction Model Driven Development Generator Refinement 4

Complexity and Change 5

Abstraction Gap 6

Software Engineering/Computer Science Raising the level of Abstraction Introducing layers of indirection to solve problems 1 1 Dennis DeBruler, Refactoring, Fowler et. al. Addison Wesley 1999 7

Language and Platform Complexity Change TEAM Components s Middleware Libraries APIs OS HW 8

Language and Platform where we are now Change Complexity TEAM Components s Middleware Libraries APIs OS HW Classic Product Line Assets 9

Rote vs. Creative Code 10

Domain Specific vs. Domain Independent Code 11

Duplicate vs. Unique Code 12

What s underneath the problems Language technology has not kept pace with platform technology 1 Insufficient linguistic power to tackle platform and domain complexity Lack of tools to deal with increased complexity 1 Douglas C. Schmidt IEEE Computer Magazine February 2006 13

Solution Leverage recent critical innovations to provide a quantum leap of language technology and tools to overcome the complexity gap Eclipse provides the necessary tools to make this happen 14

Models - participants 15

Abstract(ion) Thought of as apart from concrete realities, specific objects, or actual instances Expressing a quality or characteristic apart from any specific object or instance 1 Derivation: abs away or away from, tract to pull or draw 1 relate to domain/product Doing more with less [Unknown] 1 Random House Unabridged Dictionary 2 nd Edition, Random House 1993 16

Abstraction - Language 17

Groups of Abstractions Groups of abstractions are used to tackle complex problems Abstractions have particular relationships and can be combined in meaningful ways 1 New names, new relationships Creation of a vocabulary and grammar = language 1 1 Software Factories, Greenfield et. al. Wiley 2004 18

Abstraction Packaging Patterns Pattern Language Tools MDD Artifacts ABSTRACTION Libraries Languages s Components Traditional Software Product Line Assets 19

Abstraction Productivity/Power Refinement Control 20

Model Driven Development Program with Models Create Models that can be processed by a machined to produce lower level abstraction artifacts Language - Editor - Generator 21

Model Driven Development The Anatomy and Pattern 22

23

Purpose Language define the abstract syntax, or grammar, upon which the editor, serialization concrete syntax, and inmemory concrete syntax are based. Editor The purpose of the editor is to render, capture and express design intent Generator Provides automatic ways to get to lower levels of more executable forms of code. Provides the actual meaning or semantics to the higher levels of abstractions. 24

25

26

Synonyms Model Driven Development Domain Specific Language 27

Language 28

Language Vocabulary + Grammar = Language 29

Metamodel Object oriented representation of the grammar of a language 30

Sidebar 31

Non Software Example Domain Independent 32

Non Software Example Domain Specific 33

Non Software Example Domain Specific 34

Domain Specific Language Model concepts found in a specific domain Contrast to General Purpose Language encodes generic abstractions 35

Editor Textual Syntax and highlighting, intellisense Graphical Domain Specific Graphics Meant for the human Nominated to a first class MDD participant Constraints at modeling time See the design Program in terms of domain elements and relationships Declarative 36

Generator Where the rubber meets the road in MDD Correct by construction Best Practice and Design Pattern replication Programming Power Maintainability two sides of the same coin when bug occurs Portability of design Opens the world up to new programmers 37

Abstract architectures and classes that provide a partial solution to a family of problems. 38

DSLs, Models and s 39

Making it actually happen 40

Language Workbench 1 http://www.martinfowler.com/articles/languageworkbench.html State Model View Controller Domain Model Serializer Observer Serializer Command Graphical Grammar Reflection Metamodel Chain of Responsibility Template View Visitor Strategy Abstract Factory Factory Method 41

Language Workbench Workbench Generator Workbench Modeling Workbench Debugging Workbench Graphical Editor Language Workbench Workbench Graphical Modeling Workbench Transformation Workbench Testing Workbench Constraint 42

Eclipse 1 http://www.martinfowler.com/articles/languageworkbench.html 43

Eclipse Language Workbench 44

Tasks 45

46 Workbench Modeling Workbench Generator Workbench Graphical Editor Workbench Testing Workbench Graphical Modeling Workbench Debugging Workbench Constraint Workbench Transformation Language Workbench Workbench Textual Modeling Launch JET xpand M2T EMF GEF ATL oaw M2M M2T TMF ELF ETM EVF GMF EDF xunit TPTP s and Projects

Eclipse as a Domain Specific Generators Model Driven Development Domain Specific Models Java Emitter Templates Domain Specific Debuggers Engine Eclipse Modeling Eclipse Debugging Domain Specific Graphics Graphical Editor Graphical Modeling Domain Specific Graphics Mapping Domain Specific Transformations Eclipse Transformation (ATL) Eclipse Testing Eclipse Constraint Domain Specific Constraints Domain Specific Test 47

Part 2 Model Driven Development, Software Product Lines and Eclipse in Action Live Demo 48

49