Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Enhancing Code Understanding for Impact Analysis by Combining Transformers and Program Dependence Graphs

Published: 12 July 2024 Publication History

Abstract

Impact analysis (IA) is a critical software maintenance task that identifies the effects of a given set of code changes on a larger software project with the intention of avoiding potential adverse effects. IA is a cognitively challenging task that involves reasoning about the abstract relationships between various code constructs. Given its difficulty, researchers have worked to automate IA with approaches that primarily use coupling metrics as a measure of the "connectedness" of different parts of a software project. Many of these coupling metrics rely on static, dynamic, or evolutionary information and are based on heuristics that tend to be brittle, require expensive execution analysis, or large histories of co-changes to accurately estimate impact sets.
In this paper, we introduce a novel IA approach, called ATHENA, that combines a software system's dependence graph information with a conceptual coupling approach that uses advances in deep representation learning for code without the need for change histories and execution information. Previous IA benchmarks are small, containing less than ten software projects, and suffer from tangled commits, making it difficult to measure accurate results. Therefore, we constructed a large-scale IA benchmark, from 25 open-source software projects, that utilizes fine-grained commit information from bug fixes. On this new benchmark, our best performing approach configuration achieves an mRR, mAP, and HIT@10 score of 60.32%, 35.19%, and 81.48%, respectively. Through various ablations and qualitative analyses, we show that ATHENA's novel combination of program dependence graphs and conceptual coupling information leads it to outperform a simpler baseline by 10.34%, 9.55%, and 11.68% with statistical significance.

References

[1]
Mithun Acharya and Brian Robinson. 2011. Practical change impact analysis based on static program slicing for industrial software systems. In Proceedings of the 33rd International Conference on Software Engineering (ICSE ’11). Association for Computing Machinery, New York, NY, USA. 746–755. isbn:9781450304450 https://doi.org/10.1145/1985793.1985898
[2]
Wasi Ahmad, Saikat Chakraborty, Baishakhi Ray, and Kai-Wei Chang. 2021. Unified Pre-training for Program Understanding and Generation. In Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Association for Computational Linguistics, Online. 2655–2668. https://doi.org/10.18653/v1/2021.naacl-main.211
[3]
Robert S Arnold. 1996. Software change impact analysis. IEEE Computer Society Press.
[4]
Linda Badri, Mourad Badri, and Daniel St-Yves. 2005. Supporting predictive change impact analysis: a control call graph based technique. In 12th Asia-Pacific Software Engineering Conference (APSEC’05). 9 pp.–. https://doi.org/10.1109/APSEC.2005.100
[5]
Markus Borg, Krzysztof Wnuk, Björn Regnell, and Per Runeson. 2017. Supporting Change Impact Analysis Using a Recommendation System: An Industrial Case Study in a Safety-Critical Context. IEEE Transactions on Software Engineering, 43, 07 (2017), jul, 675–700. issn:1939-3520 https://doi.org/10.1109/TSE.2016.2620458
[6]
Ben Breech, Anthony Danalis, Stacey Shindo, and Lori Pollock. 2004. Online impact analysis via dynamic compilation technology. In 20th IEEE International Conference on Software Maintenance, 2004. Proceedings. 453–457. https://doi.org/10.1109/ICSM.2004.1357834
[7]
Ben Breech, Mike Tegtmeyer, and Lori Pollock. 2006. Integrating Influence Mechanisms into Impact Analysis for Increased Precision. In 2006 22nd IEEE International Conference on Software Maintenance. 55–65. https://doi.org/10.1109/ICSM.2006.33
[8]
Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan, Rewon Child, Aditya Ramesh, Daniel M. Ziegler, Jeffrey Wu, Clemens Winter, Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, and Dario Amodei. 2020. Language models are few-shot learners. In Proceedings of the 34th International Conference on Neural Information Processing Systems (NIPS’20). Curran Associates Inc., Red Hook, NY, USA. Article 159, 25 pages. isbn:9781713829546 https://doi.org/10.5555/3495724.3495883
[9]
Max Brunsfeld, Patrick Thomson, Andrew Hlynskyi, Josh Vera, Phil Turnbull, Timothy Clem, Douglas Creager, Andrew Helwer, Rob Rix, Hendrik van Antwerpen, Michael Davis, Ika, Tuan-Anh Nguyen, Stafford Brunk, Niranjan Hasabnis, bfredl, Mingkai Dong, Vladimir Panteleev, ikrima, Steven Kalt, Kolja Lampe, Alex Pinkus, Mark Schmitz, Matthew Krupcale, narpfel, Santos Gallegos, Vicent Martí, Edgar, and George Fraser. 2022. tree-sitter/tree-sitter: v0.20.7. https://doi.org/10.5281/zenodo.7045041
[10]
Haipeng Cai. 2020. A Reflection on the Predictive Accuracy of Dynamic Impact Analysis. In 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER). 562–566. https://doi.org/10.1109/SANER48275.2020.9054806
[11]
Haipeng Cai and Raul Santelices. 2014. Diver: precise dynamic impact analysis using dependence-based trace pruning. In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering (ASE ’14). Association for Computing Machinery, New York, NY, USA. 343–348. isbn:9781450330138 https://doi.org/10.1145/2642937.2642950
[12]
Haipeng Cai and Raul Santelices. 2015. A comprehensive study of the predictive accuracy of dynamic change-impact analysis. Journal of Systems and Software, 103 (2015), 248–265. https://doi.org/10.1016/j.jss.2015.02.018
[13]
Haipeng Cai, Raul Santelices, and Siyuan Jiang. 2016. Prioritizing Change-Impact Analysis via Semantic Program-Dependence Quantification. IEEE Transactions on Reliability, 65, 3 (2016), 1114–1132. https://doi.org/10.1109/TR.2015.2481000
[14]
Haipeng Cai, Raúl A. Santelices, and Douglas Thain. 2016. DiaPro: Unifying Dynamic Impact Analyses for Improved and Variable Cost-Effectiveness. ACM Trans. Softw. Eng. Methodol., 25, 2 (2016), 18:1–18:50. https://doi.org/10.1145/2894751
[15]
Haipeng Cai and Douglas Thain. 2016. DistIA: a cost-effective dynamic impact analysis for distributed programs. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE ’16). Association for Computing Machinery, New York, NY, USA. 344–355. isbn:9781450338455 https://doi.org/10.1145/2970276.2970352
[16]
Gerardo Canfora, Michele Ceccarelli, Luigi Cerulo, and Massimiliano Di Penta. 2010. Using multivariate time series and association rules to detect logical change coupling: An empirical study. In 2010 IEEE International Conference on Software Maintenance. 1–10. https://doi.org/10.1109/ICSM.2010.5609732
[17]
Kyunghyun Cho, Bart van Merriënboer, Dzmitry Bahdanau, and Yoshua Bengio. 2014. On the Properties of Neural Machine Translation: Encoder–Decoder Approaches. In Proceedings of SSST-8, Eighth Workshop on Syntax, Semantics and Structure in Statistical Translation, Dekai Wu, Marine Carpuat, Xavier Carreras, and Eva Maria Vecchi (Eds.). Association for Computational Linguistics, Doha, Qatar. 103–111. https://doi.org/10.3115/v1/W14-4012
[18]
Michael L. Collard, Michael John Decker, and Jonathan I. Maletic. 2013. srcML: An Infrastructure for the Exploration, Analysis, and Manipulation of Source Code: A Tool Demonstration. In 2013 IEEE International Conference on Software Maintenance. 516–519. https://doi.org/10.1109/ICSM.2013.85
[19]
Jose Luis de la Vara, Markus Borg, Krzysztof Wnuk, and Leon Moonen. 2016. An Industrial Survey of Safety Evidence Change Impact Analysis Practice. IEEE Transactions on Software Engineering, 42, 12 (2016), 1095–1117. https://doi.org/10.1109/TSE.2016.2553032
[20]
Michaël Defferrard, Xavier Bresson, and Pierre Vandergheynst. 2016. Convolutional neural networks on graphs with fast localized spectral filtering. In Proceedings of the 30th International Conference on Neural Information Processing Systems (NIPS’16). Curran Associates Inc., Red Hook, NY, USA. 3844–3852. isbn:9781510838819 https://doi.org/10.5555/3157382.3157527
[21]
Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2019, Minneapolis, MN, USA, June 2-7, 2019, Volume 1 (Long and Short Papers). Association for Computational Linguistics, 4171–4186. https://doi.org/10.18653/V1/N19-1423
[22]
Bogdan Dit, Meghan Revelle, and Denys Poshyvanyk. 2013. Integrating information retrieval, execution and link analysis algorithms to improve feature location in software. Empirical Softw. Engg., 18, 2 (2013), apr, 277–309. issn:1382-3256 https://doi.org/10.1007/s10664-011-9194-4
[23]
Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaocheng Feng, Ming Gong, Linjun Shou, Bing Qin, Ting Liu, Daxin Jiang, and Ming Zhou. 2020. CodeBERT: A Pre-Trained Model for Programming and Natural Languages. In Findings of the Association for Computational Linguistics: EMNLP 2020, Trevor Cohn, Yulan He, and Yang Liu (Eds.). Association for Computational Linguistics, Online. 1536–1547. https://doi.org/10.18653/v1/2020.findings-emnlp.139
[24]
Stephen Fink and Julian Dolby. 2012. WALA–The TJ Watson Libraries for Analysis.
[25]
Malcom Gethers, Bogdan Dit, Huzefa Kagdi, and Denys Poshyvanyk. 2012. Integrated impact analysis for managing software changes. In 2012 34th International Conference on Software Engineering (ICSE). 430–440. https://doi.org/10.1109/ICSE.2012.6227172
[26]
Daya Guo, Shuai Lu, Nan Duan, Yanlin Wang, Ming Zhou, and Jian Yin. 2022. UniXcoder: Unified Cross-Modal Pre-training for Code Representation. In Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), Smaranda Muresan, Preslav Nakov, and Aline Villavicencio (Eds.). Association for Computational Linguistics, Dublin, Ireland. 7212–7225. https://doi.org/10.18653/v1/2022.acl-long.499
[27]
Daya Guo, Shuo Ren, Shuai Lu, Zhangyin Feng, Duyu Tang, Shujie Liu, Long Zhou, Nan Duan, Alexey Svyatkovskiy, Shengyu Fu, Michele Tufano, Shao Kun Deng, Colin B. Clement, Dawn Drain, Neel Sundaresan, Jian Yin, Daxin Jiang, and Ming Zhou. 2020. GraphCodeBERT: Pre-training Code Representations with Data Flow. CoRR, abs/2009.08366 (2020), arXiv:2009.08366. arxiv:2009.08366
[28]
Alex Gyori, Shuvendu K. Lahiri, and Nimrod Partush. 2017. Refining interprocedural change-impact analysis using equivalence relations. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017). Association for Computing Machinery, New York, NY, USA. 318–328. isbn:9781450350761 https://doi.org/10.1145/3092703.3092719
[29]
David K. Hammond, Pierre Vandergheynst, and Rémi Gribonval. 2011. Wavelets on graphs via spectral graph theory. Applied and Computational Harmonic Analysis, 30, 2 (2011), 129–150. issn:1063-5203 https://doi.org/10.1016/j.acha.2010.04.005
[30]
Steffen Herbold, Alexander Trautsch, Benjamin Ledel, Alireza Aghamohammadi, Taher Ahmed Ghaleb, Kuljit Kaur Chahal, Tim Bossenmaier, Bhaveet Nagaria, Philip Makedonski, Matin Nili Ahmadabadi, Kristóf Szabados, Helge Spieker, Matej Madeja, Nathaniel Hoy, Valentina Lenarduzzi, Shangwen Wang, Gema Rodríguez-Pérez, Ricardo Colomo Palacios, Roberto Verdecchia, Paramvir Singh, Yihao Qin, Debasish Chakroborti, Willard Davis, Vijay Walunj, Hongjun Wu, Diego Marcilio, Omar Alam, Abdullah Aldaeej, Idan Amit, Burak Turhan, Simon Eismann, Anna-Katharina Wickert, Ivano Malavolta, Matús Sulír, Fatemeh H. Fard, Austin Z. Henley, Stratos Kourtzanidis, Eray Tuzun, Christoph Treude, Simin Maleki Shamasbi, Ivan Pashchenko, Marvin Wyrich, James Davis, Alexander Serebrenik, Ella Albrecht, Ethem Utku Aktas, Daniel Strüber, and Johannes Erbel. 2020. Large-Scale Manual Validation of Bug Fixing Commits: A Fine-grained Analysis of Tangling. CoRR, abs/2011.06244 (2020), arXiv:2011.06244. arxiv:2011.06244
[31]
Kim Herzig, Sascha Just, and Andreas Zeller. 2015. The impact of tangled code changes on defect prediction models. Empirical Software Engineering, 21 (2015), 04, https://doi.org/10.1007/s10664-015-9376-6
[32]
Kim Herzig and Andreas Zeller. 2013. The impact of tangled code changes. In 2013 10th Working Conference on Mining Software Repositories (MSR). 121–130. https://doi.org/10.1109/MSR.2013.6624018
[33]
Hamel Husain, Ho-Hsiang Wu, Tiferet Gazit, Miltiadis Allamanis, and Marc Brockschmidt. 2019. CodeSearchNet Challenge: Evaluating the State of Semantic Code Search. CoRR, abs/1909.09436 (2019), arXiv:1909.09436. arxiv:1909.09436
[34]
Mohammad-Amin Jashki, Reza Zafarani, and Ebrahim Bagheri. 2008. Towards a more efficient static software change impact analysis method. In Proceedings of the 8th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE ’08). Association for Computing Machinery, New York, NY, USA. 84–90. isbn:9781605583822 https://doi.org/10.1145/1512475.1512493
[35]
Zijian Jiang, Ye Wang, Hao Zhong, and Na Meng. 2019. Automatic Method Change Suggestion to Complement Multi-Entity Edits. Journal of Systems and Software, 159 (2019), 10, 110441. https://doi.org/10.1016/j.jss.2019.110441
[36]
Huzefa Kagdi, Malcom Gethers, and Denys Poshyvanyk. 2012. Integrating conceptual and logical couplings for change impact analysis in software. Empirical Software Engineering, 18 (2012), 10, https://doi.org/10.1007/s10664-012-9233-9
[37]
Huzefa Kagdi, Malcom Gethers, Denys Poshyvanyk, and Michael L. Collard. 2010. Blending Conceptual and Evolutionary Couplings to Support Change Impact Analysis in Source Code. In 2010 17th Working Conference on Reverse Engineering. 119–128. https://doi.org/10.1109/WCRE.2010.21
[38]
Yoon Kim. 2014. Convolutional Neural Networks for Sentence Classification. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), Alessandro Moschitti, Bo Pang, and Walter Daelemans (Eds.). Association for Computational Linguistics, Doha, Qatar. 1746–1751. https://doi.org/10.3115/v1/D14-1181
[39]
Diederik P. Kingma and Jimmy Ba. 2015. Adam: A Method for Stochastic Optimization. In 3rd International Conference on Learning Representations, ICLR 2015, San Diego, CA, USA, May 7-9, 2015, Conference Track Proceedings, Yoshua Bengio and Yann LeCun (Eds.). arxiv:1412.6980
[40]
Thomas N. Kipf and Max Welling. 2017. Semi-Supervised Classification with Graph Convolutional Networks. In 5th International Conference on Learning Representations, ICLR 2017, Toulon, France, April 24-26, 2017, Conference Track Proceedings. OpenReview.net. https://openreview.net/forum?id=SJU4ayYgl
[41]
Hiroyuki Kirinuki, Yoshiki Higo, Keisuke Hotta, and Shinji Kusumoto. 2014. Hey! are you committing tangled changes? In Proceedings of the 22nd International Conference on Program Comprehension (ICPC 2014). Association for Computing Machinery, New York, NY, USA. 262–265. isbn:9781450328791 https://doi.org/10.1145/2597008.2597798
[42]
Hiroyuki Kirinuki, Yoshiki Higo, Keisuke Hotta, and Shinji Kusumoto. 2016. Splitting Commits via Past Code Changes. In 2016 23rd Asia-Pacific Software Engineering Conference (APSEC). 129–136. https://doi.org/10.1109/APSEC.2016.028
[43]
Pavneet Singh Kochhar, Yuan Tian, and David Lo. 2014. Potential biases in bug localization: do they matter? In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering (ASE ’14). Association for Computing Machinery, New York, NY, USA. 803–814. isbn:9781450330138 https://doi.org/10.1145/2642937.2642997
[44]
Hongyu Kuang, Patrick Mäder, Hao Hu, Achraf Ghabi, Liguo Huang, Lv Jian, and Alexander Egyed. 2012. Do data dependencies in source code complement call dependencies for understanding requirements traceability? 181–190. isbn:978-1-4673-2313-0 https://doi.org/10.1109/ICSM.2012.6405270
[45]
Quoc V. Le and Tomás Mikolov. 2014. Distributed Representations of Sentences and Documents. CoRR, abs/1405.4053 (2014), arXiv:1405.4053. arxiv:1405.4053
[46]
Bixin Li, Xiaobing Sun, Hareton Leung, and Sai Zhang. 2013. A survey of code-based change impact analysis techniques. Software Testing, Verification and Reliability, 23 (2013), 12, https://doi.org/10.1002/stvr.1475
[47]
Shuai Lu, Daya Guo, Shuo Ren, Junjie Huang, Alexey Svyatkovskiy, Ambrosio Blanco, Colin B. Clement, Dawn Drain, Daxin Jiang, Duyu Tang, Ge Li, Lidong Zhou, Linjun Shou, Long Zhou, Michele Tufano, Ming Gong, Ming Zhou, Nan Duan, Neel Sundaresan, Shao Kun Deng, Shengyu Fu, and Shujie Liu. 2021. CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generation. CoRR, abs/2102.04664 (2021), arXiv:2102.04664. arxiv:2102.04664
[48]
Tomás Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. 2013. Efficient Estimation of Word Representations in Vector Space. In 1st International Conference on Learning Representations, ICLR 2013, Scottsdale, Arizona, USA, May 2-4, 2013, Workshop Track Proceedings, Yoshua Bengio and Yann LeCun (Eds.). arxiv:1301.3781
[49]
Chris Mills, Esteban Parra, Jevgenija Pantiuchina, Gabriele Bavota, and Sonia Haiduc. 2020. On the relationship between bug reports and queries for text retrieval-based bug localization. Empirical Software Engineering, 25 (2020), 09, https://doi.org/10.1007/s10664-020-09823-w
[50]
Hoan Anh Nguyen, Anh Tuan Nguyen, and Tien N. Nguyen. 2013. Filtering noise in mixed-purpose fixing commits to improve defect prediction and localization. In 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE). 138–147. https://doi.org/10.1109/ISSRE.2013.6698913
[51]
Denys Poshyvanyk, Andrian Marcus, Rudolf Ferenc, and Tibor Gyimóthy. 2009. Using information retrieval based coupling measures for impact analysis. Empirical Software Engineering, 14 (2009), 02, 5–32. https://doi.org/10.1007/s10664-008-9088-2
[52]
Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J. Liu. 2019. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. CoRR, abs/1910.10683 (2019), arXiv:1910.10683. arxiv:1910.10683
[53]
Sable Research Group. 2023. Soot: A Java Bytecode Optimization Framework. https://soot-oss.github.io/soot/
[54]
Mark Sherriff and Laurie Williams. 2008. Empirical Software Change Impact Analysis using Singular Value Decomposition. In 2008 1st International Conference on Software Testing, Verification, and Validation. 268–277. https://doi.org/10.1109/ICST.2008.25
[55]
Yonghee Shin, Andrew Meneely, Laurie Williams, and Jason A. Osborne. 2011. Evaluating Complexity, Code Churn, and Developer Activity Metrics as Indicators of Software Vulnerabilities. IEEE Transactions on Software Engineering, 37, 6 (2011), 772–787. https://doi.org/10.1109/TSE.2010.81
[56]
Jeffrey Svajlenko, Judith F. Islam, Iman Keivanloo, Chanchal K. Roy, and Mohammad Mamun Mia. 2014. Towards a Big Data Curated Benchmark of Inter-project Code Clones. In 2014 IEEE International Conference on Software Maintenance and Evolution. 476–480. https://doi.org/10.1109/ICSME.2014.77
[57]
Yida Tao, Yingnong Dang, Tao Xie, Dongmei Zhang, and Sunghun Kim. 2012. How do software engineers understand code changes? an exploratory study in industry. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE ’12). Association for Computing Machinery, New York, NY, USA. Article 51, 11 pages. isbn:9781450316149 https://doi.org/10.1145/2393596.2393656
[58]
Marco Torchiano and Filippo Ricca. 2010. Impact analysis by means of unstructured knowledge in the context of bug repositories. In Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM ’10). Association for Computing Machinery, New York, NY, USA. Article 47, 4 pages. isbn:9781450300391 https://doi.org/10.1145/1852786.1852847
[59]
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Ł ukasz Kaiser, and Illia Polosukhin. 2017. Attention is All you Need. In Advances in Neural Information Processing Systems, I. Guyon, U. Von Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett (Eds.). 30, Curran Associates, Inc. https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf
[60]
Min Wang, Zeqi Lin, Yanzhen Zou, and Bing Xie. 2019. CoRA: Decomposing and Describing Tangled Code Changes for Reviewer. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE). 1050–1061. https://doi.org/10.1109/ASE.2019.00101
[61]
Wei Wang, Yun He, Tong Li, Jiajun Zhu, and Jinzhuo Liu. 2018. An Integrated Model for Information Retrieval Based Change Impact Analysis. Scientific Programming, 2018 (2018), 03, 1–13. https://doi.org/10.1155/2018/5913634
[62]
Xin Wang, Yasheng Wang, Pingyi Zhou, Fei Mi, Meng Xiao, Yadao Wang, Li Li, Xiao Liu, Hao Wu, Jin Liu, and Xin Jiang. 2021. CLSEBERT: Contrastive Learning for Syntax Enhanced Code Pre-Trained Model. CoRR, abs/2108.04556 (2021), arXiv:2108.04556. arxiv:2108.04556
[63]
Yue Wang, Weishi Wang, Shafiq Joty, and Steven C.H. Hoi. 2021. CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generation. In Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing, Marie-Francine Moens, Xuanjing Huang, Lucia Specia, and Scott Wen-tau Yih (Eds.). Association for Computational Linguistics, Online and Punta Cana, Dominican Republic. 8696–8708. https://doi.org/10.18653/v1/2021.emnlp-main.685
[64]
Yanfu Yan, Nathan Cooper, Kevin Moran, Gabriele Bavota, Deny Poshyvanyk, and Steve Rich. 2024. Online Appendix. https://github.com/yanyanfu/Athena
[65]
Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, and Quoc V. Le. 2019. XLNet: generalized autoregressive pretraining for language understanding. Curran Associates Inc., Red Hook, NY, USA.
[66]
T. Zimmermann, P. Weibgerber, S. Diehl, and A. Zeller. 2004. Mining version histories to guide software changes. In Proceedings. 26th International Conference on Software Engineering. 563–572. https://doi.org/10.1109/ICSE.2004.1317478

Index Terms

  1. Enhancing Code Understanding for Impact Analysis by Combining Transformers and Program Dependence Graphs

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Proceedings of the ACM on Software Engineering
    Proceedings of the ACM on Software Engineering  Volume 1, Issue FSE
    July 2024
    2770 pages
    EISSN:2994-970X
    DOI:10.1145/3554322
    Issue’s Table of Contents
    This work is licensed under a Creative Commons Attribution International 4.0 License.

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 12 July 2024
    Published in PACMSE Volume 1, Issue FSE

    Author Tags

    1. Conceptual Coupling
    2. Impact Analysis
    3. Program Comprehension

    Qualifiers

    • Research-article

    Funding Sources

    • NSF (National Science Foundation)
    • Cisco Systems

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 272
      Total Downloads
    • Downloads (Last 12 months)272
    • Downloads (Last 6 weeks)112
    Reflects downloads up to 15 Oct 2024

    Other Metrics

    Citations

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media