Chapter

A Rigorous Specification Technique for High Quality Software

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

Too many software projects fail. One important reason, though not the only one, is the absence of a good specification. Specifications should be complete, consistent, comprehensible, and correct. Correctness can only be demonstrated if the specification is formal (so that reasoning can be supported); but the associated use of a formal language seriously reduces user comprehension, so there is a conflict between these two properties. We contend that formal methods should be used but that their use should be totally concealed and automated, so that users are unaware of the underlying formality. We have constructed a specification toolset, called CREATIV, which embodies this approach. The use of formal methods mandates a scientific approach. One possible approach is to formalise specification knowledge as an axiomatic system. The CREATIV toolset uses a new model and a new definition of the specification process, together with an axiomatic theory to support specification knowledge. All operations in the system are provable and traceable; we have built the reasoning component of the CREATIV toolset on the basis of this theory. We have used the toolset for specification on a range of projects. More recently, we have used it on a small number of government projects. We report on some of the advantages of its use, and offer some preliminary comments on a comparative specification exercise.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... We are working with others who specialize in formal requirements [18] to address this part of the development process. ...
... Metrics relating to three very different applications are given in Table 1. The applications illustrated are the Perfect Developer compiler/verifier itself, a terminal emulator, and a substantial subsystem of government information system that was originally specified using the CREATIV toolset (Warren & Oldman 2003). In both projects where C++ code was generated, the number of lines of generated C++ is about twice as great as the number of lines of specification and explicit refinement. ...
Article
In recent years, large sectors of the software development industry have moved from the procedural style of software development to an object-oriented style. Safety-critical software developers have largely resisted this trend because of concerns about verifiability of object-oriented systems. This paper outlines the benefits offered by object technology and considers the key features of the object-oriented approach from a user's perspective. We review the main issues affecting safety and propose a paradigm – Verified Design-by-Contract – that uses formal methods to facilitate the safe use of inheritance, polymorphism, dynamic binding and other features of the object-oriented approach. An outline of Perfect Developer – a tool supporting the Verified Design-by-Contract paradigm – is included.
... The underlying approach is model-based and axiomatic [2]. A proof in an axiomatic theory is a finite sequence of statements in the theory in which each statement either is an axiom or derives from an earlier statement by applying a rule of reasoning. ...
Conference Paper
Full-text available
We present a new model-based approach that we are using to build commercial web- based applications. The user requirements together with a data model are formally specified in a graphical notation using the CREATIV toolset. The specification may be checked by animation before being automatically translated to Perfect notation. The Perfect Developer toolset uses automated reasoning to generate formal proofs of correctness. It then generates C++ or Java code which, in conjunction with an application framework also written in Perfect, forms the complete application including the HTML user interface. The whole process provides a rapid turnaround from new requirements to a formally-verified application.
Article
In recent years, large sectors of the software development industry have moved from the procedural style of software development to an object-oriented style. Safety-critical software developers have largely resisted this trend because of concerns about verifiability of object-oriented systems. This paper outlines the benefits offered by object technology and considers the key features of the object-oriented approach from a user's perspective. We review the main issues affecting safety and propose a paradigm – Verified Design-by-Contract – that uses formal methods to facilitate the safe use of inheritance, polymorphism, dynamic binding and other features of the object-oriented approach. An outline of Perfect Developer – a tool supporting the Verified Design-by-Contract paradigm – is included.