Dynamic fan-in and fan-out metrics for program comprehension

In this paper, an approach to use run-time information to discover knowledge about software systems thus facilitating program comprehension is presented. Some dynamic metrics based on traces of the subject system execution are proposed. A method of getting these dynamic metrics is introduced, in which instrumentation is implemented by using reflective mechanism based on an open compiler. The system run-time information is captured during the instrumented system running and is then analyzed to get these dynamic metrics. A case study is given to illustrate the use of these dynamic metrics, i.e., identifying critical components of the subject system. These critical components should be focus on user attentions in order to understand the subject system well.

[1]  Anneliese Amschler Andrews,et al.  Program understanding behavior during adaptation of large scale software , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[2]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[3]  Hany H. Ammar,et al.  Dynamic metrics for object oriented designs , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[4]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[5]  Stéphane Ducasse,et al.  Recovering high-level views of object-oriented applications from static and dynamic information , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[6]  Tsong Yueh Chen,et al.  In black and white: an integrated approach to class-level testing of object-oriented programs , 1998, TSEM.

[7]  Martin Gogolla,et al.  Metric-based selective representation of UML diagrams , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[8]  Panagiotis K. Linos,et al.  A tool for understanding multi-language program dependencies , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[9]  Gerardo Canfora,et al.  A workbench for program comprehension during software maintenance , 1996, WPC '96. 4th Workshop on Program Comprehension.

[10]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.