Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Change impact graphs: Determining the impact of prior codechanges

Published: 01 October 2009 Publication History

Abstract

The source code of a software system is in constant change. The impact of these changes spreads out across the software system and may lead to the sudden manifestation of failures in unchanged parts. To help developers fix such failures, we propose a method that, in a pre-processing stage, analyzes prior code changes to determine what functions have been modified. Next, given a particular period of time in the past, the functions changed during that period are propagated throughout the rest of the system using the dependence graph of the system. This information is visualized using Change Impact Graphs (CIGs). Through a case study based on the Apache Web Server, we demonstrate the benefit of using CIGs to investigate several real defects.

References

[1]
Weiser, M., Programmers use slices when debugging. Commun. ACM. v25 i7. 446-452.
[2]
M. Weiser, Program slicing, in: Proceedings of the International Conference on Software Engineering (ICSE 1981), 1981, pp. 439-449.
[3]
Binkley, D. and Harman, M., A large-scale empirical study of forward and backward static slice size and context sensitivity. In: ICSM'03: Proceedings of the International Conference on Software Maintenance, IEEE Computer Society, Washington, DC, USA. pp. 44
[4]
Binkley, D., Gold, N. and Harman, M., An empirical study of static program slice size. ACM Trans. Softw. Eng. Methodol. v16 i2. 8
[5]
Binkley, D., Harman, M. and Krinke, J., Empirical study of optimization techniques for massive slicing. ACM Trans. Program. Lang. Syst. v30 i1. 3
[6]
Agrawal, H. and Horgan, J.R., Dynamic program slicing. In: PLDI'90: Proceedings of the ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation, ACM, New York, NY, USA. pp. 246-256.
[7]
Zhang, X., Gupta, N. and Gupta, R., A study of effectiveness of dynamic slicing in locating real faults. Empirical Softw. Eng. v12 i2. 143-160.
[8]
Kamiya, T., Kusumoto, S. and Inoue, K., Ccfinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Trans. Softw. Eng. v28 i7. 654-670.
[9]
D.M. German, A study of the contributors of PostgreSQL, in: 3rd International Workshop on Mining Software Repositories-MSR Challenge Reports (MSR 2006), 2006.
[10]
P. Weiígerber, S. Diehl, Identifying refactorings from source-code changes, in: 21st IEEE/ACM International Conference on Automated Software Engineering, 2006, pp. 231-240.
[11]
Kim, M., Notkin, D. and Grossman, D., Automatic inference of structural changes for matching across program versions. In: Proceedings of the 29th International Conference on Software Engineering (ICSE 2007), IEEE Computer Society. pp. 333-343.
[12]
Zou, L., Using origin analysis to detect merging and splitting of source code entities. IEEE Trans. Softw. Eng. v31 i2. 166-181.
[13]
Mockus, A., Fielding, R.T. and Herbsleb, J.D., Two case studies of Open Source software development: Apache and Mozilla. ACM Trans. Softw. Eng. Methodol. v11 i3. 309-346.
[14]
D.L. Parnas, Software aging, in: Proceedings of the International Conference on Software Engineering (ICSE 1994), Sorrento, Italy, 1994, pp. 279-287.
[15]
R. Arnold, S. Bohner, Impact analysis - toward a framework for comparison, in: IEEE International Conference Software Maintenance (ICSM 1997), MontrTal, Quebec, Canada, 1993, pp. 292-301.
[16]
Bohner, S. and Arnold, R., Software Change Impact Analysis. 1996. IEEE Computer Society Press.
[17]
V. Rajlich, A model for change propagation based on graph rewriting, in: IEEE International Conference Software Maintenance (ICSM 1997), Bari, Italy, 1997, pp. 84-91. URL: citeseer.nj.nec.com/rajlich97model.html.
[18]
Cubranic, D. and Murphy, G.C., Hipikat: recommending pertinent software development artifacts. In: Proceedings of the 25th International Conference on Software Engineering (ICSE 2000), ACM Press, Portland, Oregon. pp. 408-419.
[19]
A. Chen, E. Chou, J. Wong, A.Y. Yao, Q. Zhang, S. Zhang, A. Michail, CVSSearch: searching through source code using CVS comments, in: IEEE International Conference Software Maintenance (ICSM 2001), Florence, Italy, 2001, pp. 364-374. URL: citeseer.nj.nec.com/436456.html.
[20]
A.E. Hassan, R.C. Holt, Using development history sticky notes to understand software architecture, in: IWPC, 2004, pp. 183-193.
[21]
A. Mockus, L.G. Votta, Identifying reasons for software changes using historic databases, in: Proc. Int. Conf. Softw. Maintenance, 2000, pp. 120-130.
[22]
Graves, T.L., Karr, A.F., Marron, J.S. and Siy, H.P., Predicting fault incidence using software change history. IEEE Trans. Softw. Eng. v26 i7. 653-661.
[23]
J. Sliwerski, T. Zimmermann, A. Zeller, Hatari: raising risk awareness, in: ESEC/SIGSOFT FSE, 2005, pp. 107-110.
[24]
A. Zeller, Isolating cause-effect chains from computer programs, in: SIGSOFT FSE, 2002, pp. 1-10.
[25]
H. Cleve, A. Zeller, Locating causes of program failures, in: 27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, St. Louis, Missouri, USA.
[26]
A. McNair, D.M. German, J. Weber-Jahnke, Visualizing software architecture evolution using change-sets, in: Proc. 14th Working Conference on Reverse Engineering, 2007, pp. 140-149.
[27]
Kim, S., Zimmermann, T., Pan, K. and Whitehead, E.J.J., Automatic identification of bug-introducing changes. In: ASE '06: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, IEEE Computer Society, Washington, DC, USA. pp. 81-90.
[28]
Fluri, B., Wuersch, M., PInzger, M. and Gall, H., Change distilling: Tree differencing for fine-grained source code change extraction. IEEE Trans. Softw. Eng. v33 i11. 725-743.

Cited By

View all
  • (2023)SEAL: Integrating Program Analysis and Repository MiningACM Transactions on Software Engineering and Methodology10.1145/358500832:5(1-34)Online publication date: 24-Jul-2023
  • (2019)cregitEmpirical Software Engineering10.1007/s10664-019-09704-x24:4(2725-2763)Online publication date: 1-Aug-2019
  • (2018)What if a bug has a different origin?Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3239235.3267436(1-4)Online publication date: 11-Oct-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Information and Software Technology
Information and Software Technology  Volume 51, Issue 10
October, 2009
109 pages

Publisher

Butterworth-Heinemann

United States

Publication History

Published: 01 October 2009

Author Tags

  1. Change impact graph
  2. Code changes
  3. Defect detection
  4. Software evolution

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)SEAL: Integrating Program Analysis and Repository MiningACM Transactions on Software Engineering and Methodology10.1145/358500832:5(1-34)Online publication date: 24-Jul-2023
  • (2019)cregitEmpirical Software Engineering10.1007/s10664-019-09704-x24:4(2725-2763)Online publication date: 1-Aug-2019
  • (2018)What if a bug has a different origin?Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3239235.3267436(1-4)Online publication date: 11-Oct-2018
  • (2018)A model for estimating change propagation in softwareSoftware Quality Journal10.1007/s11219-017-9358-626:2(217-248)Online publication date: 1-Jun-2018
  • (2014)Visualizing protected variations in evolving software designsJournal of Systems and Software10.5555/2747015.274718288:C(231-249)Online publication date: 1-Feb-2014
  • (2014)What can changes tell about software processes?Proceedings of the 5th International Workshop on Emerging Trends in Software Metrics10.1145/2593868.2593869(1-7)Online publication date: 3-Jun-2014
  • (2014)Supporting streams of changes during branch integrationScience of Computer Programming10.1016/j.scico.2014.07.01296:P1(84-106)Online publication date: 15-Dec-2014
  • (2012)Preserving knowledge in software projectsJournal of Systems and Software10.1016/j.jss.2012.03.02885:10(2318-2330)Online publication date: 1-Oct-2012
  • (2010)Comparison of different impact analysis methods and programmer's opinionProceedings of the 8th International Conference on the Principles and Practice of Programming in Java10.1145/1852761.1852777(109-118)Online publication date: 15-Sep-2010
  • (2010)Capturing the long-term impact of changesProceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 210.1145/1810295.1810401(393-396)Online publication date: 1-May-2010

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media