The software industry is increasingly facing the issues of understanding and maintaining a particular type of software systems, namely distributed systems. While these systems are usually implemented in an object-oriented fashion, they raise very specific, and technology-dependent, understandability and quality assessment challenges. In this paper we present a novel approach for understanding a distributed system, by analyzing the structure of its source code and identifying the design fragments that contribute to those specific features that use or depend on the distributed communication infrastructure. By applying the approach on a couple of real-world Java/RMI distributed systems, we show that it provides reliable means for capturing both an overview of the systems' distributed architecture, and a detailed understanding of the impact of the distributed features on the entire system (including the local features).
Dan C. Cosma, Radu Marinescu