Issue No.07 - July (1987 vol.13)
J.D. Gannon , Department of Computer Science and the Institute for Advanced Computer Studies, University of Maryland
Because large-scale software development is a struggle against internal program complexity, the modules into which programs are divided play a central role in software engineering. A module encapsulating a data type allows the programmer to ignore both the details of its operations, and of its value representations. It is a primary strength of program proving that as modules divide a program, making it easier to understand, so do they divide its proof. Each module can be verified in isolation, then its internal details ignored in a proof of its use. This paper describes proofs of module abstractions based on functional semantics, and contrasts this with the Alphard formalism based on Hoare logic.
program verification, Abstract data types, functional semantics, modules, programming methodology, program specifications
J.D. Gannon, R.G. Hamlet, H.D. Mills, "Theory of Modules", IEEE Transactions on Software Engineering, vol.13, no. 7, pp. 820-829, July 1987, doi:10.1109/TSE.1987.233493