Skip to main content

Object-Oriented Specification and Open Distributed Systems

  • Chapter
From Object-Orientation to Formal Methods

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2635))

Abstract

An object-oriented approach to program specification and verification was developed by Ole-Johan Dahl with the long-term Abel project. Essential here was the idea of reasoning about an object in terms of its observable behavior, where the specification of an object’s present behavior is given by means of its past interactions with the environment. In this paper, we review some of the ideas behind this approach and show how they can be fruitfully extended for reasoning about black-box components in open object-oriented distributed systems.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Lamport, L.: Conjoining specifications. ACM Transactions on Programming Languages and Systems 17(3), 507–534 (1995)

    Article  Google Scholar 

  2. Agha, G.A., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. Journal of Functional Programming 7(1), 1–72 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  3. Alpern, B., Schneider, F.B.: Defining liveness. Information Processing Letters 21(4), 181–185 (1985)

    Article  MATH  MathSciNet  Google Scholar 

  4. Apt, K.R., Olderog, E.-R.: Verification of Sequential and Concurrent Systems. Texts and Monographs in Computer Science. Springer, Berlin (1991)

    Google Scholar 

  5. Blair, L., Blair, G.: Composition in multi-paradigm specification techniques. In: Ciancarini, R., Fantechi, A., Gorrieri, R. (eds.) Proc. 3rd International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS 1999), pp. 401–418. Kluwer Academic Publishers, Dordrecht (1999)

    Google Scholar 

  6. Boiten, E., Derrick, J., Bowman, H., Steen, M.: Constructive consistency checking for partial specification in Z. Science of Computer Programming 35(1), 29–75 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  7. Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1999)

    Google Scholar 

  8. Broy, M., Stølen, K.: Specification and Development of Interactive Systems. Monographs in Computer Science. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  9. Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Quesada, J.F.: Maude: Specification and programming in rewriting logic. Theoretical Computer Science 285, 187–243 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  10. Dahl, O.-J.: Can program proving be made practical? In: Amirchahy, M., Néel, D. (eds.) Les Fondements de la Programmation. Institut de Recherche d’Informatique et d’Automatique, Toulouse, France, pp. 57–114 (December 1977)

    Google Scholar 

  11. Dahl, O.-J.: Object-oriented specification. In: Shriver, B., Wegner, P. (eds.) Research Directions in Object-Oriented Programming. Series in Computer Systems, pp. 561–576. The MIT Press, Cambridge (1987)

    Google Scholar 

  12. Dahl, O.-J.: Verifiable Programming. International Series in Computer Science. Prentice Hall, New York (1992)

    MATH  Google Scholar 

  13. Dahl, O.-J.: The roots of object orientation: the Simula language. In: Broy, M., Denert, E. (eds.) Software Pioneers: Contributions to Software Engineering. Springer, Heidelberg (2002)

    Google Scholar 

  14. Dahl, O.-J., Nygaard, K.: SIMULA, an ALGOL-based simulation language. Communications of the ACM 9(9), 671–678 (1966)

    Article  MATH  Google Scholar 

  15. Dahl, O.-J., Myhrhaug, B., Nygaard, K.: (Simula 67) Common Base Language. Technical Report S-2, Norsk Regnesentral (Norwegian Computing Center), Oslo, Norway (May 1968)

    Google Scholar 

  16. Dahl, O.-J., Owe, O.: Formal development with ABEL. In: Prehn, S., Toetenel, H. (eds.) VDM 1991. LNCS, vol. 552, pp. 320–362. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  17. Dahl, O.-J., Owe, O.: Formal methods and the RM-ODP. Research Report 261, Department of informatics, University of Oslo, Norway (May 1998)

    Google Scholar 

  18. de Roever, W.-P., Engelhardt, K.: Data Refinement: Model-Oriented Proof Methods and their Comparison. Cambridge Tracts in Theoretical Computer Science, vol. 47. Cambridge University Press, New York (1998)

    Book  MATH  Google Scholar 

  19. Derrick, J., Bowman, H., Steen, M.: Viewpoints and objects. In: Bowen, J.P., Hinchey, M.G. (eds.) ZUM 1995. LNCS, vol. 967, pp. 449–468. Springer, Heidelberg (1995)

    Google Scholar 

  20. Fischer, C.: CSP-OZ: a combination of Object-Z and CSP. In: Bowman, H., Derrick, J. (eds.) Proc. 2nd IFIP Workshop on Formal Methods for Open Object- Based Distributed Systems (FMOODS), pp. 423–438. Chapman and Hall, London (1997)

    Google Scholar 

  21. Ghezzi, C., Jazayeri, M.: Programming Language Concepts, 3rd edn. John Wiley & Sons, Chichester (1998)

    Google Scholar 

  22. Goguen, J., Tardo, J.: An introduction to OBJ: A language for writing and testing formal algebraic program specifications. In: Gehani, N., McGettrick, A. (eds.) Software Specification Techniques. Addison-Wesley, Reading (1986)

    Google Scholar 

  23. Guttag, J.V., Horning, J.J., Garland, S.J., Jones, K.D., Modet, A., Wing, J.M.: Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science. Springer, Heidelberg (1993)

    MATH  Google Scholar 

  24. Hoare, C.A.R.: An Axiomatic Basis of Computer Programming. Communications of the ACM 12, 576–580 (1969)

    Article  MATH  Google Scholar 

  25. Hoare, C.A.R.: Communicating Sequential Processes. International Series in Computer Science. Prentice Hall, Englewood Cliffs (1985)

    MATH  Google Scholar 

  26. International Telecommunication Union. Open Distributed Processing — Reference Model parts 1–4. Technical report, ISO/IEC, Geneva (July 1995)

    Google Scholar 

  27. Jacobs, B.: Inheritance and cofree constructions. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, pp. 210–231. Springer, Heidelberg (1996)

    Google Scholar 

  28. Johnsen, E.B., Owe, O.: Composition and refinement for partial object specifications. In: Proc. 16th International Parallel & Distributed Processing Symposium (IPDPS 2002), Workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA 2002). IEEE Computer Society Press, Los Alamitos (2002)

    Google Scholar 

  29. Johnsen, E.B., Owe, O.: A compositional formalism for object viewpoints. In: Jacobs, B., Rensink, A. (eds.) Proc. 5th International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS 2002), pp. 45–60. Kluwer Academic Publishers, Dordrecht (2002)

    Google Scholar 

  30. Johnsen, E.B., Owe, O., Munthe-Kaas, E., Vain, J.: Incremental fault-tolerant design in an object-oriented setting. In: Proc. Asian Pacific Conference on Quality Software (APAQS 2001), pp. 223–230. IEEE Computer Society Press, Los Alamitos (2001)

    Chapter  Google Scholar 

  31. Johnsen, E.B., Zhang, W., Owe, O., Aredo, D.B.: Combining graphical and formal development of open distributed systems. In: Butler, M., Petre, L., Sere, K. (eds.) IFM 2002. LNCS, vol. 2335, pp. 319–338. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  32. Jones, C.B.: Development Methods for Computer Programmes Including a Notion of Interference. PhD thesis, Oxford University, UK (June l981)

    Google Scholar 

  33. Kahn, G.: The semantics of a simple language for parallel programming. In: Rosenfeld, J.L. (ed.) Information Processing 1974: Proc. IFIP Congress 1974, pp. 471–475. IFIP, North-Holland Publishing Co., Amsterdam (1974)

    Google Scholar 

  34. Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  35. Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16(6), 1811–1841 (1994)

    Article  Google Scholar 

  36. Malabarba, S., Pandey, R., Gragg, J., Barr, E., Barnes, J.F.: Runtime support for type-safe dynamic Java classes. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 337–361. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  37. Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. In: Agha, G., Wegner, P., Yonezawa, A. (eds.) Research Directions in Concurrent Object-Oriented Programming, pp. 107–150. The MIT Press, Cambridge (1993)

    Google Scholar 

  38. Milner, R.: Communicating and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge (1999)

    Google Scholar 

  39. Misra, J., Chandy, K.M.: Proofs of networks of processes. IEEE Transactions on Software Engineering 7(4), 417–426 (1981)

    Article  MathSciNet  Google Scholar 

  40. Nierstrasz, O.: A survey of object-oriented concepts. In: Kim, W., Lochovsky, F. (eds.) Object-Oriented Concepts, Databases and Applications, pp. 3–21. ACM Press and Addison-Wesley (1989)

    Google Scholar 

  41. Nygaard, K., Dahl, O.-J.: Simula 67. In: Wexelblat, R.W. (ed.) History of Programming Languages. ACM Press, New York (1981)

    Google Scholar 

  42. Owe, O.: Partial logics reconsidered: A conservative approach. Formal Aspects of Computing 5, 208–223 (1993)

    Article  MATH  Google Scholar 

  43. Owe, O., Ryl, I.: A notation for combining formal reasoning, object orientation and openness. Research Report 278, Department of informatics, University of Oslo, Norway (November 1999)

    Google Scholar 

  44. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  45. Parnas, D.L., Wang, Y.: The trace assertion method of module interface specification. Technical Report 89-261, Department of Computing and Information Science, Queen’s University at Kingston, Kingston, Ontario, Canada (October 1989)

    Google Scholar 

  46. Smith, G.: The Object-Z Specification Language. Advances in Formal Methods. Kluwer Academic Publishers, Dordrecht (2000)

    MATH  Google Scholar 

  47. Smith, S.F., Talcott, C.: Modular reasoning for actor specification diagrams. In: Ciancarini, R., Fantechi, A., Gorrieri, R. (eds.) Proc. 3rd International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS 1999), pp. 401–418. Kluwer Academic Publishers, Dordrecht (1999)

    Google Scholar 

  48. Soundarajan, N., Fridella, S.: Inheritance: From code reuse to reasoning reuse. In: Devanbu, P., Poulin, J. (eds.) Proc. Fifth International Conference on Software Reuse (ICSR5), pp. 206–215. IEEE Computer Society Press, Los Alamitos (1998)

    Chapter  Google Scholar 

  49. Walker, D.: Objects in the π-calculus. Information and Computation 116(2), 253–271 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  50. Wang, A.: Generalized types in high-level programming languages. Research Report in Informatics 1, Institute of Mathematics, University of Oslo, Cand. Real thesis (January 1974)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Johnsen, E.B., Owe, O. (2004). Object-Oriented Specification and Open Distributed Systems. In: Owe, O., Krogdahl, S., Lyche, T. (eds) From Object-Orientation to Formal Methods. Lecture Notes in Computer Science, vol 2635. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39993-3_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-39993-3_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21366-6

  • Online ISBN: 978-3-540-39993-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics