Checking and Measuring the Architectural Structural Conformance of Object-Oriented Systems

Abstract

The benefits of architectural analyses are only achieved if one can guarantee that the implementation conforms to the architecture. We propose an approach for checking and measuring the structural conformance of a software system's implementation to its execution architecture. In contrast to existing approaches, our approach uses static analyses, and works with existing Java-like programming languages, existing object-oriented designs and existing integrated development environments. We address the problem with a multi-pronged approach, as follows: "a" express and enforce architectural intent related to object encapsulation and communication directly in code using ownership domain annotations; "b" extract a sound execution architecture from the annotated program semi-automatically; and "c" compare the as-built extracted architecture to the as-designed architecture semi-automatically; and "d" obtain a measure of conformance. We present an initial evaluation of the approach on two extended examples. In both cases, we extract as- built execution architectures that convey meaningful abstractions, convert them into standard component-and-connector architectures, and obtain measures of conformance between the as-designed and the as-built architectures that seem consistent with our intuition.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 2007
Accession Number
ADA476847

Entities

People

  • Jonathan Erik Aldrich
  • Marwan Abi-antoun

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Abstracts
  • Algorithms
  • Case Studies
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Connectors
  • Encapsulation
  • Errors
  • Heuristic Methods
  • Hierarchies
  • Language
  • Software Design
  • Standards
  • Test And Evaluation
  • Transient Response Analysis
  • United States

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Software Engineering.