search menu icon-carat-right cmu-wordmark

Software Architecture

Created December 2017

For almost two decades, the SEI has been instrumental in the creation and development of the field of software engineering known as software architecture. Software architecture is the conceptual glue that holds every phase of the project together for its many stakeholders.

Why Architecture?

The software architecture of a program or computing system is a depiction of the system that aids in understanding how the system will behave.

Software architecture serves as the blueprint for both the system and the project developing it, defining the work assignments that must be carried out by design and implementation teams. The architecture is the primary carrier of system qualities such as performance, modifiability, and security, none of which can be achieved without a unifying architectural vision. Architecture is an artifact for early analysis to make sure that a design approach will yield an acceptable system. By building an effective architecture, you can identify design risks and mitigate them early in the development process.

We can help you create an architecture that responds to critical system qualities.

Methods for Software Architecture

The SEI has a range of proven methods and practices that can help organizations use software architecture to build and evolve systems that satisfy their business and mission goals. These methods and practices, which are applied at different stages of the development lifecycle, have evolved with the advent of Agile development approaches.

  • Capture architecturally significant requirements by analyzing the business drivers, system context, and factors that system stakeholders deem critical to success. We use two methods to identify important nonfunctional quality attributes of the system (e.g., performance, dependability, security, safety) and clarify system requirements: the Quality Attribute Workshop and the Mission Thread Workshop.
  • Design an architecture by developing architectural structures and coordination strategies that satisfy requirements. Our Attribute-Driven Design method helps organizations iteratively design effective architectures.
  • Evaluate the architecture by determining its ability to support the quality attributes that meet an organization's business and mission goals. Our Architecture Tradeoff Analysis Method (ATAM) and incremental design-review practices help organizations gain early and ongoing insight into their software architectures.
  • Document the architecture in sufficient detail and in an easily accessible form to facilitate communication with developers and other stakeholders and to support analysis. Our Views and Beyond approach captures multiple architecture views, each addressing the concerns of particular stakeholders. The SEI also helped develop the Architecture Analysis and Design Language (AADL), a domain-specific architecture modeling language used for safety-critical systems, and the Open Source AADL Tool Environment (OSATE). AADL and OSATE are used to analyze the performance, security, and safety of real-time systems.

How do you know if a software architecture is deficient or at risk relative to its target system qualities?

The answer is to conduct an evaluation of it. A formal software architecture evaluation should be a standard part of the architecture-based software development lifecycle. Architecture evaluation is a cost-effective way of mitigating the substantial risks associated with this highly important artifact.

The achievement of a software system's quality attributes depends much more on the software architecture than on code-related issues such as language choice, fine-grained design, algorithms, data structures, testing, and so forth. Most complex software systems are required to be modifiable and have good performance. They may also need to be secure, interoperable, portable, and reliable.

But for any particular system, what precisely do these quality attributes—modifiability, security, performance, reliability—mean? Can a system be analyzed to determine these desired qualities? How soon can such an analysis occur? What happens when these quality attributes are in conflict with each other? How can the tradeoffs be examined, analyzed, and captured?

Our tools and methods can be used alone or in combination to obtain early and continuous benefits to any software development project.

The SEI Architecture Technology User Network (SATURN) Conference

SATURN is the leading conference for software architecture practitioners who look beyond the details of today’s technologies to the underlying trends, techniques, and principles that underpin lasting success in our fast-moving field. SATURN attracts attendees from many domains and technical communities who share interests in both practice and research. This unique mix makes it the best place to learn, exchange ideas, and find collaborators at the leading edge of modern software architecture practice.

The 14th SATURN Conference will be held in Plano, Texas, near Dallas, on May 7–10, 2018.

Related Courses and Credentials

Based on decades of experience architecting software-reliant systems and supported by four widely acclaimed books, our software architecture training equips software professionals with state-of-the-art practices, so they can efficiently design software-reliant systems that meet their intended business and quality goals.

Learn more about SEI Certificates in software architecture:

We also offer many courses on topics related to software architecture, from big data architectures to microservices, from documenting architectures to analyzing them, and from designing systems to managing their technical debt. Learn more about SEI courses.

Learn More

ROI Analysis of the System Architecture Virtual Integration Initiative

ROI Analysis of the System Architecture Virtual Integration Initiative

April 12, 2018 Technical Report
Steve Helton (The Boeing Company)Peter H. FeilerJörgen Hansson (University of Skovde)

This report presents an analysis of the economic effects of the System Architecture Virtual Integration approach on the development of software-reliant systems for aircraft compared to existing development paradigms.

read
Automated Assurance of Security-Policy Enforcement In Critical Systems

Automated Assurance of Security-Policy Enforcement In Critical Systems

February 19, 2018 Blog Post
Peter Feiler

As U.S. Department of Defense (DoD) mission-critical and safety-critical systems become increasingly connected, exposure from security infractions is likewise increasing. In the past, system developers had worked on the assumption that, because their systems were not connected and did not...

read
System-of-Systems Viewpoint for System Architecture Documentation

System-of-Systems Viewpoint for System Architecture Documentation

January 21, 2018 Article
John KleinHans van Vliet (VU University)

We evaluated an architecture documentation viewpoint to address the concerns of a SoS architect about a constituent system, to support SoS design and analysis involving that constituent system.

read
Guided Architecture Trade Space Exploration for Safety-Critical Software Systems

Guided Architecture Trade Space Exploration for Safety-Critical Software Systems

October 30, 2017 Presentation
Samuel Procter

Presentation on research to create new tool prototype that automatically explores a system's trade space

read
Dynamic Design Analysis

Dynamic Design Analysis

October 30, 2017 Presentation
Rick Kazman

Presentation on research to identify dynamic dependencies that result from the way modern systems are composed

read
Automated Assurance of Security Policy Enforcement (2017)

Automated Assurance of Security Policy Enforcement (2017)

October 30, 2017 Presentation
Samuel ProcterPeter H. Feiler

Presentation on research to detect vulnerabilities early in the lifecycle in architecture models

read
Architecture Practices for Complex Contexts

Architecture Practices for Complex Contexts

September 26, 2017 White Paper
John Klein

This doctoral thesis, completed at Vrije Universiteit Amsterdam, focuses on software architecture practices for systems of systems, including data-intensive systems.

read

"SHORT"er Reasoning About Larger Requirements Models

September 08, 2017 Conference Paper
Neil ErnstJohn KleinGeorge Mathew (North Carolina State University)

SHORT is a tool to simplify reasoning about requirements engineering (RE) models by exploiting key decisions within them, evaluated on eight complex RE models.

read
SEI Cyber Minute: Representing Your Technical Debt

SEI Cyber Minute: Representing Your Technical Debt

August 23, 2017 Video
Ipek Ozkaya

Watch Ipek Ozkaya in this Cyber Minute, as she recommends developers adopt a simple practice of reporting technical debt, including its potential accumulating side effects, as they discover or accrue that debt.

watch
The Hard Choices Game Explained

The Hard Choices Game Explained

June 26, 2017 White Paper
Erin LimRobert NordIpek Ozkaya

The Hard Choices game is a simulation of the software development cycle meant to communicate the concepts of uncertainty, risk, and technical debt.

read

Related Courses

Software Architecture: Principles and Practices - eLearning

ONLINE

Although the term software architecture is used frequently in today's software industry, its meaning is not universally understood. What is software architecture? How do you use software architectures in practice? What does a software architect do for an organization? What value does software architecture provide? This course introduces the...

Register

Software Architecture: Principles and Practices

2 - Day Course

Although the term software architecture is used frequently in today's software industry, its meaning is not universally understood. What is software architecture? How do you use software architectures in practice? What does a software architect do for an organization? What value does software architecture provide? This course introduces the...

Register