TY - GEN
T1 - Identifying Feature Clones
T2 - 26th IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2019
AU - Chochlov, Muslim
AU - English, Michael
AU - Buckley, Jim
AU - Ilie, Daniel
AU - Scanlon, Maria
N1 - Publisher Copyright:
© 2019 IEEE.
PY - 2019/3/15
Y1 - 2019/3/15
N2 - During its software evolution, the original software system of our industrial partner was split into three variants. These have evolved over time, but retained a lot of common functionality. During strategical planning our industrial partner realized the need for consolidation of common code in a shared code base towards more efficient code maintenance and re-use. To support this agenda, a feature-clone identification approach was proposed, combining elements of feature location (to identify the relevant code in one system) and clone detection (to identify that common feature's code across systems) techniques. In this work, this approach is used (via our prototype tool CoRA) to locate three features that were identified by the industrial partner for re-factoring, and is evaluated. The methodology, involving a system expert, was designed to evaluate the discrete parts of the approach in isolation: Textual and static analyses of feature location, and clone detection. It was found that the approach can effectively identify features and their clones. The hybrid textual/static feature location part is effective even for a relative system novice, showing results comparable to more optimal system expert's suggestions. Finally, more effective feature location increases the effectiveness of the clone detection part of the approach.11A preliminary version of this paper, explaining the motivation, approach and resultant tool was published in [1]. This paper extends that work with a discussion of the approach's in-vivo empirical evaluation.
AB - During its software evolution, the original software system of our industrial partner was split into three variants. These have evolved over time, but retained a lot of common functionality. During strategical planning our industrial partner realized the need for consolidation of common code in a shared code base towards more efficient code maintenance and re-use. To support this agenda, a feature-clone identification approach was proposed, combining elements of feature location (to identify the relevant code in one system) and clone detection (to identify that common feature's code across systems) techniques. In this work, this approach is used (via our prototype tool CoRA) to locate three features that were identified by the industrial partner for re-factoring, and is evaluated. The methodology, involving a system expert, was designed to evaluate the discrete parts of the approach in isolation: Textual and static analyses of feature location, and clone detection. It was found that the approach can effectively identify features and their clones. The hybrid textual/static feature location part is effective even for a relative system novice, showing results comparable to more optimal system expert's suggestions. Finally, more effective feature location increases the effectiveness of the clone detection part of the approach.11A preliminary version of this paper, explaining the motivation, approach and resultant tool was published in [1]. This paper extends that work with a discussion of the approach's in-vivo empirical evaluation.
KW - clone detection
KW - feature location
KW - industrial case study
KW - re-factoring
KW - software maintenance
KW - software variants
UR - http://www.scopus.com/inward/record.url?scp=85064171929&partnerID=8YFLogxK
U2 - 10.1109/SANER.2019.8668041
DO - 10.1109/SANER.2019.8668041
M3 - Conference contribution
AN - SCOPUS:85064171929
T3 - SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering
SP - 544
EP - 548
BT - SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering
A2 - Shihab, Emad
A2 - Lo, David
A2 - Wang, Xinyu
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 24 February 2019 through 27 February 2019
ER -