1. A method for automatically generating a user interface for a computer program using programming patterns, the method comprising: analyzing application objects of an application computer program to identify programming patterns, wherein each programming pattern is a relationship among signatures of application methods in one of the application objects, and wherein the signatures of the application methods comprise public interfaces of the application methods; automatically generating a user interface for the computer program, wherein automatically generating a user interface includes providing for at least one of a user and a programmer of the computer program to customize mappings between the application objects and user interface elements, wherein the user interface elements include at least one of user interface widgets and speech grammar rules.