Source Code Plagiarism Detection via Design Pattern Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing source code plagiarism detection methods fail to identify plagiarized code when it is split across multiple files or modified in format, missing potential plagiarism instances due to threshold percentage limitations and inability to detect pattern-based copying.

Innovation Solution

A method and system for source code plagiarism evaluation in object-oriented programs based on design patterns, which involves receiving source code files, determining the presence of design patterns, evaluating plagiarism values, categorizing files with matching patterns, and analyzing these values to detect plagiarism, even if the copied code is split or modified.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If threshold percentage method is used for plagiarism detection, then simple comparison can be performed, but plagiarism cases where copied code is split across files or modified in format cannot be detected

Engineering Contradiction:
Improvesimplicity of plagiarism detectionVSAvoidaccuracy of plagiarism detection
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent segments the plagiarism detection process into multiple stages: first extracting design patterns from source code, then comparing pattern structures rather than raw code text. This segmentation allows the system to handle split and modified code by focusing on the underlying pattern architecture rather than surface-level syntax, thereby resolving the contradiction between simple comparison and accurate detection.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces design patterns as an intermediary layer between the source code and the comparison process. Instead of directly comparing source code files, the system extracts and compares design pattern instances, which serve as a mediator that reveals the structural similarity even when code is split across files or modified in format. This intermediary approach maintains detection accuracy while preserving system simplicity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If design pattern based analysis is implemented, then split and modified plagiarized code can be detected, but system complexity increases

Engineering Contradiction:
Improveaccuracy of plagiarism detectionVSAvoidcomplexity of plagiarism detection system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-defining a database of design patterns and their structural characteristics before the plagiarism detection process. This pre-prepared knowledge base allows the system to quickly match and compare pattern structures without performing complex real-time analysis, thereby reducing system complexity while maintaining high detection accuracy for split and modified code.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the detection parameters from text-based string matching to structure-based pattern matching. By transforming the comparison criterion from surface-level code text to underlying design pattern architecture, the system achieves higher accuracy for modified and split code without proportionally increasing complexity, as the pattern matching operates on standardized structural representations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9389852B2Technique for plagiarism detection in program source code files based on design pattern
Publication Date: 2016.07.12 INFOSYS LTD
  • US9389852B2 patent drawing
  • US9389852B2 patent drawing
  • US9389852B2 patent drawing

AI summary

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.