Model Driven Engineering (MDE)

Similar documents
Model Driven Engineering (MDE) and Diagrammatic Predicate Logic (DPL)

A Formal Approach to Modeling and Model Transformations in Software Engineering

Modelling in Enterprise Architecture. MSc Business Information Systems

Requirements Modelling and Software Systems Implementation Using Formal Languages

QoS-aware model-driven SOA using SoaML

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

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

Introduction to Dependable Systems: Meta-modeling and modeldriven

Introduction to MDE and Model Transformation

AUTOMATED BEHAVIOUR REFINEMENT USING INTERACTION PATTERNS

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

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

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

All you need are models Anneke Kleppe, Klasse Objecten

Model driven Engineering & Model driven Architecture

Overview of lectures today and Wednesday

Raising the Level of Development: Models, Architectures, Programs

A universal PNML Tool. Lukasz Zoglowek

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

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

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

BLU AGE 2009 Edition Agile Model Transformation

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

Formal Foundations of Software Engineering

Data Validation Constraints in MDE

INF5120 Model-Based System Development

Methods for the Development

Model Driven Architecture - The Vision

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

MDA Driven xuml Plug-in for JAVA

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

Lecture 1/2. Copyright 2007 STI - INNSBRUCK

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

Transformation of the system sequence diagram to an interface navigation diagram

SCENARIO-BASED REQUIREMENTS MODELLING

Notation Standards for TOGAF:

bahmanzamani.com Computer Engineering i Dept. University of Isfahan

An Introduction to MDE

Chair of Software. Engineering. Overview. School of Business Informatics and Mathematics. 1. Find out why software engineering is important

INF Lecture plan

Models versus Ontologies - What's the Difference and where does it Matter?

Static analysis and testing of executable DSL specification

Enabling High Quality Executable Domain Specific Language Specification

Software Architecture

3rd Lecture Languages for information modeling

Reconciling TGGs with QVT

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

Current trends and frameworks for modeldriven approaches to software development

SUMMARY: MODEL DRIVEN SECURITY

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

UNIVERSITY OF OSLO Department of Informatics. Metamodel-based Editor for Service Oriented Architecture (MED4SOA) Master thesis.

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Conceptual Database Modeling

Deliverable D4.2. SHAPE MDE Toolset User s Guide

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Semantics-Based Integration of Embedded Systems Models

Model Driven Development Unified Modeling Language (UML)

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

Language engineering and Domain Specific Languages

Model-Driven Language Engineering

Sequence Diagram Generation with Model Transformation Technology

Compositional Model Based Software Development

Introduction to OpenArchitectureWare

INF5120 and INF9120 Modelbased System development

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

UML 2.0 State Machines

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

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

MDSE USE CASES. Chapter #3

Defining Domain-Specific Modeling Languages

Composite Domain-Specific Language Design and Development using Aspect-Oriented Weaving. Master thesis 60 credits

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

MDA Journal. BPMI and OMG: The BPM Merger A BPT COLUMN. David S. Frankel Lead Standards Architect - Model Driven Systems SAP Labs.

Describing Computer Languages

Improving the Definition of UML

Multimedia Ontology-Driven Architecture for Multimedia Systems

A Model-driven approach to NLP programming with UIMA

Existing Model Metrics and Relations to Model Quality

Model-Based Social Networking Over Femtocell Environments

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

Chapter 8: Enhanced ER Model

Semantic Information Modeling for Federation (SIMF)

Model-Independent Differences

Improving Military Information Technology Through Common Conceptual Models

Dr. Klaus Fischer. Multiagent Systems Group DFKI GmbH Saarbrücken, Germany ICAART

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

Model-Driven Architecture

Business Process Modelling

This paper is more intended to set up a basis for a constructive discussion than to offer definitive answers and closed solutions.

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

Reading part: Design-Space Exploration with Alloy

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

The Model Driven Architecture. Dennis Wagelaar Viviane Jonckers Software Languages Lab

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

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

Index. business modeling syntax 181 business process modeling 57 business rule 40

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

The Journal of Logic and Algebraic Programming

Horváth Ákos Bergmann Gábor Dániel Varró István Ráth

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

Transcription:

Model Driven Engineering (MDE) Yngve Lamo 1 1 Faculty of Engineering, Bergen University College, Norway 26 April 2011 Ålesund

Outline Background Software Engineering History, SE Model Driven Engineering Model-driven Engineering (MDE) Modeling Model Modeling Languages Meta-Modeling Domain Specific Languages Model Transformations Summary and resources

Software complexity problems leads to new abstractions in software technologies every 10 year 1950s Assembly languages. Programs around 10 3 lines of code 1960s Imperative programming (Fortran 1954), compilers. Semantics of languages, correctness of programs. Programs 10 4 LOC. (Functional programming) 1970s increasing project size, modularity and information hiding, object orientation (Simula1967). 1968 first NATO conference in SE. Programs 10 5 LOC 1980s increasing project size changing requirements, OO mature, formal specifications introduced. Programs 10 6 LOC 1990s Distributed systems, internet, component models, quality of services, generic programming. Programs 10 7 LOC 2000s Multi-platform applications, mobile, cloud computing, Model Driven Engineering? Programs 10 8 LOC

MDE aims to Increase the level of abstraction and automation in program development by: Using models as the major development artefact Using executable model transformations for: Program development steps, higher (abstract) level of models are transformed to lower (more concrete) level until the model is executable by code generation or model interpretation Technology migration e.g. from a C++ Windows desktop application to a Android mobile application Modeling of cross platform applications (SOA)

MDE Engineering techniques where models are first-class entities Evolved from the popularity of diagrammatic languages such as UML and ER(1976) and their popularity for specification and documentation of software systems Developed from CASE tools from the 80ies Aims to raise the abstraction level of software development from text to models The development process is based on software models, not on plain text

MDA implementation of MDE Model Driven Architecture (MDA) introduced in 2001 by Object Management Group (OMG), where: First abstraction level is to specify a Computation independent domain model, CIM Next step is building platform independent models, PIM s that focus on the functionality of the system without specific technologies PIM s are refined to platform specific models PSM s Refinement process more or less automatized as model transformations Code generation and model refinement can be seen as model transformations Reuse of software models by using model transformations

MDD vs Traditional Development Processes Programmers' shortcut

Key point for success for MDE Models are not longer only for documentation Models should be both: intuitive for software engineers and domain experts to intercept and work with formal such that machines could have precise understanding and reason about the models

Key point for success for MDE Models are not longer only for documentation Models should be both: intuitive for software engineers and domain experts to intercept and work with formal such that machines could have precise understanding and reason about the models Diagrammatic approach enhance human understanding Challenge to combine intuition with formalization

Modeling Model comes from Latin modulus meaning measure/standard A model is a pattern, plan, representation (especially in miniature), or description designed to show the main object or workings of an object, system, or concept A model need to meet the following 3 criteria Reflection A model reflects some properties of an original (system). The original system could be a construction that exists or is planned to be built, or a conceptual abstract idea Abstraction The model describes only some of the "interesting" properties of the original Substitute The model can be used instead of the original for some purposes

Some modeling languages Behavior Trees formal, graphical modeling language used to unambiguously represent natural language requirements for large-scale software-integrated system Business Process Modeling Notation (BPMN, it s XML form BPML and executabel form BPEL) examples of a Process Modeling language Object Role Modeling (ORM) conceptual DB modeling language Petri nets For model checking, graphically-oriented simulation, and software verification Unified Modeling Language (UML) Formal languages Algebraic, logic, categorical, set based,...

Some facts about UML UML is defacto industry standard for modeling UML can only express constraints on binary relations, basically UML only gives cardinality constraints UML has serious issues regarding: Semantics; UML models may be ambiguous and have semi-formal semantics Complexity; UML uses 13 different types of diagrams Expressibility; To express constraints over higher order relations one need to use string based logic, (Object Constraint Language, OCL)

Formal modeling languages Nice semantics, several fundamental Software Engineering problems solved by use of formal methods Set based semantics (logic, algebras, type theory,... ) No concept of meta-modeling Hard for software engineers to apply in practice Lack of good software development tools based on formal approaches Only used by well trained experts High cost low productivity

Meta Modeling A meta-model is a model of models Meta-models are used for defining modeling languages E.g. in OO modeling a person is an instance of class One can also use meta-modeling to create Domain Specific Languages DSL, i.e. we make language constructs for important concept, e.g. a student and a teacher is instances of persons

Meta-model example Pattern Example Models: first class entities

Meta-model example Pattern Example Models: specified by means of a modelling language

Meta-model example Pattern Example Modelling language: corresponding metamodel + semi-formal semantics

Meta-model for object orientation and databases

OMG Metamodel Levels OMG levels M 3 : Meta-meta-model M 2 : Meta-model M 1 : Model M 0 : Instance OMG Standards/examples MOF UML language A UML model: Class "Person" with attributes "name" and "address" An instance of "Person": "Ola Nordmann" living in "Sotraveien 1, Bergen"

Domain Specific Language, DSL A DSL is a modeling language made to model a particular problem domain The DSL is based on a meta model that captures essential concept of the domain

Model transformation A model transformation is a mapping that takes a model as input and creates a new model (program) as output Model transformations can be classified in: Homogenous transformation the metamodel of the input and the target model are equal Heterogenous transformations the metamodel of the input and output model are different Inplace transformation the input model are copied to the target model Outplace transformation the target model are created from scratch

Model transformation Given source and target modeling formalisms and a source model...

Model transformation... we want to generate a target model

Model transformation How can we get the target model from the source model?

Model transformation We have to relate the modeling formalisms

State of the art in MDE Modeling UML or EMF used as modeling language Model transformations Rule based (Atlas) or add hoc transformations are used Meta modeling Only support for 2 levels of meta-modeling Tool support Eclipse based (EMF, GMF) tools Software constraints Specified in text based language (OCL)

Links to resources mde-model-driven-engineering-reference-guide model-driven-engineering mda-model-driven-architecture-basic-concepts Diagram-Predicate-Framework Eclipse-Modeling-Technologies

Summary The industry have a lot of hidden knowledge, they see no need for formalization Modeling community work with typing (fibrations), not pointers (index) as we are trained to in mathematics Practical problems seems easy in theory but you really get dirt on your fingers MDE is a promising but one need formal understanding of modeling, meta modeling and model transformation MDE still need better tool support to be used in software industry New challenges regarding serialization and versioning of models arising in MDE