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

Slides:



Advertisements
Similar presentations
Aspect Orientation for Your Language of Choice Florian Heidenreich, Jendrik Johannes, Steffen Zschaler Workshop on Aspect-Oriented Modelling 30 September,
Advertisements

Integrating OCL and Model Transformations in Fujaba Mirko Stölzel, Steffen Zschaler, and Leif Geiger OCLApps 2006, October 2, 2006.
Giancarlo Guizzardi Ontological Foundations for Structural Conceptual Models Kapitel 1–3, vorgestellt von Steffen Zschaler am
Fakultät Informatik Institut Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie EMFText Meeting, Dresden, EMFText Code Completion.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Unit Testing in the OO Context(Chapter 19-Roger P)
Towards a Standard Interface for Runtime Inspection in AOP Environments OOPSLA Workshop on Tool for AOSD, Seattle, November 2002 Katharina Mehner and Awais.
1Model Driven Architecture – 3. März 2008 – Siegfried Nolte 1.UML – What is it and what is it good for ? 2.MDA – What is it and what is it good for ? 3.MDA.
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Software Architectural Design Software Components Instructor Dr. Lawrence Chung.
Main issues: • Why is reuse so difficult • How to realize reuse
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
ARCHITECTURAL MISMATCH Heather T. Kowalski September 5, 2000.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Event Driven Programming
Introduction to MDA (Model Driven Architecture) CYT.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Component & Deployment Diagram © copyright 2001 SNU OOPSLA Lab.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
TAL7011 – Lecture 4 UML for Architecture Modeling.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Aspect Oriented Security Tim Hollebeek, Ph.D.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Aspect-Oriented Software Development (AOSD)
EJB Enterprise Java Beans JAVA Enterprise Edition
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
UML Diagrams By Daniel Damaris Novarianto S..
Distribution and components
UML Diagrams Jung Woo.
Inventory of Distributed Computing Concepts and Web services
Service-centric Software Engineering
Enterprise Application Integration Styles
Component-Based Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Event Driven Programming
JavaServer Faces: The Fundamentals
Automated Analysis and Code Generation for Domain-Specific Models
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
Architectural Mismatch: Why reuse is so hard?
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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