Back to Search
Start Over
An empirical study on the interplay between semantic coupling and co-change of software classes
- Source :
- ICSE
- Publication Year :
- 2017
-
Abstract
- The evolution of software systems is an inevitable process which has to be managed effectively to enhance software quality. Change impact analysis (CIA) is a technique that identifies impact sets, i.e., the set of classes that require correction as a result of a change made to a class or artefact. These sets can also be considered as ripple effects and typically non-local: changes propagate to different parts of a system. Two classes are considered logically coupled if they have co-changed in the past; past research has shown that the precision of CIA techniques increases if logical and semantic coupling (i.e., the extent to which the lexical content of two classes is related) are both considered. However, the relationship between semantic and logical coupling of software artefacts has not been extensively studied and no dependencies established between these two types of coupling. Are two often co-changed artefacts also strongly connected from a semantic point of view? Are two semantically similar artefacts bound to co-change in the future? Answering those questions would help increase the precision of CIA. It would also help software maintainers to focus on a smaller subset of artefacts more likely to co-evolve in the future. This study investigated the relationship between semantic and logical coupling. Using Chi-squared statistical tests, we identified similarities in semantic coupling using class corpora and class identifiers. We then computed Spearman's rank correlation between semantic and logical coupling metrics for class pairs to detect whether semantic and logical relationships co-varied in OO software. Finally, we investigated the overlap between semantic and logical relationships by identifying the proportion of classes linked through both coupling types. Our empirical study and results were based on seventy-nine open-source software projects. Results showed that: (a) measuring the semantic similarity of classes by using their identifiers is computationally efficient; (b) using identifier-based coupling can be used interchangeably with semantic similarity based on their corpora, albeit not always; (c) no correlation between the strengths of semantic and change coupling was found. Finally, (d) a directional relationship between the two was identified; 70% of semantic dependencies are linked through change coupling but not vice versa. Based on our findings, we conclude that identifying more efficient methods of semantic coupling computation as well as a directional relationship between semantic and change dependencies could help to improve CIA methods that integrate semantic coupling information. This may also help to reveal implicit dependencies not captured by static source code analysis.
- Subjects :
- Source code
Computer science
media_common.quotation_subject
open-source software
Interoperability
Real-time computing
information retrieval (IR)
02 engineering and technology
Change impact analysis
co-evolution
computer.software_genre
hidden dependencies (HD)
Domain (software engineering)
Empirical research
Software
Semantic similarity
co-change
software components
Information retrieval (IR) ·
0502 economics and business
0202 electrical engineering, electronic engineering, information engineering
Software system
coupling
media_common
business.industry
05 social sciences
020207 software engineering
object-oriented (OO)
change impact analysis (CIA)
Software quality
Identifier
Coupling (computer programming)
Component-based software engineering
Artificial intelligence
business
computer
050203 business & management
Natural language processing
clustering
Subjects
Details
- Language :
- English
- Database :
- OpenAIRE
- Journal :
- ICSE
- Accession number :
- edsair.doi.dedup.....c11eaf85a2fa9006c0373f66f80dae2e