Proof-Theoretic Semantics of Object-Oriented Specification Constructs

A formal semantics for the kernel constructs of an object-oriented specification language is presented. The formal counterparts of objects as the basic building blocks of information systems are given by theory presentations in a logic that has been developed to support the required object-oriented specification mechanisms. Attributes (structure) and events (behaviour) are integrated in coherent logical units (focused on a logical rôle for signatures) around which the notion of locality (encapsulation) is formalised. Objects can be specified directly through formulae of the logic, describing the effects of the events on the attributes as well as the restrictions and requirements on their occurrence. Aggregation, inheritance and particularisation are formalised as specification constructs acting on a context (a diagram in the category of theory presentations) where previously built specifications are stored, thus allowing to assemble large specifications from existing ones. The derivation of safety and liveness properties from specifications using the inference rules of the logic, and the use of the structure of specifications to direct these proofs is also illustrated. In this way, we hope to contribute towards the necessary formalisation of object-oriented information systems design.

[1]  Abe Lockman,et al.  Ensuring integrity by adding obligations to privileges , 1985, ICSE '85.

[2]  S. A. Schuman,et al.  Object-oriented subsystem specification , 1987 .

[3]  Cristina Sernadas,et al.  Object-Oriented Specification of Databases: An Algebraic Approach , 1987, VLDB.

[4]  José Luiz Fiadeiro,et al.  Structuring Theories on Consequence , 1988, ADT.

[5]  Herbert B. Enderton,et al.  A mathematical introduction to logic , 1972 .

[6]  Amílcar Sernadas,et al.  Temporal aspects of logical procedure definiton , 1980, Inf. Syst..

[7]  José Luiz Fiadeiro,et al.  Logics of Modal Terms for Systems Specification , 1990, J. Log. Comput..

[8]  Joseph A. Goguen,et al.  Introducing Institutions , 1983, Logic of Programs.

[9]  Klaus R. Dittrich,et al.  Advances in Object-Oriented Database Systems , 1988, Lecture Notes in Computer Science.

[10]  L. Thorne McCarty,et al.  Permissions and Obligations , 1983, IJCAI.

[11]  Hans Weigand,et al.  Specifying Dynamic and Deontic Integrity Constraints , 1989, Data Knowl. Eng..

[12]  Samuel N. Kamin Inheritance in smalltalk-80: a denotational definition , 1988, POPL '88.

[13]  Won Kim,et al.  Object-Oriented Concepts, Databases, and Applications , 1989 .

[14]  Grzegorz Rozenberg,et al.  Stepwise Refinement of Distributed Systems Models, Formalisms, Correctness , 1989, Lecture Notes in Computer Science.

[15]  Colin Atkinson,et al.  Object oriented concurrency and distribution in dragoon , 1991 .

[16]  David Harel,et al.  First-Order Dynamic Logic , 1979, Lecture Notes in Computer Science.

[17]  José Luiz Fiadeiro,et al.  Modular construction of logic knowledge bases: an algebraic approach , 1990, Inf. Syst..

[18]  José Luiz Fiadeiro,et al.  The INFOLOG linear tense propositional logic of events and transactions , 1986, Inf. Syst..

[19]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[20]  Phillip M. Yelland First Steps Towards Fully Abstract Semantics for Object-Oriented Languages , 1989, Comput. J..

[21]  Roelf J. Wieringa,et al.  Algebraic Foundations for Dynamic Conceptual Models , 1990 .

[22]  José Luiz Fiadeiro,et al.  Abstract Object Types: A Temporal Perspective , 1987, Temporal Logic in Specification.

[23]  Rod M. Burstall,et al.  Structured Theories in LCF , 1983, CAAP.

[24]  José Meseguer,et al.  Extensions and foundations of object-oriented programming , 1986, OOPWORK '86.

[25]  Setrag Khoshafian,et al.  Object identity , 1986, OOPLSA '86.

[26]  David J. DeWitt,et al.  The Object-Oriented Database System Manifesto , 1994, Building an Object-Oriented Database System, The Story of O2.

[27]  Robert Meersman,et al.  Proof-theoretic Conceptual Modeling: the NIAM Case Study , 1989, ISCO.

[28]  Cristina Sernadas,et al.  From Data Types to Object Types , 1990, J. Inf. Process. Cybern..

[29]  Cristina Sernadas,et al.  Abstract Object Types for Databases , 1988, OODBS.

[30]  José Luiz Fiadeiro,et al.  Object-Oriented Conceptual Modeling from Law , 1988, DS-3.

[31]  Kim B. Bruce,et al.  An algebraic model of sybtypes in object-oriented languages (draft) , 1986, OOPWORK '86.

[32]  Jack Minker,et al.  Logic and Databases: A Deductive Approach , 1984, CSUR.

[33]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1: Equations and Initial Semantics , 1985 .

[34]  M. M. Lehman,et al.  Another look at software design methodology , 1984, SOEN.

[35]  José Luiz Fiadeiro,et al.  Temporal reasoning over deontic specifications , 1991, J. Log. Comput..

[36]  T. S. E. Maibaum,et al.  The Prescription and Description of State Based Systems , 1987, Temporal Logic in Specification.

[37]  Amílcar Sernadas,et al.  Algebraic Implementation of Objects over Objects , 1989, REX Workshop.

[38]  José Luiz Fiadeiro,et al.  The Basic Building Blocks of Information Systems , 1989, ISCO.

[39]  Joseph A. Goguen,et al.  A categorical manifesto , 1989, Mathematical Structures in Computer Science.

[40]  Hans-Jörg Kreowski,et al.  Recent Trends in Data Type Specification , 1985, Informatik-Fachberichte.

[41]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[42]  Joseph A. Goguen,et al.  The Semantics of CLEAR, A Specification Language , 1979, Abstract Software Specifications.

[43]  T. S. E. Maibaum,et al.  Database Specification , 1985, DS-1.

[44]  Zohar Manna,et al.  Verification of concurrent programs, Part I: The temporal framework , 1981 .

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