2000ACM SIGSOFT Software Engineering NotesOpen access

A model for designing adaptable software components

George T. Heineman

Open full text 9 citations

Abstract

An important aim of software engineering is to produce reliable and robust software systems. As software systems grow in size, however, it becomes infeasible to design and construct software systems from scratch. Most software developers are familiar with reusing code from component libraries to speed up tedious programming tasks, such as constructing graphical user interfaces. However, it is still an elusive goal to construct applications entirely from pre-existing, independently developed components. We believe that such component-based development will only occur when application builders can adapt software components to suit their needs.The goal of this research is to develop novel techniques for designing software components that provide a mechanism for adapting their behavior. We aim to achieve higher levels of component use/reuse than existing approaches for reusing software components. The Active Interface technique we propose enables software components to provide two interfaces --- one for behavior and one for adapting that behavior as needed.We make a distinction between software evolution, where the component designer modifies the software component, and adaptation, where an application builder adapts the component for a different use. We also differentiate adaptation from customization; an end-user customizes a software component by choosing from a fixed set of options. An end-user adapts a software component by writing new code to alter existing functionality.

Open-access reader

About this research paper

What this paper is about

An important aim of software engineering is to produce reliable and robust software systems. As software systems grow in size, however, it becomes infeasible to design and construct software systems from scratch. Most software developers are familiar with reusing code from component libraries to speed up tedious programming tasks, such as constructing graphical user interfaces. However, it is still an elusive goal to construct applications entirely from pre-existing, independently developed components. We believe that such component-based development will only occur when application builders can adapt software components to suit their needs.The goal of this research is to develop novel techniques for designing software components that provide a mechanism for adapting their behavior. We aim to achieve higher levels of component use/reuse than existing approaches for reusing software components. The Active Interface technique we propose enables software components to provide two interfaces --- one for behavior and one for adapting that behavior as needed.We make a distinction between software evolution, where the component designer modifies the software component, and adaptation, where an application builder adapts the component for a different use. We also differentiate adaptation from customization; an end-user customizes a software component by choosing from a fixed set of options. An end-user adapts a software component by writing new code to alter existing functionality.

Why it matters

OpenAlex reports 9 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

An important aim of software engineering is to produce reliable and robust software systems. As software systems grow in size, however, it becomes infeasible to design and construct software systems from scratch. Most software developers are familiar with reusing code from component libraries to speed up tedious programming tasks, such as constructing graphical user interfaces. However, it is still an elusive goal to construct applications entirely from pre-existing, independently developed components. We believe that such component-based development will only occur when application builders can adapt software components to suit their needs.The goal of this research is to develop novel techniques for designing software components that provide a mechanism for adapting their behavior. We aim to achieve higher levels of component use/reuse than existing approaches for reusing software components. The Active Interface technique we propose enables software components to provide two interfaces --- one for behavior and one for adapting that behavior as needed.We make a distinction between software evolution, where the component designer modifies the software component, and adaptation, where an application builder adapts the component for a different use. We also differentiate adaptation from customization; an end-user customizes a software component by choosing from a fixed set of options. An end-user adapts a software component by writing new code to alter existing functionality.

Key concepts: Component-based software engineering, Computer science, Software construction, Software development, Software engineering, Component (thermodynamics), Software framework, Software sizing

Related papers

Back to paper searchBrowse research topicsOriginal source
A model for designing adaptable software components — Research Paper | ScholarLens