Abstract

Much has been claimed about the benefits of using formal methods to obtain reliable software. However, software quality is not only concerned with writing software which is correct, but with writing software which is demonstrably correct. This paper shows how formal methods can be used as a tool for developing software and for providing clear step-by-step documentation of the development processes. The role of formal specification in requirements capture is discussed, with emphasis on the use of a formal notation as a tool for thinking about, communicating and recording specifications as they evolve from a nebulous initial concept to a specification which may be developed into code. Consideration is given to techniques for validating a specification; for demonstrating that relevant properties of the system are captured in the specification. The benefits of applying formal development techniques is examined. Proof obligations are introduced as a way of documenting design decisions and providing a clear record of the development process. A small example of a Pascal procedure developed using the Vienna Development Method (VDM) is used to illustrate the techniques described above. Relevant tool support is examined. The costs of applying formal techniques are examined, together with an appraisal of the factors which have prevented the widespread industrial use of formal methods to date.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call