SAAM: A Method For Analyzing The Properties of Software Architectures
SAAM: A Method For Analyzing The Properties of Software Architectures
SAAM: A Method For Analyzing The Properties of Software Architectures
3.3 Chiron
FC PI
LI The Chiron architecture [24] was built with the
expressed goals of addressing life cycle concerns of main-
Application Presentation tainability and sensitivity to environmental changes. A
Chiron architecture consists of a client and a server. The
client consists of an application, which exports a number
Figure 3: Serpent architecture (annotated)
of abstract data types (ADTs) which Chiron encapsulates
ure 3. The architecture has been redrawn using the nota- within Dispatchers. Dispatchers communicate with Art-
tion given in section 2.2, and the functional roles have ists, which maintain abstract representations of their asso-
been overlaid on the structure of Serpent, in order that the ciated ADTs in terms of an abstract depiction library
allocation of functionality to structure may be illustrated. (ADL).
There are several points of interest to note in this re- A Chiron server consists of the ADL, a virtual window
characterization of Serpent’s structure: system, and an instruction/event interpreter. The virtual
• there is no structural separation between the PI and LI window system translates abstract interface depictions into
functions in the presentation process; concrete ones. The instruction/event interpreter responds
to requests from Artists to change the abstract description
• there is no structural separation between the FCA and and translates those requests into changes to the presenta-
D functions in the dialogue controller process;
tion. It also responds to events from users and translates
• except for the dialogue manager, all of Serpent’s com- those back into Artist requests.
ponents are monolithic—that is, they provide no archi- The architecture of a typical system developed under
tectural support for subdivision of functionality within Chiron is shown in Figure 4.
a component. Within the dialogue manager, a view The Chiron architecture clearly separates the applica-
controller hierarchy provides an architectural decom- tion (functional core) from the rest of the system, as would
position.There are other forms of support that allow for be expected in a system which was built with the
further subdivision of functionality. For example, in expressed goal of minimizing sensitivity to environmental
Artist ADT
System
Dispatcher Application
Artist ADT
ADL Library
Artist ADT
System
Dispatcher Application
Artist
ADT
changes. The dispatchers/ADTs together form the func- emphasis from Serpent and Chiron, which were expressly
tional core adapter. It seems clear that the Artists contain interested in maintainability and separation of concerns.
some of the dialogue, for example, maintaining a corre- The architecture of applications built with Garnet is a
spondence between objects from the application domain single process, with Common Lisp and the X11 window
and interface objects from the presentation domain. How- system as its foundations (above an assumed operating
ever, what is less clear, from the architectural description, system). The Garnet toolkit is built on top of this founda-
is where the “state” of the dialogue lives. For example, tion. At the very top are high-level Garnet tools (which we
where does one put the information that the “paste” option call Garnet applications). Garnet is thus commonly pre-
in an edit menu should be grayed out unless something has sented as a layered system, as shown in Figure 7.
previously been cut or copied? Another type of dialogue
issue is maintaining relationships among the interface Garnet Applications
objects. For example, when a user selects the “Save As”
option in a file menu, something in the dialogue must Widget set
cause a file selection box to be created. Once again, the
location of these sorts of dialogue issues is not clear from Interactors Opal Graphics
Chiron’s architectural description. These dependencies
might exist in the Artists or the ADTs. [28] Constraint system
The physical interaction component appears to be KR object system
located in Chiron’s Virtual Window System component,
and the logical interaction component is encapsulated X11 Common Lisp
within the ADL. As a result of this characterization, we
can provisionally annotate the Chiron architecture as Operating System
shown in Figure 5.
This re-characterization indicates the logical division of Figure 6: The Garnet architecture (adapted from [15])
functionality in Chiron, according to the Arch/Slinky
However, Garnet applications are not strictly layered.
meta-model. Note that by re-characterizing Chiron’s archi-
In a strictly layered system, the nth layer hides all details
tecture in this way, we can now begin to understand its
of the layers n-1 and lower, and is available only to layer
relationships to other architectures, such as Serpent’s. This
n+1. In Garnet applications, Common Lisp, the KR object
task is considerably more difficult when trying to compare system and the Constraint system are services used
architectures based upon their own representations and directly by all layers. There are no prototypical patterns of
claims. What we have done is to develop a common lan- usages for the object services. Consequently, we choose
guage for making architectural comparisons. not to reveal it as an architectural features of Garnet in
3.4 Garnet Figure 7, just as we have chosen not to represent the oper-
ating system in our architectural description.
The emphasis for systems developed under Garnet [15] The Interactors and Opal Graphics together strictly hide
is on control of the runtime behavior of interaction objects all of the X11 calls. Thus, Garnet widgets and applications
and the visual aspects of the interface. This is a different do not have any window manager calls in them, only calls
to the interactors, object-oriented graphics, constraints and In the Evolutionary Development Life Cycle project at
object system. [14] Carnegie Mellon University, we are concerned with the
Given this analysis, we can re-draw Garnet’s architec- architecture of systems which have long projected life-
ture as follows: times—20-30 years. This is an increasingly important seg-
ment of the software market. According to a study by
X11 library Green and Selby, the average age of all software is increas-
PI ing [9]. In systems such as these, modifiability is of para-
mount importance. In the domain of user interface
development, modifiability is frequently cited as a moti-
vating factor for a particular architecture, since some
Interactors Opal Graphics changes are very common. For this reason, we will evalu-
ate user interface architectures with respect to the property
Object/Constraint
of modifiability.
Widget set Modifiability by itself is too abstract to be useful for
LI
System