1. A method of constructing a software application comprising: reading one or more specifications that define, at least in part, a software application; generating a data storage structure for storing data of the software application; generating at least one unit of code based, at least in part, upon one or more design elements within the one or more specifications; and constructing a first application from the at least one unit of code and data storage structure.