Robustness
March 2022 • Technical Report
Rick Kazman, Philip Bianco, Sebastián Echeverría, James Ivers
This report summarizes how to systematically analyze a software architecture with respect to a quality attribute requirement for robustness.
Publisher:
Software Engineering Institute
CMU/SEI Report Number
CMU/SEI-2022-TR-004
DOI (Digital Object Identifier):
DOI: 10.1184/R1/16455660Subjects
Abstract
This report summarizes how to systematically analyze a software architecture with respect to a quality attribute requirement for robustness. The report introduces the quality attribute of robustness and common forms of robustness requirements for software architecture. It provides a set of definitions, foundational concepts, and a framework for reasoning about robustness and the satisfaction of robustness requirements by an architecture and by a system that realizes the architecture. It describes a set of architectural mechanisms—patterns and tactics—that are commonly used to satisfy robustness requirements. It also provides a set of steps that an analyst can use to determine whether an architecture documentation package provides enough information to support analysis and, if so, to determine whether the architectural decisions made contain serious risks relative to robustness requirements. An analyst can use these steps to determine whether those requirements, represented as a set of scenarios, have been sufficiently well specified to support the needs of analysis. The reasoning around this quality attribute should allow an analyst, armed with appropriate architectural documentation, to assess the robustness risks inherent in today's architectural decisions, in light of tomorrow’s anticipated needs.