Searching Functionally Similar Code via UI Prototype.


Identifying similar code in software systems can assist many software engineering tasks such as program understanding and software refactoring. While most approaches focus on identifying syntactically similar code (i.e., code that looks alike), Ideally, we would like to also include code that is behaviorally or functionally similar, even if it looks completely different. Detecting these functional clones — code that functions alike — in mobile applications remains an open question because of the difficulty in exposing and comparing programs’ functionality effectively. In this talk, I will present a novel technique that detects functional clones in complex mobile app codebases by identifying and comparing their user interface and key API method calls. The key insight is that user interface usually indicate the functionality to be implemented by a program which complements existing program analysis to detect functional clones.

In IBM Thomas J. Watson Research Center
Yorktown Heights, NY