Efficient and Scalable Collection of Dynamic Metrics Using MapReduce

Dynamic metrics are known to assess the actual behavior of software systems as they are extracted from runtime data obtained during program execution. However, recent literature indicates that dealing with dynamic information remains a formidable challenge due to the huge size of execution data at hand, resulting in long processing delays. We present an efficient and scalable technique to extract design level dynamic metrics from Calling Context Tree (CCT) using cloud based MapReduce paradigm. CCT profiles having node count up to 40 million are used to extract a number of dynamic coupling metrics. On an average, 73% increase in performance is observed as compared to sequential analysis. Also other performance characteristics like speed-up and scale-up are analyzed to strengthen the applicability of our parallel computation approach.

[1]  Mira Mezini,et al.  Portable and accurate collection of calling-context-sensitive bytecode metrics for the Java virtual machine , 2011, PPPJ.

[2]  Arie van Deursen,et al.  A Controlled Experiment for Program Comprehension through Trace Visualization , 2011, 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]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[5]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[6]  Carlo Ghezzi,et al.  Trace Checking of Metric Temporal Logic with Aggregating Modalities Using MapReduce , 2014, SEFM.

[7]  Amjed Tahir,et al.  Understanding class-level testability through dynamic analysis , 2014, 2014 9th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE).

[8]  Steve Counsell,et al.  Dynamic coupling metric: proof of concept , 2005, IEE Proc. Softw..

[9]  Jitender Kumar Chhabra,et al.  Dynamic cohesion measures for object-oriented software , 2011, J. Syst. Archit..

[10]  Aine Mitchell,et al.  Series NUIM-CS-TR-2003-07 Run-time Coupling Metrics for the Analysis of Java Programs-preliminary results from the SPEC and Grande suites , 2022 .

[11]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[12]  James F. Power,et al.  Toward a definition of run-time object-oriented metrics , 2003 .

[13]  Wang Yu-ying,et al.  Dynamic fan-in and fan-out metrics for program comprehension , 2007 .

[14]  Abdelwahab Hamou-Lhadj,et al.  An Approach for Detecting Execution Phases of a System for the Purpose of Program Comprehension , 2010, 2010 Eighth ACIS International Conference on Software Engineering Research, Management and Applications.

[15]  James F. Power,et al.  An empirical investigation into the dimensions of run-time coupling in Java programs , 2004, PPPJ.

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

[17]  Linda Di Geronimo,et al.  A Parallel Genetic Algorithm Based on Hadoop MapReduce for the Automatic Generation of JUnit Test Suites , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[18]  Mira Mezini,et al.  Da capo con scala: design and analysis of a scala benchmark suite for the java virtual machine , 2011, OOPSLA '11.

[19]  James F. Power,et al.  An approach to quantifying the run-time behaviour of Java GUI applications , 2004 .

[20]  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 .

[21]  Amjed Tahir,et al.  A systematic mapping study on dynamic metrics and software quality , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[22]  Andy Zaidman,et al.  An assessmentmethodology for trace reduction techniques , 2008, 2008 IEEE International Conference on Software Maintenance.

[23]  Jitender Kumar Chhabra,et al.  A Survey of Dynamic Software Metrics , 2010, Journal of Computer Science and Technology.

[24]  Hitesh Sajnani,et al.  A parallel and efficient approach to large scale clone detection , 2013, 2013 7th International Workshop on Software Clones (IWSC).

[25]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[26]  James R. Larus,et al.  Exploiting hardware performance counters with flow and context sensitive profiling , 1997, PLDI '97.

[27]  Eleni Stroulia,et al.  Dynamic analysis for reverse engineering and program understanding , 2002, SIAP.

[28]  D. V. Radhika,et al.  Why is dynamic analysis not used as extensively as static analysis: an industrial study , 2014, SER&IPs.

[29]  James F. Power,et al.  Using object-level run-time metrics to study coupling between objects , 2005, SAC '05.

[30]  Mira Mezini,et al.  JP2: Call-site aware calling context profiling for the Java Virtual Machine , 2014, Sci. Comput. Program..

[31]  Steve Counsell,et al.  Empirical Validation of a Dynamic Coupling Metric , 2004 .