Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

A Field Guide to Boxology:

Preliminary Classification of Architectural Styles for Software Systems


Mary Shaw and Paul Clements
Computer Science Department and SoRware Engineering Institute
Camegie Mellon University
Pittsburgh, P A 15213

Abstract protocols in connectors (e.g., processes interact via mes-


Software architects use a number of commonly-recog- sage-passing protocols; unix filters interact via data flow
nized “styles” to guide their design of system structures. through pipes). It is largely the interaction among compo-
Each of these is appropriate for some classes ofproblems, nents, mediated by connectors, that gives different styles
but none is suitable for all problems. How then, does a their distinctive characteristics.
sofiare designer choose an architecture suitable for the The style of a specific system is usually established by
problem at hand? Two kinds of information are required: appeal to common knowledge or intuition. Architectures
(1) careful discrimination among the candidate architec- are usually expressed in box-and-line diagrams and infor-
tures and (2) design guidance on how to make appropriate mal prose, so the styles provide drawing conventions, vo-
choices. Here we support careful discrimination with apre- cabulary, and informal constraints (e.g., limiting topology
liminary classijication of styles. We use a two-dimensional or numbers of components of some type). Recently there
classification strategy with control and data issues as the has been some effort to identify-and define styles more pre-
dominant organizing axes. We position the major styles cisely and systematically [ 10][31][33]. A few styles have
within this space and use$ner-grained discriminations to been formalized or extensively analyzed[l][2][3][23].
elaborate variations on the styles. This provides a pame- This paper begins to organize and classify the styles
work for organizing design guidance, which we partially that appear in software descriptions. By doing so we aim to
flesh out with rules of thumb. Establish a uniform descriptive standard for architectur-
al styles-make the vocabulary used to describe styles
Keywords: software architecture, architectural styles, more precise and shareable among software architects.
style classificatiodtaxonomy Provide a systematic organization to support retrieval of
information about styles.
1. Introduction Discriminate among different styles-bring out signifi-
cant differences that affect the suitability of styles for
Software architecture is concerned with system struc- various tasks; show relations amongstyles.
ture-organization of the software, assignment of respon- Set the stage for organizing advice on selecting a style
sibilities to components, and assurance that interactions for a given problem.
among the components satisfy the system requirements This work shares motivation with recent work on prob-
[14][27]. Software developers recognize a number of dis- lem frames and on pattems. Jackson’s work on problem
tinct architectural styles. Many of these styles are defined frames [ 181 does for classes of problems what we are doing
informally and idiosyncratically. Our purpose here is to for classes of solutions. The pattems community concen-
clarify the distinctions among styles as a first step in help- trates on documenting proven solutions, including archi-
ing designers choose among the styles. tectural styles, in the context of the specific kinds of
By architectural style we mean a set of design rules that problem for which each solution is useful [8][13][33]. Both
identify-the kinds of components and connectors that may Jackson and the patterns community begin with observa-
be used to compose a system or subsystem, together with tion of things that work and work toward principled models
local or global constraints on the way the composition is and guidance. The present work is precisely in that spirit.
done. Components, including encapsulated subsystems, Section 2 presents the classification of architectural
may be distinguished by the nature of their computation styles, using feature categories explained in Section 3. Sec-
(e.g., whether they retain state from one invocation to an- tion 4 shows that the classification is feasible extensible by
other, and if so, whether that state is available to other com- using it to elaborate variants of a major style that has ap-
ponents). Component types may also be distinguished by peared in the literature. Section 5 discusses the role of style
their packaging-the ways they interact with other compo- in design, including style support in architecture descrip-
nents. Packaging is usually implicit, which tends to hide tion languages, and provides some rules of thumb for
important properties of the components. To clarify the ab- choosing a style on the basis of the problem at hand.
stractions we isolate the definitions of these interaction

6
0730-3157/97 $10.00 0 1997 IEEE

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.
2. Styles for Software Architectures We focus on the abstractions used by designers in de-
fining their architectures. In practice, these are ultimately
In this section we classifL a set of archiitecturall styles implemented in terms of processes (as defmed by the oper-
that have been described previously (usually informally) in ating system) and procedure calls (as defined by the pro-
published literature. Software designers use an extensive gramming language). More abstract connectors allow
descriptive vocabulary to explain their system organiza- otherwise-incompatible components to share data and con-
tions. They use the vocabulary informally, almost casually, nectors augmented by performance monitoring, authenti-
and often ambiguously. Through a rigorous, classification cation, or audit-trail capabilities.
we attempt to capture the common meanings. The allowable kinds of components and connectors are
Table 1 shows the resulting classification. It is not com- primary discriminatorsamong styles. Selectingthe types of
plete, but it spans much of the diversity found in practice. constituent parts does not, however, uniquely identify the
Each row describes a style. Columns correspond to the fea- style. Control disciplines, data organizations, and the inter-
ture categories as described in Section 3. Indented ralws de- action of control and data all affect style distinctions. So do
scribe specializations of the styles in the primary rows they finer distinctions within types of components and connec-
follow. Because this is a multidimensional classificadon, it tors, some of which appear in Table 1. For example, both
is possible for a style to be a variant of more thm one program and transducer refine process; procedure culls
broader style; we handle this with cross-references. may be local or remote, and their binding may be dynamic
We describe the styles in their pure forms, although or static; batch data, data stream, and continuous refiesh
they seldom occur that way. Real systems hybridize and are all forms of dataflow.
amalgamate the pure styles, with the architect choosing A taxonomic treatment of architectural components and
useful aspects from several in order to accomplish the task connectors, filling out the conceptual framework begun
at hand. Our classification does not impede this heteroge- here, appears elsewhere [ 191.
neity, but rather enhances the selection and blending pro-
cess by making stylistic properties explicit. IJnderstanding 3.2 Control issues
the pure forms is helpful in understanding or explainingthe Control issues describe how control passes among
hybrids, and perhaps also in recognizing arid eliminating components and how the components work together tem-
unnecessary heterogeneity. porally. Control issues include:
After looking through the table many readers will say, Topology: What geometric form does the control flow
“But that’s not what Zmean by style X!”. Indeed, it may not for the system take? A pipeline often has a linear (non-
be. But it is, as far as we can tell, what someone means. branching) or acyclic control topology; a main-program-
This indicates that different readers use style names in dif- and-subroutines style has a hierarchical (tree-shaped)
ferent ways. A primary objective of this classification is to topology; some server systems have star (hub-and-
expose such differences and start constructive discussion. spoke) topologies; a style consisting of communicating
sequential processes may have an arbitrary topology.
3. Classification Strategy Some architectureshave quite specific topologies. It may
A system designer’s primary impression of an architec- also be useful to stipulate the direction of control flow.
ture often keys on the character of the interactions among Synchronicity: How dependent are the components’ ac-
components. Our classification strategy reflects this, mak- tions upon each others’ control states? In a lockstep sys-
tem, the state of any component implies the state of all
ing control and data interactions the major axes of classifi- others (e.g., a batch sequential system’s components are
cation, then making finer discriminationswithin the axes. in lockstep, since one doesn’t begin execution until its
Our analysis of common architectural styles suggests predecessor finishes). SIMD (single instruction,multiple
that they are discriminated by these categories of features: data) algorithms for massively parallel machines also
3.1 Constituent parts: Components &, connectors work in lockstep. In synchronous systems, components
Components and connectors are the primary building synchronize frequently, but other state relationships are
unpredictable. Asynchronous components are largely un-
blocks of architectures. A component is a unit of software
predictable in their interaction or synchronize occasion-
that performs some function at run-time. Examples include ally, while opportunistic components such as autono-
programs, objects, processes, and filters. A connector is a mous agents work completely independently and in par-
mechanism that mediates communication, coordination, or allel. Lockstep systems can be sequential or parallel,
cooperation among components. Implementations of con- depending on how many threads of control run through
nectors are usually distributed over many system compo- them. Other forms of synchronicity imply parallelism.
nents; often they do not correspond to discrele elements of Binding time: When is the identity of a partner in a
the running system. Examples include shared representa- transfer-of-control operation established? Some control
tions, remote procedure calls, message-passiing protocols, transfers are pre-determined at program-write(i.e.,
data streams, and transaction streams. source code) time, compile time, or invocation time (i.e.,

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.
B

* a
m

0
m
a
-

-
0
fi

3
m
R

a
w
3
a

P n
2 2
n
v
I.

0"
-
3 d

m m
w w

' P
c
1-

3
0 5
2m a
8
&
Y
m
a
-
rd
*
rd
-0

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.
9

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.
when the operating system initializes the process). 0th- 4. Refinements of a style: Cooperative
ers are bound dynamically while the system is running. message-passing processes
3.3 Data issues The classification scheme of Section 3 maps out the
Data issues describe how data moves around a system. space of architectures, but it does not capture all the rich-
Data issues include: ness found in nature. Each row can be elaborated to capture
* Topology: Data topology describes the geometric shape more detailed distinctions. These distinctions may matter
of the system’s data flow graph. The possibilities are the because they determine whether pre-existing parts can be
same as for control topology used together, or because they affect system performance
Continuity: How continuous is the flow of datathrough- or other system-level behavioral quantities. Further, if the
out the system? A continuous-flow system has fresh data elaborations capture the disctinctions observed by others
available at all times; a sporadic-flow system has new and the table extends smoothly, this increases our confi-
data generated at discrete times. Data transfer may also dence in the relevance of the discriminators. We have per-
be high-volume (in data-intensive systems) or low-vol-
formed an elaboration on dataflow networks and
ume (in compute-intensive systems).
Mode: Data mode describes how data is made available cooperative message-passing processes; we present the lat-
throughout the system. In an object style, it is passed ter in this section.
from component to component, whereas in any of the Andrews [3] identifies 8 variants of the communiating
shared data systems it is shared by making it available in processes (CP) style in Table 1. We now show how each
a place accessible to all the sharers. If the components specializes the basic CP style, summarizing in Table 2.
tend to modify it and re-insert it into the public store, this One-way data flow through networks of filters. In
is a copy-out-copy-in mode. In some styles data is broad- this style, a piece of data enters the system and makes its
cast or multicast to specific recipients. way through a series of transformations, each transform ac-
Binding time: When is the identity of a partner in a complished by a separate process. The series need not be
transfer-of-control operation established? This is the linear; Andrews gives an example of a tree of processes
data analogy of the same control issue, forming a sorting network. Specializing the CP style by re-
3.4 ControYdata interaction issues stricting topology to one-way and synchronicity to asyn-
chronous yields this sub-style. Interestingly, it may also be
Interaction issues describe the relationship between
case as a specialization of dataflow networks by restricting
certain control and data issues.
that family’s data and control topologies to one-way flows,
* Shape: Are the control flow and data flow topologies
substantially isomorphic to each other? and relaxing the data-handling requirements from continu-
Directionality: If shapes are substantiallythe same, does ous to sporadic. That is, this style lies within two subspaces
control flow in the same direction as data or the opposite of our design space.
direction? In a data-flow system such as pipe-and-filter, Requests and replies between clients and servers.
control and data pass together from component to com- Clients and servers, a popular style, already occurs in Table
ponent. However, in a client-server style, control tends 1. It can already be seen to be a specialization of the CP
to flow into the servers while data flows into the clients. style in which the topologies, synchronicity, and mode are
3.5 Type of reasoning restricted from the general form. This is the naive form,
which ignores the usual requirement to maintain state for
Different classes of architectures lend themselves to an ongoing sequence of interactions between the client and
different types of analysis. A system of components oper- the server.
ating asynchronously in parallel yields to vastly different Back-and-forth (heartbeat) interaction between
reasoning approaches (e.g., nondeterministic state machine neighboring processes. A heartbeat algorithm causes each
theory) than a system that executes as a fixed sequence of node in the process graph to send information out (expand),
atomic steps (e.g., function composition). Many analysis and then gather in new information (contract). An example
techniques compose their results from analysis of substruc- of applying this algorithm is to discover the topology of a
tures, but this depends on the ability to combine sub-anal- network. On each “beat”, each process (representing a pro-
yses. The fit of an analysis technique to an architecture is cessor) communicates with everyone it can, broadcasting
enhanced if the software organization matches the analysis its idea of the topology. Between beats, every process as-
organization-that is, if software substructure and analysis similates the information just sent to it, combining it with
suejstructure are compatible. its current idea of the layout. The computation terminates
Thus, different architectural styles are good matches for when a completion condition has been met. Andrews pro-
different analysis techniques. Your choice of architecture poses two variations of this sub-style, depending upon
may be influenced by the kinds of analysis you require. whether or not shared memory is used. We model this form
of process interaction by restricting the synchronicity of the
CP style to lockstep-parallel (although asynchronous ver-

10

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.
sions are possible) and reflecting the shared-datddistribut- asynchronous, data mode to passed, and flow directions to
ed-data choice by describing the data and control same describes the probelecho sub-style.
topologies appropriately. Broadcasts between processes in complete graphs.
Probes and echoes in graphs. Probelecho cornputa- Broadcast algorithms use a distinguished process to send a
tions work on (incomplete) graphs. A probe is a miessage message to all other processes. An example is to broadcast
sent by a process to a set of successors; an echo is the reply. the value of a central clock in a soft-real-time system. Mod-
Probe/echo algorithms can be used to compute a depth-first elling the broadcast style in our classification simply re-
search on a graph, discover network topologies, or broad- quires restricting the data topology to star (for that portion
cast using neighbors. Specializing the CP style by restrict- of the computation involved in the broadcast) and the data
ing the topologies to an incomplete graph, synchronicityto mode to broadcast; the control topology remains arbitrary.

Table 2: Specializations of the interacting processes style

1
Constituent parts Control issues Data issues
Communicating ~

Process Style ing TOPO- 2ontin-


Specialization Comp- Connec- Topo- Synch-blBind- somor- Flow
onents tors logy“ ronicity timeC logy uity phic dir-
shapes ections
arb possi- either


I
bly
linear I asynch I linear passed yes same

star I synch I star passed

Heartbeat message
irocesses protocols
hier 1 Idpar 1 w, c, hier
r
or
star spar,
lvol
passed
shared

incom- w, c
Probelecho plete passed
graph
star
arb. passed

hier I synch I hier shared


a. Topology key: hier (hierarchical), arb (arbitrary), star, linear (one-way)
b. Synchronicity key: seq (sequential one thread of conltrol), ls/par (lockstep parallel), synch (synchronous), asynch (asynchro-
nous), oppor (opportunistic)
c. Binding time key: w (write-time-that is, in source code), c (compile-time), i (invocation-time), r (run-time)
d. Mode key: shared, passed, bdcast (broadcast), mcasi (multicast), ci/co (copy-inkopy-out)

Token passing along edges in a graph. ‘Tokenpassing the availability of services (for example, in case of the fail-
algorithms use tokens (a special kind of message) to con- ure or backlog of a single server). The essence of the algo-
vey temporal rights to the processes receiving the tokens. rithm is to provide the appearance to clients of a single,
Token-passing is used, for instance, in algorithms tio com- centralized server; this requires that the servers coordinate
pute the global state of a distributed asynchronous system, with each other to maintain a consistent state. One server
or to implement distributed mutual exclusion of a shared cannot change the “mutual)’ state without agreement of a
resource. Token-passing is a refinement of the CP style that sufficient majority of the others. This weighted voting
restricts the synchronicity to asynchronous, data mode to scheme is implemented by passing multiple tokens among
passed, and flow direction to same. The topologies remain the servers. Architecturally, this algorithm is identical to
arbitrary, and the continuity remains sporadic low-volume. the token-passing sub-style discussed above.
Coordination between decentralized server process- Replicated workers sharing a bag of tasks. Unlike
es. In this model, identical servers are replicated to increase decentralized servers that maintain multiple copies of data,

11

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.
this style provides multiple copies of computational ele- If in addition each stage is incremental, so that later
ments. The replicated-workers style is a primary tool for stages can begin before earlier stages finish, consider
single-instruction,multiple-data (SIMD) machines. To see a pipeline architecture.
SIMD algorithms as a sub-style of CP, we restrict the topol- If your problem involves transformations on continuous
ogies to hierarchical, the synchronicity to synchronous, streams of data (or on very long streams), consider a
mode to passed or shared (depending on whether or not pipeline architecture.
However, if your problem involves passing rich data
shared data is used) and flow direction to same.
representations, avoid pipelines restricted to ASCII.
5. Using styles in system design If a central issue is understanding the data of the applica-
tion, its management, and its representation, consider a
5.1 Styles in architectural design languages repository or abstract data type architecture. If the data is
Specific styles are supported by a variety of frame- long-lived, focus on repositories.
works and architectural description languages (ADLs) If the representation of data is likely to change over
[I 11. For instance, every ADL in one survey was able to ex- the lifetime of the program, then abstract data types
press a pipe-and-filter style, though few provided it as a can confine the change to particular components.
built-in primitive [7]. Some ADLs, however, go beyond If you are considering repositories, the input data is
that to support a diverse and open-ended (architect-de- noisy (low signal-to-noise ratio), and execution order
fined) collection of styles. Two languages do this: Aesop cannot be predetermined, consider a blackboard [23]
[lo] and UniCon [30]. If you are considering repositories and the execution
Aesop is an object-oriented notation and system for de- order is determined by a stream of incoming requests
veloping style-specific architectural development environ- and the data is highly structured, consider a database
ments. Its basic elements of architectural description are management system.
If your system involves controlling continuing action, is
components, connectors, and configurations. Styles are embedded in a physical system, and is subject to unpre-
created by subtyping; style-specific vocabularies of design dictable external perturbation so that preset algorithms
elements are created by defining the desired component go awry, consider a closed loop control architecture [32].
types as subtypes of the generic component, the desired If you have designed a computation but have no machine
connector types as subtypes of the generic connector, and on which you can execute it, consider an interpreter ar-
so on. Configuration rules are captured as part of the sub- chitecture.
type definitions. If your task requires a high degree of flexibilitytconfig-
UniCon also defines components and connectors as the urability, loose coupling between tasks, and reactive
basic elements. Here, however, the language provides a tasks, consider interacting processes.
collection of specific component and connector types. The If you have reason not to bind the recipients of signals
set is manually extensible, and specializations are defined from their originators, consider an event architecture.
via property lists. Styles will be defined as restrictions on If the tasks are of a hierarchical nature, consider a
the available vocabulary. replicated worker or heartbeat style.
If the tasks are divided between producers and
5.2 Choosing styles to fit the problem consumers, consider clientherver.
We expect that the distinctions established in this clas- If it makes sense for all of the tasks to communicate
sification provide a framework for offering design guid- with each other in a fully connected graph, consider a
ance of the general form, “If your problem has token passing style.
characteristic X, consider architectures with characteristic 6. Conclusion
Y”. This form of design guidance was explored for the user
interface component of systems by Lane [21], who was Architectural styles are becoming the linguufiunca of
able to recommend candidate implementations for a given architecture-level design, in the same way that design pat-
problem. The choice of an architectural style to fit a re- terns are moving to center stage in establishing the vocab-
quirement is a similar task. We expect that an approach ulary and defining the solution space for finer-grained
based on Lane’s will be fruitful. However, organizing this design problems. In order to capitalize on the shared expe-
information is a major undertaking for each domain. In the rience represented by the repeated use of styles by system
interim, we can at least state rules of thumb. Some of these builders, it is necessary to establish a common vocabulary
are stated explicitly in analyses of architectural styles by and a common descriptive framework for communicating
cited authors; others are observations that derive directly about styles and the circumstances in which they are usehl.
from our classification. This paper provides such a framework. Based on the
e If your problem can be decomposed into sequential stag- components and connectors that populate a style and how
es, consider batch sequential or pipeline architecturek. control and data are handled throughout the style, the
framework serves as a set of distinguishing features for
styles. Finer-grained distinctions may be made, leading to

12

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.
the notion of style families. We have shown how the frame- Software Systems, Workshop Summary. ACM Software Engi-
work accommodates two commonly-cited styles, commu- neering Notes 20(3):84-89, Jul 1995.
12. David Garlan, Gail Kaiser, and David Notkin. Using Tool
nicating processes and dataflow networks. Finally, we have Abstraction to Compose Systems. IEEE Computer, 25(6),
suggested how the framework can be used as the basis for June 1992.
imparting design guidance for choosing and using styles, 13. E. Gamma, R. Helm. R. Johnson, and J. Vlissides. Design Pat-
by identifying those features that dominate the problem at terns: Elements of Reusable Object-Oriented Sofhvare. Addi-
hand. The way is now open for future work, which ranges son-Wesley 1995.
from refinements of this classification and finer-girained 14. David Garlan and Mary Shaw. An Introduction to Software
Architecture. In Ambriola & Tortora (eds), Advances in So#-
characterizations of these and other styles, to building ware Engineering & Knowledge Engineering, vol. 11, World
style-based architecture-level design environments that in- Scientific Pub Co., 1993, pp.1-39.
clude analytical tools appropriate for each style. 15. C. Gerety. HP Softbench: A New Generation of Software
Development Tools. TR SESD-89-25, Hewlett-Packard SE
7. Acknowledgments System Division, Ft. Collins CO, November 1989.
16. Nico Habermann and David Notkin. Gandalf: Software
The style classification and collection of rules of thumb Development Environments. IEEE Tr on Software Engineer-
have been developed over a period of several years. We ing, vol SE-12, December 1986.
particularly appreciate the ongoing involvement of David 17. Frederick Hayes-Roth. Rule-Based Systems. Comm ACM,
Garlan, Rob DeLine, and Greg Zelesnik, our colleagues in 28(9):921-932,Sep 1985.
18. Michael JacksonSoftware Requirements and Specifications:
the Composable Systems research group, members of the A Lexicon of Practice, Principles, and Prejudices. Addison-
Software Architecture Reading Group and the studants in Wesley 1995.
Garlan and Shaw's software architecture course. 19. Rick Kazman, Paul Clements, Gregory Abowd, Len Bass.
Classifying Architectural Elements. Proc COMPSAC, 1997.
This work has been supported by the Wright Lablorato- 20. G. Krasner and S. Pope. A Cookbook for Using the Model-
ry, Aeronautical Systems Center, Air Force Materiel Com- View-Controller User Interface Paradigm in Smalltalk-80.
mand, USAF, and the Advanced Research Projects Journal of Object Oriented Programming, Aug/Sept 1988.
Agency, under grant F33615-93-1-1330 and by a grant 21. Thomas G. Lane. User Interface Software Structures. Ph.D.
from Siemens Corporation. It represents>the views of the Thesis, Carnegie Mellon University, CMU Computer Science
Technical Report CMU-CS-90-101, Jun 1987.
authors and not of Carnegie Mellon University or (any of 22. Hugh C. Lauer, Ed. H. Satterthwaite. Impact of MESA on
the sponsoring institutions. The Software Engineering In- System Design. Proc 3rd Int'l Con$ on Software Engineering,
stitute is sumorted bv the U. S. Department of Defense. May 1979.
23. H. Penny Nii. Blackboard Systems. AI Magazine 7(3):38-53
8. Bibliography and 7(4):82-107, 1986.
24. David L. Parnas. On the Criteria to be Used in Decomposing
1. Gregory D. Abowd, Robert Allen, David Garlan. Formalizing Systems into Modules. Comm. ACMvol 15, Dec 1972.
Style to Understand Descriptions of Software Architecture. 25. Mark C. Paulk. The ARC Network: A Case Study. IEEE SOB-
ACM Transactions on Software Engineering and Methodol- ware, 2(3):62-69, May 1985.
OD, 4(4):319-364, Oct 1995.
26. R. Prieto-Diaz, J. M. Neighbors. Module Interconnection Lan-
2. Robert Allen, David Garlan. Formalizing Architectural Con- guages. Jour Systems andsoftware, 6(4):307-334,Nov 1986.
nection. Proc 16th Int 'I Cnf on Software Engineering, 1994. 27. Dewayne E. Perry, Alexander L. Wolf. Foundations for the
3. Gregory R. Andrews. Paradigms for Process Interaction in Study of Software Architecture. ACM Software Engineering
Distributed Programs. ACM Computing Surveys, 23( 1:):49-90, Notes, 17(4):40-52, Oct 1992.
Mar 1991. 28. S. P. Reiss. Connecting Tools Using Message Passing in the
4. M. R. Barbacci, C. B. Weinstock, and J. M. Wing. Program- Field Environment. IEEE Software, 7(4):57-66, July 1990.
ming at the Processor-Memory-Switch Level. Proc 10th Int 'I 29. Mary Shaw (ed). Alphard: Form and Content. Springer-Ver-
Conf on Software Engineering, April 1988. lag, 1981.
5. Laurence J. Best. Application Architecture: Modern Large- Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L.
30.
Scale Information Processing. Wiley, 1990. Ross, David M. Young, Gregory Zelesnik. Abstractions for
6. Grady Booch. Object-Oriented Development. IEEE Tr. Soj- Software Architecture and Tools to Support Them. IEEE Tr
ware Engineering, February 1986, pp. 2 1 1-22 1. on Software Engineering, May 1995.
7. Paul Clements. A Survey of Architecture Description Lan- Mary Shaw and David Garlan. Software Architecture: Per-
guages. Proc Int 'I Workshop on Software Specification and 31.
spectives on an Emerging Discipline. Prentice-Hall 1996.
Design, Germany, 1996. Mary Shaw. Beyond Objects: A Software Design Paradigm
32.
8. James Coplien, Eric Schmidt (eds), Pattern Languages ofpro- Based on Process Control. ACM Software Engineering Notes,
gram Design, Addison-Wesley 1995. 20(1), Jan 1995.
9. Marek Fridrich,William Older. Helix: The Architecture of the 33. Mary Shaw. Some Patterns for Software Architectures. Pro-
XMS Distributed File System. IEEE Software, 2(3):21-2,9 ceedings of Second Workshop on Pattern Languagesfor Pro-
May 1985. gramming, Addison-Wesley 1996.
10. David Garlan, Robert Allen, John Ockerbloom. Exploiting 34. Alfred Z. Spector et al. Camelot: A Distributed Transaction
Style in Architectural Design Environments. Proc. Second
Facility for Mach and the Internet -An Interim Report. Carn-
ACM SIGSOFT Symp on Foundations of Software Engineer- egie Mellon University Computer Science Technical Report,
ing, Dec 1994.
Jun 1987.
11. David Garlan (ed). First Int'l Workshop on Architectures for

13

Authorized licensed use limited to: UNIVERSIDAD DE GRANADA. Downloaded on August 26,2020 at 22:21:01 UTC from IEEE Xplore. Restrictions apply.

You might also like