A Specification Language for Object-Oriented Analysis and Design

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.

[1]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

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

[3]  P. H. Lindsay Human Information Processing , 1977 .

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  Ruth Breu,et al.  Algebraic Specification Techniques in Object Oriented Programming Environments , 1991, Lecture Notes in Computer Science.

[6]  Derek Coleman,et al.  Coherent models for object-oriented analysis , 1991, OOPSLA 1991.

[7]  Peter B. Henderson,et al.  A Formal Description of Object-Oriented Programming Using VDM , 1987, VDM Europe.

[8]  David Lorge Parnas,et al.  Information Distribution Aspects of Design Methodology , 1971, IFIP Congress.

[9]  Gary T. Leavens,et al.  Reasoning about object-oriented programs that use subtypes , 1990, OOPSLA/ECOOP '90.

[10]  Edward Yourdon,et al.  Object-oriented design , 1991, Yourdon Press Computing Series.

[11]  Stephen J. Mellor,et al.  Object Oriented Systems Analysis: Modeling the World in Data , 1988 .

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

[13]  Derek Coleman,et al.  Graphical specification of object oriented systems , 1990, OOPSLA/ECOOP '90.

[14]  José Meseguer,et al.  A logical theory of concurrent objects , 1990, OOPSLA/ECOOP '90.

[15]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[16]  Derek Coleman,et al.  Introducing Objectcharts or how to use Statecharts in object-oriented design , 1992 .

[17]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[18]  Jeannette M. Wing Using Larch to Specify Avalon/C++ Objects , 1990, IEEE Trans. Software Eng..

[19]  Edward Yourdon,et al.  Object-oriented analysis (2nd ed.) , 1991 .

[20]  Amir Pnueli,et al.  On the Formal Semantics of Statecharts (Extended Abstract) , 1987, LICS.

[21]  Thomas Mayr,et al.  Specification of Object-Oriented Systems in LOTOS , 1988, Formal Techniques for (Networked and) Distributed Systems.