Duplicate Finder

Русский/English

Проблема поиска неточных повторов в документации программного обеспечения достаточно известна. Повторы в такой документации могут быть злом, то есть свидетельствовать о плагиате, о раздувании документации и пр. Но они могут быть и полезны — для повторного использования фрагментов документации, а также для её унификации. Особенно полезна унификация документов на основе повторов в случае reference-документации (понятие ввёл Д.Парнас): имеется в виду документация, которая пишется как справочник и которую пользователи читают не от начала до конца, а с того места, которое им нужно. Примерами могут служить руководства пользователей, документация открытых программных интерфейсов, руководства программистов и др. Так вот в такой документации важно, чтобы все было единообразно, то есть одинаковая информация выражалась одними и теми же словами.

Мы исследуем проблему повторов в документации программного обеспечения. Первая задача, которую мы решаем — это поиск уже существующих повторов. Причём неточных. И здесь мы столкнулись с большим количеством трудностей. Дело в том, что точные повторы можно искать, используя многочисленные готовые средства. С неточными повторами все обстоит сложнее. Мы решили использовать готовые средства поиска, интегрируя и специализируя их для нашей задачи. Мы используем средства поиска клонов в программах, мы начали использовать средства работы с естественными языками, на очереди — инструменты информационного поиска.

Далее, мы разрабатываем классификацию повторов в разных видах документов, а также метод улучшения (унификации) документации, основанный на повторах.

Кроме того, мы разрабатываем программный инструмент Duplicate Finder, который призван помочь при анализе повторов (точных и неточных) в программной документации.

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

Наш тул работает в двух режимах:

  1. он позволяет быстро, автоматически определить нечеткие повторы в предложенном документе;
  2. тул поддерживает интерактивный поиск, вовлекая человека.

Превый режим нужен для того, чтобы сделать экспресс-оценку наличия повторов в документе. Однако в автоматическом режиме не удаётся выявить семантически корректные повторы - часто объединяются бессмысленные, синтаксически-идентичные фразы, а значимые повторы извлечены не полностью. Имеются и другие проблемы. Однако общая картина «густоты» повторов в документе в этом режиме определяется достоверно. А дальше, для получения корректной информации и дальнейшего использования нечетких повторов в documentation reuse, предлагается интерактивный режим.

Исходный код тула можно взять здесь.

Публикации

Авторы Название Издание Скачать
D.V. Koznov, D.V. Luciv, G.A. Chernishev, A.N. Terekhov Detecting Near Duplicates in Software Documentation ArXiv EPrint, 2017 [pdf]
Dmitry V. Koznov, Dmitry V. Luciv, George A. Chernishev Duplicate management in software documentation maintenance Proceedings of V International conference Actual problems of system and software engineering (APSSE 2017), CEUR Workshop Proceedings, vol. 1989, pp. 195–201 [pdf]
Л.Д. Кантеев, Ю.О. Костюков, Д.В. Луцив, Д.В. Кознов, М.Н. Смирнов Обнаружение неточно повторяющегося текста в документации программного обеспечения Труды Института системного программирования РАН, том 29, вып. 4, 2017, стр. 303-314 [pdf]
Д.В.Луцив, Д.В.Кознов, Х.А. Баси́т, А.Н. Терехов Задача поиска нечетких повторов при организации повторного использования документации Программирование, 2016, № 4 С. 39–49 [pdf]
D. Koznov, D. Luciv, H. Basit, O. Lieh, M. Smirnov Clone Detection in Reuse of Software Technical Documentation Lecture Notes in Computer Science, Vol. 9609, 2016, pp. 170-185 (Десятая международная Ершовская конференция «Перспективы систем информатики» PSI 2015) [pdf]
Д.В.Луцив, Д.В.Кознов, Х.А. Баси́т, О.Е. Ли, М.Н. Смирнов, К.Ю. Романовский Метод поиска повторяющихся фрагментов текста в технической документации Научно-технический вестник информационных технологий, механики и оптики./ Вып. 4 (92), СПб НИУ ИТМО 2014. С. 106-114. [pdf]