
- •Содержание
- •Введение Актуальность магистерской диссертации
- •Понятие плагиата
- •Специфика понятия «плагиат» в программировании: окончательный вывод о заимствовании делает человек
- •Постановка задачи
- •1.1 Необходимость дополнительной проверки на основе анализа структурного анализа кодов
- •1.2 Общая схема работы модулей инструментальной системы поиска плагиата
- •Теоретические основы поиска плагиата в исходных кодах программ
- •2.1 Классификация методов поиска плагиата в программировании
- •2.2 Атрибутные методы поиска плагиата
- •2.3 Структурные методы поиска плагиата
- •2.3.1 Строковое выравнивание
- •2.3.2 Метод поиска на xml-представлении
- •2.3.3 Использование приближения Колмогоровской сложности
- •2.3.4 Метод идентификационных меток
- •2.3.5 Нейросетевые методы обнаружения плагиата
- •2.4 Другие методы
- •Методы поиска плагиата в произвольных текстах
- •3.1 Локальные методы
- •3.1.2 Методы на основе меры tf
- •3.1.3 Методы, использующие понятия шинглов
- •3.1.4 Методы, использующие семантические сети
- •3.2 Глобальные методы
- •3.2.1 Методы на основе меры tf-idf
- •3.2.3 Метод «опорных» слов
- •3.3 Метод шинглов
- •Разбиение на шинглы;
- •Вычисление хешей шинглов;
- •3.3.1 Канонизация текстов
- •3.3.2 Разбиение на шинглы
- •3.3.3 Вычисление хешей шинглов
- •3.4 Дистанция (расстояние) Левенштейна
- •3.4.1 Алгоритм Вагнера — Фишера
- •3.5. Наибольшая общая последовательность (longest common subsequence, lcs)
- •3.6 Вычисление хеш-функции
- •3.6.1 Параметры вычисление хеш-функции: полином-генератор, разрядность и стартовое слово
- •3.6.2 Популярные и стандартизованные полиномы
- •3.7 Виды представления исходного кода
- •3.8 Представление исходного кода в виде токенов
- •Обзор инструментальных средств и сервисов анализа плагиата в программах и произвольных текстах
- •4.1 Обзор программ поиска плагиата в программировании
- •4.2 Обзор сервисов поиска плагиата
- •4.3 Обзор программ поиска плагиата в произвольных текстах
- •Описание используемых методов поиска плагиата в исходных кодах и произвольных текстах
- •5.1 Общая схема поиска
- •5.1.1 Cхема поиска для исходных кодов
- •5.1.2 Основной структурный метод для анализа исходных кодов
- •5.1.2.1 Достоинства и недостатки
- •5.1.3 Дополнительный атрибутный метод для исходных текстов
- •5.1.3.1 Достоинства и недостатки
- •5.2.1 Cхема поиска для произвольных текстов (в том числе и программ)
- •Программная реализация модуля поиска плагиата методами анализа исходных кодов программ
- •6.1 Интерфейс модуля поиска плагиата в исходных кодах программ
- •6.1.1 Главное окно модуля поиска плагиата методами анализа исходных кодов
- •6.1.2 Окно групповых режимов анализа
- •6.2 Взаимодействие модуля поиска плагиата методами анализа исходных кодов
- •6.2.1 Взаимодействие модуля с архивом работ и базой языков (добавление файла в базу)
- •6.2.2 Взаимодействие модуля с архивом работ и базой языков (частотный анализ, автоматический частотный анализ)
- •6.2.3 Взаимодействие модуля с архивом работ и базой языков (автоматический анализ последовательностей операторов)
- •6.2.4. Взаимодействие модуля с архивом работ и базой языков (анализ последовательностей операторов, просчет всех пиков)
- •6.2.5 Взаимодействие модуля с архивом работ и базой языков (удаление файла/языка из базы)
- •6.2.6 Взаимодействие модуля с базой языков (добавление языка в базу)
- •6.2.9 Поиск первоисточника и списка первоисточников
- •6.2.10 Некоторые особенности модуля
- •6.3 Описание отчетов по анализу плагиата
- •6.3.1 Критерии автоматического заключения о наличии плагиата при пакетном и полном анализе
- •6.3.2 Алгоритм поиска первоисточника для файла или списка первоисточников при полном анализе
- •6.3.3 Сводный отчет
- •6.3.4 Итоговый отчет
- •6.3.5 Экспорт итогового протокола в Excel
- •6.3.5.1 Исследование итогового протокола по полученным диаграммам Excel
- •6.3.6 Экспорт списка первоисточников в Excel
- •6.3.6.1 Исследование списка первоисточников в Excel
- •6.4 Пример работы модуля
- •6.4.1 Пример 1 анализа последовательности операторов
- •Режим работы модуля PlagiatSearch с произвольным текстом
- •Режим работы модуля PlagiatSearch с исходным кодом
- •7.1.2 Меню «Анализ» и его возможности для поиска плагиата в произвольных текстах
- •7.1.3 Информационное окно модуля PlagiatSearch поиска плагиата в произвольных текстах с результатами вычисления дистанции Левенштейна
- •7.1.4 Представление результатов нахождения наибольшей общей подпоследовательности (longest common subsequence, lcs)
- •7.1.5 Представление метода шинглов для сравнения произвольных текстов
- •7.1.6 Применение метода шинглов для сравнения исходных кодов
- •Заключение
- •Список использованных источников (библиографический список)
- •Приложение Доработанная блок-схема алгоритма анализа последовательности операторов (с показом наиболее длинного совпадающего фрагмента кода)
- •55. Мд.Иу.Мсавпсрит.Пз
6.3.4 Итоговый отчет
Итоговый отчет формируется тремя способами:
Вручную путем записи в любой момент времени резюме (одной строкой) по текущему сводному отчету для выбранного файла в итоговый отчет;
Автоматически в результате применения пакетного режима (1->n) путем записи в итоговый отчет после окончания анализа всего пакета резюме (одной строкой) по полученному сводному отчету для выбранного файла;
Автоматически в результате применения режима полного анализа программ (n->n), путем записи в итоговый отчет после окончания полного анализа для каждого из файлов резюме (одной строкой) по полученному сводному отчету.
Описание структуры итогового отчета:
Итоговый отчет содержит список обобщенных результатов сравнения каждого файла с другими файлами по обоим критериям анализа с детализацией года написания программ: один и тот же год, предыдущие годы или без учета года написания.
В итоговом отчете приводится список проанализированных файлов, для каждого из которых указывается:
имя файла и год написания;
число подозрительных файлов по частоте операторов по всем годам;
число подозрительных файлов по совпадению операторов по всем годам;
число подозрительных файлов по обоим критериям по всем годам;
(ЭТА ИНФОРМАЦИЯ ДЛЯ АНАЛИЗА ОБЩЕЙ КАРТИНЫ ПЛАГИАТА БЕЗ УЧЕТА ГОДОВ)
число подозрительных файлов по частоте операторов по этому же году;
число подозрительных файлов по совпадению операторов по этому же году;
число подозрительных файлов по обоим критериям по этому же году;
(ЭТА ИНФОРМАЦИЯ ДЛЯ АНАЛИЗА КАРТИНЫ ПЛАГИАТА НА ОДНОМ ГОДУ ОБУЧЕНИЯ)
число подозрительных файлов по частоте операторов по предыдущим годам;
число подозрительных файлов по совпадению операторов по предыдущим годам;
число подозрительных файлов по обоим критериям по предыдущим годам;
(ЭТА ИНФОРМАЦИЯ ДЛЯ АНАЛИЗА КАРТИНЫ ПЛАГИАТА, КОГДА СПИСЫВАЮТ С ПРЕДЫДУЩИХ ЛЕТ)
суммарное число файлов, с которыми выполнялось сравнение.
КОЛИЧЕСТВО ИССЛЕДОВАННЫХ ФАЙЛОВ =
Приводится список файлов с плагиатом, взятым из предыдущих лет обучения:
КОЛИЧЕСТВО ФАЙЛОВ с плагиатом, взятым из предыдущих лет обучения:=
Приводится список файлов с плагиатом, на одном году обучения:
КОЛИЧЕСТВО ФАЙЛОВ с плагиатом на одном году обучения:=
Фрагмент итогового отчета по реальной базе данных работ студентов:
ИТОГОВЫЙ ОТЧЕТ
КРИТЕРИИ ПЛАГИАТА:
Доля длины (в %) совпавшей последовательности операторов ко всей длине программы -> 50% (по умолчанию)
% практически идентичных типов операторов при частотном анализе -> 70% (по умолчанию)
Arh\Unit2.pas-202.txt 2004 1 37 1 1 8 1 0 1 0 282
Arh\Kam_Lab_2004.pas-272.txt 2004 3 1 1 3 1 1 0 0 0 282
Arh\Unit1.pas-670.txt 2004 2 1 1 2 1 1 0 0 0 282
Arh\Kop_Lab_2004.pas-318.txt 2004 3 14 1 3 2 1 0 0 0 282
Arh\Unit1.pas-70.txt 2004 2 0 0 1 0 0 0 0 0 282
Arh\Unit1.pas-840.txt 2004 2 1 1 2 1 1 0 0 0 282
…
Arh\Unit1.pas-154.txt 2007 18 13 0 14 12 0 3 1 0 282
Arh\Unit1.pas-39.txt 2007 12 16 3 9 15 3 3 1 0 282
КОЛИЧЕСТВО ИССЛЕДОВАННЫХ ФАЙЛОВ = 283
==============================
Список файлов с явным подозрением на плагиат:
файлы, в которых есть заимствованный код из предыдущих лет
Arh\Unit2.pas-202.txt 2004 1 37 1 1 8 1 0 1 0 282
Arh\Unit1.pas-140.txt 2007 5 0 0 4 0 0 1 0 0 282
Arh\Unit1.pas-143.txt 2007 19 6 6 12 5 5 1 0 0 282
Arh\Unit2.pas-31.txt 2006 0 6 0 0 0 0 0 3 0 282
Arh\ZUnit1.pas-0.txt 2011 5 2 2 3 2 2 2 0 0 282
Arh\ZUnit1.pas-4.txt 2011 6 0 0 3 0 0 3 0 0 282
Arh\ZUnit1.pas-6.txt 2011 2 0 0 0 0 0 2 0 0 282
Arh\ZUnit1.pas-8.txt 2011 0 13 0 0 0 0 0 13 0 282
Arh\Unit1.pas-773.txt 2008 22 7 1 4 1 1 17 6 0 282
Arh\zki6RSA.pas-329.txt 2005 1 13 0 1 0 0 0 1 0 282
….
Arh\Unit1.pas-979.txt 2007 16 13 0 14 12 0 0 1 0 282
Arh\Unit1.pas-154.txt 2007 18 13 0 14 12 0 3 1 0 282
Arh\Unit1.pas-39.txt 2007 12 16 3 9 15 3 3 1 0 282
КОЛИЧЕСТВО ФАЙЛОВ С ПЛАГИАТОМ ИЗ ПРЕДЫДУЩИХ ЛЕТ = 168
==============================
Список файлов с подозрением на плагиат, но с неизветным авторством
файлы, в которых есть заимствованный код на одном году обучения
В данном случае нельзя достоверно определить, кто писал сам, а кто списывал.
Arh\Unit2.pas-202.txt 2004 1 37 1 1 8 1 0 1 0 282
Arh\Kam_Lab_2004.pas-272.txt 2004 3 1 1 3 1 1 0 0 0 282
Arh\Unit1.pas-670.txt 2004 2 1 1 2 1 1 0 0 0 282
Arh\Kop_Lab_2004.pas-318.txt 2004 3 14 1 3 2 1 0 0 0 282
Arh\Unit1.pas-70.txt 2004 2 0 0 1 0 0 0 0 0 282
Arh\Unit1.pas-840.txt 2004 2 1 1 2 1 1 0 0 0 282
...
Arh\Unit1.pas-879.txt 2007 10 14 1 8 13 1 2 1 0 282
Arh\Unit1.pas-713.txt 2007 13 14 1 9 13 1 2 1 0 282
Arh\Unit1.pas-438.txt 2007 5 14 1 5 13 1 0 1 0 282
Arh\Unit1.pas-979.txt 2007 16 13 0 14 12 0 0 1 0 282
Arh\Unit1.pas-154.txt 2007 18 13 0 14 12 0 3 1 0 282
Arh\Unit1.pas-39.txt 2007 12 16 3 9 15 3 3 1 0 282
КОЛИЧЕСТВО ФАЙЛОВ С ПЛАГИАТОМ НА ОДНОМ ГОДУ ОБУЧЕНИЯ = 236