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 16th SATURN Conference will be held in Orlando, Florida, on May 11–14, 2020.

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.

Software and Tools

Reduce Risk with Architecture Evaluation

February 2018

The SEI's architecture evaluation methods can help you improve software development and quality and gain early confidence in achieving system-related business and mission goals.

read

The SEI Quality Attribute Workshop

February 2018

Before you build a software system, you need to clarify the capabilities it must deliver. The SEI Quality Attribute Workshop helps you identify important quality attributes before there is a software architecture.

read

Mission Thread Workshop

February 2018

A Mission Thread Workshop conducted by the SEI is an effective way of understanding stakeholder needs and reducing the risks associated with software architectures.

read

SeaHorn

November 2017

SeaHorn is an automated analysis framework for LLVM-based languages.

download

QuaBaseBD

November 2015

QuABaseBD is a linked collection of computer science and software engineering knowledge used specifically for designing big data systems with NoSQL databases.

download

ERACES

August 2015

ERACES is a collection of methods and tools for reducing complexity in software models.

download

Architecture Analysis and Design Language (AADL) Tool

June 2015

AADL provides a framework for analyzing system designs and supports architecture-centric, model-based development through the system lifecycle.

download

OSATE

October 2014

OSATE is an open-source tool platform to support AADL.

download

SMART Materials

February 2013

SMART materials help organizations make better decisions on their paths to adopting a service-oriented architecture.

read

Views and Beyond Documentation Template

February 2006

A Microsoft Word template for a software architecture document is available for free download.

read

Learn More

Early Analysis of Software Architecture

Early Analysis of Software Architecture

January 26, 2021 Collection

The reports in this collection summarize how to systematically analyze a software architecture with respect to quality attribute requirements.

view
Model Based Engineering with AADL: Transitioning Research to Practice

Model Based Engineering with AADL: Transitioning Research to Practice

December 15, 2020 Video
Sam Procter

To understand interactions between safety and security mechanisms, CMU SEI researchers are developing an integrated safety and security engineering approach supported by an AADL workbench.

watch
A Playbook for Early Architecture Analysis

A Playbook for Early Architecture Analysis

November 13, 2020 Presentation
John KleinPhilip BiancoRick Kazman

This talk describes a playbook to analyze early architecture artifacts' support for development-time quality attributes that affect long-term system success.

read
Automated Design Conformance During Continuous Integration

Automated Design Conformance During Continuous Integration

November 04, 2020 Presentation
Robert Nord

The project employs code analysis, software architecture knowledge, and ML to automatically extract design as implemented in the code and check conformance.

read
Untangling the Knot: Enabling Rapid Software Evolution

Untangling the Knot: Enabling Rapid Software Evolution

November 04, 2020 Presentation
James Ivers

This project uses AI techniques to recommend refactorings that can improve the structure of software in significantly less time than it takes to manually refactor.

read
TwinOps: Digital Twins Meet DevOps

TwinOps: Digital Twins Meet DevOps

November 04, 2020 Presentation
Jerome Hugues

This research improves the state of the art and the state of practice to design and analyze cyber-physical systems using DevOps and model-based engineering.

read
Architecture Evaluation for Universal Command and Control

Architecture Evaluation for Universal Command and Control

August 03, 2020 White Paper
John KleinPatrick DonohoePhilip Bianco

The SEI developed an analysis method to assess function allocations in existing C2 systems and reason about design choices and tradeoffs during the design of new C2 systems.

read
Becoming a Better Software Architect

Becoming a Better Software Architect

March 13, 2020 Webinar
Ipek OzkayaJames IversPhilip Bianco

In this session, a panel of architects discussed their personal paths to becoming software architects and how they have helped others on that journey.

watch
Integrating Safety and Security Engineering for Mission-Critical Systems

Integrating Safety and Security Engineering for Mission-Critical Systems

November 22, 2019 Video
Sam ProcterAlex Boydston (U.S. Army ADD/JMR)

Watch SEI principal investigator Dr. Sam Procter discuss ongoing research to make it easier to specify, design, and assure critical systems that are safer and more secure using model based engineering with AADL.

watch
AADL Overview and Perspectives

AADL Overview and Perspectives

November 06, 2019 Presentation
Peter H. Feiler

Talk given by Peter Feiler at AADL User Day 2019

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. In this course we answer these questions 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...

Register

Software Architecture: Principles and Practices

4 - 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