1 / 11

A Close Look at Composition Languages

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 …

halen
Download Presentation

A Close Look at Composition Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 (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 (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 (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 Server Stub Skeleton (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 publicaspectExample { pointcutmypoints: call (public * *Example.do* (..)); beforemypoints: { System.out.println („Some do method was called“); } } (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, …) (c) Steffen Zschaler

  8. Variability by IfDef Component Representation #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 Selection Components • Component composition implicitly given through text sequence (c) Steffen Zschaler

  9. A tentative vocabulary Composition Language Component Denotation Composition Description Mapping to actual Components Component Selection Component Connection Component Model In-Context Component Selection In-Context Component Connection Component (c) Steffen Zschaler

  10. Lessonslearned Implicit/explicit/meta explicit mapping In-Context vs. Out-of-context selection/composition Relation composition/selection (c) Steffen Zschaler

  11. Thankyouforyourattention! ?? Questions ?? (c) Steffen Zschaler

More Related