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