A specification language for object-oriented analysis and design

  • Ted L. Briggs
  • John Werth
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 821)


This paper introduces and illustrates the use of ObjLog, an algebraic specification language for Object-Oriented Analysis and Design. ObjLog is fully abstract, i.e., it specifies the message-passing and instantiation of objects without explicit use of state. Object behavior is abstractly defined by traces composed of message send and response events, including instantiation requests. ObjLog extends equational algebraic specification techniques to specify these traces and to reason about state dependent transitions in objects. Unlike most existing specification languages, ObjLog is sufficiently expressive to specify the full range of value-based message-passing and instantiation behavior exhibited by sequential object-oriented programming languages. In this paper, ObjLog is used to specify a simple example which is difficult to fully specify using other specification languages. The resulting ObjLog specification is then refined in three different ways: subtyping by extension, specialization, and aggregation.


Specification Language Object-Oriented Specification Object-Oriented Analysis Object-Oriented Design Message-Passing Object Types 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    P. America and F. de Boer, “A sound and complete proof system for SPOOL,” Technical Report 505, Philips Research Laboratories, May 1990.Google Scholar
  2. [2]
    S. Bear, P. Allen, D. Coleman, and F. Hayes, “Graphical Specification of Object-Oriented Systems,” OOPSLA/ECOOP '90 Conference Proceedings, Phoenix, Arizona, 1990, pp. 28–37.Google Scholar
  3. [3]
    G. Booch, Object-Oriented Design with Applications, Benjamin/Cummings Series in Ada and Software Engineering, Benjamin/Cummings Publishing, 1991.Google Scholar
  4. [4]
    R. Breu, Algebraic Specification Techniques in Object-Oriented Programming Environments, LNCS 562, Springer Verlag, 1991.Google Scholar
  5. [5]
    T. L. Briggs and J. Werth, A Trace Model for Objects, University of Texas, (Technical Report in preparation).Google Scholar
  6. [6]
    P. Coad and E. Yourdon, Object-Oriented Analysis (2nd Edition), Yourdon Press, Englewood Cliffs, NJ, 1991.Google Scholar
  7. [7]
    P. Coad and E. Yourdon, Object-Oriented Design, Yourdon Press, Englewood Cliffs, NJ.Google Scholar
  8. [8]
    D. Coleman, F. Hayes, and S. Bear, “Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design,” IEEE Transactions on Software Engineering, 18(1), Jan. 1992, pp. 9–18.CrossRefGoogle Scholar
  9. [9]
    J. Goguen and J. Meseguer, “Unifying Functional, Object-Oriented and Relational Semantics with Logical Semantics,” in Research Directions in Object-Oriented Programming, B. Shriver and P. Wegner (editors), MIT Press, 1987, pp. 417–477, (also as CSLI-87-7 July 1987).Google Scholar
  10. [10]
    J. A. Goguen and T. Winkler, “Introducing OBJ3,” Technical Report SRI-CSL-88-9, Computer Science Laboratory, SRI International, Aug. 1988.Google Scholar
  11. [11]
    D. Harel, “Statecharts: A visual formalism for complex systems,” Science of Computer Programming, 8, 1987, pp. 231–274.MATHMathSciNetCrossRefGoogle Scholar
  12. [12]
    D. Harel, A. Pnueli, J. Pruzan-Schmidt, and R. Sherman, “On the formal semantics of Statecharts,” Proceedings, Logic in Computer Science '87, 1987, pp. 54–64.Google Scholar
  13. [13]
    F. Hayes and D. Coleman, “Coherent Models for Object-Oriented Analysis,” OOPSLA '91 Conference Proceedings, 1991, pp. 171–183.Google Scholar
  14. [14]
    R. Helm, I. M. Holland, and D. Gangopadhyay, “Contracts: Specifying Behavioral Compositions in Object-Oriented Systems,” OOPSLA/ECOOP '90 Conference Proceedings, Phoenix, Arizona, 1990, pp. 169–180.Google Scholar
  15. [15]
    G. T. Leavens and W. E. Weihl, “Reasoning about Object-Oriented Programs that use Subtypes,” OOPSLA/ECOOP '90 Conference Proceedings, Phoenix, Arizona, Oct. 1990, pp. 212–223.Google Scholar
  16. [16]
    T. Mayr, “Specification of Object-Oriented Systems in LOTOS,” in Formal Description Techniques, K. J. Turner (editor), North-Holland, 1989, pp. 107–119.Google Scholar
  17. [17]
    R. J. McKenzie, An Algebraic Model of Class, Inheritance, and Message Passing, PhD Thesis, Univ. of Texas at Austin, 1992.Google Scholar
  18. [18]
    J. Meseguer, “A Logical Theory of Concurrent Objects,” OOPSLA '89 Conference Proceedings, Oct., 1989, pp. 101–115.Google Scholar
  19. [19]
    C. Minkowitz and P. Henderson, “A Formal Description of Object-Oriented Programming Using VDM,” VDM 87, 1987, LNCS 252, Springer Verlag, pp. 237–259.Google Scholar
  20. [20]
    D. L. Parnas, “Information Distribution Aspects of Design Methodology,” in Information Processing 71, C. V. Freiman (editor), North-Holland, 1971, pp. 339–344, (Proceedings of the IFIP Congress 71, Ljubljana Yugoslavia Aug. 23-28, 1971).Google Scholar
  21. [21]
    D. L. Parnas, “On The Criteria To be Used in Decomposing Systems into Modules,” Communications of ACM, 15(12), Dec. 1972, pp. 1053–1058.CrossRefGoogle Scholar
  22. [22]
    J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen, Object-Oriented Modeling and Design, Prentice Hall, 1991.Google Scholar
  23. [23]
    J. Rumbaugh and M. Blaha, “Tutorial Notes: Object-Oriented Modeling and Design,” OOPSLA '91 Conference Proceedings, 1991.Google Scholar
  24. [24]
    S. Shlaer and S. J. Mellor, Object-Oriented Systems Analysis: Modeling the World in Data, Yourdon Press Computing Series, Yourdon Press, Englewood Cliffs, NJ, 1988.Google Scholar
  25. [25]
    J. M. Wing, “Using Larch to Specify Avalon/C++ Objects,” IEEE Transactions on Software Engineering, 16(9), Sept. 1990, pp. 1076–1088.CrossRefGoogle Scholar
  26. [26]
    R. Wirfs-Brock, B. Wilkerson, and L. Wiener, Designing Object-Oriented Software, Prentice Hall, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Ted L. Briggs
    • 1
  • John Werth
    • 2
  1. 1.Intergraph CorporationHuntsville
  2. 2.Department of Computer ScienceUniversity of Texas at AustinAustin

Personalised recommendations