[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1852761.1852777acmotherconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Comparison of different impact analysis methods and programmer's opinion: an empirical study

Published: 15 September 2010 Publication History

Abstract

In change impact analysis, obtaining guidance from automatic tools would be highly desirable since this activity is generally seen as a very difficult program comprehension problem. However, since the notion of an 'impact set' (or dependency set) of a specific change is usually very inexact and context dependent, the approaches and algorithms for computing these sets are also very diverse producing quite different results. The question 'which algorithm finds program dependencies in the most efficient way?' has been preoccupying researchers for a long time, but there are still very few results published on the comparison of the different algorithms to what programmers think are real dependencies. In this work, we report on our experiment conducted with this goal in mind using a compact, easily comprehensible Java experimental software system, simulated program changes, and a group of programmers who were asked to perform impact analysis with the help of different tools and on the basis of their programming experience. We show which algorithms turned out to be the closest to the programmers' opinion in this case study. However, the results also certified that most existing algorithms need to be further enhanced and an effective methodology to use automated tools to support impact analysis still needs to be found.

References

[1]
}}The BEFRIEND homepage. http://www.inf.u-szeged.hu/befriend/.
[2]
}}JRipples tool for Incremental Change. http://jripples.sourceforge.net/.
[3]
}}IEEE std 610.12-1990: IEEE standard glossary of software engineering terminology, 1990.
[4]
}}G. Antoniol, V. F. Rollo, and G. Venturi. Detecting groups of co-changing files in cvs repositories. In IWPSE '05: Proceedings of the Eighth International Workshop on Principles of Software Evolution, pages 23--32, Washington, DC, USA, 2005. IEEE Computer Society. ISBN 0-7695-2349-8.
[5]
}}R. S. Arnold and S. A. Bohner. Impact analysis - towards a framework for comparison. In ICSM '93: Proceedings of the Conference on Software Maintenance, pages 292--301, Washington, DC, USA, 1993. IEEE Computer Society. ISBN 0-8186-4600-4.
[6]
}}R. S. Arnold and S. A. Bohner. Software Change Impact Analysis. IEEE Computer Society Press, Los Alamitos, CA, USA, 1996. ISBN 0818673842.
[7]
}}V. R. Basili, G. Caldiera, and H. D. Rombach. The goal question metric approach. In Encyclopedia of Software Engineering. Wiley, 1994.
[8]
}}Á. Beszédes, T. Gergely, J. Jász, G. Tóth, T. Gyimóthy, and V. Rajlich. Computation of static execute after relation with applications to software maintenance. In Proceedings of the 2007 IEEE International Conference on Software Maintenance (ICSM'07), pages 295--304. IEEE Computer Society, Oct. 2007.
[9]
}}J. Bible, G. Rothermel, and D. S. Rosenblum. A comparative study of coarse- and fine-grained safe regression test-selection techniques. ACM Trans. Softw. Eng. Methodol., 10(2):149--183, 2001. ISSN 1049-331X.
[10]
}}S. A. Bohner. Impact analysis in the software change process: a year 2000 perspective. In ICSM '96: Proceedings of the 1996 International Conference on Software Maintenance, pages 42--51, Washington, DC, USA, 1996. IEEE Computer Society. ISBN 0-8186-7677-9.
[11]
}}B. Breech, M. Tegtmeyer, and L. Pollock. A comparison of online and dynamic impact analysis algorithms. In CSMR '05: Proceedings of the Ninth European Conference on Software Maintenance and Reengineering, pages 143--152, Washington, DC, USA, 2005. IEEE Computer Society. ISBN 0-7695-2304-8.
[12]
}}J. Buckner, J. Buchta, M. Petrenko, and V. Rajlich. JRipples: A tool for program comprehension during incremental change. In IWPC, pages 149--152, 2005.
[13]
}}J. Cohen. A coefficient of agreement for nominal scales. Psychological Bulletin, 20:37--46, 1960.
[14]
}}L. J. Fülöp, R. Ferenc, and T. Gyimóthy. Towards a Benchmark for Evaluating Design Pattern Miner Tools. In Proceedings of the 12th European Conference on Software Maintenance and Reengineering (CSMR 2008). IEEE Computer Society, Apr. 2008.
[15]
}}L. J. Fülöp, P. Hegedűs, R. Ferenc, and T. Gyimóthy. Towards a Benchmark for Evaluating Reverse Engineering Tools. In Tool Demonstrations of the 15th Working Conference on Reverse Engineering (WCRE 2008), Oct. 2008.
[16]
}}L. J. Fülöp, P. Hegedűs, and R. Ferenc. BEFRIEND - a Benchmark for Evaluating Reverse Engineering Tools, accepted, to appear. Periodica Polytechnica, 2009.
[17]
}}D. M. German, A. E. Hassan, and G. Robles. Change impact graphs: Determining the impact of prior codechanges. Information and Software Technology, 51(10):1394--1408, 2009. ISSN 0950-5849. Source Code Analysis and Manipulation, SCAM 2008.
[18]
}}A. E. Hassan and R. C. Holt. Predicting change propagation in software systems. In ICSM '04: Proceedings of the 20th IEEE International Conference on Software Maintenance, pages 284--293, Washington, DC, USA, 2004. IEEE Computer Society. ISBN 0-7695-2213-0.
[19]
}}S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems, 12(1):26--61, 1990.
[20]
}}INDUS Homepage. Indus project: Java program slicer and static analyses tools. http://indus.projects.cis.ksu.edu/. URL http://indus.projects.cis.ksu.edu/.
[21]
}}J. Jász, Á. Beszédes, T. Gyimóthy, and V. Rajlich. Static execute after/before as a replacement of traditional software dependencies. In Proceedings of the 2008 IEEE International Conference on Software Maintenance (ICSM'08), pages 137--146. IEEE Computer Society, Oct. 2008.
[22]
}}B. A. Kitchenham, S. L. Pfleeger, L. M. Pickard, P. W. Jones, D. C. Hoaglin, K. E. Emam, and J. Rosenberg. Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng., 28(8):721--734, 2002. ISSN 0098-5589.
[23]
}}M. Lindvall and K. Sandahl. How well do experienced software developers predict software change? J. Syst. Softw., 43(1):19--27, 1998. ISSN 0164--1212.
[24]
}}A. Orso, T. Apiwattanapong, J. Law, G. Rothermel, and M. J. Harrold. An empirical comparison of dynamic impact analysis algorithms. In ICSE '04: Proceedings of the 26th International Conference on Software Engineering, pages 491--500, Washington, DC, USA, 2004. IEEE Computer Society. ISBN 0-7695-2163-0.
[25]
}}V. Rajlich. Intensions are a key to program comprehension. In ICPC, pages 1--9, 2009.
[26]
}}V. Rajlich and P. Gosavi. Incremental change in object-oriented programming. IEEE Software, 21:62--69, 2004. ISSN 0740-7459.
[27]
}}B. G. Ryder. Constructing the call graph of a program. IEEE Trans. Softw. Eng., 5(3):216--226, 1979. ISSN 0098-5589.
[28]
}}T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. IEEE Trans. Software Eng., 31(6):429--445, 2005.

Cited By

View all
  • (2024)AI in software programming: understanding emotional responses to GitHub CopilotInformation Technology & People10.1108/ITP-01-2023-0084Online publication date: 2-Apr-2024
  • (2021)An improving approach to analyzing change impact of C programsComputer Communications10.1016/j.comcom.2021.10.039Online publication date: Nov-2021
  • (2019)An empirical assessment of baseline feature location techniquesEmpirical Software Engineering10.1007/s10664-019-09734-5Online publication date: 16-Jul-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
PPPJ '10: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
September 2010
173 pages
ISBN:9781450302692
DOI:10.1145/1852761
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Technical University of Vienna

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 September 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. BEFRIEND
  2. JRipples
  3. Java
  4. SEA
  5. call graph
  6. change impact analysis
  7. software co-change
  8. software dependencies
  9. static slicing

Qualifiers

  • Research-article

Funding Sources

Conference

PPPJ '10
Sponsor:
PPPJ '10: Principles and Practice of Programming in Java
September 15 - 17, 2010
Vienna, Austria

Acceptance Rates

Overall Acceptance Rate 29 of 58 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 31 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)AI in software programming: understanding emotional responses to GitHub CopilotInformation Technology & People10.1108/ITP-01-2023-0084Online publication date: 2-Apr-2024
  • (2021)An improving approach to analyzing change impact of C programsComputer Communications10.1016/j.comcom.2021.10.039Online publication date: Nov-2021
  • (2019)An empirical assessment of baseline feature location techniquesEmpirical Software Engineering10.1007/s10664-019-09734-5Online publication date: 16-Jul-2019
  • (2018)The State of Empirical Evaluation in Static Feature LocationACM Transactions on Software Engineering and Methodology10.1145/328098828:1(1-58)Online publication date: 5-Dec-2018
  • (2018)Improved Computation of Change Impact Analysis in Software Using All Applicable DependenciesFuturistic Trends in Network and Communication Technologies10.1007/978-981-13-3804-5_27(367-381)Online publication date: 25-Dec-2018
  • (2017)Improving the Teaching of Software Design with Automated Modelling of Syntactic Dependencies2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T)10.1109/CSEET.2017.31(144-151)Online publication date: Nov-2017
  • (2015)Impact analysis based on a global hierarchical Object Graph2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)10.1109/SANER.2015.7081832(221-230)Online publication date: Mar-2015
  • (2015)Abstracting Program Dependencies Using the Method Dependence GraphProceedings of the 2015 IEEE International Conference on Software Quality, Reliability and Security10.1109/QRS.2015.18(49-58)Online publication date: 3-Aug-2015
  • (2015)Improving Manual Change Impact Analysis with Tool Support: A Study in an Industrial ProjectSoftware Quality. Software and Systems Quality in Distributed and Mobile Environments10.1007/978-3-319-13251-8_4(47-66)Online publication date: 6-Jan-2015
  • (2013)Revealing the Effect of Coding Practices on Software MaintainabilityProceedings of the 2013 IEEE International Conference on Software Maintenance10.1109/ICSM.2013.99(578-581)Online publication date: 22-Sep-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media