Foundations of Model-Driven Software Engineering



Similar documents
Model-Driven Development of a Biosignal Analysis Framework: Benefits and Impacts on Processes. Nikolas Hofmann

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

A Software Development Platform for SOA

Information systems modelling UML and service description languages

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

Difference Between Model-Driven and Traditional Iterative Software Development

Model Based Software Development: Issues & Challenges

CS4507 Advanced Software Engineering

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Model Driven Development Future or Failure of Software Development?

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Revel8or: Model Driven Capacity Planning Tool Suite

From Business World to Software World: Deriving Class Diagrams from Business Process Models

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

Model-Based Development of Web Applications Using Graphical Reaction Rules

today 1,700 special programming languages used to communicate in over 700 application areas.

All you need are models Anneke Kleppe, Klasse Objecten

MDA When a major software industry trend meets our toolset, implemented since By Philippe Desfray VP for R&D

MDA Journal A BPT COLUMN. David S. Frankel. Introduction. May 2004

Agile Modeling and Design of Service-Oriented Component Architecture

A Categorization of Collaborative Business Process Modeling Techniques

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

Model driven architecture: Principles and practice

A Tool Suite for the Generation and Validation of Configurations for Software Availability

COURSE GUIDE:Model-Driven Software Development (MDE)

Language-Driven, Technology-Enhanced Instructional Systems Design

Model Driven and Service Oriented Enterprise Integration---The Method, Framework and Platform

Developing SOA solutions using IBM SOA Foundation

Roles in Software Development using Domain Specific Modelling Languages

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Rules and Business Rules

Business Process Modeling and Standardization

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation

The Impact of the Computational Independent Model for Enterprise Information System Development

New Web Application Development Tool and Its MDA-Based Support Methodology

A Rationalization of Confusion, Challenges, and Techniques in Model-Based Software Development

Toward Families of QVT DSL and Tool

Building a Flexible Software Factory Using Partial Domain Specific Models

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction

Modeling of Distributed Systems with SOA & MDA

Asset Based Development

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations

MDA Case Study: State of Wisconsin Unemployment Insurance Division

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

CIM to PIM Transformation: A criteria Based Evaluation

Applying MDA in Developing Intermediary Service for Data Retrieval

Clarifying a vision on certification of MDA tools

Developing in the MDA Object Management Group Page 1

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

A Pattern-based Approach to Business Process Modeling and Implementation in Web Services

Development of Tool Extensions with MOFLON

Tools for MDA Software Development: Evaluation Criteria and Set of Desirable Features

today 1,700 special programming languages used to communicate in over 700 application areas.

Transitioning to Model Driven Software Development

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Abstract

Evaluating OO-CASE tools: OO research meets practice

Component Based Development in Software Engineering

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling

The Expressive Power of UML-based Web Engineering 1

OMG SOA Workshop - Burlingame Oct 16-19, 2006 Integrating BPM and SOA Using MDA A Case Study

Designing and Enacting Cross-organisational Business Processes: A Model-driven, Ontology-based Approach

MDE Adoption in Industry: Challenges and Success Criteria

3C05: Unified Software Development Process

Chap 1. Introduction to Software Architecture

DDI Lifecycle: Moving Forward Status of the Development of DDI 4. Joachim Wackerow Technical Committee, DDI Alliance

Teaching Model-Driven Software Development: Revealing the Great Miracle of Code Generation to Students

Objecteering. The convergence of SOA, UML2, BPMN and EA, for Model-driven Engineering.

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Design a medical application for Android platform using model-driven development approach

MDA based approach towards Design of Database for Banking System

F-16 Modular Mission Computer Application Software

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Document Engineering: Analyzing and Designing the Semantics of Business Service Networks

Applying Agile Methods in Rapidly Changing Environments

MODELING OF SERVICE ORIENTED ARCHITECTURE: FROM BUSINESS PROCESS TO SERVICE REALISATION

OMG s Second Workshop on Web Services. Orchestrating Web Services from a UML Development Platform

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

Next-generation model-driven development

Architectural view model for an integration platform

TOGAF usage in outsourcing of software development

The Unified Software Development Process

An Approach for the Systematic Development of Domain-Specific Languages

Project VIDE Challenges of Executable Modelling of Business Applications

Domain Driven Design and Model Driven Software Development

From Business Services to Web Services: an MDA Approach

Definition and Generation of Data Exchange Formats in AUTOSAR

A Software Development Process Model Integrating Business Object Technology and UML. Axel Korthaus and Stefan Kuhlins

EasyWeb: A Software Engineering Environment for Developing Web Applications in.net

Reverse Engineering Platform Independent Models from Business Software Applications

Component-Oriented Engineering

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Metamodels and Modeling Multiple Kinds of Information Systems

25.1 Translational Frameworks (MDA with transformations)

SOA Business Analysis

Transcription:

Model-Driven Software Engineering Foundations of Model-Driven Software Engineering Dr. Jochen Küster (jku@zurich.ibm.com)

Contents Introduction to Models and Modeling Concepts of Model-Driven Software Engineering Goals and Roadmap of the Lecture Overview of Approaches Summary and Literature 2

Model-Driven Software Engineering in a Nutshell Model-Driven Software Engineering (MDSE) is a software engineering paradigm Models are considered as primary artifacts from which parts of a software system can be automatically generated. Models are usually more abstract representations of the system to be built MDSE can improve productivity and communication MDSE requires technologies and tools in order to be successfully applied Various terms and approaches to MDSE Model-driven architecture, model-driven engineering, model-driven development, 3

Introduction to Models and Modeling 4

What is a Model? Real world is abstracted into Model A model is an abstraction of something for the purpose of understanding it before building it (J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, New Jersey, USA, 1991) Models are widely used in engineering disciplines 5

Examples of Models in Electrical Engineering 6

Important Properties of Models Abstraction from certain aspects of the real world Focus on certain aspects of the real world Ability to analyze properties of the system using the model Models are usually expressed in a modeling language with a well-defined syntax and semantics Many different forms of analysis, depending on the model and the application of modeling 7

Models in Software Engineering View of real world is abstracted into Analyse and design Model abstracts from Code program Different kinds of models are used in software engineering Models for requirements analysis Models for expressing the software architecture of a system 8

Usage of Models in Software Engineering Models as description of the domain of the system to be built Model focuses on relevant aspects of the domain Example: Class diagram of the domain Models as abstract representation of the system to be built Model focuses on aspects that are relevant, leaves other aspects open Example: Component diagram specifies components of a system to be built Models for documentation Abstraction of models helps to understand the system faster Example: Class diagram of the key entities in a system are explained in a document Models as specification for testing Model focuses on important aspects of the system for testing 9

Sample Models from Software Engineering [Source: IBM developerworks, P. Eeles, The benefits of software architecting, 2006] [Source: IBM developerworks, M. Berfeld, UML-to-Java transformation in IBM Rational Software Architect editions and related software, 2008] 10 [Source: IBM developerworks, F. Xu et al, Reverse engineering UML class and sequence diagrams from Java code with IBM Rational Software Architect, 2008] [Source: IBM developerworks, D. Sheldon et al, Exploiting use cases to improve test quality, 2008]

Usage of Models in Software Engineering Domain Modeling Static Analysis Documentation Model Code Generation Refactoring/ Transformation Automated Testing Models can be used for many different purposes in software engineering In different phases of the development lifecycle [Illustration by B. Rumpe] 11

Concepts of Model-Driven Software Engineering 12

Concepts of Model-Driven Software Development Requirements Code of application Analyse and design Code How to get from requirements to running code satisfying requirements and user expectations? Models are used in many development processes requirements for the system (e.g. use case model) software architecture (e.g. component model) behavioral description (e.g. statechart) 13

Usages of Models and Model Transformations in MDSE - Example Phases Requirements Analysis Analysis & Design Implementation Test Artifacts Use Case Diagram Domain Class Diagram Component Diagram Design Class Diagram Java Classes Test Scenarios In each phase, different models are constructed In each phase, we reuse parts of models as input for other models Test scenarios are partially derived from Use Case Diagrams Design Class Diagram may reuse parts of Domain Class Diagram MDSE focuses on automatically generating parts of models or code from other models 14

Eclipse Modeling Framework as an Example Many lines of code are automatically generated! 15

Important Aspects of MDSE Models Code of application Model transformation Code generation In MDSE approaches, the use of models and model transformations is proposed Models are expressed in UML, an extension of UML, or a domain-specific language The syntax and semantics of models used in a MDSE approach has to be clearly defined The software development process is changed when an MDSE approach is adopted 16

Questions So many new concepts and terms Modeling Language? Code generation? Model Transformation? Syntax and Semantics? Domain-specific language? 17

Goals and Roadmap of the Lecture 18

Goals of the Lecture Understand principles and concepts of Model-Driven Software Engineering (MDSE) Modeling language, meta-modeling, domain-specific language, model transformations, code generation Different approaches to MDSE Get familiar with languages and technologies of Model-Driven Software Engineering (MDSE) Eclipse Modeling Framework Technologies for model transformations and code generation Apply MDSE in practice and get to know tools Eclipse Modeling Framework Example, Service-Oriented Architecture Example Extensions of Eclipse for model transformations and code generation IBM Rational Software Architect 19

Roadmap for Model-Driven Software Engineering Foundations (1 lecture) Metamodels and Domain Specific Languages (2 lectures) EMF as Architecture Centric MDSD Environment (2 lectures) Model transformations (Model-to-Model, Model-to-code, transformation languages) (2 lectures) Code generation (1 lecture) MDSE of SOA Applications with IBM Rational Software Architect(2 lectures) Models in Software Architecture Design (1 lecture) Software Product Lines (1 lecture) 20

Overview of Approaches 21

Different Approaches to MDSE Model-Driven Architecture (MDA) OMG MDA initiative Model-Driven Software Development (MDSD) M. Voelter et al. Domain Specific Modeling (DSM) S. Kelly, J. Tolvanen 22

MDA Concept Overview Computation Independent Model (CIM) defines domain vocabulary PIM Platform Independent Model (PIM) captures domainrelated specifications PIM does not contain platform details, independent of a platform Platform Specific Model (PSM) captures specifications with platform details For expressing PIM and PSM, domain-specific languages are used UML profiles and other techniques for defining DSLs Model transformations transform PIMs into PSMs PSM Code 23

MDA Example PIM PSM (EJB 2.0) public interface Account extends EJBObject { } public interface AccountHome extends EJBHome { } public abstract class AccountBean implements EntityBean { } Code (Java + XML) [Example from T. Stahl et al] 24

Advantages and Disadvantages of MDA Advantages: Separation of PIM and PSM enables better reuse Improved interoperability due to standards (e.g. UML) Disadvantages: Code generation is only partial and requires manual completion of code Semi-automatic generation of one model from another model leads to maintenance problems if a model is changed 25

Model-Driven Software Development Individual Model Schematic code code Generic code Code MDSD is based on the following observations Generic code is identical for all applications Schematic code possesses the same systematics (e.g. based on an architectural pattern) Individual code is application specific 26

Approach of Model-Driven Software Development Individual code Schematic code Generic code Application Model Schematic Repetitive Code Individual Code Transformation Platform Generate generic code for the platform instead of writing it Generate schematic code using transformations based on an application model Write individual code that is application specific 27

Architecture-Centric MDSD Application Architecture-Centric Design Model Generative Architecture expressed in Domain-specific Language Infrastructure code Business Logic Code manually written Generator Generator Templates Infrastructure Components 28

Example for Architecture-Centric Design Model Domain related meaning is expressed in the architecture-centric design (using stereotypes), can be considered as PIM Depending on the platform, the PIM is translated differently to code [Example from T. Stahl et al] 29

Example Translation into Code (Sketch) EJB-based architecture with HTML clients Activity classes are stateless session beans Entity classes are beans Attributes of type key constitute the primary key classes For public attributes, getter and setter methods are applied Presentation classes specify JSP models that are used to fill JSP/HTML pages C++/CORBA-based client-server architecture Activity classes are IDL interfaces, all attributes are mapped to IDL types Entity classes are non-distributable C++ classes Presentation classes are Java Swing GUIs 30

Comparison to MDA MDSD does not focus on iterative model refinement by transformations, no intermediate models are created Transformations are primarily used for translating models into code A PIM model contains all necessary details to be translated into code which is then platform specific Roundtrip engineering is avoided, design changes have to be made to the model Focus on software architecture No 100 per cent generation, rather 60 to 80 percent 31

Advantages and Disadvantages of MDSD Advantages: Increased development speed Increased software quality Better maintainability Better reusability Increased manageability of complexity Better portability and interoperability Disadvantages: MDSD has to be tailored to the domain, no off-the-shelf solution No platform-independence of models 32

Domain Specific Modeling in a Nutshell Raise level of abstraction by specifying solution in a domain specific language Model Generate final products from these high-level specifications Model is expressed in the concepts of the domain Code is fully generated Code 33

Domain Specific Modeling - Architecture Domain Specific Model Domain-specific Language Generated Code Domain-specific Generator Domain Framework Generator can be considered as a compiler Modification of the generated code is not needed Generated code accesses a domain framework 34

Value of Domain Specific Modeling Productivity within software development Higher level of abstraction leads to higher productivity Common defects when coding are avoided due to generation Quality of the produced solution Early validation with the customers Risk reduction of code not meeting the requirements Improved testing approaches Testing of the generator vs testing of the model 35

Comparison of DSM to MDSD and MDA DSM puts a lot of emphasis on the domain-specific modeling language DSM does not favor to use UML or UML extensions as a DSM (in comparison to MDSD) DSM proposes to generate the solution from the model, without intermediate models (similar to MDSD) Generators as well as the DSM itself are developed by domain experts 36

Common Aspects of MDSE Models Code of application Model transformation Code generation In MDSE approaches, the use of models and model transformations is proposed Models are expressed in UML, an extension of UML, or a domain-specific language The syntax and semantics of models used in a MDSE approach has to be clearly defined The software development process is changed when an MDSE approach is adopted 37

Basic Conceptual Architecture of MDSE Application Application domain Meta-Level Modeling Model Modeling language Metamodeling language Automation Reuse Transformation / Code generation Abstraction (bottom-up) Transformation definition Transformation language Construction (top-down) Realization Artifacts (e.g. code) Platform defined using defined by uses [Slide by G. Kappel] 38

Advantages of MDSE Abstraction from specific realization technologies Improved portability of software to new/changing technologies model once, build everywhere Interoperability between different technologies can be automated Requires modeling languages, which do not hold specific concepts of realization technologies (e.g., Java EJB) Automated code generation from abstract models e.g., generation of Java-APIs, XML Schemas, etc. from UML Requires expressive und precise models Increased productivity and efficiency (models stay up-to-date) Separate development of application and infrastructure Separation of application-code and infrastructure-code (e.g. Application Framework) increases reusability Flexible development cycles as well as different development roles possible [Slide adapted from G. Kappel] 39

General Requirements for MDSE Models used for generating other models have to contain all details that are needed Model quality Models must be precise with well-defined syntax and semantics (if used for e.g. code generation) Model must be appropriate to express concepts of the domain Technology For defining model transformations from model to code as well as model to model For keeping models consistent if changes occur in one model For supporting versions of models and multi-user modeling Development process Has to take into account how to generate models 40

Summary and Literature 41

Summary of Lecture Models provide an abstraction from the real world Models are expressed in a modeling language Model-driven software engineering uses models to generate other models or code Domain-specific models Model transformations MDA, AC-MDSD and DSM represent different approaches to modeldriven software engineering, however many common aspects exist MDSD requires skills and understanding of concepts, techniques and tools to be successfully applied 42

Literature D. Frankel: Model Driven Architecture, Wiley, 2003. T. Stahl und M. Völter: Model-Driven Software Development, Wiley, 2006. V. Gruhn, D. Pieper, und C. Röttgers: MDA Effektives Softwareengineering mit UML2 und Eclipse. Springer Verlag, 2006. S. Kelly und J. Tolvanen: Domain-Specific Modeling Enabling Full Code Generation, Wiley, 2008. C. Gonzaelez-Perez und B. Henderson- Sellers: Metamodelling for Software Engineering, Wiley, 2008. D. Steinberg, F. Budinsky, M. Paternostro, und E. Merks: EMF Eclipse Modeling Framework Second Edition, Addison- Wesley, 2008. 43