Abstract
Software systems continuously evolve to accommodate new features
and interoperability relationships between artifacts point to increasingly relevant
software change impacts. During maintenance, developers must ensure
that related entities are updated to be consistent with these changes. Studies
in the static change impact analysis domain have identified that a combination
of source code and lexical information outperforms using each one when
adopted independently. However, the extraction of lexical information and the
measure of how loosely or closely related two software artifacts are, considering
the semantic information embedded in their comments and identifiers has been
carried out using somewhat complex information retrieval (IR) techniques. The
interplay between software semantic and change relationship strengths has also
not been extensively studied.
This work aims to fill both gaps by comparing the effectiveness of measuring semantic coupling of OO software classes using (i) simple identifier based techniques and (ii) the word corpora of the entire classes in a software system. Afterwards, we empirically investigate the interplay between semantic and change coupling. The empirical results show that: (1) identifier based methods have more computational efficiency but cannot
always be used interchangeably with corpora-based methods of computing semantic
coupling of classes and (2) there is no correlation between semantic
and change coupling. Furthermore we found that (3) there is a directional relationship
between the two, as over 70% of the semantic dependencies are also
linked by change coupling but not vice versa.
Original language | English |
---|---|
Pages (from-to) | 1791-1825 |
Number of pages | 35 |
Journal | Empirical Software Engineering |
Volume | 23 |
Issue number | 3 |
Early online date | 20 Oct 2017 |
DOIs | |
Publication status | Published - 1 Jun 2018 |
Keywords
- Information retrieval (IR) Co-change Co-evolution Clustering Coupling Change impact analysis (CIA) Object-oriented (OO) Open-source software Software components Hidden dependencies (HD)
- Information retrieval (IR)
- Change impact analysis (CIA)
- Object-oriented (OO)
- Software components
- Open-source software
- Co-change
- Hidden dependencies (HD)
- Co-evolution
- Coupling
- Clustering