Page 178 -
P. 178

DOMAIN  MODELING  OF  OBJECT-ORIENTED  INFORMATION  SYSTEMS     163
                    Redundant Classes


                    What is a redundant class? The following explanation is given:
                        If two classes express the same information, the most descriptive name should be kept. For
                        example, although customer might describe a person taking an airline flight, passenger is
                        more descriptive. (Rumbaugh et al., 1990, p. 153)
                      But in general, how do we know that two terms express the same concept? For example, in
                    the Gymnastics System, how do we know whether or not “competitor” and “member” of a team
                    refer to the same kind of objects? To find out, we need to carefully examine how these terms are
                    actually used by the stakeholders in the context of the application domain. But as to how we are
                    to carry out this examination, the text analysis approach seems to leave it entirely to the initiative
                    of the analyst.
                      The fact-based approach offers more definite criteria for discrimination. A concept (or an ORM
                    entity type) must have a reference scheme (how we identify an instance of this entity type), and
                    it must participate in a number of fact types. With that in mind, we can arrive at the following
                    clearer, and more workable, characterization: Two terms represent the same concept/class if their
                    instances have the same reference scheme and participate in the same set of fact types.
                    Vague Classes


                    This point is explained as follows:
                        A class should be specific. Some tentative classes may have ill-defined boundaries or be too
                        broad in scope. For example, Recordkeeping provision is vague. In the ATM problem, this
                        is part of Transaction. In other applications, this might be included in other classes, such as
                        Stock sales, Telephone calls, or Machine failures. (Rumbaugh et al., 1990, p. 155)

                      But as before, how do we recognize that a concept is ill-defined or too broad in scope? A few
                    examples of such classes, as given in the explanation above, will not be of much help when an
                    analyst faces a “vague” concept (which he or she may not recognize as such) in the analysis of
                    some particular application domain (with which he or she may not be quite familiar).
                      From the fact-based perspective, a “vague” concept, such as recordkeeping or recordkeeping
                    provision, if it is indeed vague, will not appear in a fact type. Why? Because at the very least we
                    have to ask: how are we going to identify an instance of this concept (its reference scheme)? If
                    we cannot find a reference scheme, then indeed it is vague or, in the language of the fact-based
                    approach, it is not a proper entity, and it will not appear in any fact type. On the other hand, if
                    there is some reference scheme for such a concept, then it may well represent a legitimate class
                    no matter how strange the term may sound to us. Thus, we have: If a concept is vague (ill-defined,
                    not representing a valid entity), then it will not appear in any fact type, and therefore will not be
                    in the domain model.

                    Attributes

                    How do we know, or decide, whether or not a concept is an attribute? The following advice is
                    given:
   173   174   175   176   177   178   179   180   181   182   183