System, method and recording medium for user interface (UI)-level clone detection
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.
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.