1. A method comprising: capturing one or more process flow definitions that define, at least in part, a software application; capturing one or more user interface definitions that define, at least in part, an interface to the software application; capturing one or more data definitions that define, at least in part, data used within the software application; capturing one or more rules for validating at least part of the software application; and capturing 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.