Software Architecture Publications
Software Architecture Publications
September 2018
Contents
Definitions and General Treatment 1
Representation and Documentation 3
Evaluation and Analysis 6
Architecture-Based Design and Development 15
Quality Attribute Workshops (QAWs) 22
Architecture Tradeoff Analysis Method (ATAM) 24
Acquisition 28
This report presents guidelines for architecting service-oriented systems and the effect of architec-
tural principles on system quality attributes.
This 2010 report describes the agenda of an SEI-led group that was formed to explore the business,
engineering, and operations aspects of service-oriented architecture.
This report presents the results of the Foundations of Software-Oriented Architecture (FSOA) work-
shop held at the Third International Conference on Interoperability for Enterprise Software and
Applications (I-ESA 2007).
This report contains technical information about SOA design considerations and tradeoffs that can
help the architecture evaluator to identify and mitigate risks in a timely and effective manner.
In this report, five methods for the elicitation and expression of requirements are evaluated with
respect to their ability to capture architecturally significant requirements.
This report summarizes software architecture for an intended audience of mid to senior level man-
agement.
The increasing importance of software in systems is also driving the software architecture renais-
sance. This article provides a brief overview of some important architecture related efforts.
This book provides an easily accessible overview of software architecture. Anyone requiring a com-
prehensive overview of the software architecture field will benefit from this book.
This paper updates an invited keynote for ICSE-23, "The Coming-of-Age of Software Architecture
Research" by Mary Shaw. It is also the basis for “The Golden Age of Software Architecture,” pub-
lished in IEEE Software), March/April 2006.
This book provides the most complete and current guidance on how to capture a software archi-
tecture in a commonly understandable form.
This report summarizes the V&B and 1471 approaches to architecture description, and shows how
a software architecture document prepared using V&B can be made compliant with 1471.
This report describes a design prototype that demonstrates a web-based approach to creating,
communicating, and using software architecture throughout the life of the system.
This 2004 report explores how changes in UML 2.0 affect UML's suitability for documenting com-
ponent and connector views.
This report provides guidance for documenting the interfaces to software elements.
This report describes ways to document the behavior of systems, subsystems, and components of
software architecture.
This comprehensive handbook outlines how to produce high-quality documentation for software
architectures.
This report summarizes the discussions from the 2001 Architecture Representation Workshop,
where five leading software architects and practitioners were invited to discuss aspects of the ar-
chitecture representation with senior members of the SEI technical staff.
The network infrastructure for users such as emergency responders or warfighters is wireless, ad
hoc, mobile, and lacking in sufficient bandwidth. This report documents the results from 18 experi-
ments to investigate Adaptive Quality of Service, an approach to enable applications to fulfill their
missions despite tactical network infrastructure limitations.
This report summarizes a workshop on the analysis and evaluation of enterprise architectures that
was held at the SEI in April of 2010.
In this report, the authors present COVERT, an automated framework for finding buffer overflows
in C programs using software verification tools and techniques.
This report describes how AADL support an instantiation of a reference architecture, address ar-
chitectural themes, and provide a foundation for the analysis of performance elements and system
assurance concerns.
This report introduces key concepts of the SAVI paradigm and discusses the series of development
scenarios used in a POC demonstration to illustrate the feasibility of improving the quality of soft-
ware-intensive aircraft systems.
This report contains technical information about SOA design considerations and tradeoffs that can
help the architecture evaluator to identify and mitigate risks in a timely and effective manner.
This report shows how an analysis of the options embodied within architectural patterns allows a
software and system architect or manager to make reasoned choices about the future value of
design decisions.
This 2006 report analyzes the output of 18 evaluations conducted using the Architecture Tradeoff
Analysis (ATAM). The goal of the analysis was to find patterns in the risk themes identified during
those evaluations.
In this 2006 report, the authors describe the results of a preliminary investigation into measures for
software architecture.
This technical note discusses some of the challenges of using Web services standards and pre-
sents the results generated by an assessment tool used to track the appropriateness of using this
technology.
This report examines the relationship between service-oriented architectures (SOAs) and quality
attributes.
This report describes a vehicle for encapsulating the quality attribute knowledge needed to under-
stand a system's quality behavior as a reasoning framework that can be used by nonexperts.
This report describes a technique that uses automatically generated runtime observations of an
executing system to construct an architectural view of the system.
The report presents a summary of XP (Extreme Programming) and examines the potential uses of
the SEI's architecture-centric methods.
The report describes SACAM, a method that provides rationale for an architecture selection pro-
cess by comparing the fitness of architecture candidates for required systems.
This technical note reports on a proposal to integrate the SEI ATAM (Architecture Tradeoff Analysis
Method) and the CBAM (Cost Benefit Analysis Method).
This report describes the newly revised QAW (Quality Attribute Workshop) and describes potential
uses of the refined scenarios generated during it.
This report provides software architects a chart for determining the relationships among techniques
that promote different architectural qualities.
When analyzing system and software architectures, the Quality Attribute Workshop (QAW) and the
Architecture Tradeoff Analysis Method (ATAM) can be used in combination to obtain early and
continuous benefits.
This 2002 report presents the basic concepts of analysis models for two quality attributes-modifia-
bility and performance, identifies a collection of tactics that can be used to control responses within
those models, and discusses how to analyze the models in terms of these tactics.
This case study outlines how a DoD organization used architecture analysis and evaluation in a
major system acquisition to reduce program risk.
The SEI developed the CBAM (Cost Benefit Analysis Method), which incorporates the costs and
benefits of architectural design decisions and provides an effective means of making such deci-
sions. This paper reports on the application of this method to a real world case study.
This 2000 technical note describes Active Review for Intermediate Designs (ARID), a piloted soft-
ware design review technique.
This report describes a series of Quality Attribute Workshops (QAWs) that were conducted on be-
half of a government agency during its competitive acquisition of a complex, tactical, integrated
command and control system.
This report identifies features in agent-based systems that could be used to classify agent-system
architectures and to guide the generation of scenarios applicable to these architectures.
This report describes a few principles for analyzing a software architecture to determine if it exhibits
certain quality attributes.
This report details the results of two workshops on software architecture evaluation, held at the SEI
in 1996.
This report describes efforts to develop a unifying approach for reasoning about multiple software
quality attributes.
This paper describes three perspectives by which we can understand the description of a software
architecture and proposes a five-step method for analyzing software architectures called SAAM
(Software Architecture Analysis Method).
This paper presents an approach to capturing and assessing software architectures for evolution
and reuse.
This paper presents an experiential case study illustrating the methodological use of scenarios to
gain architecture-level understanding and predictive insight into large, real-world systems in various
domains.
This paper presents a case study in carrying out an audit of a large, software-intensive system.
This paper presents a method for analyzing systems for nonfunctional qualities from the perspec-
tive of their software architecture and applies this method to the field of Internet information systems
(IISs).
This book is a comprehensive guide to software architecture evaluation, describing specific meth-
ods that can quickly and inexpensively mitigate enormous risk in software projects.
This paper presents a case study in assessing the maintainability of a large, software intensive
system. The techniques used are described, and their strengths and weaknesses discussed.
This article explores the non-technical aspects of formal architecture reviews—social, psychologi-
cal, and managerial.
This report shows how an analysis of the options embodied within architectural patterns allows a
software and system architect or manager to make reasoned choices about the future value of
design decisions.
This report presents guidelines for architecting service-oriented systems and the effect of architec-
tural principles on system quality attributes.
ACE methods and the TSP provides an iterative approach for delivering high quality systems on
time and within budget. The combined approach helps organizations that must set an architec-
ture/developer team in motion using mature, disciplined engineering practices that produce quality
software quickly.
Tactics are fundamental elements of software architecture that an architect employs to meet a
system's quality requirements. This report describes an updated set of tactics that enable the ar-
chitect to build availability into a system.
This report illustrates how to use AOP (aspect-oriented programming) to ensure conformance to
architectural design, proper use of design patterns and programming best practices, conformance
to coding policies and naming conventions.
The ArchE (Architecture Expert) tool serves as a software architecture design assistant. This report
describes the use of a pre-alpha release of ArchE in a graduate-level software architecture class
at Clemson University.
This report describes how architectural tactics are based on the parameters of quality attribute
models.
This 2007 report describes an example application of the ADD method, an approach to defining a
software architecture in which the design process is based on the quality attribute requirements the
software must fulfill.
This report revises the steps of the Attribute-Driven Design (ADD) method and offers practical
guidelines for carrying out each step.
This note describes an ARL implementation of two usability scenarios: displaying progress feed-
back and allowing cancel.
This report describes a technique that uses automatically generated runtime observations of an
executing system to construct an architectural view of the system.
In this report, the authors describe an approach to disciplined software architecture design for the
related quality attributes of security and survivability.
This report presents a summary of the RUP (Rational Unified Process) and examines the potential
uses of the SEI's architecture-centric methods.
This 2003 report presents a procedure for moving from a set of quality attribute scenarios to an
architecture design that satisfies those scenarios.
This 2003 technical report provides the status on the work being done by the SEI to understand
the relationship between quality requirements and architectural design.
This report introduces the notion of quality attribute design primitives, which are architectural build-
ing blocks that target the achievement of one or sometimes several quality attribute requirements.
This paper outlines an approach to improving the usability of software systems by means of soft-
ware architectural decisions.
This report addresses mechanisms that significantly affect quality attribute behavior and have suf-
ficient content for analysis.
This report elaborates an example of the application of the ABD (Architecture-Based Design)
method to designing software architecture.
This paper presents the Architecture Based Design (ABD) method for designing the high-level soft-
ware architecture for a product line or long-lived system.
Architecture-Based Development
Len Bass & Rick Kazman
Technical Report (CMU/SEI-99-TR-007), April 1999
https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=13385
Quality Attribute Design Primitives and the Attribute Driven Design Method
Felix Bachmann, Len Bass, & Mark H. Klein
White Paper, October 2001
https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=29604
This paper discusses the understanding of quality attributes and their application to the design of
a software architecture.
This position paper first presents a set of requirements that an ideal tool for
architectural design and analysis, and then presents a tool—called SAAMtool—
that meets most, but not all, of these requirements. Understanding Architectural
Influences and Decisions in Large-System Projects
Paul C. Clements
White Paper, April 1995
https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=30043
This paper discusses the approach taken in a pilot study to uncover the correlation, if any, between
architectural influences and architectural decisions in large-scale, software-intensive development
projects.
This white paper was presented at the Workshop on Software Architecture, USC Center for Soft-
ware Engineering, Los Angeles, 1994, by Paul Clements.
This book describes specific engineering practices needed to integrate preexisting components
with preexisting specifications successfully, illustrating the techniques described with case studies
and examples.
This paper describes the Gadfly, an approach for developing narrowly-focused, reusable domain
models that can be integrated and (re)used to aid in the process of top-down system comprehen-
sion.
This 2009 report describes the results of a study of the impact that the ATAM evaluations and
QAWs had on Army programs.
This technical note reports on a proposal to integrate the SEI Quality Attribute Workshop (QAW)
and the SEI Attribute-Driven Design (ADD) method.
This report describes the newly revised QAW (Quality Attribute Workshop) and describes potential
uses of the refined scenarios generated during it.
This case study outlines how a DoD organization used architecture analysis and evaluation in a
major system acquisition to reduce program risk.
This report clarifies the context in which a QAW (Quality Attribute Workshop) is applicable, provides
a rationale for developing the process and describes it in detail, and concludes with a list of lessons
learned and a discussion of how these lessons have helped evolve the process to its current state.
This report describes the QAW (Quality Attribute Workshop) approach, which is a method for eval-
uating a software-intensive system architecture during the acquisition phase of major programs.
This report describes a series of Quality Attribute Workshops (QAWs) that were conducted on be-
half of a government agency during its competitive acquisition of a complex, tactical, integrated
command and control system.
This report describes the 1) process we use to conduct QAW (Quality Attribute Workshop), 2) in-
formation required, 3) suggested tools, and 4) expected outcomes of QAWs.
This 1996 report identifies a set of promising lines of research related to software architecture and
architecture-based system development.
This 2007 report describes the Software Architecture Initiative of the Army Strategic Software Im-
provement Program.
This report provides a categorization of possible business goals for software-intensive systems, so
that individuals have some guidance in the elicitation, expression, and documentation of business
goals.
This report describes the application of the SEI ATAM (Architecture Tradeoff Analysis Method) to
the U.S. Army's Warfighter Information Network-Tactical (WIN-T) system.
Integrating the Architecture Tradeoff Analysis Method (ATAM) with the Cost
Benefit Analysis Method (CBAM)
Robert Nord, Mario R. Barbacci, Paul C. Clements, Rick Kazman, Mark H. Klein, Liam O'Brien, &
James E. Tomayko
Technical Note (CMU/SEI-2003-TN-038), December 2003
https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=6557
This technical note reports on a proposal to integrate the SEI ATAM (Architecture Tradeoff Analysis
Method) and the CBAM (Cost Benefit Analysis Method)
This 2003 technical note describes an ATAM evaluation of the software architecture for an avionics
system developed for the Technology Applications Program Office (TAPO) of the U.S. Army Spe-
cial Operations Command Office.
This report explains the role of software architecture evaluation in a source selection and describes
the contractual elements that are needed to support its use.
This report describes the application of the ATAM (Architecture Tradeoff Analysis Method) to a
major wargaming simulation system.
In this report, we compare the scenarios elicited from five ATAM (Architecture Tradeoff Analysis
Method) evaluations with the scenarios used to characterize the quality attributes.
This report discusses the role of software architecture evaluations in a system acquisition and de-
scribes the contractual elements that are needed to accommodate architecture evaluations in an
acquisition. The report also provides an example of contractual language that incorporates the
ATAM as a software architecture evaluation method in a system acquisition.
This report analyzes and identifies the Architecture Tradeoff Analysis Method (ATAM)'s evaluation
process and criteria, as well as its data-gathering and synthesis techniques, and more.
This report presents technical and organizational foundations for performing architectural analysis,
and presents the SEI's ATAM, a technique for analyzing software architectures.
This report describes the application of the ATAM (Architecture Tradeoff Analysis Method) to eval-
uate a reference architecture for ground-based command and control systems.
This report explains the basics of software architecture and software architecture evaluation in a
system acquisition context.
This paper presents some of the steps in an emerging architecture tradeoff analysis method
(ATAM).
Rick Kazman, Mark Klein, Mario Barbacci, Howard Lipson, Thomas Longstaff, & S. Jeromy Car-
rière. Proceedings of ICECCS. Monterey, CA), August 1998.
Acquisition
A Proactive Means for Incorporating a Software Architecture Evaluation in a DoD
System Acquisition
John K. Bergey
Technical Note (CMU/SEI-2009-TN-004), July 2009
https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=8935
This technical note provides guidance on how to contractually incorporate architecture evaluations
in an acquisition.
This 2009 report describes the results of a study of the impact that the ATAM evaluations and
QAWs had on Army programs.
This report confirms that various architectural genres enjoy more commonalities than differences.
Each one has its own important knowledge base, and openness among the various architectural
tasks within an organization is growing in importance.
This 2007 report describes the Software Architecture Initiative of the Army Strategic Software Im-
provement Program.
This report discusses the Software Development Plan (SDP), providing an example approach and
corresponding SDP language that enable software architecture to play a central role in the technical
and organizational management of a software development effort.
This report provides a reference standard for a Software Architecture Document (SAD). Acquisition
organizations can use this to acquire documentation needed for communicating the architecture
design and conducting software architecture evaluations.
This report discusses the context for using the C4ISRAF, the observations made during the inter-
views about its use, and the strengths and challenges of using it.
This report summarizes the activities of the Workshop on the Department of the 2003 Defense
Architecture Framework and Software Architecture workshop.
This case study outlines how a DoD organization used architecture analysis and evaluation in a
major system acquisition to reduce program risk.
This report explains the basics of software architecture and software architecture evaluation in a
system acquisition context.
This material is based upon work funded and supported by the Department of Defense under Contract No.
FA8702-15-D-0002 with Carnegie Mellon University for the operation of the Software Engineering Institute, a
federally funded research and development center.
The view, opinions, and/or findings contained in this material are those of the author(s) and should not be
construed as an official Government position, policy, or decision, unless designated by other documentation.
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribu-
tion. Please see Copyright notice for non-US Government use and distribution.
Internal use:* Permission to reproduce this material and to prepare derivative works from this material for
internal use is granted, provided the copyright and “No Warranty” statements are included with all reproduc-
tions and derivative works.
External use:* This material may be reproduced in its entirety, without modification, and freely distributed in
written or electronic form without requesting formal permission. Permission is required for any other external
and/or commercial use. Requests for permission should be directed to the Software Engineering Institute at
[email protected].
Architecture Tradeoff Analysis Method®, ATAM® and Carnegie Mellon® are registered in the U.S. Patent and
Trademark Office by Carnegie Mellon University.
DM18-1071