Page 196 -
P. 196

7.1   Object-oriented design using the UML  179


                                       3.  Identify the principal objects in the system.
                                       4.  Develop design models.

                                       5.  Specify interfaces.

                                         Like all creative activities, design is not a clear-cut, sequential process. You
                                       develop a design by getting ideas, proposing solutions, and refining these solutions
                                       as information becomes available. You inevitably have to backtrack and retry when
                                       problems arise. Sometimes you explore options in detail to see if they work; at other
                                       times you ignore details until late in the process. Consequently, I have deliberately
                                       not illustrated this process as a simple diagram because that would imply design can
                                       be thought of as a neat sequence of activities. In fact, all of the above activities are
                                       interleaved and so influence each other.
                                         I illustrate these process activities by designing part of the software for the wilder-
                                       ness weather station that I introduced in Chapter 1. Wilderness weather stations are
                                       deployed in remote areas. Each weather station records local weather information and
                                       periodically transfers this to a weather information system, using a satellite link.




                                7.1.1 System context and interactions
                                       The first stage in any software design process is to develop an understanding of the
                                       relationships between the software that is being designed and its external environ-
                                       ment. This is essential for deciding how to provide the required system functionality
                                       and how to structure the system to communicate with its environment. Understanding
                                       of the context also lets you establish the boundaries of the system.
                                         Setting the system boundaries helps you decide what features are implemented
                                       in the system being designed and what features are in other associated systems. In
                                       this case, you need to decide how functionality is distributed between the control
                                       system for all of the weather stations, and the embedded software in the weather
                                       station itself.
                                         System context models and interaction models present complementary views of
                                       the relationships between a system and its environment:


                                       1.  A system context model is a structural model that demonstrates the other sys-
                                          tems in the environment of the system being developed.

                                       2.  An interaction model is a dynamic model that shows how the system interacts
                                          with its environment as it is used.

                                         The context model of a system may be represented using associations. Associations
                                       simply show that there are some relationships between the entities involved in the
                                       association. The nature of the relationships is now specified. You may therefore docu-
                                       ment the environment of the system using a simple block diagram, showing the entities
                                       in the system and their associations. This is illustrated in Figure 7.1, which shows that
   191   192   193   194   195   196   197   198   199   200   201