An axiomatic basis for computer programming
Communications of the ACM
The design of data type specifications
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Some extensions to algebraic specifications
Proceedings of an ACM conference on Language design for reliable software
Principles of Program Design
Higher Order Software A Methodology for Defining Software
IEEE Transactions on Software Engineering
Structured Analysis (SA): A Language for Communicating Ideas
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
The Logic of Computer Programming
IEEE Transactions on Software Engineering
Specification techniques for data abstractions
IEEE Transactions on Software Engineering
The functional life cycle model and its automation: USE.IT
Journal of Systems and Software
Hi-index | 0.00 |
The assumption is made here that a design process, in order to be effective, must include techniques that facilitate the effectiveness of the verification of the target design resulting from that process. The assumption is also made that these techniques can and should be universal in nature. That is, any system designer should be able to use these techniques to benefit his or her own design process and to check for the proper use of these techniques, both statically and automatically, with the aid of a common set of tools. Once a set of universal techniques has been verified, there is no longer a need to verify such techniques each time a new system is designed. It follows, then, that there is no longer a need to verify or prevent those categories of problems that are known to exist no longer, given the correct use of those system design techniques that eliminates that class of problems. Verification of a system design includes the identification of redundancies, logical incompleteness, and inconsistencies of a system definition, description, implementation, and execution. If a system design process inherently produces a design that no longer requires certain types of ''after the fact'' verification, many aspects previously associated with the verification process can be eliminated. We discuss our recent experiences in defining systems where we have attempted to show the relationship between design and verification. An example specification is used to demonstrate the properties of a system definition whose design supports elimination of unnecessary verification, maximum use of static verification, and minimum use of dynamic verification.