A Language-based Approach to Specification and Enforcement of Architectural Protocols

Abstract

Software architecture research has proposed using protocols for specifying the interactions between components through ports. Enforcing these protocols in an implementation is difficult. This paper proposes an approach to statically reason about protocol conformance of an implementation. It leverages the architectural guarantees of the ArchJava programming language. The approach allows modular reasoning about implementations with callbacks, recursive calls, and multiple instances of component types. It uses a dataflow analysis to check method implementations and a summary-based interprocedural analysis to reason modularly about component composition. The approach is limited to static architectures but can handle multiple instances for component types and arbitrary nesting of components. We tested the implementation on a case study, and the results suggest that the approach can be scaled to large software applications.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 01, 2010
Accession Number
ADA522557

Entities

People

  • Darpan Saini
  • Jonathan Erik Aldrich
  • Kevin Bierhoff
  • Majid Al-meshari
  • Matthew Kehrt
  • Sangjin Han

Organizations

  • Carnegie Mellon University

Tags

DTIC Thesaurus Topics

  • Application Software
  • Boundaries
  • Case Studies
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Guarantees
  • Information Systems
  • Language
  • Programming Languages
  • Reasoning
  • Software Design
  • Specifications
  • Standards

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Computer Networking
  • Database Systems and Applications