TY - JOUR
T1 - Understanding the Interplay between the Logical and Structural Coupling of Software Classes
AU - Ajienka, Nemitari
AU - Capiluppi, Andrea
PY - 2017/12/1
Y1 - 2017/12/1
N2 - During the lifetime of object-Oriented (OO) software systems, new classes
are added to increase functionality, also increasing the inter-dependencies
between classes. Logical coupling depicts the change dependencies between
classes, while structural coupling measures source code dependencies induced
via the system architecture. The relationship or dependency between logical
and structural coupling have been debated in the past, but no large study
has confirmed yet their interplay.
In this study, we have analysed 79 open-source software projects of different
sizes to investigate the interplay between the two types of coupling. First,
we quantified the overlapping or intersection of structural and logical class
dependencies. Second, we statistically computed the correlation between the
strengths of logical and structural dependencies. Third, we propose a simple
technique to determine the stability of OO software systems, by clustering
the pairs of classes as “stable” or “unstable”, based on their co-change pattern.
The results from our statistical analysis show that although there is no
strong evidence of a linear correlation between the strengths of the coupling
types, there is substantial evidence to conclude that structurally coupled
class pairs usually include logical dependencies. However, not all co-changed
class pairs are also linked by structural dependencies. Finally, we identified
that only a low proportion of structural coupling shows excessive instability
in the studied OSS projects.
AB - During the lifetime of object-Oriented (OO) software systems, new classes
are added to increase functionality, also increasing the inter-dependencies
between classes. Logical coupling depicts the change dependencies between
classes, while structural coupling measures source code dependencies induced
via the system architecture. The relationship or dependency between logical
and structural coupling have been debated in the past, but no large study
has confirmed yet their interplay.
In this study, we have analysed 79 open-source software projects of different
sizes to investigate the interplay between the two types of coupling. First,
we quantified the overlapping or intersection of structural and logical class
dependencies. Second, we statistically computed the correlation between the
strengths of logical and structural dependencies. Third, we propose a simple
technique to determine the stability of OO software systems, by clustering
the pairs of classes as “stable” or “unstable”, based on their co-change pattern.
The results from our statistical analysis show that although there is no
strong evidence of a linear correlation between the strengths of the coupling
types, there is substantial evidence to conclude that structurally coupled
class pairs usually include logical dependencies. However, not all co-changed
class pairs are also linked by structural dependencies. Finally, we identified
that only a low proportion of structural coupling shows excessive instability
in the studied OSS projects.
KW - Object-oriented (OO)Open-source software (OSS)
KW - References
KW - Structural coupling
KW - Co-changed structural dependencies (CSD)
KW - Coupled logical dependencies (CLD)
KW - Object-oriented (OO)
KW - Open-source software (OSS)
UR - http://www.scopus.com/inward/record.url?scp=85028968180&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85028968180&partnerID=8YFLogxK
UR - https://www.mendeley.com/catalogue/13a07197-8183-3b92-aa1f-638c2b150ea4/
U2 - 10.1016/j.jss.2017.08.042
DO - 10.1016/j.jss.2017.08.042
M3 - Article (journal)
SN - 0164-1212
VL - 134
SP - 120
EP - 137
JO - Journal of Systems and Software
JF - Journal of Systems and Software
ER -