A novel software visualisation model to support software comprehension

Current software visualisation tools do not address the full range of software comprehension requirements. This paper proposes a novel software visualisation model for supporting object-oriented software comprehension that is intended to address the shortcomings of existing tools. We discuss the previous work that prompted us to develop this model. An initial model is then presented, based on multiple levels of abstraction, multiple perspectives of the software system, and the integration of statically and dynamically extracted information. We review the evaluation tasks used in our previous work and those from the software visualisation and comprehension literature to produce a refined set of evaluation tasks. We then use these tasks to perform an initial assessment of the proposed model. The refined model is then defined more formally. Finally, a concrete example of the use of the model to generate abstraction hierarchies is discussed. We conclude that a visualisation model incorporating a hierarchy of interrelated abstraction levels, combined with structural and behavioural perspectives of the software, will provide effective support for software comprehension.

[1]  Nick Mitchell,et al.  Visualizing the Execution of Java Programs , 2001, Software Visualization.

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

[3]  Susan Elliott Sim,et al.  A structured demonstration of program comprehension tools , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[4]  Marc Roper,et al.  A comparative evaluation of dynamic visualisation tools , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[5]  Paul A. Fishwick,et al.  The role of process abstraction in simulation , 1988, IEEE Trans. Syst. Man Cybern..

[6]  Hausi A. Müller,et al.  How do program understanding tools affect how programmers understand programs? , 2000, Sci. Comput. Program..

[7]  Hong Yan,et al.  DiscoTect: a system for discovering architectures from running systems , 2004, Proceedings. 26th International Conference on Software Engineering.

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

[9]  Robert M. Curtice,et al.  The entity-relationship approach to logical database design , 1991 .

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

[11]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[12]  Marc Roper,et al.  Understanding Object-oriented Frameworks -an Exploratory Case Study , 2001 .

[13]  Timothy Lethbridge,et al.  The Dagstuhl Middle Metamodel: A Schema For Reverse Engineering , 2004, ateM.

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

[15]  Michael J. Pacione Effective Visualisation for Comprehending Object- Oriented Software: A Multifaceted, Three-Dimensional Abstraction Model for Software Visualisation , 2004 .

[16]  Hausi A. Müller,et al.  Shimba—an environment for reverse engineering Java software systems , 2001, Softw. Pract. Exp..

[17]  Michael J. Pacione,et al.  A Review and Evaluation of Dynamic Visualisation Tools , 2003 .

[18]  Michael John Pacione Software visualization for object-oriented program comprehension , 2004, Proceedings. 26th International Conference on Software Engineering.

[19]  Hausi A. Müller,et al.  Fused data-centric visualizations for software evolution environments , 2002, Proceedings 10th International Workshop on Program Comprehension.

[20]  Hausi A. Müller,et al.  On designing an experiment to evaluate a reverse engineering tool , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[21]  James Lyle Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

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

[23]  Kangsun Lee,et al.  Dynamic model abstraction , 1996, Proceedings Winter Simulation Conference.

[24]  Michael J. Pacione Evaluating a Model of Software Visualisation for Software Comprehension , 2004 .

[25]  David Notkin,et al.  An empirical study of static call graph extractors , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[26]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

[27]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[28]  Robert L. Nord,et al.  Describing Software Architecture with UML , 1999, WICSA.