Abstract
It is well known that modifying software by hand, especially someone else’s, is not only slow and tedious but so notoriously error-prone that we strive for components that never need changing — black-box building blocks. Unfortunately, we lack the omniscience required to engineer such parts, especially when our problem domains are ill-defined. A promising alternative is to make each component adaptive — a simple mark-up language (e.g., frame technology) converts each component’s properties (i.e., granularities that are meaningful within a given domain) into a default value that can be overridden or extended by other components in a rapid yet reliable manner. Adaptive components constitute a gray-box strategy — black when their properties fit the context as is, otherwise white. The approach works by automating the tedious and error-prone aspects of construction and modification, while localizing all the unique properties of an object or program in its root component. Each root exercises complete control over the sructure and content of the code that its hierarchy of components emits. Such custom roots constitute only 5-15% of a typical system. In other words, 85-95% reuse is the norm. Along with the independently gathered statistical evidence of efficacy in constructing and evolving business systems of up to 10 million lines of code, the further implications of adaptive components for software engineering are presented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bassett, P. G.Framing Software Reuse: Lessons from the Real World. Prentice Hall, New York, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bassett, P.G. (2001). The Theory and Practice of Adaptive Components. In: Butler, G., Jarzabek, S. (eds) Generative and Component-Based Software Engineering. GCSE 2000. Lecture Notes in Computer Science, vol 2177. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44815-2_1
Download citation
DOI: https://doi.org/10.1007/3-540-44815-2_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42578-6
Online ISBN: 978-3-540-44815-0
eBook Packages: Springer Book Archive