Spreading knowledge about Gnutella: a case study in understanding net-centric applications - Tilley, S. (Proceedings 9th International Workshop on Program Comprehension. IWPC 2001, 2001)
The paper describes our experiences in attempting to understand the functional nature, high-level design, and implementation details of Gnut, a program that implements the Gnutella peer-to-peer Internet file system protocol. Gnutella is representative of a new breed of net-centric applications that is both qualitatively and quantitatively different than the typical legacy systems that are usually the focus of program understanding exercises. The primary motivation for this analysis is our interest in evaluating the applicability of traditional reverse engineering tools to aid in the understanding of this type of contemporary software system. A secondary motivation for the case study is an assessment of an existing framework for categorizing the capabilities of software reverse engineering environments, to further develop its capabilities. We found that the representative tool we used to examine Gnut, Source Navigator, does not adequately address the requirements of understanding net-centric applications. In particular, the emphasis on static source code analysis is no longer appropriate for this type of application. Dynamic analysis and network monitors are also needed to gain a more complete understanding of the subject system. We also found that the framework requires some alteration to be used in this new context, although the description of the tool's support for the canonical activities of reverse engineering and its quality attributes remains pertinent.