1. A method of developing an application, the method comprising: identifying pattern types corresponding to requirements for an application to be developed, wherein the pattern types are identified from one or more of process patterns, user interface patterns, and generic object patterns; selecting patterns that best match the requirements from a set of available patterns; and configuring the selected patterns according to the requirements to produce an application.