Documente Academic
Documente Profesional
Documente Cultură
Dilip
Architecture
Soni, Robert
L. Nerd,
{ dsoni, rnord,
Applications
and Christine
chofmeister}
Siemens
755 College
in Industrial
Corporate
Hofmeister
@scr.siemens.com
Research
Inc.
NJ 08540
Abstract
and concrete
architecture as it is practiced in the real world. The systems we surveyed included several image and signal prooperating
system,
real-time
cessing
systems,
a
communication
systems, and instrumentation
and control
systems [9, 13, 17]. These systems are listed in Table 1.
into
several
broad
categories:
conceptual
architecture,
module interconnection
architecture,
code architecture,
and
execution architecture.
engineering concerns.
capturing
architecture
with
of these sys-
is concerned
system architects
1.
Introduction
and architecture
Software architectures
platform
software provided
a virtual
posed into components, how these components are interconnected, and how they communicate and interact with
each other.
ware, different
When
poorly
understood,
these aspects of
software
software. Intuitively,
the
machine or an infra-
software.
soft-
stages of
ing one with little agreement over the definition of architecture. The only consensus seems to be that architecture is
of architectural
is an emerg-
properties.
perspective:
have
The module
interconnection
encom-
architecture
structures: functional
decompo-
examples
The
execution
architecture
describes
the
dynamic
structure of a system.
By architects,
the software
architecture,
196
architecture
as
System
Application
Domain
Size
Important
System Characteristics
user interface
small
window
B*
signal processing
medium
monitoring,
medium
high throughput
D*
signal processing
medium
monitoring,
E*
very large
high throughput
F*
computing
medium
management of distributed
environment
management
real-time
real-time,
safety-critical
information
(_&#
instrumentation
and control
large
instrumentation
and control
large
multi-processing
operating system
large
real-time
communication
very large
multi-processing
K*
communication
very large
distributed,
heterogenous,
safety-critical
multi-processing
small: fewer than 100 KLOC; medium: 100-500 KLOC; large: 500-1 MLOC; very large: more than 1 MLOC
1: Summary
.,.
ot the surveyed
.-
Systems
ties. However,
environment.
As shown in Table 2, not all of the systems have explicitl y described architectures for each category: in several
cases, the architectures are implicit in text, code, or one of
For this paper we describe portions of three of the systems surveyed: one was chosen as a prototypical example,
and the others were chosen for the richness of the architec-
descriptions.
the
and improved
to actual systems.
details
techniques,
example
of one of these
Code
Module
Execution
+C
full
describes portions
+
+a,b
tion of concerns
System
Conceptual
+
+b
+C
+o,b
K
a. mirrors conceptual,
c. mirrors execution,
Table
is a good intro-
of
the
architecture
we
found.
Section 3
as realized
in different
structures,
and
are combined.
The final section summarizes the description
techniques that were used to describe the software architectures.
b. mirrors module,
2.
variety
+b
in the
Four
Distinct
Software
Architectures
software architectures we found, we first put them in context by relating them to the historical development of software and offering examples of why they are needed and
how they are used (Table 3).
197
Examples of Influencing
Examples of Uses
Software
Architecture
Code
configuration
management,
system building,
programming
OEM pricing
Factors
language, development
Architecture
Module
Architecture
analysis, consistency
change impact
organization
struc-
environment
perfor-
config-
uration management
Execution
performance
Architecture
configuration
and schedtdability
hardware architecture,
mance criteria,
exe-
run-time
communication
mechanisms
cution environments
Conceptual
Architecture
formance estimation,
components
and connectors,
and
systems
with
building
a flexible
techniques [22]
product
structure
were
manipulate
information
(e.g.,
needed
tional components
[29], Polylith
architecture
[27],
categories,
when describing
and UNAS
and through
extensive
studies of the
and code. This model is informally
described in Figure
the rectangular
boxes represent
[28].
engineers
would
like
to be able to compose
soft-
Data Acquisition
Connector
OCompone.t
System B col-
mConnector
of the monitored
data. Safety
and
Figure
198
major
tem architect
documentation
In our software
diagrams depicting
In most of the systems we surveyed, conceptual architectures were implicit and embedded within the documen-
in our categorization.
programmers
the system in
describes
architecture
As systems became even larger and multiple programmers worked on a project, abstraction mechanisms, modinterconnection
structures
were
ules,
and
module
introduced.
The importance
of module interconnection
Intercol
system
Architecture
The conceptual
and
for System B.
2.1 Conceptual
introduced
to describe
performance
characteristics
design methods
of the system
Table
application
per-
analysis, under-
1: Conceptual
Architecture
of System B
Connection
RequestlAck
1
System B
...
...
1
...
Data
Acquisition
...
Logging
Service
Clock
Service
1
F&
Report
Generator
2: Decomposition
Figure
Connector in System B
connectors
nents.
Both
(i.e. interfaces
and protocols)
components
Figure
and connectors
2 demonstrates
connector in Figure
3: Functional
between compo-
how
the
and connec-
data
a data acquisition
tion modules are assigned to the top two layers (Figure 4).
The layers in the architecture represent allowable inter-
decom-
can be further
components
acquisition
of a connector representing
in terms
protocol
and
using state
other components.
transition
Display
Manager
Figure
Database
Manager
1
This protocol
is described
2.2 Module
Architecture
supports programming-in-the-
structures:
func-
decomposition
ma
decom-
constraints.
I Interrupt
Service Modules
and operating
system)
bottom-up
The dominant
and internal
building
relationship
and testing
and
a component
architecture
may be imple-
is implemented_by:
of various subsystems.
programming
of a conceptual
connector
is
can also be
implementation
into a collection
into
structure.
software
system modules
of the
of its connecting
components.
of the system is
2.3 Execution
Architecture
199
v
ksk====
~ --!2 E!iiYi!m
.-q
System B
include
files
@@
Printer
Report
Generator
Task
Database
Manager
Task
Service
Task
Rm
OS task
3 queue
5: Execution
Figure
Architecture
of System B
decisions here
requirements,
are performance,
distribution
time environment,
implementation
ing system
architecture
is a prominent
architecture
(Figure
run-time elements in the execution architecture. In addition, each of the run-time elements in the exespecific modules in
cution architecture is implemented_by
the module architecture.
part of the
2.4 Code Architecture
from
the detailed
More information
environment
diagram
to reference
accompanying
architecture.
installation,
to minimize
the
element
relation
as~igned_to,
in the execution
can be related to a
architecture
architecture
dependencies
using the
mecha-
constrain
and the
system
building,
management.
(e.g.,
as part
compilation)
Other
uses are
among
constraints
use
system
sub-
specified
For System B, the organization of the source code mirrors the functional decomposition of the module architecture of the application. The code architecture (Figure 6)
consists of directories for include files (defining interfaces), common library functions and source code. The
is to facilitate
and configuration
not described
We found
order of communication
among the tasks. These diagrams
are similar to object interaction diagrams used in object-oriented analysis [18].
run-time
management),
it is generally
architecture.
of this architecture
systems,
of the software
shown using control and data flow diagrams. The paths are
numbered
(e.g., configuration
the surveyed
and asynchro-
of the execution
files, and
the source
directories,
is used to organize
nous communication
constrains
assigned_to
ducers or consumers,
mechanisms
connector is implemented.
example of an execution
module architecture
and connec-
The relationship between module and execution architectures is similar. Modules in the module architecture are
B illustrates
components
and communication
of conceptual
of System B
software architecture
6: Code Architecture
Figure
the
200
and system
The relationship
characterized
abstract program
mented_by
tures is simply
Each
by implemented_by.
tions
is imple-
to manage complexity,
between
the
manipulation
3.
descriptions,
and
of the descriptions
Separation
establish
correspondences
facilitate
analysis
and
[32].
of Concerns
2.5 Summary
separation
of concerns
has powerful
advantages
when
cise description
in Figure 7.
times
Separation of concerns
[20].
reflective
systems
though
decisions taken
in the development
process
time, build
time,
(e.g.,
Each is developed
different
each architecture
each architecture
purposes by
reflects imple-
exploitation
is expected to
by
systems we studied:
of commonalities
in product families,
tecture.
their interconnections,
Each architecture
simplify
indepen-
in orcler to facili-
of concurrent
by separating functionality
programmers,
set of components,
A similar
is defined
separating design concerns such as locality and synchronization. The separation of design concerns is accomplished
by using abstractions to specify coordination patterns, and
an object
environment,
rency abstractions
Each is influenced by different engineering and organizational factors such as clarity, reducing dependencies
among programming tasks, evolution, or performance.
or run
time).
evolution
and
due to evolving
nologies.
using a
Our observation
kinds of
architectures
for architectures
in each of
I Conceptual
components,
Architecture
Execution
Architecture
+4
subsystems, modules,
exports, imports, ...
,
*
implemented_by
tasks,
threads,
IPC, RPC,
~
assigned_to
Architecture
Source
+
conjigured_by
.,.
,,
located_in
Code
Figure
7: Relationships
201
+
LHardware
Architecture
resourc e_resides_on
assigned_to
implemented_by
Code
II
implemented_by
Module
processors,
networks,
memory,,
disks,...
Components
Interconnections
Engineering
Conceptual
domain-specific
domain-specific
constraints
Architecture
components
interconnections
Module
systems, subsystems,
component_of,
Architecture
modules, layers
export_to
Execution
inter-process
Architecture
member_of,
includes, contains,
compilation
linked_with,
compiled_into,
management
Software
Criteria
Architecture
import_from,
functional
on cycles, requirements
decomposition
on throughput
information hiding and abstraction, when to use mukiple interfaces, constraints imposed by layering strategy
communication,
message queues
Code
files, directories,
Architecture
libraries,
linker
packages,
program libraries
4: Characterizations
Table
the development
environment
architectures to
the relationship
of control
variables,
and open/
diagram
consists of a small number of interconnected basic functional blocks (Figure 8). These functional blocks are the
these architectures.
basic
in the surveyed
systems. Next
we describe
The architecture
architecture.
a well-
each performing
System G explicitly distinguishes between the conceptual and execution architectures. To organize the execution
conceptual
a group of functional
verification
functionality,
Architectures
of
architec-
units
tual
representa-
provided
of various
machine
by the Run-time
Environment.
Environ-
disciplines.
architecture
Such verification may include verification against the system requirements, checking syntactic consistency, and validation with a system simulator.
mechanisms.
Author
Date
Figure
8: Example
Remarks
of a Functional
Planname
Diagram in
Figure
System G
9:
An Overview
of the Execution
System G
202
Architecture
in
one-to-one
many-to-one
Functional
part of
is <c,,
* a
constrains
Figure
Layer
System
relationship
c
~-~
Decomposition
Structure
lLayer~ll
Notation for
Relationships
System G is the best illustration
(I&C)
functions
protocols
architecture
facilitates
the
~J
is assigned to
Language Level
Module
-
architecture is preserved and/or traceable in the code, making it possible to update and replace any Group Module at
Figure
build time.
Separating out the complex protocols supporting faulttolerance and synchronization made the protocols amenable
cation software of the system is decomposed into subsystems that are further decomposed into subsystems, until
reaching the lowest level abstract modules called Service
to formal modeling and analysis, and simplified their implementation and verification.
Through the use of extended
finite state machines (e.g. Statecharts [15]), several errors in
the protocols
separation
functional
code
also simplified
the manual
related
Provision
to
implementation
Environment,
synchronization
and
of
is
located elsewhere.
Finally, separation of the execution architecture
connections
from the
machine that executes functional diagrams also made it easier to change the platform software (e.g. operating system
without
affecting
the application
its multilevel
and restricting
soft-
reconfigurable
Architectures
and execution
between
notation.
tionality
decomposition
structure are then assigned to a layer,
thereby constraining the SPUS interfaces and dependen-
we use an
Components
in boxes),
interestarchitec-
(shown
between components
into
SPUS. The
are rep-
resented as entities
in Figure
interplay
layer model is designed before any functional decomposition takes place, and is used to guide partitioning of func-
entity -relationship-attribute
an interesting
System K illustrates
software framework).
An SPU is an abstract module class created by the system architects. SPUS contain a mix of implementation lan-
and communication)
by an SPU
since the
fault-tolerance
SPUS from
constrains
the
functional
and relationships
10.
203
Processing
platform
Capsule i
I Capsule 1
I
I
Active Element
(e.g. OS process
or task)
Data Element
(e.g. buffer,
disk storage)
Module
Instance
(e.g. SPU
instance)
Other
Resources
h
Figure
Ai.rh
SPU m
IIB
nil.
ISPU1
OS kernel
of the
in System K
Architecture
Communication;
ability,
arated from
tial
mentations
tion
to
changes
grouping
architecture
the
based on CPU
architecture
other
inter-process
Combining
architectures
of capsules
allocation
based on functional
adaptation
of
Description
Techniques
software
and developers
and semi-formal
architectures.
This
use a
techniques
is not
to
surprising
of
related
the
execution architectures.
to the code.
decisions
facilitates
communi-
Careful sepa-
alternate
reflects
related to protocols,
decisions
Architecture
describe
such
combination
Summary
of
We found
to
communica-
and migration
any changes
order
SPU imple-
allows
evolv-
sep-
of potenIn
architecture,
SPUS. This
capsules
without
in anticipation
architecture.
to the execution
with
K is explicitly
can limit
to change over to
4.
of System
execution
of SPUS into
to other processors
3.3
to processors
use loosely-coupled
for interaction
ration
resources. Cap-
requirements.
its module
changes
facilitate
assigned
architectures
and ability
decisions
cation mechanisms,
and therefore a
need of computational
and timing
The execution
implementation
related cumulative
combining
reconfigurability,
system units
13:
In summary,
with oth;r
Figure
grouping
Execution
total processing
II
plete diagrams,
to task
of
rela-
The disadvantages
tionships.
niques
are described
module architecture is made to mirror the execution architecture, the module architecture must change in response to
systems.
descriptions,
inconsistencies
architecture
based software
204
Among
be used
development
of detecting
between
without
to describe
to support
activities.
tech-
was borne
traceability
In addition,
language
cannot
description
and this
and establishing
and an unambiguous
automated
of using informal
in the literature,
the
a rigorous
architectures,
architecture-
informally.
problems
when architec-
It is difficult
to recognize
and exploit similarities between architectures of other products within a product family. Conversely, it is easy to blur
the distinction
the descriptions
architectures
For describing
between
when
being
are informal.
used:
hybrid
4.1 Describing
Software
mirroring
structures,
mechanisms
Architectures
When explicitly
model.
machines
System
uses extended
to model
finite
state
between components
have sublayers,
in different
to model
structure
boxes. Adjainterfaces
in separate dia-
is often embedded
buffers,
execution
transition
in the code
and communication
and these
given rep-
architecture
of the layer
to describe the
among them.
models
(from
architecture).
Conclusions
mecha-
of execution architecture
of soft-
ware architecture
networks
architecture
architecture.
architecture)
is often superimposed
on the module
K is superimposed
Again
a notable exception
of formal
notations
while architecture
uses a
descriptions
to describe
of
systems stud-
This presenta-
on its layer
is System G, which
and informal
applications.
in industrial
the
the execution
5.
to combine
diagrams
These informal
diagrams
that superimpose
architecture
processes,
the architectures
architecture or in configuration files used by system building tools. Execution architectures are informally
documented using a variety of techniques, including text, tables,
and informal diagrams. Such diagrams depict operating
system
for
entity-relationship-attribute
architec-
the func-
its execution
described
For example,
of System B mirrors
resentations
tion of techniques.
The functional
decomposition
is
described using decomposition
hierarchies
(e.g. trees,
TeamWork process diagrams), tables, and text. Layers are
usually
Several
explicit
the relationship
between two architectures,
hybrid structures can be derived automatically
protocols.
The module architecture
another,
using
voter-checker
methods
after
correspondence
one architecture
tional decomposition
architecture.
several
architecture
is
major system
one
and
and correspondences
we found
systems mirror
usually an informal
the relationship
the architectures,
The various architectures describe the system from different perspectives, they are characterized by different
run-time
elements (e.g. telegrams, buffers) of the execution architecture, and the hardware architecture are modeled using an
entity-relation ship-attribute model.
times in the
205
[6]
the components
and interconnections
[7]
used to describe
describes
how
[8]
definition
[9]
the
description
and analysis)
approaches
need to be developed
[11]
[12]
[13]
rig-
[14]
[16]
[17]
(eds.). Research
Programming,
[19]
to software
1992.
M.R. Barbacci,
Program-
C.B. Weinstock,
[20]
[4]
[5]
C.G. Bell
[21]
in Software
software components
and A. Newell.
Computer
and KnowG(editors),
New Jer-
for complex
Volume 8, pages
sys-
1987.
C.H.
Dorset
Hoogendoorn
House Publishing,
and A.T.
for an ATM
Maher.
universal
New
York,
R.H.
Japan, October
Katz,
Information
G. Kiczales,
[22]
1992.
Software
Management
J. des Rivieres,
Protocol,
[23]
programming
of distributable
International
E. Mettala
and M.H.
ware architecture
1971.
206
1992.
for
Engineering
The Art of
- a framework
for
systems, In Proceedings
Conference
on Computer
Sys-
Software
architecture
of the Third
Readings
Engineering
J. Kramer. Configuration
node,
Sympo-
1985.
with declara-
software
Switching
Addison-Wesley,
1988.
Enhanced
communication
of the IEEE
International
Structures:
to software archi-
Engineering
the development
pp. 266-
the Metaobject
level. In Proceedings
German
of Fault-Tolerant
Nurnberg,
Design, Springer-Verlag,
architectures,
Algorithms,
Software, Architecture,
J. van
Leeuwen (editor), Information
Processing 92, Volume 1,
[3]
system, in Proceedings
9:255-265,
1991.
sium, Yokohama,
approach
computer
and Experience,
Systems, Springer-Verlag,
architecture
A formal
-TR-7, Carn-
1988.
[18]
and D. Garlan.
18-22,
tem Specification,
References
R. Allen
19 (3):
1979.
Proceedings
[2]
Notes,
of the
Specification
sey, 1993.
Object-Oriented
sys-
Succeeding
on Software
231-274,
in Concurrent
in real-time
edge Engineering,
V. Ambriola and G. Tortora
Vohrme 1, World Scientific Publishing Company,
Directions
Sof~are
Workshop on Real-Time
Engineering
P. Feiler. Configuration
tecture, in Advances
[15]
and A. Yonezawa
Systems by
Workshop
Software
Computing
effectiveness.
P. Wegner,
Software
architectures
of the First
IEEE Computer
287, September
G. Agha,
Software
reactor protection
to describe these
Acknowledgments
[1]
verorr Soft-
on Automating
November
Workshop
software architectures, so that they can be analyzed to predict and assure non-functional
system properties. It then
becomes possible to design, implement,
of an
September
will
29-36,
July 1994.
(such as formal
P.J. Drongowski.
and Design.
is crucial.
Seventh International
This separation accurately reflects the practice in development of real software systems, and the reasons for the separation become clear upon studying these systems.
facilitate
R. DIppolito
Applications,
[10]
specification
pages
tems. In Proceedings
of software architecture,
ing structures
A formal
Software,
Domains, AAAI-92
Design, July 1992.
IEEE
sus programming-in-the-small.
IEEE Transactions
ware Engineering, SE-2 (2): 80-86, June 1976.
While
and D. Garlan.
1990.
in
elements,
N. Delisle
oscilloscope,
these architectures.
analysis:
International
Management,
Trond-
program,
The domain-specific
Technical
Report,
soft-
CMU/SEI-
[24]
K. Narayanaswamy
tions of evolving
Software
.Software Engineering,
[25]
University,
Engineer-
systems. IEEE
SE-13(3),
ware architecture,
ACM
configura-
Transactions
SIGSOFT
Software
Module
1992.
6(4):307-
available
as Technical
of Maryland,
IEEE Computer
Computing,
University
distributed
of Alberta,
applications,
Dept.
Workshop on
Society,
In Proceedings
IEEE Computer
in Proceedings
on Software
of the Workshop on
approach to soft-
Specification
and Design,
they are among the systems for which we Ihad the most
1993.
information.
interconnection.
Conference
6. We distilled
In Proceedings
control
92),
Appendix
Computer,
Technical
Massachusetts,
from
This template
appears in
C.
pages 66-73,
8. We then sent the technical report to the designers and
1987.
architects of the systems for their comments, and modified it based on these comments. The internal report
template.
based on module
on So@ware Engineering,
the information
using a structured
July 1992.
architectures
Society, December
on software
discussion
We
to struc-
where the architects described and discussed the architecture of their systems.
Many faces of
in LNCS).
ware architectures,
B.
[31] M. Shaw. Larger scale systems require higher level abstractions, in Proceedings
we intended
appears in Appendix
real-time
Software Specification
read
of
1993.
methodology
and engineers,
to architects
Report UMIACS-
May 1990.
for
in industry, As a part of
1986.
University
interconnection
tional
Study
software
forthe
Engineering
model
Process
[26] R. Prieto-Diaz
for
on
March 1987.
TR-90-65,
June 1992.
Report COINS-TR-85-23,
University
of
1985.
[38] Y. Yokote. The Apertos reflective operating system: the concept and its implementation,
pages 414-434, October
In Proceedings
of 00PSLA
92,
1992.
207