1.  Field of the Invention
The present invention relates generally to an improved data processing system, and in particular to a computer implemented method, computer usable program product, and apparatus.  Still more particularly, the present invention relates to a computer implemented method, apparatus, and computer usable program product for a machine driven process for user interface driven data modeling collaboration. 
2.  Description of the Related Art
Building data-bound user interfaces for desktop interfaces, web applications, and electronic forms, involves two conceptually different types of tasks: graphical design of the user interfaces and data modeling of the data underlying the user interface.  Indeed, at most organizations, the two tasks are completed by different people taking on the roles of a graphical designer and a data modeler.  A major difficulty arrives from the interaction of these different people in those roles when creating a new application or when maintaining new iterations of an existing application. 
The graphical designer is concerned with the design and layout of the user interface in terms of placement of items like labels, fields, buttons, graphics, and other presentation type items.  According to business needs, the design and layout of the user interface should be easy to work with, easy to understand, and provide an aesthetically pleasing appearance.  Because the visual design of the user interface is both a showcase of the organization to business analysts, and the primary vehicle for access to the organization for users, the presentation of the user interface is of paramount importance to most organizations.  The design and layout for the presentation of the user interface is usually prototyped, reviewed, and updated many times before a final appearance is established. 
While the graphical designer is busy going through each iteration of the design and layout of the user interface, data modeling is required for each iteration to make the application actually work.  Data modeling includes the design of the underlying data model according to business needs.  Data models must ensure compatibility with external systems, standards, and technical requirements.  The data model may need to conform to and work with XML schemas, XSD schemas, WSDL, SOA, and databases.  Data models must also “bind” the presentation of the user interface to data model.  Binding the user interface indicates where values that are entered by a user in the presentation are stored in the data model.  Binding the user interface indicates where the presentation gets data to display. 
Development of a data-bound user interface is typically an iterative process, with both the graphical designer and data modeler doing work on each iteration of the user interface.  Changes made to the user interface by the graphical designer can often break or corrupt previous work done by the data modeler.  Ideally, the graphical designer would never have to edit the data model, or even be aware of it.  However, because the presentation must be “bound” to the data model in a completed application, changes made to presentation do in fact affect the binding. 
In an attempt to overcome the problem described, some systems enforce that all presentation items are bound to a data model.  Such a solution is not desirable as it requires a single user to simultaneously perform both the role of graphical designer and data modeler.  Furthermore, systems enforcing that all presentation items are bound to a data model also suffer from other problems.  These systems either do not protect the data model from alteration when modifying the presentation, or they do not allow the user interface design to influence the model design at all.  Such systems are constrained by the model, i.e., model-driven design, instead of allowing the user interface to dictate the underlying model, i.e., UI-driven modeling. 
Organizations have also attempted human-managed approaches to solving the problem of graphical designers breaking the binding between the presentation and the data model.  One approach is simply to assign one person to perform both the role of graphical designer and the role of data modeler.  However, qualified people possessing both these skill sets are very difficult to find.  Furthermore, even when one person is fulfilling both roles, they are generally forced to perform one role at a time.  It is helpful that when they modify the presentation, they understand what work they are creating for themselves to fix as the data modeler.  Attempting to fill both roles at the same time is difficult. 
Another approach is for the graphical designer to be made partially aware of the data model.  When the graphical designer knows of potential impacts on the data model, the graphical designer can be tasked with creating a list of any changes they make to the presentation that might impact binding to the data model.  Any fields, labels, or buttons within the user interface that are added, removed, or renamed can then be included in the list.  When the graphical designer is done with their work, the list is given to the data modeler.  The data modeler can then make any necessary corrections.  However, this approach is only a partial solution.  The application is generally in a broken or non-working state after the graphical designer has made modifications.  The graphical designer therefore cannot successful test or preview the application until the data modeler fixes the binding.  Thus, this approach may force many more iterations and hand-offs between the two roles than is desired.