10.3. Motivation: Why Draw an SSD?
An interesting and useful question in software design is this: What events are coming in to our system ? Why? Because we have to design the software to handle these events (from the mouse, keyboard, another system, …) and execute a response. Basically, a software system reacts to three things: 1) external events from actors (humans or computers), 2) timer events, and 3) faults or exceptions (which are often from external sources).Therefore, it is useful to know what, precisely , are the external input eventsthe system events . They are an important part of analyzing system behavior.You may be familiar with the idea of identifying the messages that go into one software object. But this concept is useful at higher levels of components, including the entire system viewed (abstractly) as one thing or object.Before proceeding to a detailed design of how a software application will work, it is useful to investigate and define its behavior as a "black box." System behavior is a description of what a system does, without explaining how it does it. One part of that description is a system sequence diagram. Other parts include the use cases and system operation contracts (to be discussed later).contracts p. 181