3.4. DESIGN LAYERS 29
Design of the first sort is increasingly acknowledged as simply good practice, although very difficult for non-trivial systems. Design of the second sort has been largely ignored by previous work on language-based editing systems. The approach adopted for Pan is best captured by the maxim simple system, complex documents." Stated differently, complexity of user interaction should appear to arise only from the complexity of the documents or from tasks being performed, not from the system itself.
One approach to the need for an apparently simple system is to hide any complexity associated with language-based analyzers that does not correspond to relevant complexity in programs. This is an argument for decoupling" user interaction in language-based editing systems from the linguistic and implementation details of their enabling technologies.
Another approach is to keep system features for language-based interaction (these are called basic services in Pan's design model) as few in number and as widely applicable as possible. The complexity behind these services, as perceived from users, should derive from the information that drives them (complexity inherent in the nature of software), not from their basic function.
The inherently complex nature of software, on the other hand, resists general approaches to simplification. Comprehension by programmers is extremely dependent on context: language, individual skills, particular software systems, and the task of the moment. Design for interaction between people and programs must include a configuration component that can only be realized in context and can therefore only be carried out by users or their close associates.
3.4 Design Layers
One realization of these general principles is an architectural framework, shown in Figure 3.7, that articulates four separate kinds of design that play a role in meeting Pan's goals. Core language-based technology is at the lowest level, completely hidden from users, and the design of view styles (the Pan term for specialized editing contexts) is at the highest and most visible level.
This model ignores other useful decompositions of the Pan system in order to address the fundamental question being explored by this research: how can the power of languagebased technology be exploited effectively in the context of a system built around the design requirements summarized in Figure 3.1? Weakening any of Pan's design requirements would permit a simpler, less general architecture, as exemplified by systems reviewed in Chapter 2. This section discusses the motivation for each layer in the model, and describes in general terms how they interact.
Many earlier language-based systems coupled their visible functionality too closely to underlying language-based representations and analysis mechanisms. Pan's layered model addresses this problem by placing language-based technology in the implementation layer farthest removed from user visibility. This decomposition permits support for user models (of both the system and programs) that are largely independent of the technological particulars. For example, Pan view styles can be configured so that the distinction between