Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА СИСТЕМЫ ПРОВЕРКИ СХОЖЕСТИ ИСХОДНЫХ ТЕКСТОВ ПРОГРАММ С ТОЧКИ ЗРЕНИЯ СТРУКТУРЫ

Работа №67157

Тип работы

Магистерская диссертация

Предмет

информационные системы

Объем работы55
Год сдачи2020
Стоимость4980 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
71
Не подходит работа?

Узнай цену на написание


Введение 3
Глава 1. Анализ алгоритмов поиска плагиата 5
§1.1. Проблема плагиата 5
§1.2. Описание методов выявления плагиата 9
§1.3. Анализ существующих решений 16
§1.4. Требования к решению 18
Глава 2. Построение модели 21
§2.1. Абстрактное синтаксическое дерево 21
§2.2. Идея решения 23
§2.3. Векторное представление 25
§2.4. Долговременная краткосрочная память 30
§2.5. Процесс классификации 34
Глава 3. Численные эксперименты 37
§3.1. Программная реализация 37
§3.2. Исходные данные 40
§3.3. Оценка модели 41
§3.4. Сравнение с аналогами 45
Заключение 49
Список литературы 50
Приложение

На протяжении веков была весьма актуальна проблема заимствования различных авторских произведений искусства, достижений науки, технических решений или изобретений.
Студенческий плагиат является одной из серьезных проблем образовательных учреждений [22]. Заимствованные фрагменты или даже полностью работы могут встречаться как в лабораторных работах, курсовых проектах, так и дипломных работах.
Однако, как быть, если результат работы представлен в виде программ на языках программирования высокого уровня? Ведь, исходные коды обладают собственной спецификой, так как изменение имен переменных или внесение дополнительных комментариев в код программы не влияют на выполнение программы, но при этом изменяют его текстовую составляющую. Следовательно, методики выявления заимствований в текстах на естественных языках неприменимы напрямую к текстам исходных кодов программ и необходимо расценивать исходный код с точки зрения синтаксического анализа.
Применение разрабатываемой системы (проверки идентичности исходных текстов программ) довольно многогранно. Одним из способов применения такой системы является обнаружение плагиата в исходных кодах программ. Данная задача является актуальной не только в коммерческой сфере, где идет серьезная борьба за интеллектуальную собственность, но и в сфере образования, где плагиат в студенческих работах является одной из основных проблем образовательных учреждений.
Целью данной работы является разработка системы проверки идентичности исходных текстов программ, которая могла бы выявлять случаи "списывания" программ, автоматически сравнивать исходные тексты и позволяла находить похожие или идентичные фрагменты в исходных кодах программ, оценивать степень обнаруженного сходства и наглядно представлять результат сравнения.
Для достижения указанной цели был поставлен ряд основных задач:
• Изучить существующие методики выявления заимствований, аналогичные решения.
• Построение синтаксического дерева для предложенного решения.
• Создание словаря, построение контекстных пар.
• Обучение модели, способной определить являются ли два текста программы схожими.
• Провести оценку модели и сравнительный анализ со существующими решениями.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Таким образом, в процессе выполнения работы были выполнены основные цели и задачи.
В ходе выполнения данной работы было разработано программное обеспечение, которое позволит выявлять случаи "списывания" программ, автоматически сравнивать исходные тексты и позволяла находить похожие или идентичные фрагменты в исходных кодах программ, оценивать степень обнаруженного сходства и наглядно представлять результат сравнения.
Для достижения указанно цели были:
• исследованы существующие методики выявления заимствований исходного кода программ.
• рассмотрены различные типы изменений, вносимых в заимствованный исходный код, с целью сокрытия факта заимствования.
• построены представления исходного кода в виде абстрактного синтаксического дерева.
• выполнена проверка эффективности данного подхода по определению сходства. Проверка проводилась на наборе реальных студенческих проектов, представляющих решения практических заданий.



1. Baker B. S. Finding clones with dup: Analysis of an experiment //IEEE Transactions on Software Engineering. - 2007. - Т. 33. - №. 9. - С. 608-621.
2. Cordy J. R., Roy C. K. The NiCad clone detector //2011 IEEE 19th International Conference on Program Comprehension. - IEEE, 2011. - С. 219-220.
3. Curtis, G. "Is plagiarism changing over time? A 10-year time-lag study with three points of measurement."/ G. Curtis, L. Vardanega - Higher Education Research & Development, 2016 - 1167-1179 p.
4. Ganguly D. et al. Retrieving and classifying instances of source code plagiarism //Information Retrieval Journal. - 2018. - Т. 21. - №. 1. - С. 1-23.
5. Ghofrani, J. A Conceptual Framework for Clone Detection using Machine Learning / J. Ghofrani, M. Mohseni, A. Bozorgmehr - 2017 IEEE 4th International Conference on Knowledge-Based Engineering and Innovation (KBEI), 2017 - 810-817 p.
6. Haider K. Z. et al. Efficient Source Code Plagiarism Identification Based on Greedy String Tilling //IJCSNS. - 2010. - Т. 10. - №. 12. - С. 204.
7. Hiroaki Murakami. Fast and Precise Token-Based Code Clone Detection. - 2016.
8. Kamalpriya C. M., Singh P. Enhancing program dependency graph based clone detection using approximate subgraph matching //2017 IEEE 11th International Workshop on Software Clones (IWSC). - IEEE, 2017. - С. 1-7.
9. Katta, JYB. Machine Learning for Source-code Plagiarism Detection / JYB. Katta - International Institute of Information Technology, 2018 - 71 p.
10. Kim J. et al. Measuring source code similarity by finding similar subgraph with an incremental genetic algorithm //Proceedings of the Genetic and Evolutionary Computation Conference 2016. - 2016. - С. 925-932.
11. Kodhai E., Kanmani S. Method-level code clone detection through LWH (Light Weight Hybrid) approach // Journal of Software Engineering Research and Development. - 2014. - Т. 2. - №. 1. - С. 12.
12. Lazar, F.M. Clone detection algorithm based on the Abstract Syntax Tree approach / F.M. Lazar, O. Barnas - 2014 IEEE 9th IEEE International Symposium on Applied Computational Intelligence and Informatics (SACI), 2014 - 73-78 p.
13. Ryota A. Code Clone Detection Method Based on the Combination of Tree-Based and Token-Based Methods / A. Ryota, H. Hirohide - Journal of Software Engineering and Applications 10, 2017 - 891-906 p.
14.Sheneamer A., Kalita J. Semantic clone detection using machine learning //2016 15th IEEE International Conference on Machine Learning and Applications (ICMLA). - IEEE, 2016. - С. 1024-1028.
15. Tajima, R. Detecting functionally similar code within the same project / R. Tajima; M. Nagura; S. Takada - 2018 IEEE 12th International Workshop on Software Clones (IWSC), 2018 - 51-57 p.
16. Zhang J. et al. A novel neural source code representation based on abstract syntax tree //2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE). - IEEE, 2019. - С. 783-794.
17. Zheng M., Pan X., Lillis D. CodEX: Source Code Plagiarism Detection Based on Abstract Syntax Tree //AICS. - 2018. - С. 362-373.
18. Программа обнаружения плагиата в программных текстах MOSS [Офиц. сайт]. URL: http://theory.stanford.edu/~aiken/moss/(дата обращения: 23.12.2018)
19. Программа поиска дублирующих фрагментов кода Apollo [Офиц. сайт]. URL: https://github.com/src-d/apollo(дата обращения: 23.04.2019)
20. Программа поиска дублирующих фрагментов кода JPlag [Офиц. сайт]. URL: https://jplag.ipd.kit.edu/(дата обращения: 23.04.2019)
21. Узлов, Н. Д. Студенческий плагиат: состояние проблемы, последствия и возможные пути решения / Н.Д. Узлов // Аллея Науки: научно-практич. электронный журнал. - 2019. - №2 (29). - С.867-876
22.Чиркин Е.С. Использование систем антиплагиата в образовании / Е.С. Чиркин // Вестник Тамбовского университета, 2013 - 3380-3387 с.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ