Software Architectural General Model

You might also like

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

The Journal of Systems and Software 80 (2007) 106–126

www.elsevier.com/locate/jss

A general model of software architecture design derived


from five industrial approaches
Christine Hofmeister a, Philippe Kruchten b,*, Robert L. Nord c, Henk Obbink d,
Alexander Ran e, Pierre America d
a
Lehigh University, Bethlehem, PA, USA
b
University of British Columbia, 2332 Main Mall, Vancouver, BC, Canada V6T 1Z4
c
Software Engineering Institute, Pittsburgh, PA, USA
d
Philips Research Labs, Eindhoven, The Netherlands
e
Nokia Research Center, Cambridge, MA, USA

Received 1 January 2006; received in revised form 8 May 2006; accepted 12 May 2006
Available online 5 July 2006

Abstract

We compare five industrial software architecture design methods and we extract from their commonalities a general software archi-
tecture design approach. Using this general approach, we compare across the five methods the artifacts and activities they use or recom-
mend, and we pinpoint similarities and differences. Once we get beyond the great variance in terminology and description, we find that
the five approaches have a lot in common and match more or less the ‘‘ideal’’ pattern we introduced. From the ideal pattern we derive an
evaluation grid that can be used for further method comparisons.
 2006 Elsevier Inc. All rights reserved.

Keywords: Software architecture; Software architecture design; Software architecture analysis; Architectural method

1. Introduction Since many of the design methods were developed inde-


pendently, their descriptions use different vocabulary and
Over the last 15 years a number of organizations and indi- appear quite different from each other. Some of the differ-
vidual researchers have developed and documented tech- ences are essential. Architecture design methods that were
niques, processes, guidelines, and best practices for developed in different domains naturally exhibit domain
software architecture design (Bass et al., 2003; Bosch, characteristics and emphasize different goals. For example
2000; Clements et al., 2002a; Clements and Northrop, architectural design of information systems emphasizes
2002; Dikel et al., 2001; Garland and Anthony, 2002; data modeling, and architecture design of telecommunica-
Gomaa, 2000). Some of these were cast and published as tion software emphasizes continuous operation, live upgrade,
architecture design methods or systems of concepts, pro- and interoperability. Other essential differences may include
cesses and techniques for architecture design (Hofmeister methods designed for large organizations vs. methods suit-
et al., 1999; Kruchten, 2003; Obbink et al., 2000; Ran, 2000). able for a team of a dozen software developers, methods
with explicit support for product families vs. methods for
*
one of a kind systems, etc.
Corresponding author. Tel.: +1 604 827 5654. On the other hand, all software architecture design meth-
E-mail addresses: crh@eecs.lehigh.edu (C. Hofmeister), pbk@ece.ubc.-
ca (P. Kruchten), rn@sei.cmu.edu (R.L. Nord), henk.obbink@philips.com
ods must have much in common as they deal with the same
(H. Obbink), alexander.ran@nokia.com (A. Ran), pierre.america@phi- basic problem: maintaining intellectual control over the
lips.com (P. America). design of software systems that: require involvement of

0164-1212/$ - see front matter  2006 Elsevier Inc. All rights reserved.
doi:10.1016/j.jss.2006.05.024
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 107

and negotiation among multiple stakeholders; are often architectural tactics and patterns are chosen to satisfy a set
developed by large, distributed teams over extended periods of quality attribute scenarios (see Fig. 1). The architecture
of time; must address multiple possibly conflicting goals designed using the ADD method represents the high-level
and concerns; and must be maintained for a long period design choices documented as containers for functionality
of time. It is thus of significant interest to understand the and interactions among the containers using views. The
commonalities that exist between different methods and to nature of the project determines the views; most commonly
develop a general model of architecture design. Such a one or more of the following are used: a module decompo-
model would help us better understand the strengths and sition view, a concurrency view, and a deployment view.
weaknesses of different existing methods as well as provide The architecture is critical for achieving desired quality
a framework for developing new methods better suited to and business goals, and providing the framework for
specific application domains. achieving functionality.
With this goal in mind, we selected five different meth- Architects use the following steps when designing an
ods: Attribute-Driven Design (ADD) Method (Bass architecture using the ADD method:
et al., 2003), developed at the SEI; Siemens’ 4 Views
(S4V) method (Hofmeister et al., 1999), developed at Sie- 1. Choose the module to decompose. The module to start
mens Corporate Research; the Rational Unified Process with is usually the whole system. All required inputs
4 + 1 views (RUP 4 + 1) (Kruchten, 1995, 2003) developed for this module should be available (constraints, func-
and commercialized by Rational Software, now IBM; tional requirements, quality requirements)
Business Architecture Process and Organization (BAPO) 2. Refine the modules according to these steps:
developed primarily at Philips Research (America et al., a. Choose the architectural drivers from the set of con-
2003; Obbink et al., 2000), and Architectural Separation of crete quality scenarios and functional requirements.
Concerns (ASC) (Ran, 2000) developed at Nokia Research. This step determines what is important for this
We also assembled a team of people who have made signif- decomposition.
icant contributions to developing and documenting at least b. Choose an architectural pattern that satisfies the driv-
one of the methods. Through extensive discussions focused ers. Create (or select) the pattern based on the tactics
on how typical architecture design tasks are accomplished that can be used to achieve the drivers. Identify child
by different methods, we have arrived at a joint under- modules required to implement the tactics.
standing of a general software architecture design model c. Instantiate modules and allocate functionality from
that underlies the five methods. In this paper we document use cases, and represent the results using multiple
our understanding of what seems to be fundamental about views.
architecture design.1 d. Define interfaces of the child modules. The decompo-
This paper is organized as follows. We introduce the five sition provides modules and constraints on the types
contributing methods in Section 2. Then in Section 3 we of module interactions. Document this information
present a general model of architecture design. Section 4 in the interface document of each module.
describes the five contributing methods using terms and e. Verify and refine the use cases and quality scenarios
concepts of the general model, and discusses the common- and make them constraints for the child modules.
alities and differences between the contributing methods. This step verifies that nothing important was forgot-
Section 5 describes how other software architecture meth- ten and prepares the child modules for further decom-
ods can be compared against the general model using a position or implementation.
grid, and applies the grid to another published method. 3. Repeat the steps above for every module that needs further
Section 6 discusses related work, Section 7 proposes future decomposition.
work, and Section 8 concludes the paper.
Fig. 2 shows how the ADD method fits together with the
other SEI architectural design activities. The Quality Attri-
2. Five industrial software architecture design methods bute Workshop (QAW) (Barbacci et al., 2003) helps in
understanding the problem by eliciting quality attribute
2.1. Attribute-Driven Design requirements in the form of quality attribute scenarios.
The Views and Beyond (VaB) approach (Clements et al.,
The Attribute-Driven Design (ADD) method (Bass 2002a) documents a software architecture using a number
et al., 2003), developed at the SEI, is an approach to defin- of views based on stakeholders’ needs. The Architecture
ing software architectures by basing the design process on Tradeoff Analysis Method (ATAM) (Clements et al.,
the architecture’s quality attribute requirements. 2002b) provides detailed guidance on analyzing the design
In ADD, architectural design follows a recursive decom- and getting early feedback on risks. The figure does not
position process where, at each stage in the decomposition, show how these methods are used in the context of an orga-
nization’s own architecture process (see (Kazman et al.,
1
A shorter version of this work was presented at WICSA (Hofmeister 2004; Nord et al., 2004) for examples of relating ADD to
et al., 2005a). the Rational Unified Process and Agile methods).
108 C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126

Fig. 1. Recursively designing the architecture using ADD.

Fig. 2. ADD in relation with other SEI architectural design activities.

2.2. Siemens’ 4 views ments and anticipated future enhancements. Global


properties such as performance and dependability are
The Siemens Four-Views (S4V) method (Hofmeister addressed here as well as in the execution view. The
et al., 1999; Soni et al., 1995), developed at Siemens Corpo- system’s relationship to a product family, the use of COTS,
rate Research, is based on best architecture practices for and the use of domain-specific hardware and/or software
industrial systems. The four views (conceptual, execution, are all addressed in the conceptual view as well as in the
module and code architecture view), separate different engi- module view.
neering concerns, thus reducing the complexity of the For the module view, modules are organized into two
architecture design task. orthogonal structures: decomposition and layers. The
In the conceptual view, the product’s functionality is decomposition structure captures how the system is logi-
mapped to a set of decomposable, interconnected com- cally decomposed into subsystems and modules. A module
ponents and connectors. Components are independently can be assigned to a layer, which then constrains its depen-
executing peers, as are connectors. The primary engineer- dencies on other modules. The primary concerns of this
ing concerns in this view are to address how the system view are to minimize dependencies between modules, max-
fulfills the requirements. The functional requirements imize reuse of modules, and support testing. Another key
are a central concern, including both the current require- concern is to minimize the impact of future changes in
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 109

COTS software, the software platform, domain-specific


hardware and software, and standards. Organizational Factors Design of other
Technological Factors Architecture Views
The execution architecture view describes the system’s
Product Factors
structure in terms of its runtime platform elements (e.g.,
OS tasks, processes, threads). The task for this view is
to assign the system’s functionality to these platform
new factors,
elements, determine how the resulting runtime instances issues, or Architecture View Design
communicate, and how physical resources are allocated strategies
to them. Other considerations are the location, migration, Global Design and
and replication of these runtime instances. Runtime prop- Analysis Evaluation Tasks
Issue
erties of the system, such as performance, safety, and Cards
replication must be addressed here.
The last view, the code architecture view, is concerned Fig. 3. Workflow between Global Analysis and Architecture View Design.
with the organization of the software artifacts. Source com-
ponents implement elements in the module view, and
deployment components instantiate runtime entities in order to answer a specific question, such as cost prediction,
the execution view. The engineering concerns of this view risk assessment, or some specific comparison or tradeoff.
are to make support product versions and releases, mini- This typically involves other stakeholders in addition to
mize effort for product upgrades, minimize build time, the architect. Global Analysis provides inputs to this kind
and support integration and testing. of architecture evaluation, for example: business drivers,
These views are developed in the context of a recurring quality attributes, architectural approaches, risks, trade-
Global Analysis activity (Hofmeister et al., 2005b). For offs, and architectural approaches.
Global Analysis, the architect identifies and analyzes fac-
tors, explores the key architectural issues or challenges, 2.3. RUP’s 4 + 1 Views
then develops design strategies for solving these issues.
The factors that influence the architecture are organized The Rational Unified Process (RUP) is a software
into three categories: organizational, technological, and development process developed and commercialized by
product factors. The purpose of the categories is to help Rational Software, now IBM (Kruchten, 2003). For RUP
the architect identify all influencing factors, including not ‘‘software architecture encompasses the set of significant
just requirements but also desired system qualities, organi- decisions about the organization of a software system:
zational constraints, existing technology, etc. These factors
are analyzed in order to determine which factors conflict, • selection of the structural elements and their interfaces
what are their relative priorities, how flexible and stable by which a system is composed,
is each factor, what is the impact of a change in the factor, • behavior as specified in collaborations among those
and what are strategies for reducing that impact. elements,
From these factors the key architectural issues or chal- • composition of these structural and behavioral elements
lenges are identified; typically they arise from a set of factors into larger subsystem,
that, taken together, will be difficult to fulfill. Issues can arise • architectural style that guides this organization.
when factors conflict, or when certain factors have little flex-
ibility, a high degree of changeability, or a global impact on Software architecture also involves: usage, functionality,
the system. The architect need not necessarily identify and performance, resilience, reuse, comprehensibility, economic
analyze all factors before identifying the key issues. Some- and technology constraints and tradeoffs, and aesthetic
times it is more fruitful to let an issue give rise to a number concerns.’’ RUP defines an architectural design method,
of factors, or to alternate between these two approaches. using the concept of 4 + 1 views (RUP 4 + 1) (Kruchten,
The next step is to propose design strategies to solve the 1995): four views to describe the design: logical view, pro-
issues, and to apply the design strategies to one or more of cess view, implementation view and deployment view, and
the views. Strategies often involve applying software engi- using a use-case view (+1) to relate the design to the
neering principles, heuristics, and architectural patterns context and goals (see Fig. 4).
or styles to solve the problem. When a strategy is applied In RUP, architectural design is spread over several
to a particular part of a view, we call it a ‘design decision’. iterations in an elaboration phase, iteratively populating
During design, the design decisions must be evaluated, the 4 views, driven by architecturally significant use cases,
particularly for conflicts and unexpected interactions. This non-functional requirements in the supplementary specifi-
evaluation is ongoing. Thus Global Analysis activities are cation, and risks (see Fig. 5). Each iteration results in an
interleaved with view design activities, and the design activ- executable architectural prototype, which is used to validate
ities of each view are also interleaved (see Fig. 3). the architectural design.
In contrast to the ongoing evaluation that is part of the Architectural design activities in RUP start with the fol-
design process, periodic architecture evaluation is done in lowing artifacts, which may not be finalized and still evolve
110 C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126

End-user, designers Programmers And the RUP also provides activities related to the doc-
Functionality Software management
umentation of the architecture in each of the 5 views shown
Implementation in Fig. 4.
Logical View
View More recently (Rozanski and Woods, 2005) have added
perspectives to RUP’s views and viewpoints, to more effec-
Users/Analysts/Testers Use Case
Behavior View tively capture certain quality properties, in a way similar to
architectural aspects or SEI’s tactics (Bass et al., 2003).
Process Deployment
View View
2.4. Business architecture process and organization
System Integrators System Engineering
Performance System topology
Scalability Delivery, installation The BAPO/CAFCR approach (America et al., 2003;
Communication Muller, 2005; Obbink et al., 2000; van der Linden et al.,
2004), developed primarily by Philips Research, aims at
Fig. 4. RUP’s 4 + 1 views.
developing an architecture (the A in BAPO) for software-
intensive systems that fits optimally in the context of busi-
Business Use Cases ness (B), (development) process (P), and organization (O).
Ideally the entities at the right side of the BAPO acronym
High Level should be driven by and support the entities at their left
Use-case view
(see Fig. 6), even though this does not always work in prac-
System Use Cases Scenarios tice, so that the architecture must fit into a given context of
Objects Logical view business, process, and organization.
Classes
Abstraction
For the architecture, the five CAFCR views are defined:
Instance
Customer, Application, Functional, Conceptual, and Real-
Processes Process view ization. These views bridge the gap between customer
Implementation Sources
or code view
needs, wishes, and objectives on the one hand and techno-
logical realization on the other hand.
Processors Deployment view In BAPO/CAFCR, the architect iteratively: (1) fills in
information in one of the CAFCR views, possibly in the
Low Level
form of one of the suggested artifacts; (2) analyzes a partic-
Fig. 5. Iteratively populating the five views. ular quality attribute across the views to establish a link
between the views and with the surrounding business,
during the architectural design: a vision document, a use- processes and organization (see Fig. 7). To counteract the
case model (functional requirements) and supplementary tendency towards unfounded abstraction, specific details
specification (non-functional requirements, quality attri- are often explored by story telling. The reasoning links
butes). The three main groups of activities are: valuable insights across the different views to each other.
The architecture is complete when there is sufficient infor-
(1) Define a Candidate Architecture mation to realize the system and the quality attribute
This usually starts with a use-case analysis, focusing analysis shows no discrepancies.
on the use cases that are deemed architecturally sig- At a larger scale, the processes described in the BAPO/
nificant, and with any reference architecture the orga- CAFCR approach deal with the development of a product
nization may reuse. family in the context of other processes in a business.
This activities leads to a first candidate architecture
that can be prototyped and used to further reason 2.5. Architectural separation of concerns
with the architectural design, integrating more ele-
ments later on. Architectural separation of concerns (ASC) or ARES
(2) Perform Architectural Synthesis System of Concepts (Ran, 2000), developed primarily by
Build an architectural proof-of-concept, and assess its Nokia, is a conceptual framework based on separation of
viability, relative to functionality and to non-func- concerns to manage complexity of architecture design.
tional requirements. Fig. 8 illustrates the ASC model of architecture-centered
(3) Refine the Architecture development. Development goals affect architectural deci-
Identify design elements (classes, processes, etc.) and sions. Architectural decisions are represented by architec-
integrate them in the architectural prototype ture descriptions. Architecture descriptions are used to
Identify design mechanisms (e.g., architectural pat- verify architectural decisions. Architecture description
terns and services), particular those that deal with and implementation must be consistent. A validation pro-
concurrency, persistency, distribution. cess exists to determine consistency of architecture and
Review the architecture. implementation. Information regarding achievement of
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 111

B A P O
Business Architecture Process Organization

Policy and
Planning

Product
commercial views Family Responsibility:
Responsibility: Engineering family architecture
reusable assets
Responsibility:
Platform Product product
C A F C R Engineering Engineering
Customer Application Functional Conceptual Realization
View View View View View Technology Customer
and People Oriented
Management Process

technical views

Fig. 6. The BAPO/CAFCR framework.

method outline method visualization

framework
Customer Application Functional Conceptual Realization

submethods + key drivers


+ value chain
+ business models
+ stakeholders
and concerns
+ context diagram
+ use case
+ commercial, logistics
decompositions
+ construction
decomposition
+ functional
+ budget
+ benchmarking
+ performance
+ supplier map + entity relationship + mapping technical decomposition analysis
models functions + information model + safety analysis

and artifacts + dynamic models and several more and many more and many more

integration safety

performance
via qualities

market a priori solution know-how


explore vision
use detailed
story
specific details analyse case analyse design
design design

image render
diagnostic IQ spec S
quality engine P'
quality U M
U" typical CPU
throughput processing
case budget
U' purchase P library
pixel
CoO
reasoning T
price BoM Moore's
law
memory budget M'
memorydepth
limit
B
profit margin common
standard workstation console

Fig. 7. Elements of the CAFCR method.

development goals is obtained once the implementation is goal and indicate how the goal constrains software
available. architecture.
Stakeholder goals need to be analyzed and if determined Software goes through a transformation cycle that con-
to have an effect on software architecture, the goals need to sists of separate segments. During the design or develop-
be refined into architecturally significant requirements ment segment, the software is source code. During the
(ASR) that state how to measure the achievement of the build segment the software is object files and library
112 C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126

mely expensive to revise. Consequently such decisions


Goals
are architecturally significant even though they are con-
cerned with fine-grained elements. This happens when
the implementation of the decision cannot be localized,
affect achieve but must be replicated creating recurring uniform micro-
structure or texture.
In ASC, the architect analyses design inputs, such as
Architectural
Evaluation Implementation
preferred technology platforms, road maps, functional
Decisions and quality requirements for the product family and the
product, and using a palette of techniques, produces and
representation consistency prioritizes ASR (architecturally significant requirements),
verification validation groups ASR by segments of the software transformation
cycle that they address. Implementation (write-time) design
Architecture addresses the ASR concerned with the write-time segment.
Description
Design decisions make implementation technology choices,
partition functional requirements between different
Fig. 8. A model of architecture-centered software development. architectural scopes of product portfolio, product family,
or single product, establish portability layers for multiplat-
form products, allocate classes of functional requirements
to different subsystems, and develop description of the API
archives. During the upgrade segment the software consists
facilitating work division and outsourcing. Performance
of executable files. During the start-up segment the soft-
(run-time) design deals with run-time ASR addressing
ware is system state and groups of executable entities with
concurrency and protection, develops performance models
their dependency structure. During the operation segment
and makes decisions regarding task and process partitions,
software is threads and objects.
scheduling policies, resource sharing and allocation.
Architecturally significant requirements must be grouped
Finally, delivery/installation/upgrade design decisions
so that requirements in different groups may be satisfied
address the ASR of the corresponding segments. Typical
independently, while requirements within each group may
decisions address partitions into separately loadable/exe-
interact and even conflict. This can be achieved if we group
cutable units, installation support, configuration data,
the requirements by the segment of software transformation
upgrade/downgrade policies and mechanisms, manage-
cycle. Architectural concerns that are related to different
ment of shared components, external dependencies and
segments of the software transformation cycle can be
compatibility requirements.
addressed independently, while concerns that are related
to the same segment cannot be addressed independently
3. A general model for software architecture design
and must be a subject of trade-off decisions.
Fig. 9 illustrates the separation of architectural concerns
The general model for software architecture design we
based on different segments of software transformation
developed first classifies the kinds of activities performed
cycle.
during design. Architectural analysis articulates architec-
In addition to design of architectural structures for
turally significant requirements (ASRs) based on the archi-
each segment, ASC pays special attention to design of tex-
tectural concerns and context. Architectural synthesis
ture. Certain design decisions that are only visible within
results in candidate architectural solutions that address
relatively fine-grained components are nevertheless extre-
these requirements. Architectural evaluation ensures that
the architectural decisions used are the right ones (see
Fig. 10).
Significant Because of the complexity of the design task, these activ-
Grouped by
Segments
Associated with
ities are not executed sequentially. Instead they are used
repeatedly, at multiple levels of granularity, in no predict-
able sequence, until the architecture is complete and vali-
Architecturally dated. Thus the second part of the general model is a
Component
Significant
Domains characterization of its workflow.
Requirements
The key requirement of our model was that it be general
Satisfy Organized by enough to fit our five architecture design methods, and pro-
vide a useful framework for comparing them. One strong
Architecturally Concepts influence on the activities in our model was Gero’s Func-
Significant Structure
Decisions Represent Texture tion–Behavior–Structure framework for engineering design
(Gero, 1990; Gero and Kannengiesser, 2004), which
Fig. 9. Segmentation of concerns. Kruchten applies to software design in Kruchten (2005).
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 113

Fig. 10. Architectural design activities.

3.1. Architectural design activities and artifacts • Candidate architectural solutions: Candidate architec-
tural solutions may present alternative solutions, and/
First we describe the main activities of the model, and or may be partial solutions (i.e., fragments of an archi-
their related artifacts. tecture). They reflect design decisions about the struc-
ture of software. The architectural solutions include
• Architectural concerns: The IEEE 1471 standard defines information about the design rationale, that is, commen-
architectural concerns as ‘‘those interests which per- tary on why decisions where made, what decisions were
tain to the system’s development, its operation or any considered and rejected, and traceability of decisions to
other aspects that are critical or otherwise important requirements.
to one or more stakeholders. Concerns include system • Architectural synthesis: Architectural synthesis is the
considerations such as performance, reliability, security, core of architecture design. This activity proposes archi-
distribution, and evolvability’’ (IEEE, 2000). Most tecture solutions to a set of ASRs, thus it moves from
architectural concerns are expressed as requirements the problem to the solution space.
on the system, but they can also include mandated • Validated architecture: The validated architecture con-
design decisions (e.g., use of existing standards). Regula- sists of those candidate architectural solutions that are
tory requirements may also introduce architectural consistent with the ASRs. These solutions must also
concerns. be mutually consistent. Only one of a set of alternative
• Context: According to IEEE 1471, ‘‘a system’s . . . envi- solutions can be present in the validated architecture.
ronment, or context, determines the setting and circum- The validated architecture, like the candidate architec-
stances of developmental, operational, political, and tural solutions, includes information about the design
other influences upon that system’’ (IEEE, 2000). This rationale.
includes things like business goals (e.g., buy vs. build), • Architectural evaluation: Architectural evaluation
characteristics of the organization (e.g., skills of devel- ensures that the architectural design decisions made
opers, development tools available), and the state of are the right ones. The candidate architectural solutions
technology. Note that sometimes the only distinction are measured against the ASRs. Although repeated eval-
between a concern and a context is whether it is specif- uations of different architectural solutions are expected,
ically desired for this system (a concern) or is instead a the eventual result of architectural evaluation is the
general characteristic or goal of the organization or a validated architecture. Intermediate results would be
stakeholder (context). For example, a business goal of the validation or invalidation of candidate architectural
the architecture is a concern, whereas a business goal solutions.
of the enterprise is context.
• Architecturally significant requirements: An ASR is ‘‘a In addition to the above-described artifacts used in the
requirement upon a software system which influences design activities, there are some less explicit inputs that
its architecture’’ (Obbink et al., 2002). Not all of the sys- are critical to the design process:
tem’s requirements will be relevant to the architecture.
Conversely, not all ASRs will have originally been • Design knowledge comes from the architect, from orga-
expressed as requirements: they may arise from other nizational memory, or from the architecture commu-
architectural concerns or from the system context. nity. It can take the form of styles, patterns,
• Architectural analysis: Architectural analysis serves to frameworks, reference architectures, ADLs, product-
define the problems the architecture must solve. This line technologies, etc.
activity examines, filters, and/or reformulates architec- • Analysis knowledge is needed to define the problem and
tural concerns and context in order to come up with a evaluate the solution. Some work exists in analysis pat-
set of ASRs. terns (Fowler, 1997) and analytic models associated with
114 C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126

design fragments (Bachmann et al., 2002). Knowledge of an externally visible, persistent artifact; on small projects
the evaluation process itself (e.g., workflow, methods it may only be a list in the architect’s notebook, while for
and techniques) (Obbink et al., 2002) can also be an larger projects it might be an electronic, shared spread-
important input. sheet. See Fig. 11. It is therefore rarely explicitly described
• Realization knowledge (e.g., technologies, components, in software architectural methods, but we have found it to
project management) is critical. In many cases analysis be actually present in all the methods we have studied,
knowledge is not sufficient to evaluate the architecture. under some name or another, e.g., ‘‘worry list’’ in BAPO,
One example is when a partial implementation is needed ‘‘issue list’’ in RUP.
upon which to do experimentation. In general the design The backlog is constantly fed by
must be evaluated using realization knowledge, in order
to ensure that the system can be built. (a) selecting some architectural concern and/or ASR
from architectural analysis,
(b) negative feedback in the form of issues or problems
3.2. Workflow and the concept of backlog arising from architectural evaluation, and to a lesser
extent,
In all five of the architectural methods on which our model (c) ideas from the architect’s experience, discussions,
is based, the three main activities in Fig. 9 (architectural anal- readings, etc.
ysis, architectural synthesis, and architectural evaluation) do
not proceed sequentially, but rather proceed in small leaps A backlog item can be thought of as a statement of the
and bounds as architects move constantly from one to form:
another, ‘‘growing’’ the architecture progressively over time.
This is primarily because it is not possible to analyze, resolve, • ‘‘We need to make a decision about X.’’
find solutions and evaluate the architecture for all architec- • or ‘‘We should look at Y in order to address Z.’’
tural concerns simultaneously: the range and number of
interrelated issues is just too overwhelming for the human This backlog is constantly prioritized, bringing to the
mind, and moreover the inputs (goals, constraints, etc) are front the items that seem most urgent. The tactics for pri-
usually ill-defined, initially, and only get discovered or better oritization will vary, mostly based on external forces. These
understood as the architecture starts to emerge. forces include risks to mitigate, upcoming milestones, team
To drive this apparently haphazard process, architects pressure to start work on a part of the system, or simply
maintain, implicitly or explicitly, a backlog of smaller perception of greater difficulty. Very often it is simply the
needs, issues, problems they need to tackle, as well as ideas need to relieve pressure from a stakeholder that drives an
they might want to use. The backlog drives the workflow, item to the top of the backlog (the ‘‘squeaky wheel’’
helping the architects determine what to do next. It is not phenomenon).

Fig. 11. Maintaining an architectural backlog.


C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 115

Once a backlog item (or a small set of backlog items) is spans architectural analysis, architectural synthesis, the
picked by the architects, they will proceed to incrementally backlog, and describes how architectural concerns, context,
perform architectural synthesis, making some design deci- ASRs, and some backlog items should be recorded. The
sions and integrating them with the existing set of design Global Analysis artifacts, design decision table, and tables
decisions. Thus the front of the backlog serves to set the that record the relationships among views support trace-
objectives for a particular iteration of architectural synthe- ability from requirements to the code (at the file and mod-
sis. Less frequently, backlog items will drive architectural ule level).
analysis or architectural evaluation. Once resolved in any
way (issues resolved, idea explored, requirement satisfied, 4.2. Commonalities
risk removed, etc.), the item is removed from the backlog,
and the architects proceed to the next one. If they encoun- Elements the methods have in common include:
ter some difficulty or some input is missing, the item is
returned to the backlog. • an emphasis on quality requirements and the need to aid
Thus the backlog is constantly changing. The cycle of the architect in focusing on the important requirements
adding to the backlog, reprioritizing, resolving an item, that impact the architecture during analysis,
and removing an item is happening at various periods: • design elements organized into multiple views during
from a few hours, to a few days, or more. synthesis,
This backlog is similar to what some Agile methods use • and an iterative fine-grained evaluation activity (per-
for driving projects, in particular Scrum (Schwaber and formed internally after each synthesis result by the
Beedle, 2002), and this is where the name came from. architect) as distinct from course-grained evaluation
The backlog guides the architectural design workflow (architectural reviews performed at key stages in the
through the three main kinds of activities and provides software development lifecycle).
the objectives for each iteration through the synthesis activ-
ity. The kind of tools architects may use for the backlog
range from informal lists, to shared spreadsheets, to wiki- 4.2.1. Common theme: dealing with quality requirements
based tracking tools such as Trac. Architecture design is often driven by quality or non-
functional requirements. Since most operations of the sys-
4. Method comparison using the general model tem involve multiple components, the quality of operations
cannot be guaranteed by the design of a single or a small
The five architectural methods have been developed group of components. Therefore architecture is in practice
independently but there are many commonalities among the only means to systematically address quality require-
them. ments. In this respect it is interesting to review how the
five methods we discuss in this paper address quality
4.1. Side-by-side comparison requirements.
In RUP non-functional requirements are captured in
See Tables 1 and 2 for a comparison of activities and supplementary specifications. These specifications are
artifacts. Putting the methods side by side, helps to identify taken into consideration during each of the iterations.
and understand this commonality as well as the important However the most important stage is often during the ini-
differences. The rows of the table are based on the activities tial iteration when the major architectural structure is
and artifacts identified in the general model of the previous established. Non-functional requirements play an impor-
section. tant role at this stage because the selection of the main
This comparison has been an iterative process of pro- architectural structure is mainly driven by non-functional
ducing a common model of design activities and artifacts, requirements. Once an executable prototype becomes avail-
seeing how well they relate to the methods, and adjusting able, the capability of the system to address the non-func-
the model. Rather than focusing just on the creation tional requirements is assessed and when improvement is
of the architectural solution, which is the synthesis activity, necessary further iterations are planned. Perspectives are
the model takes a broad view of architectural design by a recent addition to RUP that help the architect address
addressing the interrelated activities of analysis, synthesis, non-functional requirements (Rozanski and Woods,
and evaluation. 2005). Perspectives are views that bring together different
The steps of ADD follow the sequence of analysis, syn- elements of design that affect a particular domain of con-
thesis, and evaluation activities. Subsequent iterations of cerns. Common domains of concerns are security, data
the activities follow the decomposition of the architecture integrity, availability, etc.
– the order of which will vary (e.g., depth-first, breadth- ADD uses quality requirements or quality attributes as
first) based on the business context, domain knowledge, the driving force for architecture design. ADD relies on a
or technology. repository of architectural patterns and tactics to address
Global Analysis from S4V plays a large role in analysis the non-functional requirements. ADD follows a recursive
and in driving iterations through the activities. Thus it process of hierarchical decomposition of the system. At
116
Table 1
Comparing methods: activities
Activity ADD S4V RUP 4 + 1 BAPO/CAFCR ASC
Architectural Choose the module to decompose (Step 1) Global Analysis involves Build or extract a subset BAPO analysis identifies Concept definition, identification
analysis determines the context and architectural (1) identifying influencing of the use case model those elements of context and refinement of ASR, partition
concerns that will be addressed factors; (2) analyzing them and the supplementary that are relevant for the of ASR by software segments:
Choose the architectural drivers to identify their importance specification, as key architectural fit and runtime, development, load, etc.
(Step 2a) looks for the to the architecture, flexibility, drivers for architectural determine the scope of the Thus analysis results in a collection
combination of functional and changeability; (3) design architecture. These elements of semi separable problems
and quality requirements identifying key issues or are already entered into the
that ‘‘shape’’ the architecture. problems that arise various artifacts in the CAFCR

C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126


The QAW and quality attribute from a set of factors views. Strategic scenarios can
models help elicit and structure be used to explore multiple
the requirements possible futures and their
as needed impact on business and architecture
Architectural Synthesis is iterative as drivers The fourth part of Global During the elaboration Iteratively elaborate the five CAFCR Address the ASR, segment by
synthesis are considered and the candidate Analysis, identifying phase, incrementally views, adding or refining artifacts segment in an iterative process,
architectural solution evolves solution strategies, is the build an architecture suitable for the particular system. resolving conflicts between the
This takes place in two parts. beginning of arch. synthesis. organized along 4 No particular order is prescribed. ASR within the same segment
In the first part, Choose an Then strategies are different views; in Often a particular quality attribute and integrating solutions from
architectural pattern that instantiated as design parallel implement is ‘‘chased’’ through the different different segments
satisfies the architectural drivers decisions that determine an architectural prototype views. Architecture scenarios
(Steps 2b) architectural tactics the number and type of are defined as responses to
and patterns determine the design elements for one the strategic scenarios
structure of the solution of the software architecture
In the second part, Instantiate views. Design decisions can
modules (Step 2c) and Define be captured in a table
interfaces (Step 2d) the
decomposition is documented
and remaining requirements
allocated to the structure
Architectural Verify and refine use cases and S4V splits evaluation into Build an executable The CAFCR views are Architectural decisions are
evaluation quality scenarios (Step 2e) verifies global evaluation (done prototype architecture evaluated in the BAPO evaluated with respect to ASR
the decomposition can collectively by the architect as the to assess whether context to see whether that they address. Typical
satisfy the requirements design progresses ) and architectural objectives they fit. Furthermore procedure of evaluation may
and prepares the child modules architecture evaluation, have been met, and risks quality attributes are nclude model-based analysis
for their own decomposition, led by a team of external retired (elaboration phase) analyzed across the CAFCR (LQN, Petri nets, Q nets)
preparing for the next iteration reviewers, and done at views to determine whether simulation, prototyping, and
of ADD. A given quality major checkpoints (e.g., the solutions in the technical discussion of change/use scenarios
scenario might not be satisfied to validate arch. concepts views satisfy the requirements
by the current decomposition. and after design is complete) from the commercial views
If it is high priority, reconsider
the current decomposition.
Otherwise record the rationale
for why it is not supported
(e.g., because of a justified
tradeoff between quality attributes)
Table 2
Comparing methods: artifacts
Artifact ADD S4V RUP 4 + 1 BAPO/CAFCR ASC
Architectural Functional requirements, Influencing factors are orga- Vision document, These concerns are expressed Each product family has lists
concerns system quality attribute nizational, technological, and Supplementary in the Customer and of typical concerns that need
requirements, design product factors. Product specification (for Application views. The to be addressed by products
constraints (requirements factors, describing required non-functional overriding meta-concern in the domain. Stakeholders
for which the design characteristics of the product, requirements); is bridging the gap between contribute product specific
decisions are prespecified) are always architectural the Risk List identifies, customer needs, wishes, and concerns during product
concerns, so are technological among others, technical objectives and technological conception phase
factors (state of technology issues: elements that are realization
including standards) that novel, unknown, or just

C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126


could affect the product perceived as challenging
Context Business quality goals Organizational factors Business case and Vision Business goals and constraints Preferred technology
(e.g., time to market, (see above) are usually document (including the scope of the platforms
cost and benefit), architecture context, not concerns market to be addressed), Technology/product road
qualities (e.g., conceptual process goals and constraints, maps
integrity, buildability), organizational goals and Product family functional
system constraints constraints and quality requirements
System/hardware architecture
Implementation constraints
Architecturally Architectural drivers are Issue cards describe issues or ASR are identified out of Those elements of the BAPO A specific process is used to
significant the combination of problems that arise from sets the requirements documents context that are relevant for identify ASR based on
requirements functional, quality attribute, of factors that, taken together, (Vision, use case model, the architectural fit and determine stake-holder concerns, domain
(ASR) and business requirements pose significant architectural supplementary specification), the scope of the architecture. and product family specific
that ‘‘shape’’ the archi- challenges. These issues and and the risk list. Some of the Traditional types of requirements checklists, and patterns for
tecture or the particular their influencing factors are ASRs are expressed in the form are represented in the Customer analysis. ASR are partitioned
module under consideration. equivalent to the architecturally of scenarios (use case instances) and Application views, which by segments of software
To identify them, locate the significant requirements that are allocated as objectives can be influenced by the transformation cycle to
quality attribute scenarios in the upcoming iteration; architect in order to obtain establish semi-separable
that reflect the highest priority this forms a requirements view (+1) a better BAPO fit solution domains. ASR that
business goals relative to the are in the same segment are
module and have the most prioritized and analyzed for
impact on the decomposition potential conflicts
of the module
Candidate A collection of views, patterns, Part of the four views Design decisions are incrementally Consistent and partially A collection of patterns,
architectural architectural tactics, and a (conceptual, module, captured in four views (logical, complete CAFCR views frameworks, and reference
solutions decomposition of modules. execution, and code arch. process, implementation, (Customer, Application, architectures constitute the
Each module has a collection views). These represent deployment), supplemented Functional, Conceptual, source for alternative
of responsibilities, a set of use design decisions taken in with a use-case view and with and Realization), filled decisions. An often used
cases, an interface, quality accordance with strategies complementary texts, and with various artifacts practice is to analyze
attribute scenarios, and a that solve one or more plus an architectural prototype (models, scenarios, interfaces, etc.) alternatives along with any
collection of constraints. issues. Issue Cards proposed solutions
This aids the next iteration capture the issues, their
of decomposition influencing factors, and
solution strategies. Factors
are listed and characterized
in Factor Tables
(continued on next page)

117
118
Table 2 (continued)
Artifact ADD S4V RUP 4 + 1 BAPO/CAFCR ASC
Validated Architecture describes a The description of the four Baseline a complete, Consistent and complete CAFCR Concepts, structure and

C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126


architecture system as containers for views, the Issue Cards, executable architectural views. Consistency means that the texture for each significant
functionality and and the Factor Tables prototype at the end of artifacts are mutually corresponding segment of software
interactions among the represent the validated the elaboration phase. and quality attribute analysis shows transformation cycle
containers, typically architecture This prototype is no discrepancies (for example, all (development/load/runtime)
expressed in three views: complete enough to be quality requirements from the
module decomposition, tested, and to validate Application view are satisfied by
concurrency, and deployment. that major architectural the Conceptual and Realization
The architecture is validated objectives (functional and views). Completeness means that
for satisfaction of non-functional, such as artifacts have been elaborated in
requirements/constraints performance) have been met, sufficient detail to enable realization
with respect to the decomposition and major technical risks
mitigated
Backlog Information to be processed in Supported in part by Issue In larger projects, an Issue List Worry List contains: Artifacts to be The initial backlog is a result
subsequent steps including: Cards, which help the is maintained, which contains completed; Quality attributes to be of the analysis. As the design
requirements to be analyzed, architect identify important elements of the backlog. analyzed; Quality requirements to progresses ASR are
decisions to be merged, patterns issues to address and drive Architectural objectives are be satisfied; BAPO analysis to be partitioned into solvable
to be instantiated, requirements the bigger iterations through allocated to upcoming iterations, done; BAPO issues to be improved problems and some are left
to be verified and refined the activities. Issue Cards and captured in the form on the backlog to be
The order in which information are intended to be permanent of iteration objectives in Design knowledge comes from addressed later while some
is processed will vary, for artifacts. S4V also recommends the iteration plan the architect (or organizational are being addressed earlier.
example, the order of the the capture of certain inputs memory or community best practice) Thus entries in the backlog
decomposition varies based to the backlog: Issue Cards and is recorded as an influencing represent finer and finer
on business context, domain can capture strategies (ideas) factor. A large amount of general grained problems or issues
knowledge, and technology that do not work architectural knowledge is
risk; the determination of drivers documented in the Gaudı̀
is not always a top down process, website Muller (2005)
it might depend on a detailed
investigation to understand the
ramification of particular
requirements and constraints
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 119

each stage, depending on the desired quality attributes, a in the system must observe consistent behavior. However
suitable architectural pattern is selected and the system is specifics of this behavior are not visible in the common
decomposed according to the pattern. ADD uses prioritiza- architectural views and may have no impact on the design
tion of quality attributes when architectural patterns can- of architectural structures. Such design decisions are cap-
not support all desired quality attributes at the same tured by ASC in texture design.
time. The ATAM architecture evaluation method comple-
ments ADD design and analysis, and is used to analyze 4.2.2. Common theme: multiple views
how well design choices achieve the trade-off between all Table 3 summarizes the use of multiple views in the var-
desired quality attributes. ious methods. The primary motivation for multiple views is
In S4V design decisions that affect quality requirements separation of concerns: to group together closely related
might be reflected in multiple views. Both the conceptual concerns, and to have looser coupling between concerns
and the execution view may reflect some decisions that of different views.
affect dependability and performance. Each of the four Most of the views used in the methods can be catego-
views has associated quality concerns that may or may rized as structural views, meaning they describe architec-
not be explicitly designated as quality attributes but are tural structure of the system. These are summarized in
important for most systems. Code architecture view is used the first nine rows of the table. The structural views both
to minimize build time, facilitate product upgrades, etc. guide the architectural synthesis activity and furnish the
Module view is used to achieve reuse, and execution archi- main documentation of this activity.
tecture view serves to address performance, reliability and S4V and RUP 4 + 1 prescribe specific views. Although
other operational concerns. Global analysis is the process they use different names for the views, their views cover
in which non-functional requirements are analyzed and similar structures for decomposition and dependencies,
strategies to address them are selected. S4V used categori- instantiation and synchronization, resource usage and
zation and prioritization of requirements and applies this organization of development artifacts. They differ in sup-
to make sequence design process and to find proper port for inheritance and dataflow.
trade-off when conflicts arise. The other methods are less prescriptive and instead indi-
In BAPO/CAFCR, quality aspects do not belong to a cate categories or typical views. ADD produces the first
particular view. Rather they form the cross-cutting con- articulation of the architecture typically using module
cerns that glue the views together and enable reasoning decomposition and dependencies, concurrency and deploy-
across the views. Typically, a quality concern arises from ment. Other views can be added: their inclusion and the
the Customer or Application View, where it becomes clear amount of detail is driven by what is needed to satisfy
that the system should fulfill a certain customer need or the architecturally significant requirements. The views for
support a particular usage. In the Functional View it is the other two methods are tied to specific concerns. ASC
formulated as a specific system quality requirement. The organizes views according to segments that are tied to the
Conceptual and Realization Views should then make sure software transformation cycle: design/development, build,
that this requirement is met, by a combination of applying upgrade, start-up, operation. In BAPO/CAFCR, concerns
suitable mechanisms and using suitable technology. Espe- flow from the customer needs and wishes represented in the
cially for challenging quality concerns, this process may commercial views within the context of the business, pro-
require a significant number of iterations across the views. cess, and organization.
ASC does not separate quality requirements from other Two methods, RUP 4 + 1 and BAPO/CAFCR have one
ASR. In fact ASC expects all quality requirements to be or more additional views that do not describe architectural
defined by specific scenarios where the corresponding qual- structure but instead focus on goals or requirements of the
ity requirement plays an important role. This is quite sim- system, and these play a role mainly during the architec-
ilar to the way functional requirements are defined. ASC tural analysis activity. Note that ADD, S4V, and ASC also
relies on segmentation of ASR to make sure that decisions analyze these concerns, but rather than using views they
affecting a particular architectural structure can be ana- rely on other methods within the software development
lyzed independently with respect to the corresponding process to elicit this information. BAPO/CAFCR has the
quality ASR. Within the same segment ASR are prioritized broadest set of views, which are intended to be successive
to resolve conflicts and to arrive at optimal trade off models along a path from requirements to realization.
choices. Specific choices in the design of each architectural Finally, in addition to structural views, ASC has the
structure are guided by a domain specific collection of notion of ‘‘texture,’’ a replicated microstructure that
architectural patterns which are known for specific quali- applies to most components and crosscuts the structural
ties. Texture design in ASC plays a very important role views.
in addressing a broad range of quality requirements that
are orthogonal to the main decomposition pattern of the 4.3. Variations
architectural structure. For example to address quality
requirements related to security, flow-control, overload There are also important variations between the
control, fault detection and handling all the components methods:
Table 3

120
The use of multiple views
ADD S4V RUP4 + 1 BAPO/CAFCR ASC
Structural views The nature of the project Four views are used: Four views are used: Structural information is Each segment typically
determines the views. conceptual, module, logical, process, mainly in the Conceptual calls for the use of one or
Typical views are module execution, and code implementation, View. Its representation is more structural views
decomposition, concurrency, architecture views and deployment views not fixed by the method,
and deployment but suggestions are provided
Development time: Decomposition (e.g., Module decomposition Module Arch. View Logical View Conceptual View: System Functionality clusters, view
structure exhibited in of subsystems, decomposition and of the module structure
the source artifacts modules, classes) component models
Dependencies (e.g., Often part of module Module Arch. View Logical View Conceptual View: System Functionality layers,

C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126


among modules, decomposition decomposition and Portability layers,
interfaces, classes; component models
constrained by layers)
Inheritance (e.g., Could be covered by Not covered. (Modules Logical View Conceptual View: Could be covered by an
of classes) an additional view are not usually Information models additional view
individual classes.)
Runtime: structure Instantiation (e.g., Could be covered by Conceptual Arch. Process View Conceptual View: Views used in Operation
exhibited at runtime components, an additional view View Execution Collaborations segment
processes, Arch. View
tasks, objects)
Synchronization (e.g., Concurrency ConceptualArch. Process View Conceptual View: Views used in Operation
control flow, threads View Execution Collaborations segment
and their synchronization) Arch. View
Dataflow (e.g., how Could be covered by Conceptual Arch. View Not covered Conceptual View: Could be covered by an
data logically flows an additional view Collaborations additional view
through system)
Resource usage Deployment Execution Arch. View Deployment View Conceptual View Views used in Start-up
(e.g., mapping to and Realization View segment
processes, shared
libraries, or other
OS resources;
mapping to hardware)
Organization of and Could be covered by Code Arch. View Implementation View Conceptual View: Views used in Build
relationships among an additional view Variation Models segment, and in
permanent and Delivery/installation/
temporary artifacts upgrade segment
(e.g., of source,
intermediate,
executable files)

Non-structural views None: results of analysis None: results of The +1 (requirements) The Customer and None: results of analysis
activity are not analysis activity view is used primarily Application Views describe activity are not captured
captured in a view are not captured during analysis. It goals, and the Functional in a view
in a view focuses mainly on View focuses on functional
functional requirements. requirements. These are used
It crosscuts the four primarily during analysis.
structural views The Realization View
covers technology choices
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 121

• Intent – ADD was developed as a design approach • Process Scope – ADD provides a step for choosing the
based on making a series of design decisions (aided by architectural drivers but its scope is such that it depends
the application of architectural tactics). Other view- on more analysis types of activities from other methods,
based approaches were initially centered on design arti- such as global analysis from S4V. However, S4V does
facts, with their dependencies suggesting a sequencing of not recommend or advocate specific evaluation tech-
activities. 4 + 1 embedded in RUP provides full process niques. Thus ADD and S4V complement each other in
support. BAPO/CAFCR has been especially developed these respects.
to support the development of product families.
• Emphasis – RUP puts a strong emphasis on incremen-
tally building an evolutionary prototype, forcing the 5. A template for analyzing software architecture design
designers to a more experimental style of architectural methods
design. BAPO/CAFCR puts a strong emphasis on the
scoping of the architecture and once the scope of the One other outcome of this work is the proposal of a kind
architecture using a BAPO analysis has been established, of grid, or template, based on Fig. 10 and Tables 1 and 2,
the focus is on ensuring the consistency and the com- to analyze other proposed software architecture design
pleteness of the CAFCR views. ADD puts its emphasis methods, or even to drive the development of new architec-
on constructing the architecture by applying architec- ture design methods; see Table 4.
tural tactics (design options for the architect that are To illustrate the use of this grid, we have applied it to the
influential in the control of a quality attribute response). architectural method proposed by Garland and Anthony
• Driving forces – ADD is quality attribute scenario (2002), which we will denote here as G&A; see Table 5.
focused; experience suggests that a handful of these Numbers in this table indicate page in the book. A more
shape the architecture and all other requirements are complete table could also be created for this method, con-
then mapped to this structure. This fact is also recog- taining the kind of detail given for the other methods in
nized in ASC, which ties architecture design to architec- Tables 1–3.
turally significant requirements. ASR are broader than Using our grid to analyze this method, we can rapidly
quality attributes and may include key functional identify the following points:
requirements. RUP is mostly driven by risk mitigation.
• Architectural Scope – ASC recognizes a hierarchy of 1. There is a strong focus on viewpoints and views, and the
architectural scopes like product portfolio, product fam- description of these views using UML to document the
ily, a single product, and a product release. Each archi- architecture; this occupies about half of the book.
tecture design project uses the enclosing scope as the 2. Many of the activities and techniques are either sketchy
context of the design. (chapter 11) or refer to other sources.

Table 4
A grid to analyze a software architecture design method
Generic artifacts Artifacts in X Activities in X Techniques and tools in X
Has the method X Is the method X What specific tools and technique
provision for the providing activities to is associated with the method X?
following artifacts? produce these artifacts?
How are they named How are these activities
and represented? named and documented?
Architectural analysis – Context
– Requirements, and
– Architecturally significant
requirements (ASR)
Architectural synthesis Candidate architectural solutions
– Architectural
design (e.g., views, perspectives)
– or Prototypes
– Rationale
Architectural evaluation – Quality attributes
– Architectural assessment
Overall process driver – Backlog
Other Other key artifacts Other key activities
of the method X, of the method, not
not matching the fitting in the boxes above.
generic ones
122 C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126

Table 5
Analysis of the Garland and Anthony (2002) method (G&A)
Generic artifacts Artifacts in G&A Activities in G&A Techniques and tools
in G&A
Architectural – Context – contextual and analysis – Analysis process, OOSE Jacobson
analysis – Requirements, and viewpoint (p. 13, 87–108) similar to OOSE et al. (1992)
– Architecturally significant – ??
requirements (ASR)
Architectural Candidate architectural solutions – Logical design viewpoints Small activities scattered – UML (p. 69–86)
synthesis + Architectural design (decomposes in component in the book, – use of ADL (p. 208)
(e.g., views, perspectives) viewpoint, logical data, to populate the views, but – pattern (p. 216–218)
+ Prototypes layered subsystem,. . .) (p. 87–174) not named explicitly.
– Environment/physical viewpoint – partitioning strategies
+ Rationale
(deployment, process, (208–213)
physical data) (p.177–200) – changeability and
– skeleton system (p. 205) dependency management
& prototyping (p. 206) (213–216)

Architectural – Quality attributes – ?? – Commonality and


evaluation – Architectural assessment – ?? variability analysis (p. 202)
– Architecture
evaluation (p. 208)
Overall process – Backlog – ?? – ??
driver

3. Building a skeleton or architectural prototype is men- which are not sufficiently mature and well-described to be
tioned as a possibility. analyzed by our approach.
4. There seems to be no concept of Architectural Signifi-
cant Requirements (except for a couple of mentions to 6. Related work
‘‘key requirements’’ and ‘‘key use cases’’ with no expla-
nation how they are identified). We have found four main approaches to comparing
5. There is no mention of design rationale (except for some design methods. Some researchers compare the methods
tracing between elements in views, and a mention of by comparing their results or artifacts. Others compare
requirements tracing p. 49). the activities done when following the methods. Each of
6. Architecture evaluation is only mention briefly, and no these approaches breaks down further into comparisons
technique described, nor any artifact. based on applying the methods to a particular example
7. Beyond emphasizing iterative development in chapter 3, application, or comparing the methods by classifying the
there is no indication of any driver for architectural artifacts or activities.
activities. The first group compares the artifacts for an example
8. There is very few explicit links to quality attributes. application. Bahill et al. (1998) first provide a ‘‘bench-
mark’’ application to be used for comparing design meth-
Such an analysis would lead to the rapid identification of ods. Then they provide a qualitative analysis of the
element from other techniques that could come to comple- results of applying eleven design methods to the bench-
ment some of its deficiencies. For example it would be nicely mark application. Sharble and Cohen (1993) use complex-
complemented by the use of SEI’s techniques, such QAW ity metrics to compare the class diagrams that result from
(Barbacci et al., 2003) or ATAM (Kazman et al., 1994; applying two different OO development methods on a
Clements et al., 2002b) , or a better linkage to quality using brewery application.
the ASC approach (see Section 2.5), or ADD (see Section 2.1). The next group also compares artifacts, but by classify-
Applying the grid to other methods is often impeded by ing them according to what they can model. Wieringa
the lack of detailed material on the proposed methods, (1998) does this for a number of structured and OO speci-
associated maybe to their lack of maturity and/or limited fication methods. Hong et al. (1993) do this as part of their
use in industry. For example, trying to apply our grid to comparison of six OO analysis and design methods, so does
VTT’s QAD or QADA approach (Matinlassi et al., Fowler (1993).
2002a,b), we found that views are well-articulated and jus- The third kind of comparison examines the activities
tified, but there are very little description of the activities undertaken when designing particular applications. Kim
that take place. Similarly for methods associated with and Lerch (1992) measure the cognitive activities of design-
Model-Driven Architecture (Selic, 2004; Fowler, 2005), ers when using an OO design method versus a functional
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 123

decomposition approach. Each participant in this study activities and all coding and testing activities.’’ In a similar
designed two variants of a Towers of Hanoi application. spirit, our use of the term ‘‘architecture design’’ encom-
The approach we take in this paper falls into the fourth passes analysis and evaluation activities. Architectural
category, characterizing and classifying activities then com- synthesis, the activity that goes from the problem space
paring them across methods. Song and Osterweil (1994) use to the solution space is what others might equate with
process modeling techniques to model the activities and, to the term ‘‘architecture design.’’ Fowler (1997) discusses
a lesser extent, the artifacts of the methodologies. Although the importance of analysis, or understanding the problem,
this approach is similar to ours, the approaches differ in the in moving from the problem space to the solution space.
development of the comparison model. They decompose (Roshandel et al., 2004) reinforce our conviction that eval-
the activities of each methodology, then classify and com- uation is an integral part of architecture design. They dem-
pare them. Thus the classification and comparison is begun onstrate that the kinds of automated evaluation possible
with the low-level elements. In contrast we create a general depend on the architectural view described (where each
model where only one level of decomposition is done, of the two views studied is represented in a different ADL).
resulting in the three activities of architectural analysis, Finally we note that our general model and the methods
synthesis, and evaluation and the corresponding artifacts. it is derived from are for the architecture design of new sys-
We then determine which elements of each methodology tems, not for evolving or reconstructing the architecture of
map to these activities and artifacts, and compare to what existing systems. While parts of the model may be relevant
extent each methodology covers the various aspects of the for architecture evolution, when comparing our model to
activities and artifacts. the Symphony architecture reconstruction process (van
Hong et al. (1993) also compare activities by first Deursen et al., 2004) we see that the activities and artifacts
characterizing and classifying them. They repeatedly are not related at all. In both cases the activities can be
decompose the activities of each method, then create a categorized into (1) understand the problem, (2) solve it,
‘‘super-methodology’’ that is a union of all the finest gran- and (3) evaluate the solution, but the same can be said of
ularity of the subactivities. Each method is compared to the nearly any problem-solving activity.
super-methodology. Fichman and Kemerer (1992) take a
similar approach, comparing methods using the eleven 7. Future work
analysis activities and ten design activities that are the sup-
erset of the activities supported by methods. Both of these The future work we envision is centered on the three fun-
approaches decompose the activities to very specific tasks damental architecting activities: architectural analysis, archi-
that are tightly related to the artifacts produced by the tectural synthesis and architectural evaluation (see Fig. 10).
method (e.g., Identify classes, Identify inheritance relation- They are present in all the investigated methods. We foresee
ships). We did not want our general model to be restricted ongoing harmonization and integration of the best concepts
by the kinds of artifacts our five methods produce (e.g., from each of the investigated methods. This work can take
specific views used by the method), so we did not decom- two routes. The first route is the most obvious one in the sense
pose activities to the low level. that certain concepts in a particular method are replaced by a
Dobrica and Niemelä (2002a,b) presented a survey and better one from the other methods. The second route would
comparison of software architecture analysis methods, such be along a kind of standardization effort in which the commu-
as SAAM (Kazman et al., 1994) or ATAM (Kazman et al., nity as a whole accepts a set of standard concepts, inspired by
1996), mostly focusing on how analysis attempted to satisfy or derived from the investigated methods.
quality attributes. Their approach to comparing methods is In addition to the above described evolution along the
perhaps closest to ours. However, rather than comparing activity axes. We expect that the notion of backlog will
architectural design methods, they are comparing methods be elaborated further as a way to systematically relate the
for software architecture evaluation. Thus the eight various activities and to guarantee ‘‘architecting progress.’’
methods have a much narrower scope, and in addition a Yet another area of investigation would be the inclusion of
number of them are variants of each other. Like us they notions from the agile community in the backlog concept.
compare activities and workflow at a fairly coarse granular- Next to these more generic evolution paths we foresee
ity, but they add a few other dimensions for comparison, that more domain specific variants of architecting methods
such as scope of method, stakeholders involved, etc. might arise. Further new development paradigms like
In a more recent paper, Matinlassi (2004) extended the model-driven development (MDD) will have significant
approach to a comparison of software product-line design influence. And future software architecting methods will
methods, looking at five aspects: (1) context (goal, applica- need to deal more explicitly with the system aspects.
tion domain, etc.), (2) user (stakeholders), (3) contents
(method structure, artifacts, viewpoints, tool support, 8. Conclusion
etc.) and (4) validation (maturity).
Kruchten (2005) shows that if software engineers were In this paper we have analyzed a number of industrially
to use the term ‘‘design’’ analogously to the way other engi- validated architectural design methods. Using a general
neers use it, design would include ‘‘some requirements model for architectural design activity, we have identified
124 C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126

the common and variable ingredients of these methods. Bachmann, F., Bass, L., Klein, M., 2002. Illuminating the Fundamental
Despite the different vocabulary used for the individual Contributors to Software Architecture Quality (No. CMU/SEI-2002-
TR-025). Software Engineering Institute, Carnegie Mellon University,
methods they have a lot in common at the conceptual level. Pittsburgh, PA.
The basic architecting activities, like architectural analysis, Bahill, A.T., Alford, M., Bharathan, K., Clymer, J.R., Dean, D.L., Duke,
architectural synthesis and architectural evaluation are pres- J., Hill, G., LaBudde, E.V., Taipale, E.J., Wymore, A.W., 1998. The
ent in all of the investigated methods. The major variation design-methods comparison project. IEEE Transactions on Systems,
can be observed in the different details with respect to guid- Man and Cybernetics, Part C 28 (1), 80–103.
Barbacci, M.R., Ellison, R., Lattanze, A.J., Stafford, J.A., Weinstock,
ance and process focus across the various methods. Here the C.B., Wood, W.G., 2003. Quality Attribute Workshops (QAW), third
concept of backlog is crucial to relate the various activities. ed. (CMU/SEI-2003-TR-016). Software Engineering Institute, Carne-
For our general model many of the concepts we use are gie Mellon University, Pittsburgh, PA.
already part of the IEEE 1471 (IEEE, 2000) vocabulary: Bass, L., Clements, P., Kazman, R., 2003. Software Architecture in
views, architectural concerns, context, stakeholders, etc. Practice, second ed. Addison-Wesley, Reading, MA.
Bosch, J., 2000. Design and Use of Software Architecture: Adopting and
Our more process-oriented model introduces the following Evolving a Product-Line Approach. Addison-Wesley, Boston.
concepts: backlog, analysis, synthesis and evaluation. Clements, P., Northrop, L., 2002. Software Product Lines: Practice and
An important part of our model is the inclusion of anal- Patterns. Addison-Wesley, Boston.
ysis and evaluation activities as part of architecture design. Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R.,
While architecture evaluation has been the focus of much Nord, R., Stafford, J., 2002a. Documenting Software Architectures:
Views and Beyond. Addison-Wesley, Boston.
prior work, the emphasis is typically on identifying candi- Clements, P., Kazman, R., Klein, M., 2002b. Evaluating Software
date architectures or evaluating the completed architecture. Architecture. Addison-Wesley, Boston.
There has been far less work on incremental or ongoing Dikel, D.M., Kane, D., Wilson, J.R., 2001. Software Architecture:
evaluation, and on architectural analysis. Our model Organizational Principles and Patterns. Prentice-Hall, Upper Saddle
reveals these to be important research topics. River, NJ.
Dobrica, L., Niemelä, E., 2002a. Software architecture quality analysis
Our model also introduces the concept of a backlog as methods. In: Proceedings of Software Reuse: Methods, Techniques,
the driving force behind the workflow. The backlog is a and Tools: 7th International Conference (ICSR-7), Austin, TX, USA.
much richer workflow concept than simply noting that iter- Springer-Verlag, pp. 337–338.
ation is expected. Dobrica, L., Niemelä, E., 2002b. A survey on software architecture
We offer a systematic grid or pattern for the further analysis methods. IEEE Transactions on Software Engineering 28 (7),
638–653.
analysis and comparison or other methods, as well as the Fichman, R.G., Kemerer, C.F., 1992. Object-oriented and conventional
creation or synthesis of new software architecture design analysis and design methodologies. IEEE Computer 25 (10), 22–39.
methods (see Table 3). We hope that our increased under- Fowler, M., 1993. A comparison of object-oriented analysis and design
standing of the commonalities and differences of the vari- methods. In: Proceedings of 11th international conference on Tech-
ous approaches will contribute to future methods that nology of Object-Oriented Languages and Systems, Santa Barbara,
California, United States. Prentice-Hall, Inc., p. 527.
combine the strong points of the existing ones and provide Fowler, M., 1997. Analysis Patterns: Reusable Object Models. Addison-
specific support for software architecture design in a large Wesley, Boston.
variety of different contexts. As an example, two of the Fowler, M., 2005. Language Workbenches and Model Driven Architec-
authors looked at ways of combining ADD and RUP ture. Available from <http://www.martinfowler.com/articles/mdaLan-
4 + 1 by modeling ADD as a RUP activity, and found that guageWorkbench.html> (Retrieved 1.5.2006).
Garland, J., Anthony, R., 2002. Large-Scale Software Architecture: A
they complement each other well (Kazman et al., 2004). Practical Guide using UML. John Wiley & Sons, Inc., New York.
ADD fills a need within the RUP: it provides a step-by-step Gero, J.S., 1990. Design prototypes: a knowledge representation scheme
approach for defining a candidate architecture. The RUP for design. AI Magazine 11 (4), 26–36.
fills a need in the ADD by placing it in a lifecycle context; Gero, J.S., Kannengiesser, U., 2004. The situated function–behaviour–
the RUP provides guidance on how to proceed from the structure framework. Design Studies 25 (4), 373–391.
Gomaa, H., 2000. Designing Concurrent, Distributed and Real-time
candidate architecture to an executable architecture, Applications with UML. Addison-Wesley, Boston.
detailed design and implementation. Hofmeister, C., Nord, R., Soni, D., 1999. Applied Software Architecture.
Addison-Wesley, Boston.
Acknowledgment Hofmeister, C., Kruchten, P., Nord, R., Obbink, H., Ran, A., America,
P., 2005a. Generalizing a model of software architecture design from
five industrial approaches. In: Proceedings of 5th Working IEEE/IFIP
The Software Engineering Institute is a federally funded Conference on Software Architecture (WICSA 5), Pittsburgh, PA.
research and development center sponsored by the US IEEE Computer Society, pp. 77–86.
Department of Defense. Hofmeister, C., Nord, R., Soni, D., 2005b. Global analysis: moving from
software requirements specification to structural views of the software
architecture. IEE Proceedings Software 152 (4), 187–197.
References Hong, S., van den Goor, G., Brinkkemper, S., 1993. A formal approach to
the comparison of object-oriented analysis and design methodologies.
America, P., Obbink, H., Rommes, E., 2003. Multi-view variation In: Proceedings of 26th Hawaii International Conference on System
modeling for scenario analysis. In: Proceedings of Fifth International Sciences, Wailea, HI, USA, pp. iv 689–698.
Workshop on Product Family Engineering (PFE-5), Siena, Italy. IEEE, 2000. IEEE std 1471:2000–Recommended Practice for Architectural
Springer-Verlag, pp. 44–65. Description of Software Intensive Systems. IEEE, Los Alamitos, CA.
C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126 125

Jacobson, I., Christerson, M., Jonsson, P., Övergaard, G., 1992. Object- Song, X., Osterweil, L.J., 1994. Experience with an approach to
Oriented Software Engineering: A Use Case Driven Approach. comparing software design methodologies. IEEE Transactions on
Addison-Wesley, Reading, MA. Software Engineering 20 (5), 364–384.
Kazman, R., Bass, L., Webb, M., Abowd, G., 1994. SAAM: a method for Soni, D., Nord, R., Hofmeister, C., 1995. Software architecture in
analyzing the properties of software architectures. In: Proceedings of industrial applications. In: Proceedings of 17th International Confer-
16th International Conference on Software Engineering (ICSE-16), ence on Software Engineering (ICSE-17). ACM Press, pp. 196–207.
Sorrento, Italy. IEEE Computer Society Press, pp. 81–90. van der Linden, F., Bosch, J., Kamsteries, E., Känsälä, K., Obbink, H.,
Kazman, R., Abowd, G., Bass, L., Clements, P., 1996. Scenario-based 2004. Software product family evaluation. In: Proceedings of Software
analysis of software architecture. IEEE Software 13 (6), 47–55. Product Lines, Third International Conference, SPLC 2004, Boston,
Kazman, R., Kruchten, P., Nord, R., Tomayko, J., 2004. Integrating MA. Springer-Verlag, pp. 110–129.
Software Architecture-Centric Methods into the Rational Unified van Deursen, A., Hofmeister, C., Koschke, R., Moonen, L., Riva, C.,
Process (No. CMU/SEI-2004-TR-011). Software Engineering Insti- 2004. Symphony: view-driven software architecture reconstruction. In:
tute, Pittsburgh, PA. Proceedings of 4th Working IEEE/IFIP Conference on Software
Kim, J., Lerch, F.J., 1992. Towards a model of cognitive process in logical Architecture (WICSA-04), Oslo, Norway. IEEE, pp. 122–134.
design: comparing object-oriented and traditional functional decom- Wieringa, R., 1998. A survey of structured and object-oriented software
position software methodologies. In: Proceedings of SIGCHI Confer- specification methods and techniques. ACM Computing Surveys 30
ence on Human Factors in Computing Systems, Monterey, California, (4), 459–527.
United States. ACM Press, pp. 489–498.
Kruchten, P., 1995. The 4 + 1 View Model of Architecture. IEEE
Software 12 (6), 45–50. Christine Hofmeister is an assistant professor in Computer Science &
Kruchten, P., 2003. The Rational Unified Process: An Introduction, third Engineering at Lehigh University, in Bethlehem, PA. Her current research
ed. Addison-Wesley, Boston. areas are software architecture and component-based systems. She
Kruchten, P., 2005. Casting software design in the function–behavior– received her A.B in Mathematics from Bryn Mawr College, M.S. in
structure (FBS) framework. IEEE Software 22 (2), 52–58. Computer Science from Lehigh University, and Doctorate from the
Matinlassi, M., 2004. Comparison of software product line architecture University of Maryland, with a dissertation on dynamic reconfiguration of
design methods: COPA, FAST, FORM, KobrA and QADA. In: distributed systems. Prior to joining Lehigh’s faculty in 2000, she spent a
Proceedings of 29th International Conference on Software Engineering number of years at Siemens Corporate Research in Princeton, NJ. While
(ICSE 2004), Edinburgh, Scotland. IEEE, pp. 127–136. at Siemens, she coauthored the book Applied Software Architecture with
Matinlassi, M., Niemela, E., 2002b. Quality-driven architecture design Robert Nord. crh@eecs.lehigh.edu
method. In: Proceedings of 15th International Conference of Software
& Systems Engineering and their Applications (ICSSEA 2002), Paris, Philippe Kruchten is a professor of software engineering at the University
France, Conservatoire National des Arts et Métiers, vol. 3, session 11. of British Columbia, in Vancouver, Canada. His current interests are
Matinlassi, M., Niemelä, E., Dobrica, L., 2002a. Quality-driven architec- software process modeling and software architecture, and the impact of
ture design and quality analysis method (Report VTT256), VTT culture on global engineering projects. Prior to UBC, he spent 16 years at
Technical Research Centre of Finland, Espoo, Finland, 128p. Rational Software (now IBM), where he was associated as a consultant
Muller, G., 2005. The Gaudi Project Website. Available from: <http:// with several large-scale defense and aerospace projects around the world,
www.gaudisite.nl/>. and where he developed the Rational Unified Process, a software engi-
Nord, R., Tomayko, J., Wojcik, R., 2004. Integrating Software-Architec- neering process. He also spent 8 years at Alcatel in France, developing
ture-Centric Methods into eXtreme Programming (XP) (CMU/SEI- telephone switches. He has a mechanical engineering diploma and a
2004-TN-036). Software Engineering Institute, Pittsburgh, PA. doctorate degree in information systems from French institutions. He is
Obbink, H., Müller, J.K., America, P., van Ommering, R., Muller, G., van the author of three books about RUP. pbk@ece.ubc.ca
der Sterren, W., Wijnstra, J.G., 2000. COPA: a component-oriented
platform architecting method for families of software-intensive elec- Robert L. Nord is a senior member of the technical staff in the Product
tronic products (Tutorial). In: Proceedings of SPLC1, the First Line Systems Program at the Software Engineering Institute (SEI) where
Software Product Line Conference, Denver, Colorado. he works to develop and communicate effective methods and practices
Obbink, H., Kruchten, P., Kozaczynski, W., Hilliard, R., Ran, A., for software architecture. Prior to joining the SEI, Dr. Nord was a
Postema, H., Lutz, D., Kazman, R., Tracz, W., Kahane, E., 2002. member of the software architecture program at Siemens, where he
Report on Software Architecture Review and Assessment (SARA), balanced research in software architecture with work in designing and
Version 1.0. Available from: <http://philippe.kruchten.com/architec- evaluating large-scale systems. He earned a Ph.D. in Computer Science
ture/SARAv1.pdf>. from Carnegie Mellon University. He is co-author of Applied Software
Ran, A., 2000. ARES Conceptual Framework for Software Architecture. Architecture and Documenting Software Architectures: Views and Beyond.
In: Jazayeri, M., Ran, A., van der Linden, F. (Eds.), Software rn@sei.cmu.edu
Architecture for Product Families Principles and Practice. Addison-
Wesley, Boston, pp. 1–29.
Roshandel, R., Schmerl, B., Medvidovic, N., Garlan, D., Zhang, D., 2004. Henk Obbink is a principal scientist at Philips Research Laboratories in
Understanding Tradeoffs among Different Architectural Modeling Eindhoven. He heads the architecture research team for software-intensive
Approaches. In: Proceedings of 4th Working IEEE/IFIP Conference healthcare systems. His research interests have included computer systems,
on Software Architecture (WICSA-04), Oslo, Norway, pp. 47–56. communication systems, defense systems, and consumer products. He
Rozanski, N., Woods, E., 2005. Software Systems Architecture: Working received his doctorate in chemistry and physics from the University in
With Stakeholders Using Viewpoints and Perspectives. Addison- Utrecht. He is a member of the IFIP Working Group 2.10 on Software
Wesley, Boston. Architecture and the steering committees of the Working IEEE/IFIP
Schwaber, K., Beedle, M., 2002. Agile Software Development with Conference on Software Architecture and the Software Product Line
SCRUM. Prentice-Hall, Upper Saddle River, NJ. Conference. He was recently one of the guest editors of the March/April
Selic, B., 2004. The pragmatics of model-driven development. IEEE IEEE special Issue on the Past, Present and Future of Software Archi-
Software 20 (5), 19–25. tectures. henk.obbink@philips.com
Sharble, R.C., Cohen, S.S., 1993. The object-oriented brewery: a
comparison of two object-oriented development methods. ACM Alexander Ran is a Research Fellow at Nokia Research Center (NRC), in
SIGSOFT Software Engineering Notes 18 (2), 60–73. Cambridge, MA, USA. He is currently a Principal Investigator in
126 C. Hofmeister et al. / The Journal of Systems and Software 80 (2007) 106–126

collaboration between Nokia and Massachusetts Institute of Technology Pierre America received a Master’s degree from the University of Utrecht in
focusing on architectures for task-oriented user interfaces. Prior to 1982 and a Ph.D. from the Free University of Amsterdam in 1989. Since he
that he lead a research group working on software architecture analy- joined Philips Research in 1982, he has been working in different areas of
sis for improving performance characteristics of mobile phones, computer science, ranging from formal aspects of parallel object-oriented
conducted software architecture reviews, contributed to establishing programming to music processing. During the last few years he has been
software architecture processes, and served as a consultant for software working on software and system architecting approaches for product
architecture groups of several Nokia business units. alexander.ran@ families. He has been applying and validating these approaches in close
nokia.com cooperation with Philips Medical Systems. pierre.america@ philips.com

You might also like