X-ray is a static reverse engineering approach to aid programmers in recovering the runtime architecture of existing distributed systems. X-ray comprises three domain-based static analysis techniques developed to facilitate the identification of implemented executable components and their potential runtime interconnections. The first technique---component module classification---is used to identify which compilation modules of the source constitute the code for each implemented executable component. The second technique---syntactic pattern matching---is used to help in the identification of code constructs that might implement potential runtime interaction features. The third and last technique---structural reachability analysis---is used to facilitate association of features identified via the syntactic pattern matching technique, to individual components. These three techniques are supported by a proof-of-concept recovery prototype that integrates several new and ``off-the-shelf'' tools.
To highlight the benefits of X-ray, the dissertation presents a detailed account of two successful applications of the prototype to help recover a static approximation of the runtime architecture of publicly available distributed systems, including a 160,000 line distributed programming environment.
Nabor das Chagas Mendonça
http://www.doc.ic.ac.uk/~ndcm/
N. C. Mendonça and J. Kramer. An approach for recovering distributed system architectures. Automated Software Engineering 8(3/4):311-354, 2001.