Keyword In Context (KWIC): Design Considerations
[Prev]
[Next]
[Up]
[Top]
From the perspective of software architecture, the problem derives its appeal
from the fact that it can be used to illustrate the effect of changes on
software design. Parnas shows that different problem decompositions vary
greatly in their ability to withstand design changes. Among the changes he
considers are:
- Changes in algorithm: For example, line shifting can be performed on
each line as it is read from the input device, on all the lines after they
are read, or on demand when the alphabetization requires a new set of shifted
lines.
- Changes in data representation: For example, lines can be stored in
various ways. Similarly, circular shifts can be stored explicitly or
implicitly (as index and offsets).
Garlan, Kaiser, and Notkin [Garlan92] extend Parnas' analysis by including
enhancements to system function. For example:
- Have the system eliminate circular shifts that start with certain noise
words (such as "a", "an", "and", etc.).
- Make the system interactive, and allow the user to delete lines from the
lists.
Finally, it is worth considering differences in architectural solutions based
on considerations of:
- Performance: Both space and time.
- Reuse: To what extent can the components serve as reusable entities.
[Prev]
[Next]
[Up]
[Top]
Updated Halloween 95 by
Mary Shaw
Comments to maintainer