On object systems and behavioral inheritance

David Harel*, Orna Kupferman

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

39 Scopus citations

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.

Original languageAmerican English
Pages (from-to)889-903
Number of pages15
JournalIEEE Transactions on Software Engineering
Volume28
Issue number9
DOIs
StatePublished - Sep 2002

Keywords

  • Inheritance
  • Object systems
  • Object-oriented analysis and design
  • Simulation
  • Trace containment
  • Verification

Cite this