Nothing Special   »   [go: up one dir, main page]

Skip to main content
Log in

Behavioral Subtyping Relations for Active Objects

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

In this paper we investigate the object-oriented notion of subtyping in the context of behavioral formalisms. Behavioral formalisms are used to describe the dynamic behavior of active objects, viz. the protocols of interaction that active objects have to obey.

Subtyping in OO-formalisms is closely related to the concept of inheritance. The central issue in the choice of subtyping relations among classes is the principle of substitutability: an instance of the subtype should be usable wherever an instance of the supertype was expected. Depending on the interpretation of “usable”, we obtain a variety of subtyping relations: stronger relations, allowing sharing of subtype instances among different clients, and weaker relations, restricting the possibilities of interference of different clients on the subtype instance. The subtyping relations are taxonomically ordered in a hierarchy. Substitutability is formalized via testing scenarios, which provide alternative characterizations for the subtyping relations.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. P. America, “Designing an object-oriented programming language with behavioural subtyping,” in J. de Bakker, W. de Roever, and G. Rozenberg (Eds.), REX Workshop: Foundations of Object-Oriented Languages, Springer, 1991.

  2. C. Balzarotti, F.D. Cindio, and L. Pomello, “Observation equivalences for the semantics of inheritance,” in P. Ciancarini and R. Gorrieri (Eds.), FMOODS '99, Formal Methods for Open Object-Based Distributed Systems, 1999.

  3. T. Bolognesi and E. Brinksma, “Introduction to the ISO specification language LOTOS,” Computer Networks and ISDN Systems, Vol. 14, pp. 25–59, 1987.

    Google Scholar 

  4. H. Bowman, C. Briscoe-Smith, J. Derrick, and B. Strulo, “On behavioural subtyping in LOTOS,” in H. Bowman and J. Derrick (Eds.), Formal Methods for Open Object-Based Distributed Systems, Chapman & Hall, 1997, pp. 335–351.

  5. H. Bowman and J. Derrick, “A junction between state based and behavioural specification,” in P. Ciancarini, F. Fantechi, and R. Gorrieri (Eds.), Formal Methods for Open Object-Based Distributed Systems FMOODS '99, Kluwer, pp. 213–239, 1999.

  6. E. Brinksma, G. Scollo, and C. Steenbergen, “LOTOS specifications, their implementations and their tests,” in B. Sarikaya and G. v.Bochmann (Eds.), Protocol Specification, Testing and Verification VI, Elsevier, pp. 349–358, 1987.

  7. S.D. Brookes, C.A.R. Hoare, and A.W. Roscoe, “A theory of communicating sequential processes,” Journal of the ACM, Vol. 31, No. 3, pp. 560–599, 1984.

    Google Scholar 

  8. E. Cusack, “Refinement, conformance and inheritance,” Formal Aspects of Computing, Vol. 3, pp. 129–141, 1991.

    Google Scholar 

  9. R. De Nicola and M. Hennessy, “Testing equivalences for processes,” Theoretical Computer Science, Vol. 34, pp. 83–133, 1984.

    Google Scholar 

  10. K.K. Dhara and G.T. Leavens, “Forcing behavioral subtyping through specification inheritance,” in Proceedings of the 18th International Conference on Software Engineering, IEEE Computer Society Press, Berlin, Germany, pp. 258–267, 1996.

    Google Scholar 

  11. K.K. Dhara and G. Leavens, “Mutation, aliasing, viewpoints, modular reasoning, and weak behavioural subtyping,” Technical Report TR01-02, Department of Computer Science, Iowa State University, 2001.

  12. H. Ehrig and B. Mahr, Fundamentals of Algebraic Specification 1, Vol. 6, Springer, 1985.

  13. C. Fischer, “How to combine Z with a process algebra,” in J. Bowen, A. Fett, and M. Hinchey (Eds.), ZUM'98 The Z Formal Specification Notation, Vol. 1493 of LNCS, Springer, pp. 5–23, 1998.

  14. C. Fischer and H. Wehrheim, “Behavioural subtyping relations for object-oriented formalisms,” in T. Rus (Ed.), AMAST 2000: International Conference on Algebraic Methodology and Software Technology, Springer, pp. 469–483, 2000.

  15. C.A.R. Hoare, Communicating Sequential Processes, Prentice-Hall, 1985.

  16. G. Leavens and W. Weihl, “Specification and verification of object-oriented programs using supertype abstraction,” Acta Informatica, Vol. 32, pp. 705–778, 1995.

    Google Scholar 

  17. G.T. Leavens, and D. Pigozzi, “A complete algebraic characterization of behavioral subtyping,” Acta Informatica, Vol. 36, No. 8, pp. 617–663, 2000.

    Google Scholar 

  18. B. Liskov, “Data abstraction and hierarchy,” SIGPLAN Notices, Vol. 23, No. 5, pp. 17–34, 1988.

    Google Scholar 

  19. B. Liskov and J. Wing, “A behavioural notion of subtyping,” ACM Transactions on Programming Languages and Systems, Vol. 16, No. 6, pp. 1811–1841, 1994.

    Google Scholar 

  20. I. Maung, “On simulation, subtyping and substitutability in sequential object systems,” Formal Aspects of Computing, Vol. 7, pp. 620–651, 1995.

    Google Scholar 

  21. B. Meyer, Object-Oriented Software Construction, 2nd ed., ISE, 1997.

  22. A. Mihajlova and E. Sekerinski, “Class refinement and interface refinement in object-oriented programs,” in J. Fitzgerald, C. Jones, and P. Lucas (Eds.), Formal Methods Europe, FME '97, Springer, 1997.

  23. R. Milner, J. Parrow, and D. Walker, “A calculus of mobile processes: Part 1,” Information and Computation, Vol. 100, No. 1, pp. 1–40, 1992.

    Google Scholar 

  24. O. Nierstrasz, “Regular types for active objects,” in O. Nierstrasz and D. Tsichritzis (Eds.), Object-Oriented Software Composition, Prentice Hall, pp. 99–121, 1995.

  25. A. Rensink and R. Gorrieri, “Action refinement as an implementation relation,” in M. Bidoit and M. Dauchet (Eds.), TAPSOFT '97: Theory and Practice of Software Development, Vol. 1214 of Lecture Notes in Computer Science, pp. 772–786, 1997.

  26. A.W. Roscoe, The Theory and Practice of Concurrency, Prentice-Hall, 1997.

  27. S. Rudkin, “Inheritance in LOTOS,” in K. Parker and G. Rose (Eds.), FORTE '92, Elsevier, pp. 409–424, 1992.

  28. W. van der Aalst and T. Basten, “Life-cycle inheritance—A Petri-net-based approach,” in P. Azema and G. Balbo (Eds.), Application and Theory of Petri Nets, Springer, pp. 62–81, 1997.

  29. J. Waldo, “The Jini architecture for network-centric computing,” Communications of the ACM, Vol. 42, No. 7, pp. 76–82, 1999.

    Google Scholar 

  30. P. Wegner and B. Zdonik, “Inheritance as an incremental modification mechanism or what like is and isn't like,” in ECOOP'88: European Conference on Object-Oriented Programming, Vol. 322 of Lecture Notes in Computer Science, Springer, 1988.

  31. H. Wehrheim, “Behavioural subtyping and property preservation,” in S. Smith and C. Talcott (Eds.), FMOODS'00: Formal Methods for Open Object-Based Distributed Systems, Kluwer, 2000.

  32. H. Wehrheim, “Patterns and rules for behavioural subtyping,” in M. Kim, B. Chin, S. Kang, and D. Lee (Eds.), FORTE 2001, Kluwer, pp. 335–352, 2001.

  33. H. Wehrheim, “Checking behavioural subtypes via refinement,” in A. Rensink and B. Jacobs (Eds.), FMOODS 2002: Formal Methods for Open Object-Based Distributed Systems, Kluwer, pp. 79–93, 2002.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wehrheim, H. Behavioral Subtyping Relations for Active Objects. Formal Methods in System Design 23, 143–170 (2003). https://doi.org/10.1023/A:1024764232069

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1024764232069

Navigation