ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Graph-based mining of multiple object usage patterns
Full text PdfPdf (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
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 49,   Downloads (12 Months): 198,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1595696.1595767
What is a DOI?

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
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
10
 
11
Fluid project. http://www.fluid.cs.cmu.edu:8080/Fluid.
12
13
14
15
 
16
 
17
 
18
19
 
20
21
22
23
 
24
 
25
 
26
R. Read and D. Corneil. The graph isomorphism disease. Journal of Graph Theory 1 (1977) 339--363
27
28
29
 
30
W. Weimer and G.C. Necula. Mining temporal specifications for error detection. In TACAS, pages 461--476, 2005.
 
31
32
33

Collaborative Colleagues:
Tung Thanh Nguyen: colleagues
Hoan Anh Nguyen: colleagues
Nam H. Pham: colleagues
Jafar M. Al-Kofahi: colleagues
Tien N. Nguyen: colleagues