Page 181 -
P. 181
166 NGUYEN AND DILLON
Comparing the Underlying Perspectives
We have seen that, by being aware of the information about the application domain that the system
must maintain, we can eliminate many of the issues arising from the text analysis approach. Let
us pursue this point a little further.
It is clear that whether or not a concept expressed by a noun can be a class depends on the kind
of information it carries and the kinds of relationships it has with other concepts. In other words,
a noun derives its meaning from the context in which it is found. Its significance depends on the
relationships it has with other concepts in a network of concepts. It is very similar to the way a
concept derives its meaning from the semantics network in which the concept occurs.
It can be observed that the text analysis approach generally does not effectively exploit the
interrelation upon which the significance of the concept is based. In contrast, the fact-based
approach seeks to exploit that valuable source of interrelations, and does so effectively, with
a clear focus. All we ask consistently is: “What are the facts about the application domain
that the system is expected to maintain?” (And we would answer that question by examining
the problem statement, or more effectively, by examining the user views such as input/output
screens, reports, etc.)
Questions regarding facts and fact types are much more fundamental and much easier to
answer. Consider, for the sake of argument, a concept or a noun “X”; instead of asking “Is X
a class?” or “Is X an attribute?” we simply ask, “Do we need to maintain some information
about X?” or “Are there any fact types involving X?” To take an example, if “X” is “Customer,”
then we do not have to ask “Is ‘customer’ a class?” or “Is it an attribute?” or “Is it a role?”
We ask, “What is the information we maintain for a customer?” or “Does ‘customer’ appear
in any fact type?” These questions, being directly related to matters of information, are more
to the point. They are also easier to answer. Clearly, if we cannot answer the latter questions
(“Can we have a fact type with ‘customer’ in it?”), we would have no hope of answering the
former ones (“Is ‘customer’ a class?” or “Is ‘customer’ an attribute?” etc.). In fact, with ORM,
in most cases, we do not have to consciously ask such questions; by working with the user’s
data views (reports, forms, screens), we can read the facts or fact types off the user views. The
fact-oriented viewpoint of ORM allows us to work directly with the information content aspect
of the application domain.
SUMMARY
In this chapter, we have examined in detail the text analysis approach to class and relationship
discovery, and pointed out several problems with it. We have also shown how, with the use of the
fact-based approach, we can eliminate or effectively handle these problems. We have illustrated
how the fact-based analysis can be incorporated into the overall object-oriented domain model-
ing process. In particular, we have demonstrated (a) how the order of data entry dependency can
be used in identifying and organizing the fact types; (b) how the conceptual schema (that is, the
fact-type model) can be validated in several simple but effective ways; and (c) how to convert the
conceptual schema into a domain class model.
In addition, we have delved deeper into the issue and examined the basic premises of the text
analysis and the fact-based approach. We have pointed out that the significance of a concept depends
on its relationships with other concepts in a semantic network (expressed in terms of fact types)
and that the fact-based approach is one that effectively exploits these all-important relationships
with a clear and consistent focus.