IP Library › Granted Patent US 10,565,470
Granted Patent B2
US 10,565,470 · App. 15/843,208 · Granted Feb 18, 2020

System, method and recording medium for user interface (UI)-level clone detection

Inventors: Peng Liu (Yorktown Heights, NY); Marco Pistoia (Yorktown Heights, NY); Omer Tripp (Yorktown Heights, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06K9/6215G06F16/5838G06K9/6202G06K9/66G06K9/344G06K9/4604G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,565,470
App. No.
15/843,208
Granted
Feb 18, 2020
Kind
B2
Abstract

A user interface (UI)-level clone detection method, system, and computer program product, include running applications from an application database to obtain a screenshot of each of the applications, comparing a first object of a first screenshot of a first application with a second object from a second screenshot of a second application to determine a similarity between the first object and the second object, and analyzing a code for each of the first object and the second object when the similarity is greater than a predetermined threshold value to identify a same-functionality code.

Claims (45)

1. A computer-implemented user-interface (UI)-level clone detection method, the method comprising:

receiving one or more screenshots of one or more running applications from an application database;

comparing a first object of a first screenshot of a first application with a second object from a second screenshot of a second application to determine a same-functionality code similarity between the first object and the second object, the comparison being based on at least two different techniques for comparison; and

analyzing the first object and the second object when the same-functionality code similarity is greater than a predetermined threshold value to identify a same-functionality code,

wherein the analyzing analyses the first and the second object without a sensitivity to an underlying technology.

2. The computer-implemented method of claim 1 , wherein the screenshot of each of the applications is processed to identify the first object and the second object using at least one of:

image processing to compute boundaries and extract the first object and the second object from the screenshots;

text recognition; and

machine learning for functionality recognition.

3. The computer-implemented method of claim 1 , wherein the analyzing analyses the first object and the second object without a code-clone and a code-similarity analysis,

wherein the analyzing uses a static analysis including a reachability analysis to detect the code and libraries used for the screenshot.

4. The computer-implemented method of claim 2 , wherein the analyzing uses a static analysis including a reachability analysis to detect the code and libraries used for the screenshot.

5. The computer-implemented method of claim 1 , wherein the analyzing uses a dynamic analysis including a run-time recording of each procedure invoked by the applications.

6. The computer-implemented method of claim 1 , embodied in a cloud-computing environment.

7. A computer program product, the computer program product comprising a non-transitory computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform:

receiving one or more screenshots of one or more running applications from an application database;

comparing a first object of a first screenshot of a first application with a second object from a second screenshot of a second application to determine a same-functionality code similarity between the first object and the second object, the comparison being based on at least two different techniques for comparison; and

analyzing the first object and the second object when the same-functionality code similarity is greater than a predetermined threshold value to identify a same-functionality code,

wherein the analyzing-analyses the first and the second object without a sensitivity to an underlying technology.

8. The computer program product of claim 7 , wherein the screenshot of each of the applications is processed to identify the first object and the second object using at least one of:

image processing to compute boundaries and extract the first object and the second object from the screenshots;

text recognition; and

machine learning for functionality recognition.

9. The computer program product of claim 7 , wherein the analyzing analyses the first object and the second object without a code-clone and a code-similarity analysis,

and

wherein the analyzing uses a static analysis including a reachability analysis to detect the code and libraries used for the screenshot.

10. The computer program product of claim 8 , wherein the analyzing uses a static analysis including a reachability analysis to detect the code and libraries used for the screenshot.

11. The computer program product of claim 7 , wherein the analyzing uses a dynamic analysis including a run-time recording of each procedure invoked by the applications.

12. A User Interface (UI)-level clone detection system, said system comprising:

a processor; and

a memory, the memory storing instructions to cause the processor to:

receiving one or more screenshots of one or more running applications from an application database;

comparing a first object of a first screenshot of a first application with a second object from a second screenshot of a second application to determine a same-functionality code similarity between the first object and the second object, the comparison being based on at least two different techniques for comparison; and

analyzing the first object and the second object when the same-functionality code similarity is greater than a predetermined threshold value to identify a same-functionality code,

wherein the analyzing analyses the first and the second object without a sensitivity to an underlying technology.

13. The system of claim 12 , wherein the screenshot of each of the applications is processed to identify the first object and the second object using at least one of:

image processing to compute boundaries and extract the first object and the second object from the screenshots;

text recognition; and

machine learning for functionality recognition.

14. The system of claim 12 , wherein the analyzing analyses the first object and the second object without a code-clone and a code-similarity analysis,

and

wherein the analyzing uses a static analysis including a reachability analysis to detect the code and libraries used for the screenshot.

15. The system of claim 13 , wherein the analyzing uses a static analysis including a reachability analysis to detect the code and libraries used for the screenshot.

16. The system of claim 13 , embodied in a cloud-computing environment.

17. The computer-implemented method of claim 1 , wherein the analyzing analyses the first and the second object without a sensitivity to an underlying technology.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2017
From: LIU, PENG; PISTOIA, MARCO; TRIPP, OMER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044460/0371 →
Continuity (1)
Related Publication 20190188529A1 · Jun 20, 2019