Improving the Engineering of Software
 

    This is an essay arguing for stronger formal methods which capture deeper properties of software behavior.  Building on the previous essay, Software Axioms, additional examples of program semantics are described, and how they affect the correctness of individual modules as well as entire systems.  The concept of Non-Local Assumptions is introduced as the main issue affecting software reliability today.

    Improving the Engineering of Software [PDF]