Coupling is a fundamental property of software systems, and numerous coupling measures have been proposed to support various development and maintenance activities. However, little is known about how developers actually perceive coupling, what mechanisms constitute coupling, and if existing measures align with this perception. In this paper we bridge this gap, by empirically investigating how class coupling-as captured by structural, dynamic, semantic, and logical coupling measures-aligns with developers' perception of coupling. The study has been conducted on three Java open-source systemsnamely ArgoUML, JHotDraw and jEdit-and involved 64 students, academics, and industrial practitioners from around the world, as well as 12 active developers of these three systems. We asked participants to assess the coupling between the given pairs of classes and provide their ratings and some rationale. The results indicate that the peculiarity of the semantic coupling measure allows it to better estimate the mental model of developers than the other coupling measures. This is because, in several cases, the interactions between classes are encapsulated in the source code vocabulary, and cannot be easily derived by only looking at structural relationships, such as method calls.
The developers' perceptions of software couplings are investigated in REF .
An empirical study on the developers' perception of software coupling
ICSE '13
Computer Science