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

skip to main content
10.1145/1858996.1859091acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Matching dependence-related queries in the system dependence graph

Published: 20 September 2010 Publication History

Abstract

In software maintenance and evolution, it is common that developers want to apply a change to a number of similar places. Due to the size and complexity of the code base, it is challenging for developers to locate all the places that need the change. A main challenge in locating the places that need the change is that, these places share certain common dependence conditions but existing code searching techniques can hardly handle dependence relations satisfactorily. In this paper, we propose a technique that enables developers to make queries involving dependence conditions and textual conditions on the system dependence graph of the program. We carried out an empirical evaluation on four searching tasks taken from the development history of two real-world projects. The results of our evaluation indicate that, compared with code-clone detection, our technique is able to locate many required code elements that code-clone detection cannot locate, and compared with text search, our technique is able to effectively reduce false positives without losing any required code elements.

References

[1]
}}J. Andersen and J. L. Lawall. Generic patch inference. In ASE, pages 337--346, 2008.
[2]
}}J. Brunel, D. Doligez, R. R. Hansen, J. L. Lawall, and G. Muller. A foundation for flow-based program matching: using temporal logic and model checking. In POPL, pages 114--126, 2009.
[3]
}}J. Cheng, J. X. Yu, B. Ding, P. Yu, and H. Wang. Fast graph pattern matching. In ICDE, pages 913--922, 2008.
[4]
}}T. Copeland. PMD Applied. Centennial Books, 2005.
[5]
}}M. Gabel, L. Jiang, and Z. Su. Scalable detection of semantic clones. In ICSE, pages 321--330, 2008.
[6]
}}E. Hill, L. Pollock, and K. Vijay-Shanker. Automatically capturing source code context of NL-queries for software maintenance and reuse. In ICSE, pages 232--242, 2009.
[7]
}}R. Holmes and G. C. Murphy. Using structural context to recommend source code examples. In ICSE, pages 117--125, 2005.
[8]
}}D. Hovemeyer and W. Pugh. Finding bugs is easy. SIGPLAN Not., 39(12):92--106, 2004.
[9]
}}D. Janzen and K. De Volder. Navigating and querying code without getting lost. In AOSD, pages 178--187, 2003.
[10]
}}L. Jiang, G. Misherghi, Z. Su, and S. Glondu. DECKARD: Scalable and accurate tree-based detection of code clones. In ICSE, pages 96--105, 2007.
[11]
}}T. Kamiya, S. Kusumoto, and K. Inoue. CCFinder: a multilinguistic token-based code clone detection system for large scale source code. TSE, 28(7):654--670, 2002.
[12]
}}Z. Li and Y. Zhou. PR-Miner: automatically extracting implicit programming rules and detecting violations in large software code. In ESEC/FSE, pages 306--315, 2005.
[13]
}}D. Mandelin, L. Xu, R. Bodik, and D. Kimelman. Jungloid mining: Helping to navigate the API jungle. In PLDI, pages 48--61, 2005.
[14]
}}M. Martin, B. Livshits, and M. S. Lam. Finding application errors and security flaws using PQL: A program query language. In OOPSLA, pages 365--383, 2005.
[15]
}}A. Maule, W. Emmerich, and D. S. Rosenblum. Impact analysis of database schema changes. In ICSE, pages 451--460, 2008.
[16]
}}S. Sinha, M. J. Harrold, and G. Rothermel. System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow. In ICSE, pages 432--441, 1999.
[17]
}}N. Tansalarak and K. T. Claypool. XSnippet: Mining for sample code. In OOPSLA, pages 413--430, 2006.
[18]
}}S. Thummalapenta and T. Xie. ParseWeb: a programmer assistant for reusing open source code on the web. In ASE, pages 204--213, 2007.
[19]
}}X. Wang, L. Zhang, T. Xie, H. Mei, and J. Sun. Locating need-to-translate constant strings for software internationalization. In ICSE, pages 353--363, 2009.
[20]
}}M. Weiser. Program slicing. In ICSE, pages 439--449, 1981.
[21]
}}W. Zhao, L. Zhang, Y. Liu, J. Sun, and F. Yang. SNIAFL: Towards a static noninteractive approach to feature location. TOSEM, 15(2):195--226, 2006.
[22]
}}H. Zhong, T. Xie, L. Zhang, J. Pei, and H. Mei. MAPO: Mining and recommending API usage patterns. In ECOOP, pages 318--343, 2009.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '10: Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering
September 2010
534 pages
ISBN:9781450301169
DOI:10.1145/1858996
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

  • IEEE CS

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 September 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code search
  2. graph indexing
  3. system dependence graph

Qualifiers

  • Research-article

Conference

ASE10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)Locating Concepts on Use Case Steps in Source CodeIEICE Transactions on Information and Systems10.1587/transinf.2023KBP0004E107.D:5(602-612)Online publication date: 1-May-2024
  • (2023)Big Code Search: A BibliographyACM Computing Surveys10.1145/360490556:1(1-49)Online publication date: 26-Aug-2023
  • (2023)Code Search: A Survey of Techniques for Finding CodeACM Computing Surveys10.1145/356597155:11(1-31)Online publication date: 9-Feb-2023
  • (2023)PExReport: Automatic Creation of Pruned Executable Cross-Project Failure Reports2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)10.1109/ICSE48619.2023.00027(184-195)Online publication date: May-2023
  • (2022)Mining idioms in the wildProceedings of the 44th International Conference on Software Engineering: Software Engineering in Practice10.1145/3510457.3513046(187-196)Online publication date: 21-May-2022
  • (2022)Mining Idioms in the Wild2022 IEEE/ACM 44th International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)10.1109/ICSE-SEIP55303.2022.9794062(187-196)Online publication date: May-2022
  • (2021)Automatic Extraction of Code Dependency in Virtual Reality Software2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00043(381-385)Online publication date: May-2021
  • (2021)An Exploration Study On the Dependency Among Vulnerabilities and Bugs2021 28th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC53868.2021.00074(574-575)Online publication date: Dec-2021
  • (2020)Exempla gratis (E.G.): code examples for freeProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3417052(1353-1364)Online publication date: 8-Nov-2020
  • (2020)An Efficient and Scalable Platform for Java Source Code Analysis Using Overlaid Graph RepresentationsIEEE Access10.1109/ACCESS.2020.29876318(72239-72260)Online publication date: 2020
  • 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