|
ABSTRACT
The nature of programming is changing. Most of the software engineering literature still takes for granted a world of individual projects, where the sole aim is to produce specific software systems in response to particular requirements, little attention being paid to each system's relationship to previous or subsequent efforts. This implicit model seems unlikely to allow drastic improvements in software quality and productivity.
Such order-of-magnitude advances will require a process of industrialization, not unlike what happened in those disciplines which have been successful at establishing a production process based on the reuse of quality-standardized components. This implies a shift to a “new culture” [14] whose emphasis is not on projects but instead on components.
The need for such a shift was cogently expressed more than 20 years ago by Doug McIlroy in his contribution, entitled Mass-Produced Software Components [10], to the now-famous first conference on software engineering:
Software production today appears in the scale of industrialization somewhere below the more backward construction industries. I think its proper place is considerably higher, and would like to investigate the prospects for mass-production techniques in software. [...]
My thesis is that the software industry is weakly founded [in part because of] the absence of a software components subindustry [...] A components industry could be immensely successful.
Although reuse has enjoyed modest successes since this statement was made, by all objective criteria McIlroy's prophecy has not been fulfilled yet; many technical and non-technical issues had to be addressed before reuse could become a reality on the scale he foresaw. (See [1] and [20] for a survey of current work on reuse.) One important development was needed to make this possible: the coming age of object-oriented technology, which provides the best known basis for reusable software construction. (That the founding document of object-oriented methods, the initial description of Simula 67, was roughly contemporary with McIlroy's paper tends to confirm a somewhat pessimistic version of Redwine and Riddle's contention [18] that “it takes on the order of 15 to 20 years to mature a technology to the point that it can be popularized to the technical community at large.”) Much of the current excitement about object-oriented software construction derives from the growing realization that the shift is now technically possible.
This article presents the concerted efforts which have been made to advance the cause of component-based software development in the Eiffel environment [12, 17] through the construction of the Basic Eiffel Libraries.
After a brief overview of the libraries, this article reviews the major language techniques that have made them possible (with more background about Eiffel being provided by the sidebar entitled “Major Eiffel Techniques”); it then discusses design issues for libraries of reusable components, the use of inheritance hierarchies, the indexing problem, and planned developments.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
Dahl, O.-J., Myrhaug, B. and Nygaard, K. (Simula) Common Base Language. Norsk Regnesentral Norwegian Computing Center, Oslo, February 1984.
|
| |
3
|
Floyd, R.W. Assigning meanings to programs. In Proceedings of the American Mathematical Society Symposium in Applied Mathematics, vol. 19 (1967), pp. 19-31.
|
| |
4
|
|
 |
5
|
|
 |
6
|
|
| |
7
|
johnson, E. and Foote, B. Designing reusable classes. J. Object- Oriented Prog. 1, 2 (June-july 1983), 22-35.
|
| |
8
|
|
| |
9
|
Luckham, D. and yon Henke, F.W. An overview of Anna. a specification language for Ada. IEEE Softu,. 2, 2 (March 1985), 9-22.
|
| |
10
|
McIlroy, M.D. Mass-produced Software Components. In Software Engineering Concepts and 7~chniques (} 968 NATO Conference on Software Engineering), J.M. Buxton, 1:,. Naur and B. Randell, Eds., Van Nostrand Reinhold, 1976, pp. 88-98.
|
 |
11
|
|
| |
12
|
|
| |
13
|
Meyer, B. Programming as contracting. Tech. Rep. TR-Eld2/CO, Interactive Software Engineering, Santa Barbara, Calif, 1988.
|
| |
14
|
Meyer, B. The new culture of software development: Reflections on the practice of object-oriented design. In TOOLS '89 2~chnology of Object-Oriented Languages and ~stems, (Paris, November 1989), pp. 13-23.
|
| |
15
|
Meyer, B. Static typing for Eiffel. Tech. Rep. TR-EI-18/ST, Interactive Software Engineering Inc., 1989.
|
| |
16
|
Meyer, B. Eiffel: The libraries. Tech. Rep. TR-EI-7/LI, Interactive Software Engineering Inc., Santa Barbara, Galif., October 1986 (version 2.2, August 1989). To be published by Prentice-Hall in 1990.
|
| |
17
|
|
| |
18
|
|
| |
19
|
|
| |
20
|
|
CITED BY 18
|
|
Michael Halper , James Geller , Yehoshua Perl, Value propagation in object-oriented database part hierarchies, Proceedings of the second international conference on Information and knowledge management, p.606-614, November 01-05, 1993, Washington, D.C., United States
|
|
|
|
|
|
D. Needham , S. Demurjian , K. El Guemhioui , T. Peters , P. Zamani , M. McMahon , H. Ellis, ADAM: a language-independent, object-oriented, design environment for modeling inheritance and relationship variants in Ada 95, C++, and Eiffel, Proceedings of the conference on TRI-Ada '96: disciplined software development with Ada, p.99-113, December 03-07, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kek Wee Ng , Jian Ma , Gi-Moon Nam, A class library management system for object-oriented programming, Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice, p.445-451, February 14-16, 1993, Indianapolis, Indiana, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"John Joseph Cupak, Jr. : Reviewer"
Although the main effort of software engineering appears to be the
development of software systems in response to customer requirements,
little attention is paid to the relationship of each system to previous
or subsequent systems. The need fo
more...
|