| Graph-based mining of multiple object usage patterns |
| Full text |
Pdf
(693 KB)
|
Source
|
Foundations of Software Engineering
archive
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
table of contents
Amsterdam, The Netherlands
SESSION: Mining software repositories
table of contents
Pages: 383-392
Year of Publication: 2009
ISBN:978-1-60558-001-2
|
|
Authors
|
|
Tung Thanh Nguyen
|
Iowa State University, Ames, IA, USA
|
|
Hoan Anh Nguyen
|
Iowa State University, Ames, IA, USA
|
|
Nam H. Pham
|
Iowa State University, Ames, IA, USA
|
|
Jafar M. Al-Kofahi
|
Iowa State University, Ames, IA, USA
|
|
Tien N. Nguyen
|
Iowa State University, Ames, IA, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 49, Downloads (12 Months): 198, Citation Count: 0
|
|
|
ABSTRACT
The interplay of multiple objects in object-oriented programming often follows specific protocols, for example certain orders of method calls and/or control structure constraints among them that are parts of the intended object usages. Unfortunately, the information is not always documented. That creates long learning curve, and importantly, leads to subtle problems due to the misuse of objects. In this paper, we propose GrouMiner, a novel graph-based approach for mining the usage patterns of one or multiple objects. GrouMiner approach includes a graph-based representation for multiple object usages, a pattern mining algorithm, and an anomaly detection technique that are efficient, accurate, and resilient to software changes. Our experiments on several real-world programs show that our prototype is able to find useful usage patterns with multiple objects and control structures, and to translate them into user-friendly code skeletons to assist developers in programming. It could also detect the usage anomalies that caused yet undiscovered defects and code smells in those programs.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
 |
2
|
Rajeev Alur , Pavol Černý , P. Madhusudan , Wonhong Nam, Synthesis of interface specifications for Java classes, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.98-109, January 12-14, 2005, Long Beach, California, USA
[doi> 10.1145/1040305.1040314]
|
 |
3
|
|
 |
4
|
|
| |
5
|
|
| |
6
|
V. Dallmeier, C. Lindig, and A. Zeller. Lightweight defect localization for Java. In ECOOP'05. Springer Verlag, 2005.
|
| |
7
|
R. DeLine and M. Fahndrich. Typestates for objects. In ECOOP'04, LNCS 3086, pages 465--490. Springer Verlag, 2004.
|
 |
8
|
|
| |
9
|
William Dickinson , David Leon , Andy Podgurski, Finding failures by cluster analysis of execution profiles, Proceedings of the 23rd International Conference on Software Engineering, p.339-348, May 12-19, 2001, Toronto, Ontario, Canada
|
 |
10
|
Dawson Engler , David Yu Chen , Seth Hallem , Andy Chou , Benjamin Chelf, Bugs as deviant behavior: a general approach to inferring errors in systems code, Proceedings of the eighteenth ACM symposium on Operating systems principles, October 21-24, 2001, Banff, Alberta, Canada
[doi> 10.1145/502034.502041]
|
| |
11
|
Fluid project. http://www.fluid.cs.cmu.edu:8080/Fluid.
|
 |
12
|
|
 |
13
|
|
 |
14
|
|
 |
15
|
Sunghun Kim , Kai Pan , E. E. James Whitehead, Jr., Memories of bug fixes, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
[doi> 10.1145/1181775.1181781]
|
| |
16
|
Ted Kremenek , Paul Twohey , Godmar Back , Andrew Ng , Dawson Engler, From uncertainty to belief: inferring the specification within, Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation, p.12-12, November 06-08, 2006, Seattle, WA
|
| |
17
|
|
| |
18
|
|
 |
19
|
|
| |
20
|
|
 |
21
|
|
 |
22
|
David Mandelin , Lin Xu , Rastislav Bodík , Doug Kimelman, Jungloid mining: helping to navigate the API jungle, Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, June 12-15, 2005, Chicago, IL, USA
[doi> 10.1145/1065010.1065018]
|
 |
23
|
|
| |
24
|
Hoan Anh Nguyen , Tung Thanh Nguyen , Nam H. Pham , Jafar M. Al-Kofahi , Tien N. Nguyen, Accurate and Efficient Structural Characteristic Feature Extraction for Clone Detection, Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, March 22-29, 2009, York, UK
[doi> 10.1007/978-3-642-00593-0_31]
|
| |
25
|
|
| |
26
|
R. Read and D. Corneil. The graph isomorphism disease. Journal of Graph Theory 1 (1977) 339--363
|
 |
27
|
Naiyana Sahavechaphan , Kajal Claypool, XSnippet: mining For sample code, Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
[doi> 10.1145/1167473.1167508]
|
 |
28
|
|
 |
29
|
|
| |
30
|
W. Weimer and G.C. Necula. Mining temporal specifications for error detection. In TACAS, pages 461--476, 2005.
|
| |
31
|
|
 |
32
|
|
 |
33
|
Jinlin Yang , David Evans , Deepali Bhardwaj , Thirumalesh Bhat , Manuvir Das, Perracotta: mining temporal API rules from imperfect traces, Proceedings of the 28th international conference on Software engineering, May 20-28, 2006, Shanghai, China
[doi> 10.1145/1134285.1134325]
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
General Terms:
Algorithms,
Design,
Reliability
Keywords:
anomaly,
api usage,
clone,
graph mining,
groum,
object usage,
pattern
|