|
| This Article | ||
| ||
| Share | ||
| Bibliographic References | ||
| Add to: | ||
| | ||
| Search | ||
| ||
2010 IEEE 18th International Conference on Program Comprehension
Utilizing Web Search Engines for Program Analysis
Braga, Minho Portugal
June 30-July 02
ISBN: 978-0-7695-4113-6
| ASCII Text | x | ||
| Daniel Ratiu, Lars Heinemann, "Utilizing Web Search Engines for Program Analysis," International Conference on Program Comprehension, pp. 94-103, 2010 IEEE 18th International Conference on Program Comprehension, 2010. | |||
| BibTex | x | ||
| @article{ 10.1109/ICPC.2010.26, author = {Daniel Ratiu and Lars Heinemann}, title = {Utilizing Web Search Engines for Program Analysis}, journal ={International Conference on Program Comprehension}, volume = {0}, year = {2010}, issn = {1063-6897}, pages = {94-103}, doi = {http://doi.ieeecomputersociety.org/10.1109/ICPC.2010.26}, publisher = {IEEE Computer Society}, address = {Los Alamitos, CA, USA}, } | |||
| RefWorks Procite/RefMan/Endnote | x | ||
| TY - CONF JO - International Conference on Program Comprehension TI - Utilizing Web Search Engines for Program Analysis SN - 1063-6897 SP94 EP103 A1 - Daniel Ratiu, A1 - Lars Heinemann, PY - 2010 KW - concept location KW - program analysis KW - analysis of identifiers KW - domain knowledge VL - 0 JA - International Conference on Program Comprehension ER - | |||
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/ICPC.2010.26
Programming involves representing domain concepts by using programming abstractions. In object-oriented programs, concepts and relations of the business domain are represented as classes, attributes and methods. However, the concepts and relations that logically belong together are scattered across different modules, interleaved with technical concepts, and distorted due to implementation details. In this paper, we present an automatic method to identify logically related concepts and the relations among them. To achieve this, we systematically transform program identifiers into fragments of natural language sentences and check whether these sentence fragments are meaningful for humans. In order to automatically perform such checks, we use the World Wide Web as a knowledge base that contains a huge number of meaningful texts, and use the Google web search engine to validate the meaningfulness of these sentences. If the search engine returns a sufficient number of hits, we discovered a piece of knowledge in the code. By systematically applying this method, we obtain a condensed form of the knowledge embodied in the program which is an enabler for automatic analyses. We present our experience with several use-cases: (1) assessing the meaningfulness of identifiers, (2) extracting complex concepts from compound identifiers, (3) extracting a meaningful taxonomy from the class hierarchy, and (4) extracting complex conceptual relations from the code. We report on our observations during the analysis of real world Java code, discuss the limitations of our approach and sketch extension possibilities.
Index Terms:
concept location, program analysis, analysis of identifiers, domain knowledge
Citation:
Daniel Ratiu, Lars Heinemann, "Utilizing Web Search Engines for Program Analysis," icpc, pp.94-103, 2010 IEEE 18th International Conference on Program Comprehension, 2010
Usage of this product signifies your acceptance of the Terms of Use.
