Comparing Static and Dynamic Weighted Software Coupling Metrics

Coupling metrics are an established way to measure software architecture quality with respect to modularity. Static coupling metrics are obtained from the source or compiled code of a program, while dynamic metrics use runtime data gathered e.g., by monitoring a system in production. We study \emph{weighted} dynamic coupling that takes into account how often a connection is executed during a system's run. We investigate the correlation between dynamic weighted metrics and their static counterparts. We use data collected from four different experiments, each monitoring production use of a commercial software system over a period of four weeks. We observe an unexpected level of correlation between the static and the weighted dynamic case as well as revealing differences between class- and package-level analyses.

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

[2]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[3]  Sergei Vassilvitskii,et al.  Generalized distances between rankings , 2010, WWW '10.

[4]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[5]  Stephen R. Schach,et al.  Quantitatively measuring object-oriented couplings , 2008, Software Quality Journal.

[6]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[7]  Henning Schnoor,et al.  Comparing Static and Dynamic Weighted Software Coupling Metrics , 2020, Comput..

[8]  Wilhelm Hasselbring,et al.  Drivers and Barriers for Microservice Adoption - A Survey among Professionals in Germany , 2019, Enterp. Model. Inf. Syst. Archit. Int. J. Concept. Model..

[9]  Jeffrey M. Voas,et al.  What Happened to Software Metrics? , 2017, Computer.

[10]  Sanjay Misra,et al.  A Framework for Evaluation and Validation of Software Complexity Measures , 2014 .

[11]  Lionel C. Briand,et al.  Empirical Studies of Quality Models in Object-Oriented Systems , 2002, Adv. Comput..

[12]  Wilhelm Hasselbring,et al.  A Comparison of the Influence of Different Multi-core Processors on the Runtime Overhead for Application-Level Monitoring , 2012, MSEPT.

[13]  Gabriele Bavota,et al.  Using Cohesion and Coupling for Software Remodularization , 2016, ACM Trans. Softw. Eng. Methodol..

[14]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[15]  Wilhelm Hasselbring,et al.  WESSBAS: extraction of probabilistic workload specifications for load testing and performance prediction—a model-driven approach for session-based application systems , 2016, Software & Systems Modeling.

[16]  A. R. Gilpin Table for Conversion of Kendall'S Tau to Spearman'S Rho Within the Context of Measures of Magnitude of Effect for Meta-Analysis , 1993 .

[17]  Wilhelm Hasselbring,et al.  Kieker: continuous monitoring and on demand visualization of Java software behavior , 2008, ICSE 2008.

[18]  Bora Caglayan,et al.  The relationship between evolutionary coupling and defects in large industrial software , 2017, J. Softw. Evol. Process..

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

[20]  Sandro Morasca,et al.  On the application of measurement theory in software engineering , 2004, Empirical Software Engineering.

[21]  Fabio Palomba,et al.  A survey on software coupling relations and tools , 2019, Inf. Softw. Technol..

[22]  Wilhelm Hasselbring,et al.  Poster: Toward Measuring Software Coupling via Weighted Dynamic Metrics , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[23]  Stefan Wagner,et al.  Automatically measuring the maintainability of service- and microservice-based systems: a literature review , 2017, IWSM-Mensura.

[24]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[25]  Muhammad Ovais Ahmad,et al.  Kanban in software development: A systematic literature review , 2013, 2013 39th Euromicro Conference on Software Engineering and Advanced Applications.

[26]  Grace S. Shieh A weighted Kendall's tau statistic , 1998 .

[27]  Wilhelm Hasselbring,et al.  Kieker: a framework for application performance monitoring and dynamic software analysis , 2012, ICPE '12.

[28]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[29]  Houari A. Sahraoui,et al.  Deriving Coupling Metrics from Call Graphs , 2010, 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation.

[30]  M. Kendall A NEW MEASURE OF RANK CORRELATION , 1938 .

[31]  Richard H. Carver,et al.  An Evaluation of the MOOD Set of Object-Oriented Software Metrics , 1998, IEEE Trans. Software Eng..

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

[33]  Paramvir Singh,et al.  Dynamic coupling metrics for object oriented software systems: a survey , 2014, SOEN.

[34]  Spiros Mancoridis,et al.  Comparing the decompositions produced by software clustering algorithms using similarity measurements , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

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

[36]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[37]  Anuradha Chug,et al.  Dynamic metrics are superior than static metrics in maintainability prediction: An empirical case study , 2015, 2015 4th International Conference on Reliability, Infocom Technologies and Optimization (ICRITO) (Trends and Future Directions).

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

[39]  Dietmar Pfahl,et al.  Reporting Experiments in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.