1. A method, comprising: capturing in computer memory one or more process flow definitions that define, at least in part, a software application; capturing in the computer memory one or more user interface definitions that define, at least in part, an interface to the software application; capturing in the computer memory one or more data definitions that define, at least in part, data used within the software application; capturing in the computer memory one or more rules for validating at least part of the software application, wherein the one or more rules are selected from the group consisting of a rule for controlling the operation of the design definition, a rule for determining the completeness of the design definition, and a rule for determining the consistency of the design definition; capturing in the computer memory a design definition as a specification wherein the design definition includes: the one or more process flow definitions; the one or more user interface definitions; the one or more data definitions; and the one or more rules; validating automatically that the specification is a complete specification using the captured design definition; and validating automatically that the specification is a consistent specification using the captured design definition.