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

Similar documents
Introduction to Model Driven Engineering using Eclipse. Frameworks

The Eclipse Modeling Framework and MDA Status and Opportunities

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

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

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

The PISA Project A Model Driven Development case study

Automatized Generating of GUIs for Domain-Specific Languages

Introduction to Dependable Systems: Meta-modeling and modeldriven

Defining Domain-Specific Modeling Languages

UNIT-I Introduction of Object Oriented Modeling

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

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

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

Introduction to MDE and Model Transformation

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

MDSE USE CASES. Chapter #3

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

Index. Comma-separated values (CSV), 30 Conditional expression, 16 Continuous integration (CI), 34 35, 41 Conway s Law, 75 CurrencyPair class,

Language engineering and Domain Specific Languages

Introduction to OpenArchitectureWare

MICROSOFT VISUAL STUDIO 2010 Overview

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

An Introduction to MDE

Model driven Engineering & Model driven Architecture

Software Language Engineering of Architectural Viewpoints

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

3rd Lecture Languages for information modeling

Christian Doppler Laboratory

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

10 Thoughts 2 Demos * Discussions

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

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

BLU AGE 2009 Edition Agile Model Transformation

Semantics-Based Integration of Embedded Systems Models

Software Industrialization

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

A conceptual framework for building good DSLs. Markus Voelter independent/itemis

The etrice Eclipse Project Proposal

Custom Code Rules Deep Dive

CSSE 490 Model-Based Software Engineering: Software Factories

Experimental transformations between Business Process and SOA models

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

Using Domain-Specific Modeling to Develop Software Defined Radio Components and Applications

MDSE PRINCIPLES. Chapter #2

Application Architectures, Design Patterns

A Collaborative User-centered Approach to Fine-tune Geospatial

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

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

with openarchitectureware

Rational Functional Tester - Tips and Tricks

PisaTel Meeting Roma, 29 novembre 2007

Software Reuse Techniques

Introduction to Java Programming

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

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

Compositional Model Based Software Development

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

Introduction to the Generic Eclipse Modeling System by Jules White

1 Software Architecture

Reading part: Design-Space Exploration with Alloy

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

Easy Multicore Programming using MAPS

Design Patterns Reid Holmes

Solution: Reuse Design Patterns Design patterns support reuse of software architecture Patterns embody successful solutions to problems that arise whe

Getting the Most from Eclipse

Model Driven Development. Building Automated Code Generation Methods with Eclipse and DSL Tools. Vicente Pelechano

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

Visualizing Software Architectures

Transformational Design with

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.

Test Driven Development. Software Engineering, DVGC18 Faculty of Economic Sciences, Communication and IT Tobias Pulls and Eivind Nordby

Model Driven Engineering (MDE)

Sequence Diagram Generation with Model Transformation Technology

Technical aspects of VTL to SQL translation Prepared by Regional Statistical Office in Olsztyn, Poland

Document Engineering

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

ADT: Eclipse development tools for ATL

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

developer.* The Independent Magazine for Software Professionals

The Design Patterns Matrix From Analysis to Implementation

INT NTION L. Domain Expert DSLs

Functional verification on PIL mode with IAR Embedded Workbench

Meeting the Challenges of Ultra-Large

Frustrated by all the hype?

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

Modeling pilot project at Ericsson Expert Analytics

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

6.871 Expert System: WDS Web Design Assistant System

Software Engineering I (02161)

Introduction to Design Patterns

SOA = Same Old Architecture?

LECTURE 3 ADMINISTRATION SECTION -A

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

1 Executive Overview The Benefits and Objectives of BPDM

ThingML: A Modelling Language for the Internet of Things

INSTITUTE OF AERONAUTICAL ENGINEERING

Introduction to Design Patterns

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

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Transcription:

Applying Model Driven Technologies in the Creation Model Driven Development Language Editor Generator Abstraction Model Driven Development Refinement of Domain Specific Modeling Languages Bruce Trask Angel Roman MDE Systems Software Product Lines Domain Process Scope Product Software Product Lines 1

Agenda Some Comments on Software and the Software Industry Definitions Advances in Software Enabling Technologies Making it all work MDE and Software Product Lines in Action 2

Model Driven Development Language Editor Summary Abstraction Model Driven Development Generator Refinement 3

Summary Scope Software Product Lines Domain Product Software Product Lines Process 4

Synergy / Holism Enabling Technologies and Approaches 5

Complexity and Change 6

Abstraction Gap Requirements 7

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 8

Language and Platform Complexity Change Components Frameworks Middleware C++/Java Assembly Language OpCodes Libraries APIs OS HW 9

Language and Platform where we are now Change Complexity Components Frameworks Middleware Libraries APIs Classic Product Line Assets OS C++/Java Assembly Language OpCodes HW 10

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 11

Solution Leverage recent critical innovations to provide a quantum leap of language technology and tools to overcome the complexity gap 12

Orders of Magnitude 1000x more processing power 1000x more dynamic memory 1000x more disk space 1000x more power efficiency 1000x smaller 15 orders of magnitude 13

Forces Upon SW Architecture Conway s Law Education Fear of change The real world square/rectangle 14

Software Invisible Natural Laws Multiplicity of Software Design Malleable 15

Rote vs. Creative Code 16

Domain Specific vs. Domain Independent Code 17

Duplicate vs. Unique Code 18

Definitions - Basics 19

Model Driven Development Model Driven Development 20

Model what it is a simplified representation of a system 1 Derivation Latin modus, measure amount, limit, manner, kind, tone 1 Primarily a model is information at a particular level of abstraction An abstraction of reality [www.dictionary.com] 1 Random House Unabridged Dictionary 2 nd Edition, Random House 1993 21

Model Dealing with Complexity 22

Model Dealing with Complexity 23

Models - participants 24

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 25

Abstraction Five steps Selectively ignore detail not pertinent to the viewpoint Create a new element that encapsulates and relates the details pertinent to the viewpoint Give this new element a name Provide a connection between this new element and the details High Fidelity Package the abstraction to be used by others 26

Abstraction http://www.nycsubway.org/maps/spui.html 27

Abstraction - Language 28

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 29

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

Abstraction Productivity/Power Refinement Control 31

Misconceptions about Models Models must be visual or graphical Models must be declarative Modeling and programming are completely separate activities Modeling should be separated from programming 32

Driven Caused, sustained, or stimulated: an export-driven economic recovery. Powered, operated, or controlled: a piston-driven airplane; a menu-driven software program. [both from dictionary.com] To cause and guide the movement of 1 To impel; constrain; urge; compel 1 Contrast with oriented, centric, integrated 1 Random House Unabridged Dictionary 2 nd Edition, Random House 1993 33

Develop(ment) In contrast with architecture, design, documentation To bring into being or activity, generate, evolve 1 Engineering the art or science of making practical application of the knowledge of pure sciences, as physics or chemistry, as in the construction of engines, bridges, buildings, mines, ships, and chemical plants. 1 Random House Unabridged Dictionary 2 nd Edition, Random House 1993 34

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

Programming/Modeling Programming Engineering/ Development Modeling 36

Model Driven Development The Anatomy and Pattern 37

Language Model Driven Editor Development Generator 38

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. 39

E L G 40

E L G 41

Synonyms Model Driven Development Domain Specific Language 42

Abstract Syntax Language Language Semantics Concrete Syntax 43

Language Vocabulary + Grammar = Language 44

Metamodel Object oriented representation of the grammar of a language 45

Sidebar 46

Non Software Example Domain Independent 47

Non Software Example Domain Specific 48

Non Software Example Domain Specific 49

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

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 51

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 52

Software Product Lines Scope Software Product Lines Domain Product Software Product Lines Process 53

Software Product Line Software Product Line 54

Software Product Line Contrast with one-off system The Split Domain Engineering/Product Engineering Definition a family of software products members vary sharing common features Aren t all software products product lines? 55

The Central Dichotomy Frameworks and MDD tools Different skills, experience and expertise Domain Experts Product Line Developers Product Developers 56

The Strategy Pattern Abstraction Commonality Variability Family of systems Complexities introduced Making it a language 57

Strategy Pattern mini product line Context 1 * Strategy Strategy1 Strategy2 Strategy3 Strategy1 Strategy2 Strategy3 Strategy Strategy Strategy Context Context Context Strategy1 Strategy2 Strategy3 58

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

DSLs, Models and Frameworks 60

MDD and SPL NOTE Synergy MDD + SPL = SPL MDD brings SPL into the hands of the Domain Expert Uniting the various aspect of SPL and Software Development 61

MDD and SPL Product Line Engineering isolation of the scope, commonalities and variabilities of a particular domain[1]. Model Driven Engineering capturing of these commonalities and variablities in formal models so as to provide effective domain specific tooling. Synergy between MDE and Product Line Engineering. Tools then become the perfect medium with which developers can express, manipulate, analyze, simulate and generate the commonalities and variabilities of a product line. MDE tools are frequently the overarching central and aligning production asset provided to the product engineering group from the product line engineering group. 1 Commonality and Variability in Software Engineering, Coplien IEEE Software 1998 62

Enabling Technologies and Approaches Test Driven Development Continuous Integration Tracer Bullets 63

Continuous Integration 64

Continuous Integration 65

Test Driven Development, Automated Test, Continuous Integration When these happen and how often TDD Refinement TDD Abstraction TDD Scope TDD Commonality Variability CI Refinement CI Scope CI Conway s Law Testing forcing a family of two Mocking Technologies increased quality 66

Making it actually happen 67

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

Language Workbench Workbench Generator Framework Workbench Modeling Framework Workbench Debugging Framework Workbench Graphical Editor Framework Language Workbench Workbench Graphical Modeling Framework Workbench Transformation Framework Workbench Testing Framework Workbench Constraint Framework 69

Artifacts needed Editors Views Actions Generators Constraints Debuggers Tests 70

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

Eclipse Language Workbench Workbench Generator Framework Workbench Modeling Framework Workbench Debugging Framework Workbench Graphical Editor Framework Workbench Graphical Modeling Framework Workbench Transformation Framework Workbench Testing Framework Workbench Constraint Framework 72

Eclipse as a Domain Specific Generators Product Line Domain Specific Models Java Emitter Templates Domain Specific Debuggers Eclipse Modeling Framework Eclipse Debugging Framework Domain Specific Graphics Graphical Editor Framework Graphical Modeling Framework Domain Specific Graphics Mapping Domain Specific Transformations Eclipse Transformation Framework (ATL) Eclipse Testing Framework Eclipse Constraint Framework Domain Specific Constraints Domain Specific Test 73

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

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

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 Duplicate Code Manual String Matching Framework Details Hazardous Coding 76

E L G 77

Books 78

Books 79

Books 80

More Information Website: www.mdesystems.com News: www.mdesystems.com/news.html Events: www.mdesystems.com/events.html Phone: 718-451-6668 Email: bruce.trask@mdesystems.com angel.roman@mdesystems.com