4. The method of claim 3 wherein providing the programmer interface includes providing customization mechanisms that allow the programmer to determine: (a) logical components and application methods of each application object are mapped to, (b) the set of user interface elements to which each mapped component and method is mapped, (c) the 2-d layout used to compose children user interface elements in containers, (d) a linear order in which speech choices are prompted in the system-initiative dialogues, (e) labels displayed in the user interface widgets and prompts used in speech dialogues, (f) whether an application method is undoable, and (g) how application methods are mapped to hierarchies of control widgets, including nested pull-down menus.
4. The method of claim 3 wherein providing the programmer interface includes providing customization mechanisms that allow the programmer to determine: (a) logical components and application methods of each application object are mapped to, (b) the set of user interface elements to which each mapped component and method is mapped, (c) the 2-d layout used to compose children user interface elements in containers, (d) a linear order in which speech choices are prompted in the system-initiative dialogues, (e) labels displayed in the user interface widgets and prompts used in speech dialogues, (f) whether an application method is undoable, and (g) how application methods are mapped to hierarchies of control widgets, including nested pull-down menus. 5. The method of claim 4 wherein providing customization mechanisms includes providing pattern customization mechanisms that allow programmers to specify how relationships among the method signatures should be used to identify (a) a precondition method, a validation method, and a pattern-based executed-command object, and (b) read, write, add and remove methods of a logical component.