1. A computer implemented method in a data processing system for automatically creating a desired software application design, the computer implemented method comprising computer implemented steps of: responsive to an input to create a desired software application design, retrieving functional requirements for the desired software application design from a requirement module; retrieving non-functional requirements associated with each retrieved functional requirement from the requirement module; retrieving software models associated with the retrieved functional requirements from an industry model repository; retrieving software patterns associated with the retrieved non-functional requirements from a pattern asset adviser; transforming the retrieved software models into software code for the desired software application design; applying the retrieved software patterns to associated code sequences in the software code to automatically create an architecture for the desired software application design; and outputting the architecture for the desired software application design for use by a user.