11
A Close Look at Composition Languages Florian Heidenreich, Jendrik Johannes, Steffen Zschaler, and Uwe Aßmann ACoMM 2008

A Close Look at Composition Languages

  • Upload
    halen

  • View
    21

  • Download
    0

Embed Size (px)

DESCRIPTION

A Close Look at Composition Languages. Florian Heidenreich, Jendrik Johannes, Steffen Zschaler , and Uwe Aßmann ACoMM 2008. Motivation. Many different approaches to modularisation exist Packages Aspect orientation Feature-Driven Development Model Weaving … - PowerPoint PPT Presentation

Citation preview

Page 1: A Close Look at Composition Languages

A Close Look at Composition Languages

Florian Heidenreich, Jendrik Johannes, Steffen Zschaler, and Uwe AßmannACoMM 2008

Page 2: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 2

Motivation

Many different approaches to modularisation exist Packages Aspect orientation Feature-Driven Development Model Weaving …

Comparison is difficult: Each approach uses its own terminology

A unifying terminology is needed

19.10.2008

Page 3: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 3

Background work

Medvidovic, Taylor Elements of Architecture Description Languages:

- Components- Connectors- Configurations

Aßmann Elements of Composition Systems:

- Component Model- Composition Technique- Composition Language

Here: elements of the composition language

19.10.2008

Page 4: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 4

A few examples

Black-box components à la CORBA, EJB, or .NET Aspects (in particular, AspectJ style) Invasive Composition Variability by IfDef

19.10.2008

Page 5: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 5

Black-box components

Binary format components Inner structure hidden from component users Run-time infrastructure to establish compositions

Deployment Descriptors Name Service Names of used components explicitly embedded in using components

Client

Stub Skeleton

Server

19.10.2008

Page 6: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 6

AspectJ-style aspects

Components: Advice and core code Inner structure partially exposed for expressing compositions

Based on language structure (e.g., method entry/exit) Expressions mapped to code/execution points Mapping hard coded in weaver

Composition description (pointcuts) provided separately from components

public aspect Example {pointcut mypoints: call (public * *Example.do* (..));

before mypoints: {System.out.println („Some do method was called“);

}}

19.10.2008

Page 7: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 7

Invasive composition

Components: Program or model fragments Represented by composition interfaces Composition implemented through transformation

Composition interfaces derived from markup within component code

Language-independent But: Can specialise for particular languages Compositions expressed within components (e.g., import, provides,

requires, …)

19.10.2008

Page 8: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 8

Variability by IfDef

19.10.2008

#define USE_ENERGY_SAVING 1...#ifdef USE_ENERGY_SAVING // Component that saves energy cout << "Switched off your music player?" << endl;#else // Component that wastes energy cout << "Want to start another device?" << endl;#endif

Component Representation

Components

Component Selection

Component composition implicitly given through text sequence

Page 9: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 9

A tentative vocabulary

Component

Map

ping

to a

ctua

lC

ompo

nent

sCompositionDescription

ComponentSelection

ComponentConnection

ComponentDenotation

Component Model

Composition Language

In-ContextComponentSelection

In-ContextComponentConnection

19.10.2008

Page 10: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 10

Lessons learned

Implicit/explicit/meta explicit mapping

In-Context vs. Out-of-context selection/composition

Relation composition/selection

19.10.2008

Page 11: A Close Look at Composition Languages

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

(c) Steffen Zschaler 1119.10.2008

Thank you for your attention!

?? Questions ??