Meta-Model and Model co-evolution

Similar documents
Meta-Model and Model Co-evolution within the 3D Software Space

Rushikesh K Joshi. Department of Computer Science and Engineering Indian Institute of Technology Bombay

Methods for the Development

A Flexible Approach to Visualize Large Software Products

Outline of Unified Process

PASS4TEST IT 인증시험덤프전문사이트

Practice problem on defining and using Class types. Part 4.

Model Driven Engineering (MDE)

CS 617 Object Oriented Systems Lecture 5 Classes, Classless World:Prototypes, Instance Variables, Class Variables, This/Self 3:30-5:00 pm Thu, Jan 17

public class Account { private int id; private static int nextaccountid = 0; private String name; private double balance;

An Industry Definition of Business Architecture

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

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

Requirements and Design Overview

Transformation of the system sequence diagram to an interface navigation diagram

Full file at

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Software Architecture Recovery based on Dynamic Analysis

Software Engineering from a

Type Conversion. and. Statements

OO Project Management

Innovative and Pragmatic Java Source Code Generation. Nikolche Mihajlovski

Lessons of Experience in Model-Driven Engineering of Interactive Systems: Grand challenges for MDE?

Agile Development

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

Data Warehousing Introduction. Toon Calders

Comparing JavaBeans and OSGi

Klocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam

Formalizing Fact Extraction

Requirements to models: goals and methods

Model-Driven Architecture/ Development

Oracle Exam 1z0-809 Java SE 8 Programmer II Version: 6.0 [ Total Questions: 128 ]

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. Object Oriented Programming

Software Architectures

Object-Oriented and Classical Software Engineering

CONFIGURED IP MANAGEMENT OBJECTIVE

The ATCP Modeling Framework

Object-Oriented and Classical Software Engineering

The Specifications Exchange Service of an RM-ODP Framework

CS159. Nathan Sprague. September 30, 2015

Overview of lectures today and Wednesday

Software LEIC/LETI. Lecture 10

Metamodeling with Metamodels. Using. UML/MOF including OCL

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

CS Introduction to Data Structures Week 1 Thursday

This document is a preview generated by EVS

On Supporting HCOME-3O Ontology Argumentation Using Semantic Wiki Technology

CS164: Programming Assignment 5 Decaf Semantic Analysis and Code Generation

GRAF: Graph-based Runtime Adaptation Framework

Tester vs. Controller. Elementary Programming. Learning Outcomes. Compile Time vs. Run Time

CS61B Lecture #7. Announcements:

Software LEIC/LETI. Lecture 3

Chapter 7, System Design: Addressing Design Goals

Strict Inheritance. Object-Oriented Programming Spring 2008

Elementary Programming

Scala. Introduction. Scala

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Introduce C# as Object Oriented programming language. Explain, tokens,

Inheritance & Polymorphism. Object-Oriented Programming Spring 2015

Construction of Complex UML Profiles

BIG MODELS AN ALTERNATIVE APPROACH

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

Practical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

CSCI-1200 Data Structures Fall 2009 Lecture 25 Concurrency & Asynchronous Computing

Entry Point of Execution: the main Method. Elementary Programming. Learning Outcomes. Development Process

Inter-Project Dependencies in Java Software Ecosystems

ELEC 875 Design Recovery and Automated Evolution. Architecture Analysis. ELEC 875 Design Recovery and Automated Evolution

MDSE USE CASES. Chapter #3

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

Model Driven Development of Context Aware Software Systems

The Unified Modeling Language (UML)

Course Content. Objectives of Lecture 18 Black box testing and planned debugging. Outline of Lecture 18

DCS/100: Procedural Programming

Change Detection System for the Maintenance of Automated Testing

Warm-up: Revisiting selected data technologies via 101companies

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg

Basic Principles of analysis and testing software

CS180 Review. Recitation Week 15

Fundamentos de programação

COMP-202: Foundations of Programming. Lecture 14: static, private, public Jackie Cheung, Winter 2015

Announcements. Last modified: Fri Sep 8 00:59: CS61B: Lecture #7 1

JSimpleDB: Language Driven Persistence for Java

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs

1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE

Object-Oriented Middleware for Distributed Systems

Configuration Management for Component-based Systems

CAS CS 460/660 Introduction to Database Systems. Fall

Do model transformations solve all the problems?

Abstract Data Types (ADTs) 1. Legal Values. Client Code for Rational ADT. ADT Design. CS 247: Software Engineering Principles

CAS 703 Software Design

Model Driven Engineering

<is web> Information Systems & Semantic Web University of Koblenz Landau, Germany

CMSC 132: Object-Oriented Programming II. Inheritance

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004

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

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

CSE332: Data Abstractions Lecture 19: Mutual Exclusion and Locking

Transcription:

University of Grenoble Meta-Model and Model co-evolution Jean-Marie Favre University of Grenoble

OUTLINE Motivation and background : Industry Software in 3D D1: meta dimension D2: engineering dimension D3: representation dimension Evolution: entering the 4th dimension Conclusion

Part I : Motivation and Background

Historical mistakes in Software Engineering (1) Software is stable (2) Software is made of programs Everything evolve in complex industrial contexts

Architecture and Code co-evolution Architecture Code Explicit vs. implicit architecture Architecture and code both evolve Horizontal impacts Vertical impacts Synchronization and conformance issues Risks of erosion Architecture-driven vs. code-driven driven A "well identified" phenomenon nowadays Initially neglected by academics

Architecture and Code co-evolution architecture Explicit vs. implicit architecture Architecture and code both evolve Horizontal impacts Vertical impacts Architecture-driven vs. code-driven driven Synchronization and conformance issues Risks of erosion code A "well identified" phenomenon nowadays Initially neglected by academics

Architecture and Code co-evolution Architecture Code Explicit vs. implicit architecture Architecture and code both evolve Horizontal impacts Vertical impacts Synchronization and conformance issues Risks of erosion Architecture-driven vs. code-driven driven A "well identified" phenomenon nowadays Initially neglected by academics

Program / Language / Tool co-evolution language Program/Language co-evolution Language/Compiler co-evolution program compiler Program/Compiler co-evolution

Program / Language / Tool co-evolution language Program/Language co-evolution Language/Compiler co-evolution program compiler Program/Compiler co-evolution

Program / Language / Tool co-evolution language Program/Language co-evolution Language/Compiler co-evolution program compiler Program/Compiler co-evolution

Program / Language / Tool co-evolution language program compiler

Model / Meta-Model Model / Tool co-evolution metamodel Model/Metamodel co-evolution Metamodel/Tool co-evolution model tool Model/Tool co-evolution

Schema Evolution Conceptual schema data Implementation schema

Background : A 7-year 7 case study Collaboration with industry World leader in CAD/CAM 19 000 clients, 180 000 seats Clients: Boeing, Chrysler, Main software: CATIA

CATIA: a very large Software Product Line 1200+ software engineers 70 000+ classes C++ 8 000+ components 5 000+ interfaces 3 000+ DLLs 800+ frameworks Need to raise the levels of abstraction Architecture Metamodel

A Meta-Model Model Driven Architecture Recovery Process

Part II : The 3D Software Space

The 3D Software space

The 3D Software space

The 3D Software space

The 3D Software space

A taxonomy of software artefacts

D1: The Meta dimension The Meta-towers towers The Meta-pyramid The Meta actor pyramid

D1: The Meta-towers towers

D1: The Meta-pyramid

D1: The Meta-pyramid APPLIWARE

D1: The Meta-pyramid METAWARE

D1: The Meta-pyramid SOFTWARE

D1: The Meta actor pyramid

D2: The Engineering Dimension The Engineering-tower The Engineering-pyramid The Engineering actor pyramid

D2: The Engineering Pyramid

D2 R tom : client D1+D2: D3 Appliware execution Tue 24 Dec, 10pm Tom wants to withdraw 100 from the cash machine located "12 rue de la monnaie" at Bruxelles client Meta + Engineering Appliware widthdraw transfermoney R1: all transfers must secured R2: clients can transfer money either via cash machines and internet R3: withdraw requires previous identifiication Software Actor Functional Req. Non Funct. Req. Metaware Use case Requirement A The XB12 feature is running on the cash machine. The cash machine is connected to the ACME bank server executable XP23Serv via a secure connector. Cs29485 Cs292385 ACME bank server Cs291285 Cash Machine <<tcpip>> Bank Server Host Connectors Components Feature Executable Subsystem Boxes D tom : Client name = "tom" a231 : Account balance= 24600 a2204 : Account balance= 300 Client name : string 1 client * accounts Account balance : int Class Package Association AssociationEnd Lines Symbol I "tom" 26400 2 300 Java objects References to objects I Instances class client implements Serializable { private String name ; private Vector Accounts ; public String getname( ) { return this.name ; } public void setname( String name ) { if (name == null) throws new NullPointerException() ; this.name = name JavaClass JavaField JavaMethod Statement Expression D1 M MM MMM Models Meta-models Meta-meta Models

D3: The Representation Dimension The Representation Towers The Representation Pyramid The Representation actors

D3: The Representation Towers

D3: The Representation Dimension

Classifying Software Artefacts Using the 3D Framework to classify software artefacts Coordinates in the reverse order D3-D2 D2-D1D1 Examples : CR-A-MM AR-D-M

Classifying Software Transformations Transformations or processes as paths in 3D Useful to classify SE tools and methods Forward engineering Reverse engineering Evolution & co-evolution

Evolution : Entering the fourth dimension

Evolution: Entering the Fourth Dimension (D4)

Co-evolution along the engineering dimension D2+D4

Co-evolution along the meta dimension D1+D4

Meta-model / model co-evolution at DS Incremental definition of a proprietary component technology Incremental implementation of tools by the tool support team Production of component-based software at the same time Meta-models should be versionned Different variants of the meta-model model used by different teams within DS by partner companies Co-evolution managed in ad-hoc way Manual or semi-automatic transformation

Conclusion

Conclusion Many academic issues related to meta-modeling modeling / meta-programming More issues coming from industry Co-evolution of meta-models models and models Reverse engineering meta-models models Tool support is required Supporting evolution at various level is an important requirement for the success of model-driven driven approaches (e.g. MDA) Meta-model for evolution vs. evolution of meta-models

Call For Papers First International Workshop on Meta-models and Schemas for Reverse Engineering November 13, 2003, Victoria, BC, Canada www-adele.imag.fr/atem2003 With WCRE'2003 Organizers Jean-Marie Favre, University of Grenoble, France Mike Godfrey, University of Waterloo, Canada Andreas Winter, University Koblenz-Landau, Germany