On Object Systems and Behavioral Inheritance

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]  Robin Milner,et al.  An Algebraic Definition of Simulation Between Programs , 1971, IJCAI.

[2]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[3]  Amir Pnueli,et al.  Linear and Branching Structures in the Semantics and Logics of Reactive Systems , 1985, ICALP.

[4]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[5]  Pierre Wolper,et al.  The Complementation Problem for Büchi Automata with Appplications to Temporal Logic , 1987, Theor. Comput. Sci..

[6]  Stanley B. Zdonik,et al.  Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like , 1988, ECOOP.

[7]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[8]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[9]  James Martin,et al.  Object-oriented analysis and design , 1992 .

[10]  Oscar Nierstrasz,et al.  Regular types for active objects , 1993, OOPSLA '93.

[11]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[12]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[13]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[14]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[15]  Doron Drusinsky,et al.  On the power of bounded concurrency I: finite automata , 1994, JACM.

[16]  John Daniels,et al.  Designing object systems: object-oriented modelling with Syntropy , 1995 .

[17]  Martín Abadi,et al.  On Subtyping and Matching , 1995, ECOOP.

[18]  Jeannette M. Wing,et al.  Specifications and Their Use in Defining Subtypes , 1995, ZUM.

[19]  David Harel,et al.  Executable object modeling with statecharts , 1997, Computer.

[20]  Orna Kupferman,et al.  Verification of Fair Transition Systems , 1998, Chic. J. Theor. Comput. Sci..

[21]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[22]  Jean-Louis Sourrouille,et al.  UML Behavior: Inheritance and Implementation in Current Object-Oriented Languages , 1999, UML.

[23]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[24]  Heike Wehrheim,et al.  Behavioural Subtyping Relations for Object-Oriented Formalisms , 2000, AMAST.

[25]  David Harel,et al.  On the Complexity of Verifying Concurrent Transition Systems , 1997, Inf. Comput..

[26]  David Harel,et al.  Synthesizing State-Based Object Systems from LSC Specifications , 2000, Int. J. Found. Comput. Sci..