Institute for Software Research
School of Computer Science, Carnegie Mellon University


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

Kevin Bierhoff, Jonathan Aldrich. Sangjin Han*

April 2006
Reissued December 2007

This technical report was drafted under the the number
CMU-CS-06-119 and has been available on the first author's website
since April 2006. It was officially published, without content changes,
in December 2007 as CMU-ISRI-07-121.


This report is superceded by Institute for Software Research
Technical Report CMU-ISR-10-110

Keywords: Protocol, typestate, software architecture, ArchJava

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 uses model checking techniques 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.

32 pages

*Formerly with Carnegie Mellon University.

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by