Predicting change propagation in software systems
- 23 December 2004
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Software systems contain entities, such as functions and variables, which are related to each other. As a software system evolves to accommodate new features and repair bugs, changes occur to these entities. Developers must ensure that related entities are updated to be consistent with these changes. This paper addresses the question: How does a change in one source code entity propagate to other entities? We propose several heuristics to predict change propagation. We present a framework to measure the performance of our proposed heuristics. We validate our results empirically using data obtained by analyzing the development history for five large open source software systems.Keywords
This publication has 23 references indexed in Scilit:
- Studying the chaos of code developmentPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- How history justifies system architecture (or not)Published by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- Toward an understanding of the motivation of open source software developersPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Detection of logical coupling based on product release historyPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Predicting fault incidence using software change historyIEEE Transactions on Software Engineering, 2000
- A case study of open source software developmentPublished by Association for Computing Machinery (ACM) ,2000
- Identifying reasons for software changes using historic databasesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2000
- Using coupling measurement for impact analysis in object-oriented systemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1999
- Using program slicing in software maintenanceIEEE Transactions on Software Engineering, 1991
- An integrated life-cycle model for software maintenanceIEEE Transactions on Software Engineering, 1988