IP Library Granted Patent US 9,389,852
Granted Patent B2
US 9,389,852 · App. 14/614,255 · Granted Jul 12, 2016

Technique for plagiarism detection in program source code files based on design pattern

Inventors: Allahbaksh Mohammedali Asadullah (Hubli, IN); Basava Raju Muddu (Bangalore, IN); Vasudev D. Bhat (Hubli, IN)
Assignee: Infosys Limited
G06F8/751
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 9,389,852
App. No.
14/614,255
Granted
Jul 12, 2016
Kind
B2
Abstract

A technique for source code plagiarism evaluation is disclosed. Program source code files of the object orientated program are received. Class data of the program source code files are determined to comprise of at least a block of one or more design patterns wherein the one or more design patterns are stored in a database. A plagiarism value is evaluated for each of the program source code files wherein the class data of the program source code file matches with class data of an original program source code file. Program source code files wherein the class data of each of the program source code files comprises of the block of the same design pattern are categorized and the plagiarism value of the categorized program source code files are analyzed.

Claims (55)

1. A method for source code plagiarism evaluation in an object orientated program based on design patterns, the method comprising:

receiving, by a plagiarism evaluation computing device, a plurality of program source code files of the object orientated program;

determining, by a plagiarism evaluation computing device, if one or more classes at least partially specified by the plurality of program source code files specify at least a portion of one or more design patterns comprising predefined modular code;

determining, by a plagiarism evaluation computing device, a plagiarism value for each of the plurality of program source code files by comparing one or more classes at least partially specified by a program source code file of the plurality of program source code files with one or more classes at least partially specified by an original program source code file;

categorizing, by a plagiarism evaluation computing device, each of the plurality of program source code files that specifies at least part of a design pattern by at least one design pattern at least partially specified by the program source code file; and

determining, by a plagiarism evaluation computing device, a total plagiarism value for a category based on the plagiarism values for each of the program source code files in the category.

2. The method of claim 1 , the method further comprising:

receiving, by a plagiarism evaluation computing device, the design patterns; and

determining, by a plagiarism evaluation computing device, a minimum number of classes required to implement each design pattern.

3. The method of claim 2 , further comprising:

determining a number of classes specified by the plurality of program source code files; and

comparing the number of classes specified by the plurality of program source code files with the minimum number of classes required to implement a design pattern.

4. The method of claim 1 , the method further comprising:

comparing the total plagiarism value with a threshold value.

5. The method of claim 1 , the method further comprising:

extracting, by a plagiarism evaluation computing device, the program source code files from binary files of the object oriented program.

6. The method of claim 1 , wherein the one or more design patterns are stored in a database.

7. A plagiarism evaluation computing device for source code plagiarism evaluation in an object orientated program based on a design pattern, the device comprising:

a processor; and

memory operatively coupled to the processor, the memory storing computer executable instructions which, when executed by the processor, cause the processor to carry out a method comprising:

receiving, by a plagiarism evaluation computing device, a plurality of program source code files of the object orientated program;

determining, by a plagiarism evaluation computing device, if one or more classes at least partially specified by the plurality of program source code files specify at least a portion of one or more design patterns, wherein a design pattern specifies predefined elements of modular code;

determining, by a plagiarism evaluation computing device, a plagiarism value for each of the plurality of program source code files by comparing one or more classes at least partially specified by a program source code file of the plurality of program source code files with one or more classes at least partially specified by an original program source code file;

categorizing, by a plagiarism evaluation computing device, each of the plurality of program source code files that specifies at least part of a design pattern by at least one design pattern at least partially specified by the program source code file; and

determining, by a plagiarism evaluation computing device, a total plagiarism value for a category based on the plagiarism values for each of the program source code files in the category.

8. The plagiarism evaluation computing device of claim 7 , wherein the method further comprises:

receiving, by a plagiarism evaluation computing device, the design patterns; and

determining, by a plagiarism evaluation computing device, a minimum number of classes required to implement each design pattern.

9. The plagiarism evaluation computing device of claim 8 , wherein the method further comprises:

determining a number of classes specified by the plurality of program source code files; and

comparing the number of classes specified by the plurality of program source code files with the minimum number of classes required to implement a design pattern.

10. The plagiarism evaluation computing device of claim 7 , wherein the method further comprises:

comparing the total plagiarism value with a threshold value.

11. The plagiarism evaluation computing device of claim 7 , wherein the method further comprises:

extracting, by a plagiarism evaluation computing device, the program source code files from binary files of the object oriented program.

12. The plagiarism evaluation computing device of claim 7 , wherein the one or more design patterns are stored in a database.

13. A non-transitory computer-readable medium having stored thereon computer-readable code that, when executed by a computing device, performs a method for source code plagiarism evaluation in an object orientated program based on design patterns, the method comprising:

storing one or more software design patterns, the one or more software design patterns representing pre-defined ways of designing a solution to a programming problem and being specified by one or more classes;

receiving a plurality of program source code files of the object orientated program;

determining whether the plurality of program source code files specify one or more of the stored software design patterns;

determining if one or more classes at least partially specified by the plurality of program source code files specify at least a portion of one or more of the stored software design patterns;

determining a plagiarism value for each of the plurality of program source code files by comparing one or more classes at least partially specified by a program source code file of the plurality of program source code files with one or more classes at least partially specified by an original program source code file;

assigning a software design pattern category to two or more of the plurality of program source code files that specify at least a portion of the same software design pattern; and

determining a total plagiarism value for a category based on the plagiarism values for each of the program source code files in the category.

14. The non-transitory computer-readable medium of claim 13 , the method further comprising:

receiving, by a plagiarism evaluation computing device, the software design patterns; and

determining, by a plagiarism evaluation computing device, a minimum number of classes required to implement each software design pattern.

15. The non-transitory computer-readable medium of claim 14 , further comprising:

determining a number of classes specified by the plurality of program source code files; and

comparing the number of classes specified by the plurality of program source code files with the minimum number of classes required to implement a stored software design pattern.

16. The non-transitory computer-readable medium of claim 13 , the method further comprising:

comparing the total plagiarism value with a threshold value.

17. The non-transitory computer-readable medium of claim 13 , the method further comprising:

extracting, by a plagiarism evaluation computing device, the program source code files from binary files of the object oriented program.

18. The non-transitory computer-readable medium of claim 13 , wherein the one or more software design patterns are stored in a database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2016
From: ASADULLAH, ALLAHBAKSH MOHAMMEDALI; MUDDU, BASAVA RAJU; BHAT, VASUDEV D.
To: INFOSYS LIMITED
Reel/Frame 038894/0266 →
Priority Claims (1)
IN 678/CHE/2014 · Feb 13, 2014 · national
Continuity (1)
Related Publication 20150227364A1 · Aug 13, 2015