OMT Object Model

Identify object classes

Here are the nouns found in the video-store example:
Video store, tape request, tape customer, tape supplier, tape overdue notice, store assistant, information, film, tape, list of rentals, tape return, task, activity, submission of rate changes, submission of new tapes, store management, production, rental report, store administration.

For this example we only consider the nouns that are related to the problem of video-renting. These are the classes that remain if we discard all the unnecessary and incorrect classes, following the given criteria (the remaining classes are in italics):

Customer is a role-name. It is better to say something about the intrinsic nature of the class instead of its role in an association. So we rename "Customer" to "Person". The same counts for "Supplier".

Prepare a data dictionary

Next, we prepare a data-dictionary, in which we describe each class.
Person: A person can rent video-tapes, if he is a supplier he can submit supply tapes
Film: this is what a customer wants to see, and what's on a tape Tape: a tape contains a film, there may exist many tapes of the same film.

Define associations

Next, we define the associations. After having rejected some candidate-associations, we come to the following associations: This gives us the following schema:



After specifying the semantics of the associations, we come to the following schema:



These are the attributes we could find for the classes:

Person: address

Tape: tape number

Film: name, rental price, late charge

Furthermore, there also exists a link-attributes in the association rents. For every rental the following things are recorded:

After having found the attributes we can draw the following schema:



The class person can be refined using inheritance. We can make two specializations, namely "customer" and "supplier". This gives us the following schema:



In this last schema access-paths for the most likely queries do exist. All information concerning the tapes and films is available in the attributes of this objects. Overdue notices can be generated by looking at the 'return-date' attribute of the 'rents'-association. This way, the store assistant can also check if the customer is late with the return of tapes.
This last schema can be further enhanced using iteration, i.e. going back to earlier stages in the design-trajectory.

Last modified: February 8th, 1996
Henk Enting, h.d.enting@cs.utwente.nl