Structured design with mathematical proofs

Abstract Structured design has been widely used for software design. However, traditional structured design methods lack formality to reason design correctness. Formal methods provide a means of developing a system in a mathematical way. The formal notations can be used to reason the system. Inconsistency and ambiguity can be detected in the system. In addition, the system may be processed by a computer for automation. A formal structured design method with mathematical proofs is described in this paper and its use in generating a provable design is shown with an example. The building blocks are introduced for incorporating the correctness proofs with software design. The method differs from traditional software design methods since correctness verification is woven into each refinement step as the design is constructed. The method not only improves the quality of design, but also provides a means for the verification of design correctness.

[1]  Zohar Manna,et al.  Inductive methods for proving properties of programs , 1973, Commun. ACM.

[2]  Douglas T. Ross,et al.  Structured Analysis for Requirements Definition , 1977, IEEE Transactions on Software Engineering.

[3]  Michael Dyer Designing software for provable correctness , 1988 .

[4]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[5]  James H. Fetzer Program verification: the very idea , 1988, CACM.

[6]  Bev Littlewood,et al.  Guest Editors' Introduction: Critical Task of Writing Dependable Software , 1994, IEEE Softw..

[7]  Robert B. France,et al.  Integrated Structured Analysis and Formal Specification Techniques , 1992, Comput. J..

[8]  Richard J. Lipton,et al.  Social processes and proofs of theorems and programs , 1977, POPL.

[9]  S.-C. Chyou Structure charts and program correctness proofs , 1984, ICSE '84.

[10]  Dan Craigen,et al.  Experience with formal methods in critical systems , 1994, IEEE Software.

[11]  Jonathan P. Bowen,et al.  Safety-critical systems, formal methods and standards , 1993, Softw. Eng. J..

[12]  Zohar Manna,et al.  Logical analysis of programs , 1976, CACM.

[13]  Douglas T. Ross,et al.  Structured Analysis (SA): A Language for Communicating Ideas , 1977, IEEE Transactions on Software Engineering.

[14]  Michael Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[15]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[16]  John R. Cameron JSP and JSD - the Jackson approach to software development (2. ed.) , 1989 .

[17]  Harlan D. Mills,et al.  Trace: Tennessee Research and CreativeExchange , 2022 .