258 Chapter 9. Analysis and Evaluation of Modifiability: The SAAM Method
10.2.3 Classification of scenarios
There is an important distinction between two types of scenarios. Recall that a
scenario is a brief description of some anticipated or desired use of a system. The
system may directly support that scenario, meaning that anticipated use requires no
modification to the system for the scenario to be performed. This would usually be
determined by demonstrating how the existing architecture would behave in
performing the scenario (rather like a walk-through simulation of the system
conducted in terms of the architectural constructs). If a scenario is not directly
supported, there must be some changes to the system that we could represent
architecturally. This change could be a change to how one or more components
perform an assigned activity, the addition of a component to perform some activity,
the addition of a connection between existing components, or a combination of
these. The first type of scenario is referred to as direct scenario, and the second as
indirect scenario. It is worth noting that a scenario is direct or indirect only with
respect to a particular architecture. A candidate architecture may execute a scenario
directly; another may require modification before it can be executed. It is such
differences that enable us to apply scenario analysis to assess architectural design.
For the KWIC example, among the eight scenarios given above, only scenario
1 is direct for both of two candidates. All others are indirect with respect to the
10.2.4 Scenario evaluation
For each indirect scenario, the changes to the architecture that are necessary for it
to support the scenario must be listed, and the cost of performing each change must
be estimated. A modification to an architecture means that either a new component
or connection is introduced or an existing component or connection requires a
change in its specification.
For example, for the scenario 2 of the KWIC example, i.e. the scenario of
operation in an incremental fashion, the following modifications on the shared data
architecture must be made to support it.
(1) Modification of the Input component: The Input component must be modified
so that after reading each line from the input device, it must pass the control
back to the master control component.
(2) Modification of the Master Control component: The control component must
be modified so that it repetitively calls the subroutines Input, Circular Shift
and Alphabetise rather than just once.
(3) Modification of the Alphabetiser component: The Alphabetiser must now use
an incremental sorting algorithm so that circular shifted lines can be added
into sorted lines incrementally.