Duplicate Finder

Русский/English

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

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

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

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

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

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

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

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

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

Публикации

Авторы Название Издание Скачать
Л.Д. Кантеев, Ю.О. Костюков, Д.В. Луцив, Д.В. Кознов, М.Н. Смирнов Обнаружение неточно повторяющегося текста в документации программного обеспечения Труды Института системного программирования РАН, том 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]