Skip to main content

Prediction of Function Removal Propagation in Linux Evolution

  • Conference paper
  • First Online:
Structured Object-Oriented Formal Language and Method (SOFL+MSVL 2019)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12028))

  • 481 Accesses

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. GCC 3.4: GCC 3.4 release series (2006). http://gcc.gnu.org/gcc-3.4/

  2. Bohner, S.A.: Impact analysis in the software change process: a year 2000 perspective. In: Proceedings of the International Conference on Software Maintenance, pp. 42–51 (1996)

    Google Scholar 

  3. Bohner, S.A.: Software change impacts-an evolving perspective. In: Proceedings of the International Conference on Software Maintenance, pp. 263–272 (2002)

    Google Scholar 

  4. Codeviz: Codeviz – freecode (2008). http://freshmeat.sourceforge.net/projects/codeviz/

  5. Ctags: Exuberant ctags (2009). http://ctags.sourceforge.net/

  6. Hassan, A.E.: Predicting faults using the complexity of code changes. In: Proceedings 31th International Conference on Software Maintenance, pp. 78–88 (2009)

    Google Scholar 

  7. Hassan, A.E., Holt, R.C.: Predicting change propagation in software systems. In: Proceedings of the International Conference on Software Maintenance, pp. 284–293 (2004)

    Google Scholar 

  8. Hata, H., Mizuno, O., Kikuno, T.: Bug prediction based on fine-grained module histories. In: Proceedings 34th International Conference on Software Engineering, pp. 200–210 (2012)

    Google Scholar 

  9. Hirschberg, D.S.: Algorithms for the longest common subsequence problem. J. ACM 24, 664–675 (1997)

    Article  MathSciNet  Google Scholar 

  10. Kernel, L.: The linux kernel archives (2018). https://www.kernel.org/

  11. Kim, S., Zimmermann, T., Whitehead, E., Zeller, A.: Predicting faults from cached history. In: Proceedings of 29th International Conference on Software Engineering, pp. 489–498 (2007)

    Google Scholar 

  12. Lehman, M.: Laws of software evolution revisited. Lect. Notes Comput. Sci. 1149(1996), 108–124 (1996)

    Article  Google Scholar 

  13. Maia, M.C.O., Bittencourt, R.A., de Figueiredo, J.C.A., Guerrero, D.D.S.: The hybrid technique for object-oriented software change impact analysis. In: Software Maintenance and Reengineering (CSMR), pp. 252–255 (2010)

    Google Scholar 

  14. Nagappan, N.: Static analysis tools as early indicators of pre-release defect density. In: Proceedings of the 27th International Conference on Software Engineering, pp. 580–586 (2005)

    Google Scholar 

  15. Nagappan, N., Ball, T.: Use of relative code churn measures to predict system defect density. In: Proceedings of the 29th International Conference on Software Engineering, pp. 284–292 (2005)

    Google Scholar 

  16. Ostrand, T., Weyuker, E., Bell, R.: Predicting the location and number of faults in large software systems. IEEE Trans. Softw. Eng. 31(10), 340–355 (2005)

    Article  Google Scholar 

  17. Parnas, D.L.: Software aging. In: Proceedings of the International Conference on Software Maintenance, pp. 279–287 (1994)

    Google Scholar 

  18. Pinzger, M., Nagappan, N., Murphy, B.: Can developer-module networks predict failures? In: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (2008)

    Google Scholar 

  19. Rajlich, V.T., Bennett, K.H.: A staged model for the software life cycle. In: IEEE Compute, pp. 2–8 (2000)

    Google Scholar 

  20. Svetinovic, D., Godfrey, M.: Architecture, evolution, and cloning of linux device drivers: a case study (2007). citeseer.ist.psu.edu/745737.html

  21. Vora, U.: Change impact analysis and software evolution specification for continually evolving systems. In: Software Engineering Advances (ICSEA), pp. 238–243 (2010)

    Google Scholar 

  22. Wilkerson, J.W.: A software change impact analysis taxonomy. In: Proceedings of the International Conference on Software Maintenance, pp. 625–628 (2012)

    Google Scholar 

Download references

Acknowledgments

This work was supported by National Natural Science Foundation of China (No. 61672073).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lei Wang .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Wang, L., Chen, G., Li, L. (2020). Prediction of Function Removal Propagation in Linux Evolution. In: Miao, H., Tian, C., Liu, S., Duan, Z. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2019. Lecture Notes in Computer Science(), vol 12028. Springer, Cham. https://doi.org/10.1007/978-3-030-41418-4_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-41418-4_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-41417-7

  • Online ISBN: 978-3-030-41418-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics