Inheritance of behavior
Autor: | Wmp Wil van der Aalst, AA Twan Basten |
---|---|
Rok vydání: | 2001 |
Předmět: |
Composition over inheritance
Free-choice Petri nets Theoretical computer science Inheritance Logic Process calculus Process algebra Petri nets Reuse Petri net Theoretical Computer Science Object orientation Process Computational Theory and Mathematics Object life cycle Design process Modeling and design Algebraic number Software Superclass Mathematics |
Zdroj: | The Journal of Logic and Algebraic Programming. 47(2):47-145 |
ISSN: | 1567-8326 |
DOI: | 10.1016/s1567-8326(00)00004-7 |
Popis: | One of the key issues of object-oriented modeling and design is inheritance. It allows for the definition of subclasses that inherit features of some superclass. Inheritance is well defined for static properties of classes such as attributes and methods. However, there is no general agreement on the meaning of inheritance when considering the dynamic behavior of objects, captured by their life cycles. This paper studies inheritance of behavior both in a simple process-algebraic setting and in a Petri-net framework. Process algebra is chosen, because it concentrates on behavior, while abstracting from the internal states of processes. The result of the algebraic study is a clear conceptual understanding of inheritance of behavior. It can be expressed in terms of blocking and hiding method calls. The results in the algebraic framework inspire the development of the concept of inheritance of behavior in the Petri-net framework. The Petri-net formalism allows for a graphical representation of life cycles of objects with an explicit representation of object states. In the Petri-net framework, four inheritance rules are defined that can be used to construct life cycles of subclasses from the object life cycles of given (super-)classes. These inheritance rules can be used to structure a design process and they stimulate the reuse of life-cycle specifications. It turns out that the combination of blocking and hiding method calls captures a number of important operators for constructing life cycles of subclasses from life cycles of superclasses, namely choice, sequential composition, parallel composition, and iteration. A small case study validates our approach to inheritance of behavior. |
Databáze: | OpenAIRE |
Externí odkaz: |