@MISC{Neighbors80softwareconstruction, author = {James M. Neighbors}, title = {Software Construction Using Components}, year = {1980} }
Years of Citing Articles
Bookmark
OpenURL
Abstract
It is the thesis of this work that many computer software systems being built today are similar and should be built out of reusable software components. The appropriate use of software components is investigated by analogy to the classical engineering question of whether to build an object out of custom-made parts or standard parts and assemblies. The same analogy is used to explain some of the problems with previous work on reusable software. The result of reasoning with the engineering analogy is that the reuse of software results only from the reuse of analysis, design, and code; rather than just the reuse of code. The concept of domain analysis is introduced to describe the activity of identifying the objects and operations of a class of similar systems in a particular problem domain. A domain analysis is represented by a domain-specific language, a prettyprinter, source-tosource transformations, and software components. A domain's software components map statements from the domain into other domains which are used to model the objects and operations of the domain. Software components represent implementation choices. The components are managed using a module interconnection language to insure usage constraints. The source-to-source transformations represent domain-specific optimizations, independent of any implementation, which are used to optimize statements in the domain. The transformations are useful primarily when the domain is used as a modeling domain. A method of automatically producing metarules for a set of transformations is described. The metarules remove the burden of having to suggest individual transformations from the user. A formal model of the usage constraints and modeling possibilities of a set of domains is presented. It is shown that the reusa...