scispace - formally typeset
Journal ArticleDOI

Superimposition: a component adaptation technique

Jan Bosch
- 25 Mar 1999 - 
- Vol. 41, Iss: 5, pp 257-273
TLDR
This article proposes superimposition, a novel black-box adaptation technique that allows one to impose predefined, but configurable types of functionality on a reusable component.
Abstract
Several authors have identified that the only feasible way to increase productivity in software construction is to reuse existing software. To achieve this, component-based software development is one of the more promising approaches. However, traditional research in component-oriented programming often assumes that components are reused “as-is”. Practitioners have found that “as-is” reuse seldom occurs and that reusable components generally need to be adapted to match the system requirements. Existing component object models provide only limited support for component adaptation, i.e. white-box techniques such as copy–paste and inheritance, and black-box approaches such as aggregation and wrapping. These techniques suffer from problems related to reusability, efficiency, implementation overhead or the self problem. To address these problems, this article proposes superimposition, a novel black-box adaptation technique that allows one to impose predefined, but configurable types of functionality on a reusable component. Three categories of typical adaptation types are discussed, related to the component interface, component composition and component monitoring. Superimposition and the types of component adaptation are exemplified by several examples.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI

A taxonomy of variability realization techniques

TL;DR: The factors that are relevant in determining how to implement variability, and a taxonomy of variability realization techniques are described, are described and presented.
Proceedings ArticleDOI

FEATUREHOUSE: Language-independent, automated software composition

TL;DR: This work unify languages and tools that rely on superimposition by using the language-independent model of feature structure trees (FSTs), and proposes a general approach to the composition of software artifacts written in different languages.
Journal ArticleDOI

Aspectual Feature Modules

TL;DR: This work proposes the symbiosis of FOP and AOP and aspectual feature modules (AFMs), a programming technique that integrates feature modules and aspects and provides a set of tools that support implementing AFMs on top of Java and C++.
Book ChapterDOI

Type-Safe Delegation for Run-Time Component Adaptation

TL;DR: This paper presents a type-safe integration of delegation into a class-based object model and shows how it overcomes the problems faced by forwarding-based component interaction, how it supports independent extensibility of components and unanticipated, dynamic component adaptation.
Journal ArticleDOI

Twenty-eight years of component-based software engineering

TL;DR: This paper addresses five dimensions of CBSE: main objectives, research topics, application domains, research intensity and applied research methods, and synthesizes the available evidence, identifies open issues and points out areas that call for further research.
References
More filters
Book

Design Patterns: Elements of Reusable Object-Oriented Software

TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
Journal ArticleDOI

Aspect-oriented programming

TL;DR: This work proposes to use aspect-orientation to automate the calculation of statistics for database optimization and shows how nicely the update functionality can be modularized in an aspect and how easy it is to specify the exact places and the time when statistics updates should be performed to speed up complex queries.
Book

The art of metaobject protocol

TL;DR: A new approach to programming language design is presented, which resolves fundamental tensions between elegance and efficiency, and a metaobject protocol is presented that gives users the ability to incrementally modify the language's behavior and implementation.
Book

The Art of the Metaobject Protocol

TL;DR: In this article, the authors present a new approach to programming language design, which resolves fundamental tensions between elegance and efficiency, called metaobject protocols, which are interfaces to the lanaguage that give users the ability to incrementally modify the language's behavior and implementation, as well as to write programs within the language.
Journal ArticleDOI

Object-oriented application frameworks

TL;DR: Object-oriented (OO) application frameworks are a promising technology for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software.