Institute for Software Research
School of Computer Science, Carnegie Mellon University
Static Extraction and Conformance Analysis of
This dissertation proposes a novel approach,
Previous approaches to enforcing communication integrity have significant drawbacks: they either require radical language extensions that incorporate architectural constructs at the expense of severe implementation restrictions, mandate specialized architectural middleware, or use dynamic analyses that cannot check all possible executions.
The key contribution is a static points-to analysis to extract, from an annotated program, a global object graph that provides architectural abstraction by ownership hierarchy and by types, where architecturally significant objects appear near the top of the hierarchy and data structures are further down. Moreover, an extracted object graph is sound in two respects. First, each runtime object has exactly one representative in the object graph. Second, the object graph has edges that correspond to all possible runtime points-to relations between those objects.
Another analysis abstracts an object graph into a built runtime architecture. Then, a third analysis compares structurally the built architecture to a target, and analyzes communication integrity in the target architecture, without propagating lowlevel implementation objects into the target architecture. An evaluation on several real object-oriented systems showed that, in practice, SCHOLIA can be applied to an existing system while changing only annotations in the code, and that SCHOLIA can identify interesting structural differences between an existing implementation and its target architecture.