© 2000

Software Engineering with OBJ

Algebraic Specification in Action

  • Joseph Goguen
  • Grant Malcolm

Part of the Advances in Formal Methods book series (ADFM, volume 2)

Table of contents

  1. Front Matter
    Pages i-xxvi
  2. An Introduction to OBJ

    1. Front Matter
      Pages 1-1
    2. Joseph A. Goguen, Timothy Winkler, José Meseguer, Kokichi Futatsugi, Jean-Pierre Jouannaud
      Pages 3-167
  3. OBJ Specifications

    1. Front Matter
      Pages 169-169
    2. Ataru T. Nakagawa, Kokichi Futatsugi
      Pages 193-247
  4. Semantics in OBJ

    1. Front Matter
      Pages 281-281
    2. Claude Kirchner, Hélène Kirchner, Aristide Mégrelis
      Pages 307-330
    3. E. Battiston, F. De Cindio, G. Mauri
      Pages 331-360
  5. Parameterized Programming

    1. Front Matter
      Pages 361-361
    2. Kazuhito Ohmaki, Koichi Takahashi, Kokichi Futatsugi
      Pages 363-395
    3. Joseph A. Goguen, Grant Malcolm
      Pages 397-408
  6. Back Matter
    Pages 409-410

About this book


Software Engineering with OBJ: Algebraic Specification in Action is a comprehensive introduction to OBJ, the most widely used algebraic specification system. As a formal specification language, OBJ makes specifications and designs more precise and easier to read, as well as making maintenance easier and more accurate. OBJ differs from most other specification languages not just in having a formal semantics, but in being executable, either through symbolic execution with term rewriting, or more generally through theorem proving. One problem with specifications is that they are often wrong. OBJ can help validate specifications by executing test cases, and by proving properties.
As well as providing a detailed introduction to the language and the OBJ system that implements it, Software Engineering with OBJ: Algebraic Specification in Action provides case studies by leading practitioners in the field, in areas such as computer graphics standards, hardware design, and parallel computation. The case studies demonstrate that OBJ can be used in a wide variety of ways to achieve a wide variety of practical aims in the system development process. The papers on various OBJ systems also demonstrate that the language is relatively easy to understand, implement, and use, and that it supports formal reasoning in a straightforward but powerful way.
Software Engineering with OBJ: Algebraic Specification in Action will be of interest to students and teachers in the areas of data types, programming languages, semantics, theorem proving, and algebra, as well as to researchers and practitioners in software engineering.


Hardware algebra computer computer graphics design formal specification language programming programming language semantics software software engineering standards system development term rewriting

Editors and affiliations

  • Joseph Goguen
    • 1
  • Grant Malcolm
    • 2
  1. 1.University of California at San DiegoUSA
  2. 2.University of LiverpoolUK

Bibliographic information

Industry Sectors
Chemical Manufacturing
IT & Software
Consumer Packaged Goods
Materials & Steel
Finance, Business & Banking
Energy, Utilities & Environment
Oil, Gas & Geosciences