DocLine

Русский/English

В общем

Цель проекта – разработка техник повторного использования документации. Не секрет, что, например, большие технические задания, размером в сто страниц и более, содержат огромное количество повторов. Многочисленные повторы содержатся также в API-документации, в руководствах программистам и пр. документах программных проектов. Причина этого – в активном использовании copy-pasting при разработке и модификации документов. Неуправляемые повторы существенно затрудняют поддержку документации, поскольку при внесении изменений надо гарантировать, что вся раскопированная информация также будет надлежащим образом изменена. Организация планового повторного использования, основанная на формальных методах, поможет использовать повторы для унификации документов и решит вопрос с синхронным изменением повторяющейся информации в больших документах.

При этом повторное использование документации оказывается возможным, поскольку в настоящее время активно используются так называемые markup-языки для разработки документов, в частности, DocBook. Эти языки подразумевают создание документа как специальной программы, в которой специфицируется разметка документа (разделы, заголовки и пр.), а также сам контент. Использование markup-языков все прочнее входит в жизнь профессиональных технических писателей, в то время как средства наподобие Microsoft Word используются лишь для небольших документов.

Что сделано

  • Создан метод повторного использования документации. Метод поддерживает формат DocBook. Созданы средства рефакторинга документации, подразумевающие сохранение внешнего вида и изменения внутреннего представления документации. Реализован программный инструмент Docline (Java/Eclipse). Скачать исходный код инструмента можно здесь.
  • Создан подход к поиску и анализу повторов в документации. Реализован алгоритм поиска нечетких повторов на основе поиска клонов в ПО. Создан прототип алгоритма поиска нечетких повторов на основе N-gram модели. Создан интерактивный поход к анализу нечетких повторов и выделению семантически значимых повторов. Реализован программный инструмент Duplicate Finder, поддерживающий визуализацию и анализ нечетких повторов (Python). Более подробная информация по поиску нечетких повторов и исходному коду инструмента находится здесь.
  • Контакты

    Научный руководитель проекта: Дмитрий Кознов dkoznov [at] yandex.ru
    Технический руководитель: Дмитрий Луцив dluciv [at] math.spbu.ru

    Публикации по проекту

    Авторы Название Издание Скачать
    Л.Д. Кантеев, Ю.О. Костюков, Д.В. Луцив, Д.В. Кознов, М.Н. Смирнов Обнаружение неточно повторяющегося текста в документации программного обеспечения Труды Института системного программирования РАН, том 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]
    Д.В.Луцив, Д.В.Кознов, В.С.Андреев Иерархический алгоритм diff при работе со сложными документами Сб. Системное программирование./ Вып. 7, под ред. А.Н.Терехова и Д.Ю.Булычева. СПб.: Изд. СПбГУ, 2012. C. 57-68. [pdf]
    Д.В.Кознов, А.В.Шутак, М.Н.Смирнов, М.А.Смажевский Поиск клонов при рефакторинге технической документации Компьютерные инструменты в образовании./ Вып. 4. 2012. С. 30-40. [pdf]
    Д.В.Кознов, М.Н.Смирнов, В.А.Дорохов, К.Ю.Романовский WebMLDoc: подход к автоматизированному отслеживанию изменений в пользовательской документации Web-приложений Вестник Санкт-Петербургского Университета, Сер. 10. Вып. 3. 2011. С. 112-126. [pdf]
    Смирнов М.Н., Кознов Д. В., Дорохов В. А., Романовский К.Ю. Программная среда WebMLDoc для автоматизированного отслеживания изменений в пользовательской документации Web-приложений Сб. Системное программирование./ Вып. 5, под ред. А.Н.Терехова и Д.Ю.Булычева. СПб.: Изд. СПбГУ, 2010. C. 32-51. [pdf]
    Д.В.Кознов, К.Ю.Романовский Автоматизированный рефакторинг документации семейств программных продуктов Системное программирование./ Вып. 4, под ред. А.Н.Терехова и Д.Ю.Булычева. СПб.: Изд. СПбГУ, 2009.С. 128-150. [pdf]
    К.Ю. Романовский Разработка повторно-используемой документации семейства телефонных станций средствами технологии DocLine Вестник Санкт-Петербургского университета. Сер. 10. 2009. Вып. 2 [pdf]
    K.Romanovsky, D.Koznov, L.Minchin Refactoring the Documentation of Software Product Lines 3rd IFIP td2 Central and East European Conference on Software Engineering Techniques CEE-SET 2008, Brno (Czech Republic), October 13-15, 2008 [pdf]
    Д.В.Кознов, К.Ю.Романовский DocLine: метод разработки документации семейства программных продуктов Программирование, 2008, № 4 С. 1-13 [pdf]
    К.Ю.Романовский, Д.В.Кознов Язык DRL для проектирования и разработки документации семейства программных продуктов Вестник Санкт-петербургского университета, Серия 10, Информатика, № 4, 2007. С. 110-122 [pdf]
    К.Ю. Романовский Метод разработки документации семейств программных продуктов Системное программирование. Вып. 2, под ред. А.Н.Терехова и Д.Ю.Булычева. СПб.: Изд. СПбГУ, 2006. С. 191-218 [pdf]
    Д.Кознов, А. Перегудов, К. Романовский, А. Кашин, А. Тимофеев Опыт использования UML при создании технической документации Системное программирование./ Вып. 1, под ред. А.Н.Терехова и Д.Ю.Булычева. СПб.: Изд. СПбГУ, 2005. С.18-35. [pdf]

    Дипломные работы

    Год Автор Тема Скачать
    2016 Лев Столпнер Обнаружение нечётких повторов в форматированных текстах [pdf]
    2013 Дмитрий Копин Поиск клонов в XML-документации [pdf]
    2011 Мария Лебедева Поддержка управления документацией в семействах Web-приложений интенсивной обработки данных [pdf]
    2011 Валерия Головина Поддержка вариативности в семействах Web-приложений интенсивной обработки данных [pdf]
    2010 Александр Голубев Расширение гипертекстовой модели языка WebML средствами поддержки вариативности [pdf]
    2010 Вадим Дорохов Автоматизированная поддержка полхзовательской документации web-приложений, разрабатываемых в среде WebRatio [pdf]
    2010 Николай Соколов Интеграция технологии DocLine в Adobe FrameMaker [pdf]
    2008 Леонид Минчин Разработка методов рефакторинга документации семейств программных продуктов [pdf]
    2008 Татьяна Дроздова Апробация метода DocLine разработки технической документации на промышленном проекте [pdf]
    2007 Константин Яковлев Создание среды разработки документации для семейств программных продуктов [pdf]
    2007 Алексей Семёнов Система визуального проектирования документации семейств программных продуктов [pdf]