Last update: Sun Aug 5 02:03:07 MDT 2018
@Article{Heineman:2000:MDA, author = "George T. Heineman", title = "A model for designing adaptable software components", journal = j-SIGSOFT, volume = "25", number = "1", pages = "55--56", month = jan, year = "2000", CODEN = "SFENDP", DOI = "https://doi.org/10.1145/340855.340956", ISSN = "0163-5948 (print), 1943-5843 (electronic)", ISSN-L = "0163-5948", bibdate = "Wed Aug 1 17:13:50 MDT 2018", bibsource = "http://www.math.utah.edu/pub/tex/bib/sigsoft2000.bib", 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.", acknowledgement = ack-nhfb, fjournal = "ACM SIGSOFT Software Engineering Notes", journal-URL = "https://dl.acm.org/citation.cfm?id=J728", }