Page 177 -
P. 177

162     NGUYEN  AND  DILLON
                    can supply an exhaustive, or at least nearly so, list of potentially valid candidate classes for the
                    analysis model? How do we tell whether or not a given problem statement is adequate for this
                    purpose? And what can we do if it is inadequate?
                      Another consequence of the first premise is that, unless appropriate tools are used, there would
                    be problems with scaling up. If the problem statement is written in detail for a large system, there
                    will be a large number of “good” nouns and a huge number of “bad” ones. The list of candidate
                    classes could be quite long. The elimination process, being unsystematic, would be quite un-
                    manageable. As mentioned earlier, linguistic analysis tools could be very useful for dealing with
                    these problems.
                      As to the second premise, how effectively can the suggested criteria be applied to eliminate
                    improper candidate classes? Let us consider the criteria suggested by OMT.
                    Relevant Classes


                    What is meant by “relevant”? In Rumbaugh and colleagues (1990) (from which the above proce-
                    dure is taken), the following explanation is given:

                        If a class has little or nothing to do with the problem, it should be eliminated. This involves
                        judgment, because in another context the class could be important. (Rumbaugh et al., 1990,
                        p. 155)

                      Thus, the explanation defines “irrelevant” as “having little or nothing to do with the problem.”
                    But this kind of elaboration offers very little help. Indeed, we can ask, if a concept has little or
                    nothing to do with the problem, why is it included in the problem statement at all? More impor-
                    tant—How can we tell if a concept that occurs in the problem statement has little or nothing to
                    do with a problem?
                      Let us try to look at this issue from the fact-based point of view. A very important property of
                    those classes to be included in the domain class model is that they carry information required for
                    the operation of the enterprise. This is obviously true, for example, for the domain model of the
                    Gymnastics System. The analysis model has classes such as Club, Gymnast, CompetitionType,
                    EventType, Judge, Meet, Team, Score, and so on. Each of these classes carries certain information
                    required for the running of the competitions.
                      To be clearer on this point, let us consider an application that manages bank accounts. When
                    we observe what is happening in the real world, we see, for example, that people use automatic
                    teller machines (ATMs) to carry out banking transactions. Then, should we include ATM in the
                    domain class model? The answer is: it depends! If we need to keep records of the ATM involved
                    in the transactions, then the answer is definitely “yes.” But suppose we do not need to do that;
                    then the answer is “no.” In the latter case, the ATM will play exactly the same role as a desk in a
                    library, or a screen on a computer terminal. It may or may not be modeled as a control class, but
                    certainly not as a domain class.
                      From the fact-based perspective, clearly if a class carries certain information required for the
                    enterprise’s operation, then it must appear in some fact type. Thus, we have the following char-
                    acterization for “relevant”: A concept is relevant for the domain model if, and only if, it appears
                    in at least one elementary fact type.
                      Thus, “relevant” is linked ultimately to “information.” If a concept represents some sort of
                    information to be maintained by the system, then it is relevant and it should be included in the
                    domain model as a class, an attribute, or a relationship.
   172   173   174   175   176   177   178   179   180   181   182