Maintainability

Abstract

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 todays architectural decisions in light of tomorrows anticipated needs.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 01, 2020
Accession Number
AD1115833

Entities

People

  • James Ivers
  • John Klein
  • Phil Bianco
  • Rick Kazman

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Cyber
  • Engineered Resilient Systems
  • Human Systems
  • Sensors
  • Weapons Technologies

DTIC Thesaurus Topics

  • Abstracts
  • Classification
  • Computer Program Reliability
  • Computer Programming
  • Computer Programs
  • Computers
  • Debugging
  • Department Of Defense
  • Engineering
  • Knowledge Management
  • Literature Surveys
  • Maintainability
  • Maintenance
  • Measurement
  • Operating Systems
  • Operations Research
  • Radar Altimeters
  • Software Design
  • Software Development
  • Software Testing
  • Standards
  • System Software
  • Systems Engineering
  • Test And Evaluation

Fields of Study

  • Computer science
  • Engineering

Readers

  • Life Cycle Cost Analysis
  • Maritime Combat Support and Expeditionary Logistics.
  • Parallel and Distributed Computing.