skip to main content
10.1145/3377812.3381392acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Scalable and approximate program dependence analysis

Published: 01 October 2020 Publication History

Abstract

Program dependence is a fundamental concept to many software engineering tasks, yet the traditional dependence analysis struggles to cope with common modern development practices such as multi-lingual implementations and use of third-party libraries. While Observation-based Slicing (ORBS) solves these issues and produces an accurate slice, it has a scalability problem due to the need to build and execute the target program multiple times. We would like to propose a radical change of perspective: a useful dependence analysis needs to be scalable even if it approximates the dependency. Our goal is a scalable approximate program dependence analysis via estimating the likelihood of dependence. We claim that 1) using external information such as lexical analysis or a development history, 2) learning dependence model from partial observations, and 3) merging static, and observation-based approach would assist the proposition. We expect that our technique would introduce a new perspective of program dependence analysis into the likelihood of dependence. It would also broaden the capability of the dependence analysis towards large and complex software.

References

[1]
Hiralal Agrawal and Joseph R. Horgan. 1990. Dynamic program slicing. In ACM SIGPLAN Conference on Programming Language Design and Implementation (White Plains, New York). 246--256.
[2]
Soubhagya Sankar Barpanda and Durga Prasad Mohapatra. 2011. Dynamic slicing of distributed object-oriented programs. IET software 5, 5 (2011), 425--433.
[3]
Arpad Beszedes, Tamás Gergely, and Tibor Gyimóthy. 2006. Graph-less dynamic dependence-based dynamic slicing algorithms. In Intl. Workshop on Source Code Analysis and Manipulation (SCAM). 21--30.
[4]
David Binkley. 1997. Semantics Guided Regression Test Cost Reduction. IEEE Transactions on Software Engineering 23, 8 (1997), 498--516.
[5]
David Binkley, Nicolas Gold, M. Harman, Syed Islam, Jens Krinke, and Shin Yoo. 2014. ORBS: Language-Independent Program Slicing. In Proceedings of the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2014). 109--120.
[6]
David M Blei, Andrew Y Ng, and Michael I Jordan. 2003. Latent dirichlet allocation. Journal of machine Learning research 3, Jan (2003), 993--1022.
[7]
Richard A DeMillo, Hsin Pan, and Eugene H Spafford. 1996. Critical slicing for software fault localization. In Proc. of the Intl. Symposium on Software Testing and Analysis (ISSTA). 121--134.
[8]
M. Dias, A. Bacchelli, G. Gousios, D. Cassou, and S. Ducasse. 2015. Untangling fine-grained code changes. In 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER). 341--350.
[9]
Ran Ettinger and Mathieu Verbaere. 2004. Untangling: A Slice Extraction Refactoring. In Proceedings of the 3rd International Conference on Aspect-oriented Software Development (AOSD '04). ACM, New York, NY, USA, 93--101.
[10]
Ákos Hajnal and István Forgács. 2012. A demand-driven approach to slicing legacy COBOL systems. Journal of Software: Evolution and Process 24, 1 (2012), 67--82.
[11]
Susan Horwitz, Thomas Reps, and David Wendell Binkley. 1990. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems 12, 1 (1990), 26--61.
[12]
M. Hutchins, H. Foster, T. Goradia, and T. Ostrand. 1994. Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria. In Proceedings of 16th International Conference on Software Engineering. 191--200.
[13]
Siyuan Jiang, Collin McMillan, and Raul Santelices. 2017. Do Programmers do Change Impact Analysis in Debugging? Empirical Software Engineering 22, 2 (01 Apr 2017), 631--669.
[14]
R. Karim, F. Tip, A. Sochurkova, and K. Sen. 2019. Platform-Independent Dynamic Taint Analysis for JavaScript. IEEE Transactions on Software Engineering (2019), 1--1.
[15]
Bogdan Korel and Janusz Laski. 1988. Dynamic program slicing. Inform. Process. Lett. 29, 3 (Oct. 1988), 155--163.
[16]
Seongmin Lee, David Binkley, Robert Feldt, Nicolas Gold, and Shin Yoo. 2019. MOAD: Modeling Observation-based Approximate Dependency. In 19th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2019).
[17]
Seongmin Lee, David Binkley, Nicolas Gold, Syed Islam, Jens Krinke, and Shin Yoo. 2020. Evaluating lexical approximation of program dependence. Journal of Systems and Software 160 (2020), 110459.
[18]
Panos E. Livadas and Prabal K. Roy. 1992. Program Dependence Analysis. In Proceedings of the International Conference on Software Maintenance 1992. IEEE Computer Society Press, Los Alamitos, California, USA, 356--365.
[19]
G.B. Mund and Rajib Mall. 2006. An efficient interprocedural dynamic slicing method. Journal of Systems and Software 79, 6 (2006), 791--806.
[20]
Chaiyong Ragkhitwetsagul, Jens Krinke, and David Clark. 2018. A comparison of code similarity analysers. Empirical Software Engineering 23, 4 (Aug 2018), 2464--2519.
[21]
G. Salton, A. Wong, and C. S. Yang. 1975. A Vector Space Model for Automatic Indexing. Commun. ACM 18, 11 (Nov. 1975), 613--620.
[22]
Attila Szegedi and Tibor Gyimóthy. 2005. Dynamic slicing of Java bytecode programs. In Intl. Workshop on Source Code Analysis and Manipulation (SCAM). 35--44.
[23]
Zhifeng Yu and V. Rajlich. 2001. Hidden dependencies in program comprehension and change propagation. In Proceedings 9th International Workshop on Program Comprehension. IWPC 2001. 293--299.

Cited By

View all
  • (2024)Causal Program Dependence AnalysisScience of Computer Programming10.1016/j.scico.2024.103208(103208)Online publication date: Sep-2024
  • (2023)(Partial) Program Dependence LearningProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00209(2501-2513)Online publication date: 14-May-2023

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings
June 2020
357 pages
ISBN:9781450371223
DOI:10.1145/3377812
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

In-Cooperation

  • KIISE: Korean Institute of Information Scientists and Engineers
  • IEEE CS

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. ORBS
  2. program analysis
  3. program slicing

Qualifiers

  • Research-article

Conference

ICSE '20
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)1
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Causal Program Dependence AnalysisScience of Computer Programming10.1016/j.scico.2024.103208(103208)Online publication date: Sep-2024
  • (2023)(Partial) Program Dependence LearningProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00209(2501-2513)Online publication date: 14-May-2023

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media