next up previous
Next: Quality: Making better software Up: What is Specware For? Previous: Correctness: Making software behave

Productivity: Making software faster and easier to produce

The software designers who adopt Specware must formulate a specification that describes the purpose or intended behavior of the desired software. Furthermore, they may also need to develop refinements and even domain theories, if these are not already in the Specware library. These are time-consuming and intellectually demanding activities. Why should this be faster or easier than constructing software the old-fashioned way?

First of all, because a specification is a direct expression of system requirements that is independent of implementation concerns and is expressed in a very high-level language, it is arguably likely to be more concise and to require less cognitive effort to produce than code in a target language. Although the designer must guide the software refinement process, this only entails making the fundamental design decisions; routine steps of the refinement process are automated. Because code generation is automatic, the refinement process can be carried out by someone who is ignorant of the target programming language.

Just as software reuse can accelerate conventional software production, specification, refinement, and theory reuse can facilitate software production in Specware. And because specifications, refinements, and theories are expressed at the highest level of generality, we are more likely to be able to reuse them than we are actual code.

Finally, Specware is fundamentally a graphical language, which presents the designer with a visual display of the design history. This representation is likely to be more comprehensible than a textual history of the design process, if one survives.



Richard Waldinger
Mon Jul 22 18:33:09 PDT 1996