Utility classes detection metrics for execution trace analysis

Execution trace analysis is particularly valuable in the context of object-oriented software comprehension for the maintenance tasks. It involves analyzing dynamic information and behaviors that are stored in the execution trace. However, the execution traces of current object-oriented software systems tend to be very large in terms of complexity and size. In particular, classes and coupling features form a very complicated interwoven lattice of the dynamic dependencies. This research focuses on detecting and removing utility classes from an execution trace. Utility detection and removal techniques are very useful in reducing the structural complexity of execution traces for software comprehension process. For this purpose, two new utility classes detection metrics based on dynamic coupling have been introduced to measure the extent to which a class can be considered as a utility.

[1]  Abdelwahab Hamou-Lhadj,et al.  Quality of the Source Code for Design and Architecture Recovery Techniques: Utilities are the Problem , 2009, 2009 Ninth International Conference on Quality Software.

[2]  B. Singh,et al.  Analysis of the software code based upon coupling in the software , 2012, 2012 Third International Conference on Computing, Communication and Networking Technologies (ICCCNT'12).

[3]  Edward Yourdon,et al.  Structured design : fundamentals of a discip!ine of computer proqram and system desiqn , 1979 .

[4]  Janice Singer,et al.  How software engineers use documentation: the state of the practice , 2003, IEEE Software.

[5]  Thomas Ball,et al.  The concept of dynamic analysis , 1999, ESEC/FSE-7.

[6]  Doreen Meier,et al.  Structured Design Fundamentals Of A Discipline Of Computer Program And Systems Design , 2016 .

[7]  Hausi A. Müller,et al.  A reverse-engineering approach to subsystem structure identification , 1993, J. Softw. Maintenance Res. Pract..

[8]  Margaret-Anne D. Storey,et al.  Theories, tools and research methods in program comprehension: past, present and future , 2006, Software Quality Journal.

[9]  Mohammad Rasmi,et al.  Improving Analysis Phase in Network Forensics By Using Attack Intention Analysis , 2016 .

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

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

[12]  Brad A. Myers,et al.  An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks , 2006, IEEE Transactions on Software Engineering.

[13]  Michael D. Bond,et al.  Correcting the Dynamic Call Graph Using Control-Flow Constraints , 2007, CC.

[14]  Lionel C. Briand,et al.  Dynamic coupling measurement for object-oriented software , 2004, IEEE Transactions on Software Engineering.

[15]  Heidar Pirzadeh Tabari Trace Abstraction Framework and Techniques , 2012 .

[16]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[17]  Jitender Kumar Chhabra,et al.  A survey of dynamic software metrics , 2010 .

[18]  Abdelwahab Hamou-Lhadj,et al.  Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[19]  Arie van Deursen,et al.  A Controlled Experiment for Program Comprehension through Trace Visualization , 2011, IEEE Transactions on Software Engineering.

[20]  Abdelwahab Hamou-Lhadj,et al.  Approach for solving the feature location problem by measuring the component modification impact , 2009, IET Softw..

[21]  Abdelwahab Hamou-Lhadj,et al.  Understanding the complexity embedded in large routine call traces with a focus on program comprehension tasks , 2010, IET Softw..

[22]  Sandro Morasca,et al.  On the definition of dynamic software measures , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[23]  Abu Al-Ese,et al.  Static Analyser for Java-Based Object-Oriented Software Metrics , 1999 .

[24]  Varun Gupta Validation of dynamic coupling metrics for object-oriented software , 2011, SOEN.

[25]  Andy Zaidman,et al.  Journal of Software Maintenance and Evolution: Research and Practice Automatic Identification of Key Classes in a Software System Using Webmining Techniques , 2022 .

[26]  T. Systa Understanding the behavior of Java programs , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[27]  Oscar Nierstrasz,et al.  Object-oriented reengineering patterns , 2004, Proceedings. 26th International Conference on Software Engineering.