A Service Sharing Approach to Integrating Program Comprehension Tools

Software maintenance is the most time consuming and costly phase of the software development lifecycle. For every dollar spent on creating a new software system, nine dollars is spent on maintaining it throughout its useful life. By the late 1980s maintenance spending accounted for an estimated US$30 billion worldwide. Any activity that even minimally reduces maintenance efforts would yield significant cost savings within the software industry [3]. Tool support for maintainers has focused largely on providing assistance in activities related to program comprehension. The goal of these tools is to provide a rapid means for maintainers to understand large scale software systems. Most program comprehension tools have a specific strength or specialized application area [10] but are weak in other areas. No single tool exists that provides all the functionality and flexibility that most software maintainers need. For this reason, research attention has been focused on getting program comprehension tools to integrate with each other. In this paper we present a novel approach to facilitating integration among tools used by maintainers to assist in program comprehension. We start by showing that program comprehension tools have many similar characteristics. Taking full advantage of this fact, we outline how specially designed adapters and a domain ontology can be used together to allow these tools to integrate transparently with each other.

[1]  Michael W. Godfrey Practical data exchange for reverse engineering frameworks: some requirements, some experience, some headaches , 2001, SOEN.

[2]  Kevin A. Schneider,et al.  Formalization of information hiding design methods , 1992, CASCON.

[3]  Laurian M. Chirica,et al.  The entity-relationship model: toward a unified view of data , 1975, SIGF.

[4]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[5]  Michael W. Godfrey,et al.  Connecting architecture reconstruction frameworks , 2000, Inf. Softw. Technol..

[6]  Andreas Winter,et al.  GraX : Graph Exchange Format , 2000 .

[7]  Andy Schürr,et al.  GXL: toward a standard exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[8]  Liam O'Brien,et al.  An architecture for interoperable program understanding tools , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[9]  Dean Jin,et al.  Transparent reverse engineering tool integration using a conceptual transaction adapter , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[10]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[11]  Hausi A. Müller,et al.  Rigi: A Visualization Environment for Reverse Engineering , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[12]  Dennis B. Smith,et al.  Towards a framework for program understanding , 1996, WPC '96. 4th Workshop on Program Comprehension.

[13]  John F. Sowa,et al.  Knowledge representation: logical, philosophical, and computational foundations , 2000 .

[14]  Stéphane Ducasse,et al.  Why FAMIX and not UML ? , 1999 .