Formal methods in software development: A road less travelled

John A van der Poll

Abstract


An integration of traditional verification techniques and formal specifications in software engineering is presented. Advocates of such techniques claim that mathematical formalisms allow them to produce quality, verifiably correct, or at least highly dependable software and that the testing and maintenance phases are shortened. Critics on the other hand maintain that software formalisms are hard to master, tedious to use and not well suited for the fast turnaround times demanded by industry. In this paper some popular formalisms and the advantages of using these during the early phases of the software development life cycle are presented. Employing the Floyd-Hoare verification principles during the formal specification phase facilitates reasoning about the properties of a specification. Some observations that may help to alleviate the formal-methods controversy are established and a number of formal methods successes is presented. Possible conditions for an increased acceptance of formalisms in oftware development are discussed.

Keywords


Automated reasoning; formal specification; heuristics; OTTER; Prover9; resolution; set theory; Vampire; verification; Z

Full Text:

PDF


DOI: http://dx.doi.org/10.18489/sacj.v45i0.33

Copyright (c)