A NEW COUPLING METRIC: BLENDING STRUCTURAL AND SEMANTIC RELATIONS

Coupling metrics represent the relationships between source code artifacts in software systems. Coupling is considered an important concept in measuring design quality and maintainability. Many coupling measures have been proposed in the context of object-oriented systems. A popular way to measure coupling is through structural properties and static code analysis. Another way to measure coupling is through semantic information encoded in identifiers and comments. However, there is still much to be understood about which aspects of coupling affect quality or other external attributes of software. This paper presents a new coupling metric for object-oriented systems that analyze both structural and semantic relationships between methods and classes. A study is performed on open source software systems to compare the new metric with existing structural and semantic coupling metrics. The study shows that the new metric captures new dimensions of coupling, which are not captured by existing coupling metrics. This paper investigates the use of the new proposed coupling metrics during change impact analysis. By comparing our new metric to other coupling metrics, we show that our new metric is a better predictor for classes impacted by changes.

[1]  Frank Schweitzer,et al.  Software change dynamics: evidence from 35 java projects , 2009, ESEC/FSE '09.

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

[3]  Gabriele Bavota,et al.  Software Re-Modularization Based on Structural and Semantic Metrics , 2010, 2010 17th Working Conference on Reverse Engineering.

[4]  Kenneth Magel,et al.  Towards Test Focus Selection for Integration Testing Using Method Level Software Metrics , 2013, 2013 10th International Conference on Information Technology: New Generations.

[5]  Denys Poshyvanyk,et al.  Using structural and textual information to capture feature coupling in object-oriented software , 2011, Empirical Software Engineering.

[6]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[7]  Denys Poshyvanyk,et al.  Using Relational Topic Models to capture coupling among classes in object-oriented software systems , 2010, 2010 IEEE International Conference on Software Maintenance.

[8]  David W. Binkley,et al.  An empirical study of slice-based cohesion and coupling metrics , 2007, TSEM.

[9]  Robert C. Martin,et al.  OO Design Quality Metrics , 1997 .

[10]  Jens H. Weber,et al.  Predicting maintainability with object-oriented metrics -an empirical comparison , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[11]  Gabriele Bavota Using structural and semantic information to support software refactoring , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[12]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[13]  Premkumar T. Devanbu,et al.  An Investigation into Coupling Measures for C++ , 1997, Proceedings of the (19th) International Conference on Software Engineering.

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

[15]  Tibor Gyimóthy,et al.  Using information retrieval based coupling measures for impact analysis , 2009, Empirical Software Engineering.

[16]  Mei-Hwa Chen,et al.  An empirical study on object-oriented metrics , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[17]  Harald C. Gall,et al.  Relation of Code Clones and Change Couplings , 2006, FASE.

[18]  Lionel C. Briand,et al.  Using coupling measurement for impact analysis in object-oriented systems , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[19]  Denys Poshyvanyk,et al.  Blending Conceptual and Evolutionary Couplings to Support Change Impact Analysis in Source Code , 2010, 2010 17th Working Conference on Reverse Engineering.

[20]  Sandro Morasca,et al.  Property-Based Software Engineering Measurement , 1996, IEEE Trans. Software Eng..

[21]  Tibor Gyimóthy,et al.  New Conceptual Coupling and Cohesion Metrics for Object-Oriented Systems , 2010, 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation.