This report summarizes how to systematically analyze a software
architecture with respect to a quality attribute requirement for
maintainability. The report introduces maintainability and common forms
of maintainability requirements for software architectures. It provides a
set of definitions, core concepts, and a framework for reasoning about
maintainability and the satisfaction (or not) of maintainability
requirements by an architecture and, eventually, a system. It describes a
set of mechanisms, such as patterns and tactics, that are commonly used
to satisfy maintainability requirements. It also provides a method by
which an analyst can determine whether an architecture documentation
package provides enough information to support analysis and, if so,
determine whether the architectural decisions contain serious risks
relative to maintainability requirements. An analyst can use this method
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 risks inherent in today’s architectural decisions in light of
tomorrow’s anticipated needs.
History
Publisher Statement
This report was prepared for the SEI Administrative Agent AFLCMC/AZS 5 Eglin Street Hanscom AFB, MA 01731-2100NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. 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 reproductions 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 atpermission@sei.cmu.edu.* These restrictions do not apply to U.S. government entities.Architecture Tradeoff Analysis Method® and ATAM® are registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.DM20-0773
Date
2020-12-01
Copyright Statement
Copyright 2020 Carnegie Mellon University.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.