CodeCrawler-lessons learned in building a software visualization tool

Software visualization tools face many challenges in terms of their implementation, including scalability, usability, adaptability, and durability. Such tools, like many other research tools, tend to have a short life cycle and are vulnerable to software evolution processes because of the complex problem domain and the constantly changing requirements which are dictated by research goals. In this paper we discuss the implementation of the software visualization tool CodeCrawler according to five criteria, namely the overall architecture, the internal architecture, the visualization engine, the metamodel and the interactive facilities. This discussion generates implementation recommendations and design guidelines that hold for our tool and the class of tools its stands for. We then also extract common design guidelines and recommendations that apply for other software visualization and general reverse engineering tools as well, and hope that these insights can be used fruitfully by other researchers in this field.

[1]  Stéphane Ducasse,et al.  A categorization of classes based on the visualization of their internal structure: the class blueprint , 2001, OOPSLA '01.

[2]  Hans Albert Muller,et al.  Rigi: a model for software system construction, integration, and evolution based on module interface specifications , 1986 .

[3]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[4]  Sander Tichelaar,et al.  Modeling Object-Oriented Software for Reverse Engineering and Refactoring , 2001 .

[5]  Lilly Koltun,et al.  TUFTE, Envisioning Information , 1991 .

[6]  Stéphane Ducasse,et al.  Why FAMIX and not UML? - UML Shortcomings for Coping with Round-trip Engineering , 1999 .

[7]  Edward Tufte,et al.  Visual Explanations , 1997 .

[8]  Stéphane Ducasse,et al.  Moose: an Extensible Language-Independent Environment for Reengineering Object-Oriented Systems , 2000 .

[9]  Edward R. Tufte,et al.  Envisioning Information , 1990 .

[10]  B. Marx The Visual Display of Quantitative Information , 1985 .

[11]  Jean-Marie Favre G/sup SEE/: a Generic Software Exploration Environment , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[12]  Serge Demeyer,et al.  FAMIX 2. 1-the FAMOOS information exchange model , 1999 .

[13]  Stéphane Ducasse,et al.  A hybrid reverse engineering approach combining metrics and program visualisation , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[14]  Ganesh S. Oak Information Visualization Introduction , 2022 .

[15]  Jef Raskin The humane interface (book excerpt) , 2000, UBIQ.

[16]  Michele Lanza,et al.  A hybrid reverse engineering platform combining metrics and program visualization , 1999 .

[17]  Harald C. Gall,et al.  Visualizing software release histories: the use of color and third dimension , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[18]  Michele Lanza,et al.  Combining Metrics and Graphs for Object Oriented Reverse Engineering , 1999 .

[19]  Berndt Bellay,et al.  An evaluation of reverse engineering tool capabilities , 1998 .

[20]  Harald C. Gall,et al.  A comparison of four reverse engineering tools , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[21]  Stéphane Ducasse,et al.  Towards a Methodology for the Understanding of Object-Oriented Systems (Vers une méthodologie pour la compréhension d'applications objets) , 2001, Tech. Sci. Informatiques.

[22]  P. Fayers,et al.  The Visual Display of Quantitative Information , 1990 .

[23]  Rick Kazman,et al.  Assessing architectural complexity , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[24]  Stéphane Ducasse,et al.  The Moose Reengineering Environment , 2001 .

[25]  John Domingue,et al.  Software visualization : programming as a multimedia experience , 1998 .

[26]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[27]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[28]  Alan Cooper,et al.  About Face: The Essentials of User Interface Design , 1995 .

[29]  Rudolf K. Keller,et al.  Software visualization tools: survey and analysis , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[30]  Harald C. Gall,et al.  An evaluation of reverse engineering tool capabilities , 1998, J. Softw. Maintenance Res. Pract..

[31]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software exploration , 1999, J. Syst. Softw..

[32]  Daniel Schweizer,et al.  Navigation in Object-Oriented Reverse Engineering , 2002 .

[33]  Alan Cooper,et al.  The Inmates are Running the Asylum , 1999, Software-Ergonomie.

[34]  Spencer Rugaber,et al.  Using visualization for architectural localization and extraction , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[35]  Jacques Bertin,et al.  Graphische Semiologie: Diagramme, Netze, Karten , 2010 .

[36]  Patricia Costigan-Eaves,et al.  Edward R. Tufte The visual display of quantitative information , 1984 .

[37]  Richard C. Holt,et al.  GASE: visualizing software evolution-in-the-large , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

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

[39]  Hausi A. Müller,et al.  A cognitive framework for describing and evaluating software exploration tools , 1998 .