OOD is another increasingly well-known technology that is based on formal methods. Abstract Data Types provide a powerful basis for many classes in Object Oriented systems. Furthermore, at least one pure object oriented language, Eiffel, has assertions, preconditions, postconditions, and loop invariants built into the language to a certain extent. Thus, formal methods can be usefully combined with object oriented techniques. The connection between formal methods and structured programming is very close.
Structured programming is a set of heuristics for producing high quality code.
Only a limited set of constructs should be used. Programs should be developed in a top-down fashion. The historical source for these heuristics lies in formal methods. Programs developed with these precepts will be capable of being rigorously proven correct. Consequently, they will also be capable of being understood intuitively and nonrigorously.