A model for designing adaptable software components
George T. Heineman
Abstract
Open-access reader
George T. Heineman
Abstract
Open-access reader
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.
OpenAlex reports 9 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
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