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.