Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Teaching material for the book Model-Driven.

Slides:



Advertisements
Similar presentations
MDI 2010, Oslo, Norway Behavioural Interoperability to Support Model-Driven Systems Integration Alek Radjenovic, Richard Paige The University of York,
Advertisements

Professor John Hosking, Dean of Engineering and Computer Science Models, Modelling, MBSE.
Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
1 Model-driven development of SOA with Web services – using QVT technology Master thesis by Berge Stillingen Department of Informatics, University of Oslo.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
Model-Based Programming: Executable UML with Sequence Diagrams By Ruben Campos Cal State L.A. Computer Science Thesis Work Spring 2007.
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
OMG Meeting, Helsinki Model Driven Architecture An Alternative Implementation Approach Werner Froidevaux
Research in Compilers and How it Relates to Software Engineering Part III: Relation to SE Tomofumi Yuki EJCP 2015 June 22, Nancy.
Comparing M2T & M2M Complementary Approaches © 2008 INRIA, University of York & SINTEF Comparing M2T & M2M Complementary Approaches Hugo Bruneliere,
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Technical Overview.
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Introduction to MDA (Model Driven Architecture) CYT.
Larry L. Johnson Federal Transition Framework.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Executable Translatable UML Stephen J. Mellor Chief Scientist.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
1 A Model-Driven Approach For Information System Migration Raymonde Le Delliou 1, Nicolas Ploquin 2, Mariano Belaunde 3, Reda Bendraou 4, Louis Féraud.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
Experiences from Representing Software Architecture in a Large Industrial Project Using Model Driven Development Andres Mattsson 1 Björn Lundell 2 Brian.
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
A division of Data Access Technologies, Inc. Combining Alf and UML in Modeling Tools Ed Seidewitz, Model Driven Solutions Jérémie Tatibouet, CEA 28 September.
 Programming - the process of creating computer programs.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
The Dagstuhl Middle Model: An Overview Timothy C. Lethbridge SITE, University. of Ottawa
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Viewpoint Modeling and Model-Based Media Generation for Systems Engineers Automatic View and Document Generation for Scalable Model- Based Engineering.
Model Driven Architecture MDA SE-548 Lale Doğan
Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Teaching material for the book Model-Driven.
Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Teaching material for the book Model-Driven.
CASE Tools and their Effect on Software Quality
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Introduction To Software Development Environment.
CSCI-235 Micro-Computer Applications
Web Application Modeling
Proposed SysML v2 Submission Plan
Towards Automatic Model Synchronization from Model Transformation
Constructing MDA-based Application Using Rational XDE for .NET
Software Architecture & Design
Presentation transcript:

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Teaching material for the book Model-Driven Software Engineering in Practice by Marco Brambilla, Jordi Cabot, Manuel Wimmer. Morgan & Claypool, USA, MDSE USE CASES Chapter #3

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool MDSE GOES FAR BEYOND CODE-GENERATION

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool MDSE has many applications MDD is just the tip of the iceberg And MDA a specific “realization” of MDD when using OMG standards

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Three killer MDSE applications Code Generation Software Modernization Systems interoperability

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool USE CASE1 – MODEL DRIVEN DEVEOPMENT

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool MDD contribution: Communication Models capture and organize the understanding of the system within a group of people Models as lingua franca between actors from business and IT divisions

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool MDD contribution: Productivity MDD (semi)automates software development In MDD, software is derived through a series of model-to- model transformations (possibly) ending with a model-to- text transformations that produces the final code Original model 1 st refinement n th refinement Model-to-model Transformation Model-to-text Transformation...

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Executable models An executable model is a model complete enough to be executable From a theoretical point of view, a model is executable when its operational semantics are fully specified In practice, the executability of a model may depend on the adopted execution engine models which are not entirely specified but that can be executed by some advanced tools that are able to fill the gaps Completely formalized models that cannot be executed because an appropriate execution engine is missing.

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Smart vs dumb execution engines CRUD operation typically account for 80% of the overall software functionality Huge spared effort through simple generation rules

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Executable models Most popular: Executable UML models Executable UML development method (xUML) initially proposed by Steve Mellor Based on an action language (kind of imperative pseudocode) Current standards Foundational Subset for Executable UML Models (fUML) Action language is the Action Language for fUML (Alf) basically a textual notation for UML behaviors that can be attached to a UML model

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Executable models: 2 main approaches Code generation: generating running code from a higher level model in order to create a working application by means of a rule-based template engine common IDE tools can be used to render the source code produced Model interpretation: interpreting the models and making them run Non-empty intersection between the two options

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Code Generation Goal: generating running code from higher level models Like compilers producing executable binary files from source code Also known as model compilers Once the source code is generated state-of-the-art IDEs can be used to manipulate the code

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Code Generation: Scope

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Code Generation: Benefits Intellectual property Separation of modeling and execution Multi-platform generation Generators simpler than interpreters Reuse of existing artefacts Adaptation to enterprise policies Better performances

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Code Generation: Partial Generation Input models are not complete & code generator is not smart enough to derive or guess the missing information Programmers will need to complete the code manually Caution! Breaking the generation cycle is dangerous Solutions: Defining protected areas in the code, which are the ones to be manually edited by the developer Using round-trip engineering tools (not many available) Better to do complete generation of parts of the system instead of partial generation of the full system

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Code Generation: Turing test A human judge examines the code generated by one programmer and one code-generation tool for the same formal specification. If the judge cannot reliably tell the tool from the human, the tool is said to have passed the test

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Model interpretation A generic engine parses and executes the model on-the-fly using an interpretation approach Benefits Faster changes & Transparent (re)deployment Better portability (if the vendor supports several platforms) The model is the code. Easier model debugging No deployment Updates of the model at runtime Higher level abstraction of the system (implemented by the interpreter) Updates in the interpreter may result in automatic improvements of your software Danger of becoming dependent of the application vendor. Limited influence in the –ities of the SW

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Generation and interpretation Can be used together in the same process Interpretation at early protoyyping / debugging time Generation for production and deployment Hybrid solutions are possible: Model interpretation based on internal code generation implementation Code generation that relies on predefined, configurable components / framework at runtime. The generated code is e.g., XML descriptor / configurations of the components

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool USE CASE2 – SYSTEMS INTEROPERABILITY

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Interoperability Ability of two or more systems to exchange information (IEEE) Needed for collaborative work (e.g. using different tools), tool and language evolution, system integration… Interoperability must be done at the syntactic and semantic levels

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Model-Driven Interoperability MDSE techniques to bridge the interoperability gap The metamodels (i.e. “schemas”) of the two systems are made explicit and aligned Transformations follow the alignment to move information Injectors (text-to-model) represent system A data as a model (syntactic transformation) M2M transformation adapts the data to system B metamodel (semantic transformation) Extractors (model-to-text) generate the final System B output data (syntactic transformation).

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool MDI: Global schema

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool USE CASE3 – MODEL DRIVEN REVERSE ENGINEERING

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Need for reverse engineering

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Model-driven reverse engineering Why? Models provide an homogeneous and interrelated representation of all legacy components. No information loss: initial models have a 1:1 correspondance with the code Discover Models Understand Viewpoints Regenerate New Software Artifacts Legacy artifacts : - source code - configuration files - tests - databases - etc.

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Model-Driven Interoperability: Example COBOL model Model discovery COBOL system COBOL metamodel T2M Model understanding Model generation UML models UML metamodel M2M M2M (refactorings) Java model Java system Java metamodel M2MM2T

Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Teaching material for the book Model-Driven Software Engineering in Practice by Marco Brambilla, Jordi Cabot, Manuel Wimmer. Morgan & Claypool, USA, MODEL-DRIVEN SOFTWARE ENGINEERING IN PRACTICE Marco Brambilla, Jordi Cabot, Manuel Wimmer. Morgan & Claypool, USA, or buy it at: