Understanding the Interplay between the Logical and Structural Coupling of Software Classes

Nemitari Ajienka, Andrea Capiluppi

Research output: Contribution to journalArticle

9 Citations (Scopus)
2 Downloads (Pure)

Abstract

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.
Original languageEnglish
Pages (from-to)120-137
JournalJournal of Systems and Software
Volume134
Early online date24 Aug 2017
DOIs
Publication statusE-pub ahead of print - 24 Aug 2017

Fingerprint

Statistical methods
Open source software

Keywords

  • Object-oriented (OO) Open-source software (OSS)
  • References
  • Structural coupling
  • Co-changed structural dependencies (CSD)
  • Coupled logical dependencies (CLD)

Cite this

@article{0440495f53f743f39cf6fbc5274953e2,
title = "Understanding the Interplay between the Logical and Structural Coupling of Software Classes",
abstract = "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.",
keywords = "Object-oriented (OO) Open-source software (OSS), References, Structural coupling, Co-changed structural dependencies (CSD), Coupled logical dependencies (CLD)",
author = "Nemitari Ajienka and Andrea Capiluppi",
year = "2017",
month = "8",
day = "24",
doi = "10.1016/j.jss.2017.08.042",
language = "English",
volume = "134",
pages = "120--137",
journal = "Journal of Systems and Software",
issn = "0164-1212",
publisher = "Elsevier",

}

Understanding the Interplay between the Logical and Structural Coupling of Software Classes. / Ajienka, Nemitari; Capiluppi, Andrea.

In: Journal of Systems and Software, Vol. 134, 24.08.2017, p. 120-137.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Understanding the Interplay between the Logical and Structural Coupling of Software Classes

AU - Ajienka, Nemitari

AU - Capiluppi, Andrea

PY - 2017/8/24

Y1 - 2017/8/24

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)

U2 - 10.1016/j.jss.2017.08.042

DO - 10.1016/j.jss.2017.08.042

M3 - Article

VL - 134

SP - 120

EP - 137

JO - Journal of Systems and Software

JF - Journal of Systems and Software

SN - 0164-1212

ER -