5.3.17 Analyzing and Merging Changes

The concept of gaining productivity and reusability by defining applications at the logical level and allowing special modifications to be made for users is a wonderful idea, but it all falls apart unless one key issue is resolved: How can we understand how these logical systems differ from one another after a myriad of modifications have been made and how can we move around common changes from one system to another in such an environment?

AOA resolves this issue via compare/merge features for the various components, the two most important being addressed here: LOD’s and Dialogs.

LOD Compare/Merge

Whenever we have a set of sub-functions across two systems where modifications were or might have been made to both, the first question within AOA is “what are the structural differences between the objects” and the second is “which of those differences do I want to carry over to the target system.” To address these questions, AOA provides a  LOD comparison function within the LOD tool. To execute this function, the developer is sitting in a LOD for one of the two systems and requests to compare that LOD to a LOD from an external system. The result, shown in the diagram to the right, is displayed as a list of entity and attribute differences.

The next step is to identify which differences are to be carried over to the target system. This is accomplished during one or more iterations, where the desired entities and/or attributes are selected. Note that, in the example, one attribute from the source LOD has been selected to be merged into the target, as shown by its being highlighted in red. 

The final step is to strike the “Merge Selected Differences” button to copy over selected entities and attributes to the target LOD. Work entities and attributes are simply copied to the LOD. Persistent entities and attributes will be automatically merged to the target ER diagram, if they don’t already exist there. Any rules (i.e., VML operations) within a LOD are compared with normal file compare functions.

Dialog Compare/Merge

Comparing and merging Dialogs is slightly more complex than LOD’s, as the spacing of controls within a window or web page can rarely be done automatically. Consequently, AOA addresses this problem in two steps. In the first step, two Dialogs are compared in much the same manner as LOD’s, above. An example of the compare window is shown to the right. Notice that there are no differences for many of the windows, designated by the text, “(Matching Target Window)”.

However, the merge request is not done here. Instead, the external (or Source) Dialog is opened in a parallel task to the main (or Target) window. The windows from the two dialogs can then be compared visually and selected controls are copied from the source window and pasted in the appropriate place in the target window. If the source dialog contains a window which is to be taken in its entirety, then that whole window is simply copied to the target. In the example to the right, two controls, a list box control and a button have been selected from the source Dialog to be copied and placed on a new tab in the target Dialog.