TY - GEN
T1 - Prediction of function removal propagation in linux evolution
AU - Wang, Lei
AU - Chen, Guoxiong
AU - Li, Liang
N1 - Publisher Copyright:
© Springer Nature Switzerland AG 2020.
PY - 2020
Y1 - 2020
N2 - Software studies on the function level, which is inherently different than coarse-grained investigations, contributes to the deep understanding of the laws of software internal evolution. This paper focuses on the life cycle distribution and the propagation behaviour of removed functions in Linux kernels. After an in-depth analysis of 300 Linux kernels, from Version 2.6.12-rc2 to 3.7-rc6, we found that most removed functions have relatively low life cycles, which indicates that many functions are likely to be removed between two consecutive versions. Our experimental results also show that function removal propagation is closely related to the file containing the functions, function call dependency, and historical information. This motivated us to propose a few heuristics to predict function removal propagation, which are based on the file position, call graph, and historical information in git. Furthermore, we analyzed the impact of removed functions on software structure and found that Linux kernel has a strong resistance to function removal. The life cycle feature and the prediction heuristics presented in this paper can be utilized to facilitate the maintenance of large-scale complex software systems.
AB - Software studies on the function level, which is inherently different than coarse-grained investigations, contributes to the deep understanding of the laws of software internal evolution. This paper focuses on the life cycle distribution and the propagation behaviour of removed functions in Linux kernels. After an in-depth analysis of 300 Linux kernels, from Version 2.6.12-rc2 to 3.7-rc6, we found that most removed functions have relatively low life cycles, which indicates that many functions are likely to be removed between two consecutive versions. Our experimental results also show that function removal propagation is closely related to the file containing the functions, function call dependency, and historical information. This motivated us to propose a few heuristics to predict function removal propagation, which are based on the file position, call graph, and historical information in git. Furthermore, we analyzed the impact of removed functions on software structure and found that Linux kernel has a strong resistance to function removal. The life cycle feature and the prediction heuristics presented in this paper can be utilized to facilitate the maintenance of large-scale complex software systems.
KW - Function life cycle
KW - Linux
KW - Removal propagation
UR - https://www.scopus.com/pages/publications/85081642213
U2 - 10.1007/978-3-030-41418-4_16
DO - 10.1007/978-3-030-41418-4_16
M3 - 会议稿件
AN - SCOPUS:85081642213
SN - 9783030414177
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 227
EP - 242
BT - Structured Object-Oriented Formal Language and Method - 9th International Workshop, SOFL+MSVL 2019, Revised Selected Papers
A2 - Miao, Huaikou
A2 - Tian, Cong
A2 - Liu, Shaoying
A2 - Duan, Zhenhua
PB - Springer
T2 - 9th International Workshop on Structured Object-Oriented Formal Language and Method, SOFL+MSVL 2019
Y2 - 5 November 2019 through 5 November 2019
ER -