This Article 
 Bibliographic References 
 Add to: 
On Object Systems and Behavioral Inheritance
September 2002 (vol. 28 no. 9)
pp. 889-903

Abstract—We consider state-based behavior in object-oriented analysis and design, as it arises, for example, in specifying behavior in the UML using statecharts. We first provide a rigorous and analyzable model of object systems and their reactivity. The definition is for basic one-thread systems, but can be extended in appropriate ways to more elaborate models. We then address the notion of inheritance and behavioral conformity and the resulting substitutability of classes, whereby inheriting should retain the system's original behaviors. Inheritance is a central issue of crucial importance to the modeling, design, and verification of object-oriented systems, and the many deep and unresolved questions around it cannot be addressed without a precise definition of the systems under consideration. We use our definition to give a clear and rigorous picture of what exactly is meant by behavioral conformity and how computationally complex it is to detect.

[1] M. Abadi and L. Cardelli, “On Subtyping and Matching,” Proc. Ninth European Conf. Object-Oriented Programming (ECOOP), 1995.
[2] G. Booch, Object-Oriented Analysis and Design with Applications, Addison-Wesley, Reading, Mass., 1994.
[3] S. Cook and J. Daniels, Designing Object Systems: Object-Oriented Modelling with Syntropy, Prentice Hall, New York, 1994.
[4] D. Drusinsky and D. Harel, “On the Power of Bounded Concurrency I: Finite Automata,” J. ACM, vol. 41, no. 3, pp. 517-539, 1994.
[5] W. Damm and D. Harel, “LSCs: Breathing Life into Message Sequence Charts,” Formal Methods in System Design, vol. 19, no. 1, 2001, (Preliminary version Proc. Third IFIP Int'l Conf. Formal Methods for Open Object-Based Distributed Systems, P. Ciancarini, A. Fantechi and R. Gorrieri, eds., 1999.
[6] C. Fischer and H. Wehrheim, “Behavioural Subtyping Relations for Object-Oriented Formalisms,” Proc. Conf. Algebraic Methodology and Software Technology, T. Rus, ed., 2000.
[7] D. Harel, “Statecharts: A Visual Approach to Complex Systems,” Science of Computer Programming, Vol. 8, No. 3, pp. 231–274, 1987.
[8] D. Harel and E. Gery, “Executable Object Modeling with Statecharts,” Computer, vol. 30, no. 7, pp. 31-42, 1997.
[9] D. Harel and H. Kugler, “Synthesizing State-Based Object Systems from LSC Specifications,” Int'l J. Foundations of Computer Science (IJFCS), 2001, in press, (Preliminary version in Proc. Fifth Int'l Conf. Implementation and Application of Automata (CIAA 2000).
[10] D. Harel, O. Kupferman, and M.Y. Vardi, “On the Complexity of Verifying Concurrent Transisition Systems,” Information and Computation, vol. 173, pp. 1-19, 2002.
[11] I. Jacobson, Object-Oriented Software Engineering, Addison-Wesley/ACM Press, New York, 1991.
[12] O. Kupferman and M.Y. Vardi, “Verification of Fair Transition Systems,” Chicago J. Theoretical Computer Science, Mar. 1998.
[13] B. Liskov and J.M. Wing, ”A Behavioral Notion of Subtyping,” ACM Trans. Programming Languages and Systems, vol. 16, no. 6, pp. 1,811–1,841, Nov. 1994.
[14] B.H. Liskov and J.M. Wing, “Specifications and Their Use in Defining Subtypes,” Lecture Notes in Computer Science, vol. 967, pp. 245-267, 1995.
[15] R. Milner, “An Algebraic Definition of Simulation between Programs,” Proc. Second Int'l Joint Conf. Artificial Intelligence, pp. 481-489, Sept. 1971.
[16] R. Milner, A Calculus of Communicating Systems. Berlin: Springer Verlag, vol. 92, 1980.
[17] O. Nierstasz, “Regular Types for Active Objects,” Object-Oriented Software Composition, New York: Prentice Hall, pp. 99-121, 1995.
[18] A. Pnueli, “Linear and Branching Structures in the Semantics and Logics of Reactive Systems,” Proc. 12th Int'l Colloquium Automata, Languages and Programming, pp. 15-32, 1985.
[19] J. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling Language Reference Manual. Addison-Wesley, 1999.
[20] I-Logix, Inc., Products web page,http://www.ilogix.comfs_prod.htm.
[21] C.L. Chang, R.A. Stachowitz, and J.B. Combs, “Validation of Nonmonotonic Knowledge-Based Systems,” Proc. IEEE Int'l Conf. Tools for Artificial Intelligence, Nov. 1990.
[22] J.L. Sourrouille, “UML Behavior: Inheritance and Implementation in Current Object-Oriented Languages,” Proc. Second Int'l Conf. Unified Modeling Language, Oct. 1999.
[23] B. Stroustrup, The C++ Programming Language. third ed. Addison-Wesley, 1997.
[24] A.P. Sistla, M.Y. Vardi, and P. Wolper, “The Complementation Problem for Büchi Automata with Applications to Temporal Logic,” Theoretical Computer Science, vol. 49, pp. 217-237, 1987.
[25] Various documents on the (U)nified (M)odeling (L)anguage (UML), available from the Object Management Group (OMG),http:/, 2002.
[26] P. Wegner and S.B. Zdonik, “Inheritance as an Incremental Modification Mechanism or What Like is and isn't Like,” Proc. Ninth European Conf. Object-Oriented Programming (ECOOP), vol. 322, pp. 55-77, 1985.

Index Terms:
Object-oriented analysis and design, object systems, inheritance, verification, simulation, trace containment.
David Harel, Orna Kupferman, "On Object Systems and Behavioral Inheritance," IEEE Transactions on Software Engineering, vol. 28, no. 9, pp. 889-903, Sept. 2002, doi:10.1109/TSE.2002.1033228
Usage of this product signifies your acceptance of the Terms of Use.