Program comprehension by visualization in contexts

To make program comprehension more effective, the analyst needs high-level information about the software under investigation, in particular information at the structure and the design levels. Visualization in contexts allows the analyst to investigate software in terms of various contexts at different levels of abstraction and to form a variety of mental models of the software at hand. Moreover, the analyst can mentally integrate disparate mental models by cross-referencing. In this paper, the visualization in contexts strategy is introduced. Then, the Context Viewer, a prototype tool supporting the strategy within the SPOOL reverse engineering environment, is detailed. Three usage scenarios illustrate the approach. The scenarios, complemented by an informal evaluation and comparison, suggest the usefulness of the tool and the underlying strategy.

[1]  Bruno Laguë,et al.  DATRIX Abstract Semantic Graph Reference Manual , 1999 .

[2]  Rudolf K. Keller,et al.  Bridging program comprehension tools by design navigation , 2000, Proceedings 2000 International Conference on Software Maintenance.

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Premkumar T. Devanbu GENOA - A Customizable, Language- And Front-end Independent Code Analyzer , 1992, International Conference on Software Engineering.

[5]  Rudolf K. Keller,et al.  Pattern-based reverse-engineering of design components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[6]  J. E. Sammet,et al.  Software psychology: human factors in computer and information systems , 1983, SGCH.

[7]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[8]  Rudolf K. Keller,et al.  The method replacement indicator: a metric for analyzing behavioral substitution , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[9]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

[10]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[11]  Charles L. A. Clarke,et al.  Browsing and searching software architectures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[12]  Hausi A. Müller,et al.  Manipulating and documenting software structures using SHriMP views , 1995, Proceedings of International Conference on Software Maintenance.

[13]  Rudolf K. Keller,et al.  The SPOOL design repository: architecture, schema, and mechanisms , 2002 .

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

[15]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[16]  Scott R. Tilley,et al.  Discovering DISCOVER , 1997 .

[17]  Anneliese Amschler Andrews,et al.  Comprehension processes during large scale maintenance , 1994, Proceedings of 16th International Conference on Software Engineering.

[18]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[19]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[20]  Janice Singer,et al.  An examination of software engineering work practices , 1997, CASCON.

[21]  Rudolf K. Keller,et al.  Hot spot recovery in object-oriented software with inheritance and composition template methods , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).