Keyword In Context (KWIC)

Solution 1: Main program/subroutine with shared data.


[Next] [Up] [Top]

The first solution decomposes the problem according to the four basic functions performed: input, shift, alphabetize, and output. These computational components are coordinated as subroutines by a main program that sequences through them in turn. Data is communicated between the components through shared storage ("core storage"). Communication between the computational components and the shared data is an unconstrained read-write protocol. This is made possible by the fact that the coordinating program guarantees sequential access to the data.

Hierarchical Subroutine Architecture with Shared Data

In this solution, computations can share the same storage. This allow efficient data representation. The solution also has a certain intuitive appeal, since distinct computational aspects are isolated in different modules.

However, as Parnas argues, it has a number of serious drawbacks in terms of its ability to handle changes. In particular, a change in data storage format will affect almost all of the modules. Similarly changes in algorithm and enhancements to system function are not easily handled.

Finally, reuse is not well-supported because each module of the system is tied tightly to this particular application.


[Next] [Up] [Top]

Updated 11/8/95 by Mary Shaw
Comments to maintainer