Attribute-Based Architectural Styles

Abstract

An architectural style is a description of component types and their topology. It also includes a description of the pattern of data and control interaction among the components and an informal description of the benefits and drawbacks of using that style. Architectural styles are important engineering artifacts because they define classes of designs along with their associated known properties. They offer experience based evidence of how each class has been used historically, along with qualitative reasoning to explain why each class has its specific properties. Attribute Based Architectural Styles (ABASs) build on architectural styles to provide a foundation for more precise reasoning about architectural design by explicitly associating a reasoning framework (whether qualitative or quantitative) with an architectural style. These reasoning frameworks are based on quality attribute specific models, which exist in the various quality attribute communities (such as the performance and reliability communities). Architectural styles, and hence ABASs, are powerful because they provide a designer with the concentrated wisdom of many preceding designers faced with similar problems. In this report we exemplify the use of ABASs in both design and analysis. We argue that ABASs provide the groundwork to create an engineering discipline of architectural design; to make design a predictable process rather than an ad hoc one.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1999
Accession Number
ADA371802

Entities

People

  • Mark Klein
  • Rick Kazman

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Ground and Sea Platforms
  • Human Systems
  • Weapons Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Communities
  • Computations
  • Computing System Architectures
  • Connectors
  • Control Systems
  • Detectors
  • Device Drivers
  • Engineering
  • Markov Models
  • Operating Systems
  • Reasoning
  • Redundant Components
  • Reliability
  • Software Design
  • Software Development
  • User Interface

Fields of Study

  • Computer science

Readers

  • Artificial Intelligence
  • Systems Analysis and Design