Fung: A Pattern Mining Tool for Java method calls

What is Fung?

Fung is a pattern mining tool for Java method call patterns. Our research aims to detect "copy-and-pasted" code fragments that are not covered by code clone detection.

Fung implements PrefixSpan, a sequential pattern mining algorithm, to analyze frequent method call sequences. Fung analyzes not only method calls but also control statements such as if, for and while.

In our experiment on JHotDraw 5.2b1, Fung detected method call patterns including implementation idioms (e.g. a loop using Iterator) and some heterogeneous crosscutting concerns (e.g. Undo impelmentation pattern in JHotDraw). Several examples are shown in our AOAsia3 paper.

We are also analyzing Java programs: JHotDraw 7.0, jEdit, Tomcat, Azureus, ANTLR and SableCC. We investigated only "frequent" patterns in the programs; we reported the result in the LATE 2008 workshop.

We are now preparing a distribution archive that contains an executable binary of Fung (fung.jar) that we have used in our paper. If you would like to try our tool for your research, please contact us.

(Since we are debugging and refactoring the tool now, the current distribution does not contain source code.)

Publications

  1. [WCRE2008] Takashi Ishio, Hironori Date, Tatsuya Miyake, Katsuro Inoue: Mining Coding Patterns to Detect Crosscutting Concerns in Java Programs. Proceedings of the 15th IEEE Working Conference on Reverse Engineering (WCRE 2008), pp.123-132, Antwerp, Belgium, October 2008. (The paper is included in the IEEE Digital Library.) (Slide)
  2. [LATE2008] Takashi Ishio, Hironori Date, Tatsuya Miyake, Katsuro Inoue: Mining Application-Specific Coding Patterns for Software Maintenance. Proceedings of the Linking Aspect Technolgies and Evolution (LATE 2008), Brussels, Belgium, March 2008. (The paper is included in the ACM Digital Library.) (Slide)
  3. [AOAsia3] Tatsuya Miyake, Takashi Ishio, Koji Taniguchi, Katsuro Inoue: Towards Maintenance Support for Idiom-based Code Using Sequential Pattern Mining. Presented in Asian Workshop on Aspect-Oriented Software Development (AOAsia3), Beijing, China, July 2007. (Paper) (Slide)
  4. [SIGSS 2007-06] Tatsuya Miyake, Takashi Ishio, Koji Taniguchi, Katsuro Inoue: Detection of Crosscutting Concerns Using Method Call Patterns. Technical Report of IEICE, Vol.107, No.99, SS2007-9, pp.1-6, Ishikawa, Japan. (Paper) (Slide) in Japanese.

People

Acknowlegement

All participants of the LATE 2008 workshop are acknowleged for their valuable feedback.

Contact Information

Please contact Takashi Ishio if you have any questions about Fung.

Takashi Ishio
ishio at ist.osaka-u.ac.jp (please replace "at" with "@".)
Assistant Professor
Software Engineering Laboratory
Graduate School of Information Science and Technology, Osaka University

Address:
c/o Prof. Katsuro Inoue
Department of Computer Science,
Graduate School of Information Science and Technology,
Osaka University
1-3 Machikaneyama-cho, Toyonaka, Osaka, 560-8531, JAPAN