1. A method in a data processing system for defining a controller layer of an application using a model-view-controller architecture, comprising: providing the model-view-controller architecture with a model layer, a view layer and a controller layer; separating the controller layer of the model-view-controller architecture into a plurality of controller overlays, wherein the plurality of controller overlays comprise a macro overlay for transitioning the application between states, views, pages, and dialogues of the application, a micro overlay for providing flow control to a specific modality of the application, and a global overlay for preempting application flow to perform at least one action selected from the group consisting of executing a global help, stopping the application, resuming the application, or restarting the application; implementing at least one object of the view layer into an object of the micro overlay or into an object of the global overlay; generating a macro controller, wherein the macro controller is generated by a macro controller overlay engine editor, and wherein the macro controller interfaces between an object of the model layer and an object of the view layer; generating a micro controller for the object of the view layer, wherein the micro controller is generated by a micro controller overlay engine editor, and wherein the micro controller is linked to the object of the view layer; generating a global controller, wherein the global controller is generated by a global controller overlay engine editor, and wherein the global controller is linked to the micro controller generated by the micro controller overlay engine editor; and combining the controllers in each of the plurality of controller overlays into a complete controller specification for model-view-controller architecture of the application.