Page 200 -
P. 200

7.1   Object-oriented design using the UML  183


                                                          Data Collection


                                                            Transmitter       Receiver



                     Figure 7.5 Architecture                        WeatherData
                     of data collection
                     system


                                       system object or objects that encapsulate the system interactions defined in the
                                       use cases. With these objects in mind, you can start to identify the object classes
                                       in the system.
                                         There have been various proposals made about how to identify object classes in
                                       object-oriented systems:

                                       1.  Use a grammatical analysis of a natural language description of the system to be
                                          constructed. Objects and attributes are nouns; operations or services are verbs
                                          (Abbott, 1983).

                                       2.  Use tangible entities (things) in the application domain such as aircraft, roles
                                          such as manager or doctor, events such as requests, interactions such as meet-
                                          ings, locations such as offices, organizational units such as companies, and
                                          so  on  (Coad  and  Yourdon,  1990;  Shlaer  and  Mellor,  1988;  Wirfs-Brock
                                          et al., 1990).
                                       3.  Use a scenario-based analysis where various scenarios of system use are identi-
                                          fied and analyzed in turn. As each scenario is analyzed, the team responsible for
                                          the analysis must identify the required objects, attributes, and operations (Beck
                                          and Cunningham, 1989).

                                         In practice, you have to use several knowledge sources to discover object classes.
                                       Object classes, attributes, and operations that are initially identified from the infor-
                                       mal system description can be a starting point for the design. Further information
                                       from application domain knowledge or scenario analysis may then be used to refine
                                       and extend the initial objects. This information can be collected from requirements
                                       documents, discussions with users, or from analyses of existing systems.
                                         In the wilderness weather station, object identification is based on the tangible
                                       hardware in the system. I don’t have space to include all the system objects here, but
                                       I  have  shown  five  object  classes  in  Figure  7.6.  The  Ground  thermometer,
                                       Anemometer,  and  Barometer  objects  are  application  domain  objects,  and  the
                                       WeatherStation and WeatherData objects have been identified from the system
                                       description and the scenario (use case) description:

                                       1.  The WeatherStation object class provides the basic interface of the weather
                                          station with its environment. Its operations reflect the interactions shown in
   195   196   197   198   199   200   201   202   203   204   205