The OMAR methodology has been developed and experimented based upon the models used in the OMT methodology . We describe the application of the OMAR methodology for the example given in . It regards the development of a software system to support a computerized banking network including both human cashiers and automatic teller machines (ATMs) to be shared by a consortium of banks. The class diagram developed during the object oriented analysis of this problem is given in Figure 2.
In the example, the classes Card-Authorization, Cash-Card, Customer, Account, and Bank are the ones indicated as persistent. Sample State Diagrams for the classes ATM, Consortium, and Bank are shown in Figures 3, 4, and 5, respectively, while a sample of the Data Flow Diagram for the ATM perform transaction process is shown in Figure 6.
The inference engine uses the dynamic models to refine the schema. For instance, from the State Diagrams of the classes ATM, Consortium, and Bank, given in Figures 3, 4, and 5, the engine detects the message exchanges between ATM and Bank going through Consortium. The latter has elementary actions only, that is, actions with no Data Flow Diagram associated. Moreover, from what said above, this class has been translated into a table, because it is transient but it is related to the persistent class Bank. Thus, the engine tries to eliminate this table, also because the associated class Consortium has a reduced structure. However, the examination of the Data Flow diagram of Figure 6, associated to the process Perform Transaction of the class ATM, reveals the use of Consortium as a Data Store, therefore the table is not eliminated. The same diagram reveals the functional dependence of all the attributes of the class Cash Card on the combination of attributes bank-code and card-code. Thus, the pair (bank-code, card-code) can be a Primary Key for the table associated to the class Cash Card.