Keyword In Context (KWIC)

Solution 2: Abstract data types.


[Prev] [Next] [Up] [Top]

The second solution decomposes the system into a similar set of five modules. However, in this case data is no longer directly shared by the computational components. Instead, each module provides an interface that permits other components to access data only by invoking procedures in that interface.

Abstract Data Type Architecture

This solution is composed of the same processing modules as the first. However, it has a number of advantages over the first solution when design changes are considered. In particular, both algorithms and data representations can be changed in individual modules without affecting others. Moreover, reuse is better supported than in the first solution because modules make fewer assumptions about the others with which they interact.

On the other hand, as discussed by Garlan, Kaiser, and Notkin, the solution is not particularly well suited to enhancements. The main problem is that to add new functions to the system, the implementor must either modify the existing modules -- compromising their simplicity and integrity -- or add new modules that lead to performance penalties. (See [Garlan92] for a detailed discussion.)


[Prev] [Next] [Up] [Top]

Updated Halloween 95 by Mary Shaw
Comments to maintainer