Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "A Close Look at Composition Languages Florian Heidenreich, Jendrik Johannes, Steffen Zschaler, and Uwe Aßmann ACoMM 2008."— Presentation transcript:

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

2 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie 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 (c) Steffen Zschaler

3 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie 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 (c) Steffen Zschaler

4 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie A few examples Black-box components à la CORBA, EJB, or.NET Aspects (in particular, AspectJ style) Invasive Composition Variability by IfDef (c) Steffen Zschaler

5 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie 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 (c) Steffen Zschaler

6 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie 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); } public aspect Example { pointcut mypoints: call (public * *Example.do* (..)); before mypoints: { System.out.println (Some do method was called); } (c) Steffen Zschaler

7 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie 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, …) (c) Steffen Zschaler

8 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie Variability by IfDef (c) Steffen Zschaler #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 #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

9 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie A tentative vocabulary Component Mapping to actual Components Mapping to actual Components Composition Description Composition Description Component Selection Component Selection Component Connection Component Connection Component Denotation Component Denotation Component Model Composition Language In-Context Component Selection In-Context Component Selection In-Context Component Connection In-Context Component Connection (c) Steffen Zschaler

10 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie Lessons learned Implicit/explicit/meta explicit mapping In-Context vs. Out-of-context selection/composition Relation composition/selection (c) Steffen Zschaler

11 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie (c) Steffen Zschaler11 Thank you for your attention! ?? Questions ??


Download ppt "A Close Look at Composition Languages Florian Heidenreich, Jendrik Johannes, Steffen Zschaler, and Uwe Aßmann ACoMM 2008."

Similar presentations


Ads by Google