Software Component Relationships

component X extends abstract component Y , concrete component X1 implements X, and concrete component Y 1 implements Y, then X1 is behaviorally substitutable for Y 1 with respect to Y . Note that Y 1 is not behaviorally substitutable for X1 with respect to X in this case. Thus behavioral substitutability is a ternary relationship, not a binary equivalence relation. To some readers, the extends relationship may sound very much like an inheritance relationship. It is important to understand that extends is not an inheritance relationship. Extends describes a behavioral relationship between two components. Inherits-from does not. Furthermore, while inheritance may be a convenient programming language mechanism for expressing structural aspects of the extends relationship, extends may be encoded in programming languages without any use of inheritance. 3 Comparison Perhaps the most widely known work which includes de nitions of software component relationships is that by Grady Booch, Ivar Jacobson, and James Rumbaugh on the Uni ed Modeling Language (UML). The UML includes software component relationships in the form of class relationships dened in Booch's method for object-oriented analysis and design [4]. Booch identi es three basic kinds of class relationships: those expressing is-a relationships, those expressing is-a-part-of relationships, and association relationships which denote some semantic dependency between otherwise unrelated classes. The speci c class relationships used by Booch include association, inheritance, aggregation, and using. The meanings of these relationships are largely in uenced by available programming language mechanisms (in particular, those of C++). Booch's association relationship is primarily useful for design and analysis of a particular application or composition of components. It does not convey information about what compositions are possible for a reusable component. Booch's use of the inheritance relationship is limited to expressing is-a relationships. However, his de nition of is-a is not strict enough to imply behavioral substitutability with respect to some speci cation (as does implements). Thus the component relationships expressed as class relationships in the UML appear to su er from all of the problems described in the last section. Some object-oriented programming advocates such as Bertrand Meyer do not insist that inheritance only be used to express the conceptual is-a relationship. Meyer has described twelve di erent component relationships that may be expressed using inheritance, only one of which expresses the is-a relationship [5]. As with the UML's use of inheritance, Meyer's is-a use of inheritance is not de ned precisely enough to imply behavioral substitutability. Some researchers have studied precisely de ned class relationships which do imply behavioral substitutability of components [6, 7]. This research largely focuses on how the inheritance language mechanism can and should be used in a manner that supports reasoning about program behavior. Unlike our research, this work does not address conceptual component relationships from a language-independent perspective. References [1] M. Sitaraman and B. W. Weide, editors, \Special feature: Component-based software using RESOLVE," ACM SIGSOFT Software Engineering Notes, vol. 19, no. 4, pp. 21{67, 1994. Edwards5 [2] S. H. Edwards, A Formal Model of Software Subsystems. PhD thesis, The Department of Computer and Information Science, The Ohio State University, Columbus, Ohio, 1995. [3] B. W. Weide and J. E. Hollingsworth, \Scalability of reuse technology to larege systems requires local certi ability," in Proceedings of the Fifth Annual Workshop on Software Reuse (L. Latour, ed.), Oct. 1992. [4] G. Booch, Object-Oriented Analysis and Design With Applications. Menlo Park, CA: Benjamin/Cummings, 2nd ed., 1994. [5] B. Meyer, \The many faces of inheritance: A taxonomy of taxonomy," IEEE Computer, vol. 29, pp. 105{108, May 1996. [6] B. H. Liskov and J. M. Wing, \A behavioral notion of subtyping," ACM Transactions on Programming Languages and Systems, vol. 16, pp. 1811{1841, Nov. 1994. [7] K. K. Dhara and G. T. Leavens, \Forcing behavioral subtyping through speci cation inheritance," in Proceedings of the 18th International Conference on Software Engineering, pp. 258{ 267, IEEE Computer Society Press, Mar. 1996. Biography Stephen Edwards is a Visiting Assistant Professor in the Department of Computer Science at the Virginia Polytechnic Institute and State University. He received a B.S. in Electrical Engineering at the California Institute of Technology in 1988 and his M.S. and Ph.D in Computer and Information Science at The Ohio State University in 1992 and 1995, respectively. David Gibson is a Major in the United States Air Force and a Ph.D. candidate in the Department of Computer and Information Science at The Ohio State University. He received a B.S. in Physics and Computer Science from Duke University in 1983 and his M.S. in Computer and Information Sciences from Trinity University in San Antonio in 1986. Bruce Weide is a Professor of Computer and Information Science at The Ohio State University. He received a B.S. in Electrical Engineering from the University of Toledo in 1974 and a Ph.D. in Computer Science from Carnegie-Mellon University in 1978. He is a co-founder of the Reusable Software Research Group at The Ohio State University. Sergey Zhupanov is a Research Associate in the Department of Computer and Information Science at The Ohio State University. He received his B.S. and M.S in Computer and Information Science at The Ohio State University in 1994 and 1996, respectively. We gratefully acknowledge nancial support from the National Science Foundation (grant number CCR-9311702, DUE-9555062, and CDA-9634425), the Advanced Research Projects Agency (contract number F30602-93-C-0243, monitored by the USAF Materiel Command, Rome Laboratories, ARPA order number A714), and the Fund for the Improvement of Post-Secondary Education under project number P116B60717. Any opinions, ndings, and conclusions or recommendations expressed in this paper are those of the authors and do not necessarily re ect the views of the National Science Foundation, the Defense Advanced Research Projects Agency, or the U.S. Department of Education. Edwards6