Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules...

57
TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik Model-Driven Development (MDD) meets Component Based Software Development (CBSD) Prof. Dr. Uwe Aßmann Institut für Software- und Multimediatechnik (SMT) Fakultät für Informatik TU Dresden 1.0, Sep 21, 2006

Transcript of Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules...

Page 1: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Model-Driven Development (MDD)meets

Component Based Software Development (CBSD)

Prof. Dr. Uwe AßmannInstitut für Software- und Multimediatechnik (SMT)

Fakultät für InformatikTU Dresden

1.0, Sep 21, 2006

Page 2: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 2

MDA meets CBSE

Introduction

• MDD and CBSE, where are we going from here? – We will mainly talk about Model-Driven Architecture

(MDA ® OMG)• How to have reuse of models in MDA?

– How to realize the MDD components?– How to unify MDD and CBSE?

• However, – Different abstraction levels

• MDA is about design reuse• Components about code reuse

– Different instantiation mechanisms• MDA: translation • Components: connection

Page 3: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Old Tales About Change-Oriented Design

Parnas information hiding principlefor change-oriented design

Page 4: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 4

MDA meets CBSE

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.

We can attempt to define our modules “around” assumptions which are likely to change.

One then designs a module which “hides” or contains each one.

Such modules have rather abstract interfaces which are relatively unlikely to change.

Page 5: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 5

MDA meets CBSE

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

Page 6: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

CBSE is not about COM++, but about CVA

Page 7: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 7

MDA meets CBSE

Frameworks, Components, and Products

• Planning several products from one common code base, but several variant parameterizations

Office Framework

Spreadsheet Slide EditorWord Processor

Page 8: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 8

MDA meets CBSE

Frameworks are Larger Components

Framework

Components

Hot spot

Instantiation

Filled spot

Page 9: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 9

MDA meets CBSE

Software Composition Systems

Composition Languagefor programming-in-the-large

and architecture

Component Model Composition Technique

• A composition system has

[ISC Book, 2003]

Page 10: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 10

MDA meets CBSE

Classical Component Systems

Architecture Systems

Aspect Systems

View Systems

DarwinACME

Aspect/JComposition Filters

Invasive CompositionPiccola

Standard Components

Architecture as Aspect

Aspect SeparationCrosscutting

MergeOperator

CompositionLanguage

Object-Oriented Systems C++ JavaObjects asRun-Time Components

Modular Systems Modula Ada-85Modules as Compile-Time Components

Hyperslices

SoftwareComposition Systems

.NET CORBABeans EJB

The Ladder of Composition Systems

Grey

Black

Page 11: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 11

MDA meets CBSE

Component Models at Different Composition Times

COTScomponents

Code FragmentComponents

Run time components

COTScomponent model

Fragmentcomponent model

Run timecomponent model

Universal component model

<<connector>>

<<connector>>

<<connector>>

Page 12: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

MDA is not about Platforms, but about CVA

Page 13: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 13

MDA meets CBSE

CodeCodeCode

Platform Specific Model (PSM)Platform Specific Model (PSM)

Computationally Independent Model (CIM)Requirements specification

Platform Independent Model (PIM)Platform Independent Model (PIM)

Platform Specific Model (PSM)

Code

MDA Describes Product Lines

Computationally Independent Model (CIM)Requirements specification

Platform Independent Model (PIM)

Platform Specific Model (PSM)

CodeThe products of the product line

Domain model for application domain

• The platform stack is a translational framework

Page 14: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 14

MDA meets CBSE

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

PSE Aspect 3

PIM

Op

PSE Aspect 1

PSM

OpOp

Op

Op

OpOp

PSE Aspect 2

Page 15: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 15

MDA meets CBSE

A Weaving Architecture: MDA

+

+

+

MDA weaversintegrateplatform variants

PlatformSpecificExtensions (PSE)

PlatformIndependentModels(PIM)

Platform Specific Models (PSM)

Page 16: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 16

MDA meets CBSE

Aspects Important for Embedded Systems

• 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

Page 17: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 17

MDA meets CBSE

MDA With Several Layers for Resource-Constrained Systems

PSE Aspect 1 (time)

PIM

OpOpOp

Op

Op

OpOp

PSE Aspect 2 (memory)

PSM-1

PSM-2

OpOpOp

Op

Op

OpOp

Page 18: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 18

MDA meets CBSE

Example: MDA for RT-UML

• 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

Page 19: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 19

MDA meets CBSE

RT Sequence Diagram (UML)

<<subject>>Heart RateServer

<<observer>>HR Trend Recoder

<<observer>>HR Sensor

GetRate()

Subscribe()

Subscribe()

GetRate()

A

B

C

D

Advice:{D-C<=1ms}{B-A <= 2ms}

Join Points

RT Extension Aspect

Page 20: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 20

MDA meets CBSE

RT-SD und RT-Statecharts are Platform Specific Aspects

RT Sequence diagram

PIM: UML class diagram

OpOpOp

Op

Op

OpOp

RT-Statecharts

PSM-1

PSM-2

OpOpOp

Op

Op

OpOp

Page 21: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 21

MDA meets CBSE

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?

Page 22: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Stability/Change Analysis (SCA)

Page 23: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 23

MDA meets CBSE

What is Change?

Change

Variability Evolution

Page 24: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 24

MDA meets CBSE

From CVA to SCA

• [Parnas 72] tells us that commonality/variability is just a special case

• Variability is preplanned, evolution is unforeseen

Commonality-VariabilityAnalysis (CVA)(Product Lines)

Stability-ExtensionAnalysis (SEA)(Evolution)

Stability-ChangeAnalysis (SCA)

Parnas

Commonality/Platform-VariabilityAnalysis (MDA) MDA

Page 25: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 25

MDA meets CBSE

Planning Variations - Unforeseen Extensions

• Planning relies on variation points– Templates with slots– Frameworks with

Pree-like metapatterns

• Extension relies on extension points– Cores with hooks or

joinpoints– Cores with extension

views

Page 26: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Planned and Unplanned MDAfor SCA (CVA and SCE)

Page 27: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 27

MDA meets CBSE

Problem

• Parnas requires interfaces between modules– which are not in MDA which relies on implicit

extension points (implicit hooks on models)• Parametric MDA?

– For planned variants– Needs explicit composition interfaces between PIM

and PSM

Page 28: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 28

MDA meets CBSE

Unforeseeable Extensible MDA

+

+

PlatformIndependentModels(PIM)

Platform Specific Models (PSM)

Platform Specific Extensions (PSE)

• Aspect-weavers extend in unforeseen ways

Page 29: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 29

MDA meets CBSE

Unforeseeable Extensible MDA

+

+

PlatformIndependentModels(PIM)

Platform Specific Models (PSM)

Platform Specific Extensions (PSE)

• Hyperslices extend in unforeseen ways, – but not with crosscutting

Page 30: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 30

MDA meets CBSE

Planned MDA (Generic MDA)

+

+

PlatformIndependentTemplates

Platform Specific Systems

Platform Specific Parameters

• Templates parameterize in planned ways – Template interface is composition interface– but not with crosscutting

VariationPoint

Page 31: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 31

MDA meets CBSE

Planned MDA with Parnas

+

+

PlatformIndependentModules

Platform Specific Systems

Platform Specific ParametrizationModules

• Modules parameterize in planned ways – Module interface is composition interface– but not with crosscutting

VariationPoint

Page 32: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 32

MDA meets CBSE

Planning Variations - Unforeseen Extensions

• Planning relies on variation points

• MDA with– templates– modules– blackbox component

models

• Extension relies on extension points

• MDA with – views– aspects

Page 33: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 33

MDA meets CBSE

Conclusion: It's Your Choice!

• MDA can be employed for CVA and SCE!– 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)

Page 34: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Tool Problems

Page 35: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 35

MDA meets CBSE

Problem: Weaver Proliferation

• Who builds all these weavers and template expanders?

• Answer:– Universal pointcut languages– Universal composability add-ons

Page 36: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 36

MDA meets CBSE

Universal Pointcut Languages

• Weaver proliferation can be avoided by universal pointcut languages that interconnect base languages

Core AspectPointcut connector

Page 37: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 37

MDA meets CBSE

Universal Pointcut Languages

• A pointcut language connects names of the core and the aspect– does not know more concepts

• It can be used universally

• Example:– Xpath, can it be used as pointcut language?– Can you separate pointcuts from Aspect/J advices

and address advice joinpoints?

Page 38: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 38

MDA meets CBSE

Universal Composability Add-Ons

• Based on Universal Genericity and Extension

• Basic idea: provide templates and extensible fragments for every language

Page 39: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Universal Genericity

Component-Based Engineering with FragmentsThe Universally Generic Language BETA

Page 40: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 40

MDA meets CBSE

The Component Model of BETA

• The basic module in the BETA system is a fragment– Plain Fragment: Sentential form, a partial sentence

derived from a nonterminal– Generic Fragment (fragment form, template): Fragment

that still contains nonterminals (slots)– Fragment Group (fragment box): Set of fragments

Fragment

Plain Fragment

Fragment Form

Fragment Group(Fragment Box)

define fragment component PersonTemplate = { name '/home/assmann/PersonTemplate' Person : PatternDecl Person : begin PersonMembers : begin name : @String <<EmployerSlot : Attribute>> end end }

Page 41: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 41

MDA meets CBSE

Example of Composition in BETA

define fragment component PersonTemplate = { name '/home/assmann/PersonTemplate' Person : PatternDecl Person : begin PersonMembers : begin name : @String <<EmployerSlot : Attribute>> end end }

define fragment component PersonFiller = { name `/home/assmann/PersonFiller' origin `/home/assmann/PersonTemplate' EmployerSlot: Attribute EmployerSlot: begin employer: @Employer; salary: Integer end}

Person : PatternDecl Person : begin PersonMembers : begin name : @String employer: @Employer; salary: Integer end end

Page 42: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 42

MDA meets CBSE

Example of Composition in BETA

define fragment component PersonTemplate = { name '/home/assmann/PersonTemplate' Person : PatternDecl Person : begin PersonMembers : begin name : @String <<EmployerSlot : Attribute>> end end }

define fragment component PersonFiller = { name `/home/assmann/PersonFiller' origin `/home/assmann/PersonTemplate' EmployerSlot: Attribute EmployerSlot: begin employer: @Employer; salary: Integer end}

Person : PatternDecl Person : begin PersonMembers : begin name : @String employer: @Employer; salary: Integer end end

fragment Person = PersonTemplate.EmployerSlot.bind(PersonFiller);

Page 43: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 43

MDA meets CBSE

Advantages

• Fine-grained fragment component model– The slots of a beta fragment form its

parameterization interface– The BETA compiler can compile all fragments

separately– All language constructs can be reused– Type-safe composition with composition operation

bind-fragment– Mjölner metaprogramming environment is one of

the most powerful software IDE in the world (even after 15 years)

Universal genericity: A language is called universally generic, if it provides genericity for every language construct.

Page 44: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Universally Extensibility in Hyperspace Programming

Page 45: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 45

MDA meets CBSE

The Hyperspace, a Fragment Space

• View-based programming• Composition operation: merge of fragments in concerns

Fragment universe (Unit universe)

Concerns group semantically related fragments

Hyperslices compose concerns

Hypermodules compose hyperslices

The Hyperspace

Page 46: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 46

MDA meets CBSE

hyperslice PersonInfo = Employment.merge(PoliticalConcern);

concern PersonalConcern = { class Person { String name; int age; }}

concern PoliticalConcern = { class Person { string politicalParty; int contribution; }}

concern EmploymentConcern = { class Person { Employer employer; int salary; } class Employer { }}

hyperslice Employment = { class Person { String name; int age; Employer employer; int salary; }}

hyperslice PersonInfo = { class Person { String name; int age; string politicalParty; int contribution; Employer employer; int salary; }}

hyperslice Employment = PersonalConcern.merge(EmploymentConcern);

Page 47: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 47

MDA meets CBSE

Advantages

• Compositional merge resp. extension of fragment sets– Classes– Packages– Methods– Hyperslices!

Universal extensibility: A language is called universally extensible, if it provides extensibility for every collection-like language construct.

Page 48: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 48

MDA meets CBSE

Universal Genericity vs Universal Extension

• BETA and hyperspaces look really similar– Fragment components– slots vs hooks (parameterization vs extension

interface)– bind vs merge composition operations

• BETA is a generic component approach• Hyperspaces is an extensible component approach

Universal composability: A language is called universally composable, if it provides universal genericity and extension.

Page 49: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik

Universal Reuse Add-On Languagess

for universal genericity and extension

Page 50: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 50

MDA meets CBSE

CoreL

Reuse-L

CoreL Hooks

for L

Universally Composable Languages

Universally composable: A language is called universally composable, if it provides universal genericity and universal extensibilityReuse add-on language: Given a meta-model of a core language L, a metamodel of a universally composable language can be generated (Reuse-L)Slot and Hook model: Generated from the core language metamodel

– realizes universal composability by defining slots and hook constructs, one for each construct in the core language

Slotsfor L

Page 51: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 51

MDA meets CBSE

CoreL

Names

Reuse-L

Component model

CoreL

UHUL

Structure of a Universally Composable Language

• The reuse language has two levels...

Language-specific knowledge ...

Language-neutral knowledge ...

Hooksfor L

Slotsfor L

Page 52: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 52

MDA meets CBSE

Reuse-UML, a Universally Composable Language

• .. an extension of UML with slot and hook model

CoreXcerpt

Names

Reuse-UML

Component model

CoreUML

UHUL

UML-specific knowledge ...

Language-neutral knowledge ...

Hooksfor UML

Slotsfor UML

Page 53: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 53

MDA meets CBSE

Change

Change

Variability Evolution

Page 54: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 54

MDA meets CBSE

Future MDA with SCA

• Variability is preplanned, evolution is unforeseen

Commonality-VariabilityAnalysis (CVA)(Product Lines)

Stability-ExtensionAnalysis (SEA)(Evolution)

Stability-ChangeAnalysis (SCA)

Commonality/Platform-VariabilityAnalysis (MDA)

singular crosscutting

singular crosscutting

Parnas

eMDAgMDA

UniversalPointcuts

UniversalReuse

Add-ons

Page 55: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 55

MDA meets CBSE

MDA is Concern Separation

• MDA is not about platforms• MDA is a design framework approach with

subcategories– Generic MDA (for variation)

• Templates (mappings are parameterizations)• Modules• Connector refinements (mappings are refinements)

– Extensible MDA (for unforeseen extension)• Views (mappings are extensions)• Aspects

– Translation-based, Rewrite-based MDA

Page 56: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 56

MDA meets CBSE

The Real MDA

• MDA is a CBSE approach

• 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

Page 57: Model-Driven Development (MDD) meets Component Based ... · 9/21/2006  · MDA meets CBSE Modules (Information-Hiding-Based Design a la Parnas) • Every module hides the an important

Prof. Dr. U. Aßmann TU Dresden, Institut für Software- und Multimediatechnik 57

MDA meets CBSE

The End

• 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