Change propagations in the maintenance of kernel-based software with a study on Linux

As a software system evolves to accommodate new features and repair bugs, changes are needed. Software components are interdependent, changes made to one component can require changes to be propagated to other components. Change propagation brings potential challenges for software maintenance. In this paper, we divide change propagations into four categories in kernel-based software. Different categories of change propagation have different effects on kernel maintenance. We use product version history to mine change propagations rules and apply the categorization to Linux operating system. Our study provides a framework for measuring, evaluating, and predicting change propagations in kernel-based software, which includes most operating systems, database management systems, game systems, and software product lines.

[1]  Chadd C. Williams,et al.  Automatic mining of source code repositories to improve bug finding techniques , 2005, IEEE Transactions on Software Engineering.

[2]  Gail C. Murphy,et al.  Predicting source code changes by mining change history , 2004, IEEE Transactions on Software Engineering.

[3]  Richard C. Holt,et al.  Predicting change propagation in software systems , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[4]  Eric S. Raymond,et al.  The Cathedral & the Bazaar , 1999 .

[5]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[6]  Theo Härder,et al.  New Approaches to Object Processing in Engineering Databases , 1986, OODBS.

[7]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .

[8]  Andreas Zeller,et al.  How history justifies system architecture (or not) , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[9]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[10]  Per Brinch Hansen,et al.  The nucleus of a multiprogramming system , 1970, CACM.

[11]  Harvey P. Siy,et al.  Predicting Fault Incidence Using Software Change History , 2000, IEEE Trans. Software Eng..