How to Correctly Refine Business Specifications, and Know It

        Programming has been transformed from a craft to a scientific discipline. Similar transformations of analysis, and of the systematic refinement of analysis deliverables into design and code, remain to be done. This paper precisely defines different stages of the software development lifecycle, and highlights commonalities between them. It suggests how to refine the semantics of a business specification into successively the semantics of a business design, system specification and implementation, in a rigourous and traceable manner. The paper introduces the satisfaction business pattern, and shows, in particular, how it can be used to specify the business of software development. The initial motivation for our work was to allow the production of complete, rigorous business specifications understandable by both business users and system developers. These specifications require rigorous expressions of semantics - that is, assertions - rather than loose, intuitive, descriptions. After that it needs to be refined into code through a series of equally rigorous refinements. We show how each of these refinements maps many key semantic concepts at one level into similar concepts at the following level.

By: Haim Kilov and Ian Simmonds

Published in: RC20563 in 1996

This Research Report is not available electronically. Please request a copy from the contact listed below. IBM employees should contact ITIRC for a copy.

Questions about this service can be mailed to reports@us.ibm.com .