25.1 Translational Frameworks (MDA with transformations)



Similar documents
Component-Based Software Engineering (CBSE) Announcements

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Aspect-Oriented Programming

Foundations of Model-Driven Software Engineering

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Unification of AOP and FOP in Model Driven Development

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

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

Configuration Management

Agile Modeling and Design of Service-Oriented Component Architecture

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

Jairson Vitorino. PhD Thesis, CIn-UFPE February Supervisor: Prof. Jacques Robin. Ontologies Reasoning Components Agents Simulations

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Generating Aspect Code from UML Models

Managing Variability in Software Architectures 1 Felix Bachmann*

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

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

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

Understanding Software Static and Dynamic Aspects

Aspects for Testing Aspects?

A Software Development Platform for SOA

GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Development of Tool Extensions with MOFLON

Development of a Feature Modeling Tool using Microsoft DSL Tools.

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

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

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Developing in the MDA Object Management Group Page 1

Clarifying a vision on certification of MDA tools

XPoints: Extension Interfaces for Multilayered Applications

The Service Revolution software engineering without programming languages

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution

Component-Oriented Engineering

Developing the Architectural Framework for SOA Adoption

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

MDA Transformations Applied to Web Application Development 1

To introduce software process models To describe three generic process models and when they may be used

How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution

New Generation of Software Development

How to Model Aspect-Oriented Web Services

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Integration of Application Business Logic and Business Rules with DSL and AOP

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Construction Principles and Design Patterns. Flyweight, Bridge, Builder

Model Transformations and Code Generation

Applying 4+1 View Architecture with UML 2. White Paper

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

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

Object-Oriented Systems Analysis and Design

Model-Driven Software Development for Robotics: an overview

Application Architectures

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

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

Model Driven Software Development in Service Robotics It really works!

Encapsulating Crosscutting Concerns in System Software

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

Software Engineering. Software Reuse. Based on Software Engineering, 7 th Edition by Ian Sommerville

What is a metamodel: the OMG s metamodeling infrastructure

The SPES Methodology Modeling- and Analysis Techniques

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

UML-based Test Generation and Execution

Component Based Software Engineering: A Broad Based Model is Needed

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

How To Test On A Model Driven Test On An Embedded System

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

F-16 Modular Mission Computer Application Software

Applying MDA in Developing Intermediary Service for Data Retrieval

Transcription:

Literature TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik 25. From Code Frameworks to Model-Driven Architecture (MDA) and Component-Based Software Development (CBSD) Prof. Dr. Uwe Aßmann Institut für Software- und Multimediatechnik (SMT) Fakultät für Informatik TU Dresden 10-0.1, 1/24/11 1) MDA 2) CBSE Frameworks 3) Stability-Change Analysis 4) Planned and Unplanned MDA 5) MDA beyond Code Frameworks http://st.inf.tu-dresden.de U. Aßmann. Invasive Software Composition. Springer, 2003 Aßmann, Uwe, Johannes, Jendrik, Henriksson, Jakob, Savga, Ilie, Composition of Rule Sets and Ontologies. Reasoning Web, Second International Summer School 2006, pp. 68-92, 2006, LNCS 4126, Springer Uwe Aßmann. Model-driven architecture (MDA) and component-based software development (CBSE). In S. Estok, M.M. Lindwer, G. Gopakumar, and L. Posta, editors, XOOTIC Magazine, number 4126 in XOOTIC Magazine, pages 5-7, Eindhoven, September 2007. XOOTIC. Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 2 Introduction Frameworks, where are we going from here? Model-Driven Architecture (MDA OMG) Component-based Software Engineering How to have reuse of models in MDA (model frameworks)? How to realize the MDA components? How to unify MDA and CBSE? However, Different abstraction levels MDA is about design reuse Components about code reuse Different instantiation mechanisms MDA: translation Components: connection TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik 25.1 Translational Frameworks (MDA with transformations) See also Softwaretechnogie-II Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 3

MDA Describes Product Lines The platform stack is a translational framework The products of the product line Domain model for application domain Computationally Computationally Model Model (CIM) (CIM) Requirements Requirements specification specification Model Model (PIM) (PIM) Model (PIM) Model (PSM) Specific Model Model (PSM) (PSM) Model (PSM) Code Code Code Code Code Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 5 A Weaving Architecture: MDA MDA with Aspect Mappings Describe platform specific extension (PSE) as aspects: The PIM is the core, the PSM the weaved system The model mapping becomes an aspect weaver MDA uses transformations to implement the weaving PIM PIM PSE Aspect 1 PSE Aspect 1 PSE Aspect 3 PSE Aspect 3 PSM Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 6 Aspects Important for Embedded Systems PSE Aspect 2 PSE Aspect 2 Models (PIM) Specific Extensions (PSE) MDA weavers integrate platform variants Models (PSM) Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 8 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 7 Life-time aspects in MDA How long does an object live? Resource aspects in MDA Representation of collections (SetL) Middleware aspects Representation of connectors Transactions, persistency,... Real-time aspects in MDA Profile info OCL-RT info Quality aspects in MDA Contracts Security

MDA With Several Layers for Resource-Constrained Systems Example: MDA for RT-UML PIM PIM PSM-1 PSM-1 PSE Aspect 1 (time) PSE Aspect 1 (time) PSE Aspect 2 (memory) PSE Aspect 2 (memory) EU project High Integrity Distributed Object-Oriented Real-Time Systems (HIDOORS) http://www.hidoors.org German BMBF project SuReal http://www.sureal-projekt.org MDA for RT-UML Realtime sequence diagrams (MSC) UML realtime statecharts Mapping to timed automata of Uppaal model checker PSM-2 PSM-2 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 9 RT Sequence Diagram (UML) RT Extension Aspect Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 10 RT-SD und RT-Statecharts are Aspects A GetRate() <<subject>> Heart Rate Server C Subscribe() <<observer>> <<observer>> HR Trend Join PointsHR Sensor Recoder Subscribe() Advice: GetRate() {D-C<=1ms} {B-A <= 2ms} PIM: UML class diagram PIM: UML class diagram PSM-1 PSM-1 RT Sequence diagram RT Sequence diagram B D RT-Statecharts RT-Statecharts Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 11 PSM-2 PSM-2 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 12

What MDA Really Is About MDA is about weaving platform-extension model aspects Problem: We need weavers for every level With different modeling languages Who will build them? TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik 25.2 Frameworks with other Component Models (Frameworks with CBSE) Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 13 Frameworks, Components, and Products Planning several products from one common code base, but several variant parameterizations Office Framework Frameworks are Larger Components Filled spot Components Framework Hot spot Word Processor Spreadsheet Slide Editor Instantiation Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 15 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 16

Software Composition Systems A composition system has Component Model Composition Composition Language Language for for programming-in-the-large programming-in-the-large and and architecture architecture Composition Technique [ISC Book, 2003] Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 17 Component Models at Different Composition Times <<connector>> Universal component model <<connector>> <<connector>> The Ladder of Composition Systems Grey Black Software Composition Systems Aspect Systems View Systems Architecture Systems Classical Component Systems Object-Oriented Systems Composition Language Aspect Separation Crosscutting Merge erator Architecture as Aspect Standard Components Objects as Run-Time Components Invasive Composition Piccola Aspect/J Composition Filters Hyperslices Role modeling Darwin ACME.NET CORBA Beans EJB Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 18 C Java Modular Systems Modules as Compile- Modula Ada-85 Time Components Frameworks in Stages Frameworks (PIF) Specific Extensions components (PSE) Fragment component model COTS component model Run time component model Code Fragment Components COTS components Run time components Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 19 Products (PSP) 1 phase or several Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 20

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik 25.3 Stability/Change Analysis (SCA) Old Tales About Change- Oriented Design Parnas information hiding principle for change-oriented design Modules (Information-Hiding- Based Design a la Parnas) Every module hides the an important design decision behind a well-defined interface which does not change when the decision changes. Commonality-Variability Analysis (CVA) The Parnas principle has been refined in Commonality-Variability Analysis Finding common assets for a product line Separating them from variable assets CVA can be realized with many technologies We We can can attempt attempt to to define define our our modules modules around around assumptions assumptions which which are are likely likely to to change. change. One One then then designs designs a a module module which which hides hides or or contains contains each each one. one. Such Such modules modules have have rather rather abstract abstract interfaces interfaces which which are are relatively relatively unlikely unlikely to to change. change. Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 23 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 24

What is Change? SCA and its subclasses [Parnas 72] tells us that commonality/variability is just a special case of Stability/Change Analysis (SCA) Variability is preplanned, evolution is unforeseen Change Stability-Change Analysis (SCA) Parnas Planned Variability Evolution Unplanned Commonality-Variability Analysis (CVA) (Product Lines) Stability-Extension Analysis (SEA) (Evolution) Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 25 Planning Variations - Unforeseen Extensions Planning relies on variation points Templates with slots Frameworks with Preelike metapatterns Extension relies on extension points Cores with hooks or joinpoints Cores with extension views Commonality/ -Variability Analysis (MDA) MDA Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 26 TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik 25.4 Planned and Unplanned MDA for Stability/Change Analysis (SCA) Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 27

Problem Parnas requires interfaces between modules which are not in MDA which relies on implicit extension points (implicit hooks on models) Can we extend the Parnas' principle to a parametric MDA? For planned variants Needs explicit composition interfaces between PIM and PSM Planned MDA with Modules (Original Idea of Parnas) Modules parameterize in planned ways Module interface is composition interface but not with crosscutting Modules Variation Point Parametrization Modules Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 29 Planned MDA (MDA with Generic Templates) Templates parameterize in planned ways Template interface is composition interface but not with crosscutting Systems Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 30 Planned MDA with Code Frameworks Code Frameworks can be parameterized in planned ways Variability design patterns form the interface Variability hooks Templates Variation Point Parameters Framework Variability Hook Parametrization Objects Systems Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 31 Systems Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 32

Planned MDA with Role/Mixin Layers Role layers (mixin layers) can be parameterized in planned ways Variability by mixin or role-object composition can be extended in unplanned ways Core Object Base Layer Mixin Objects Unplanned MDA with Code Frameworks Code Frameworks can be extended in unplanned ways Extensibility design patterns form the interface n-t H, T<=H framework hooks (extension points) Framework Extension Hook Parametrization Objects Objects Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 33 Systems Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 34 Unplanned Extensible Eclipse Unplanned Extensible MDA Eclipse plugins extend in unforeseen ways n-t H, T<=H framework hooks (extension points) Aspect-model weavers extend in unforeseen ways Using transformations Frameworks (PIF) Extensions (PSE) Models (PIM) Extensions (PSE) Products (PSP) Models (PSM) Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 35 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 36

Unforeseeable Extensible MDA Planning Variations - Unforeseen Extensions Hyperslices extend in unforeseen ways, but not with crosscutting Models (PIM) Extensions (PSE) Planning relies on variation points MDA with templates modules blackbox component models variable frameworks Role layers Extension relies on extension points MDA with extensible frameworks role layers views aspects Models (PSM) Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 37 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 38 Variation and Extension Facets Conclusion: It's Your Choice! We can distinguish several facets of variation and extension Time of instantiation (binding time) Time of exchange Granularity of binding point Contract on extension MDA can be employed for many different variability technologies Both for CVA and SCA! With many different CBSE technologies MDA for commonality/variability-based design can be planned Using a composition interface with declared variation points MDA for stability/extension-based design can be done for unforeseen extensions using a composition interface with implicit hooks (join points) Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 39 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 40

Change MDA is Concern Separation Variability Change Evolution MDA is not about platforms MDA is a design framework approach with subcategories Variability-based MDA (for variation) Templates (mappings are parameterizations) Modules Variablility frameworks Connector-based frameworks (mappings are refinements) Extensible MDA (for unforeseen extension) Views (mappings are extensions) Aspects Extensible frameworks Translation-based, Rewrite-based MDA Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 41 The Real MDA Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 42 The End MDA generalized the framework approach of this course MDA is a CBSE approach, applicable to all component models Greybox composition PIM and PSE are greybox components Blackbox composition PIM and PSE are blackbox components Without unforeseen extension everything is planned You can do it in C, but you must plan carefully Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 43 Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 44

Future MDA with SCA Variability is preplanned, evolution is unforeseen Commonality-Variability Analysis (CVA) (Product Lines) Stability-Change Analysis (SCA) Universal Pointcuts Stability-Extension Analysis (SEA) (Evolution) Universal Reuse Add-ons Commonality/ -Variability Analysis (MDA) singular Parnas crosscutting singular crosscutting gmda emda Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 45