Диссертация (1149623)
Текст из файла
Санкт-Петербургский государственный университетНа правах рукописиЛуцив Дмитрий ВадимовичПОИСК НЕТОЧНЫХ ПОВТОРОВВ ДОКУМЕНТАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯСпециальность 05.13.11«Математическое и программное обеспечениевычислительных машин, комплексов и компьютерных сетей»Диссертация на соискание учёной степеникандидата физико-математических наукНаучный руководитель:доктор технических наук, доцент,профессор кафедры системного программированияКОЗНОВ Дмитрий ВладимировичСанкт-Петербург2018СодержаниеВведение ....................................................................................................................... 3Глава 1. Обзор ............................................................................................................
111.1. Документация программного обеспечения .................................................. 111.2. О повторах в документации программного обеспечения ........................... 171.3. Методы и средства поиска текстовых повторов ......................................... 231.4. Средства разметки электронных документов ..............................................
291.5. О размере документации ПО ......................................................................... 331.6. Используемые в диссертации методы, модели и технологии .................... 371.7. Выводы.............................................................................................................
42Глава 2. Алгоритм компоновки неточных повторов ............................................. 452.1. Модель неточных повторов ........................................................................... 452.2. Описание алгоритма и доказательство его корректности .......................... 512.3. Эксперименты и оптимизации ......................................................................
55Глава 3. Методика интерактивного поиска неточных повторов .......................... 583.1. Описание методики ........................................................................................ 583.2. Алгоритм поиска по образцу ......................................................................... 623.3. Доказательство полноты алгоритма .............................................................
663.4. Эксперименты и оптимизации ...................................................................... 72Глава 4. Метод улучшения документации на основе неточных повторов.......... 814.1. Описание метода ............................................................................................. 814.2. Автоматизированный рефакторинг DocBook-документации .................... 854.3.
Пример использования метода ...................................................................... 87Глава 5. Апробация результатов: инструмент Duplicate Finder ........................... 905.1. Обзор функциональности .............................................................................. 905.2. Функциональная архитектура ....................................................................... 925.3. Программная архитектура ............................................................................. 98Заключение ..............................................................................................................
101Список литературы ................................................................................................. 103Приложение. Пример группы неточных повторов .............................................. 1192ВведениеАктуальностьтемыисследования.Документациясовременныхпрограммных проектов имеет значительные объёмы, сложную структуру идлительный жизненный цикл. При разработке и сопровождении документации внеё вносится большое количество точечных изменений, активно используетсяраскопирование (copy/paste). Часто документация разрабатывается коллективомавторов, состав которого со временем меняется.
Все это приводит к большомуколичеству ошибок и рассогласованностей, а также к нарушению единого стиля,то есть к деградации качества документации. В качестве примера можно указатьруководство программиста для ядра ОС Linux (Linux Kernel Documentation):проблемы качества этой документации в последнее время активно обсуждаютсяв Linux-сообществе [51, 108]. Одним из известных способов поддержкиобъёмной документации в актуальном и целостном состоянии являетсястандартизация и повторное использование. Стандартизация означает созданиеииспользованиешаблоновдокументацииисоглашений.подразумеваетПовторноевыделениеиспользованиепереиспользуемыхсвойств программного обеспечения (тестов, требований, функциональностимодулей, методов и пр.) и унификацию соответствующих фрагментовдокументации. Это, в свою очередь, облегчает сопровождение документации,так как изменения вносятся один раз в определение текстового фрагмента и далееавтоматически попадают во все соответствующие места текста.Следует отметить важность неточных повторов, представляющих собойтекстовые фрагменты, незначительно отличающиеся друг от друга.
К появлениюнеточныхповторовприводитширокоиспользуемыйприразработкедокументации приём copy/paste: вначале фрагмент текста копируется, затемкаждая копия как-то по-своему изменяется. Как указывали Э. Юргенс(E. Juergens) [89] и М. Омазиз (M. Oumaziz) [112], учёт неточных повторовможет предоставить новые возможности для стандартизации и повторногоиспользования документации, в том числе параметрического повторного3использования, как это предлагали К.
Романовский и Д. Кознов [11, 21],М. Хори (M. Horie) [76], М. Носал (M. Nosál) и Я. Порубан (J. Porubän) [111],М. Омазиз [112].Как при стандартизации существующей документации, так и при наладкеповторного использования, важным оказывается поиск повторяющихсятекстовых фрагментов. Такой поиск востребован также при формальнойобработке документации, например, в процессе выделения формальныхтребований в техническом задании для последующей генерации тестов [7]. Приэтом, если для поиска точных повторов могут быть использованы различныесуществующие подходы, например, методы поиска клонов в программномобеспечении (ПО) [76, 89, 110, 111, 145, 150], то для поиска неточных повторовтребуются специальные алгоритмы и методы.
На настоящий момент такиеподходы отсутствуют.Таким образом, поиск неточных повторов в документации ПО являетсяактуальнойсущественнонаучно-практическойповыситьпредоставлениязадачей,качестворазличныхсложнойсервисовпорешениекоторойдокументациианализуиспособноПОпутёмсопровождениюдокументации. Также требуют изучения вопросы использования алгоритмовпоиска неточных повторов в процессе реструктуризации и улучшениядокументации ПО.Степеньразработанноститемыработы.Существуютработы,предлагающие методы разработки документации с применением повторногоиспользования: М. Хори [76], М.
Носал и Я. Порубан [111], К. Романовcкий иД. Кознов [11, 21], М. Омазиз [112]. Следует также отметить модульный способорганизации документации в технологии DITA [55]. Работы в этой областиконцентрируются вокруг форматов и языков разработки документации,разделяющих внутреннее и финальное представления документации: DITA [55],DocBook [147], JavaDoc [84], TeX [92], ReStructuredText [104], Markdown [96] идр. Такие форматы активно используются на практике, поскольку позволяютрешать задачу единого представления документации (single source) и4автоматически порождать по этому представлению различные выходныедокументы, а также ввиду того, что соответствующие технологии обеспечиваютнадёжностьпривёрсткебольшихдокументов.Методыповторногоиспользования являются одним из основных источников требований кисследованиям в области автоматизированного поиска неточных повторов вдокументации ПО.Существуетзначительноеколичествоэмпирическихисследований,посвящённых повторам в различной программной документации: Э.
Юргенс [89]исследует повторы в спецификациях требований, М. Омазиз [112] — в APIдокументации,М. НосалиЯ. Парубан [111]анализируютвнутреннююдокументацию (internal documentation). A. Вингквист (A. Wingkvist) с коллегамиисследовали повторы в документации ПО с точки зрения управлениядальнейшейразработкойдокументации [150].Однакововсехэтихисследованиях рассматривались лишь точные повторы, хотя и отмечаласьнеобходимость работы с неточными. Требуется также отметить отсутствие влитературе формализации понятия «неточный повтор»: общая концепцияповторно используемого контента ПО была разработана ещё в конце 1990-хП. Бассеттом (P.
Bassett) [36, 37], но с тех пор были предприняты лишьнезначительные дальнейшие шаги [110, 111], и на данный момент формальноеопределение неточных повторов отсутствует. Кроме того, осталась в сторонезадачаунификацииобеспечения — такбольшогоназываемойклассадокументациисправочной(reference)программногодокументации(различные справочники, руководства пользователей, API-документация и т.д.).Данный вид документации ввёл в 2011 году Д. Парнас (D. Parnas) [114].Существующие методы поиска повторов в документации основываютсяпреимущественно на технике поиска клонов в ПО [76, 89, 110, 111, 145, 150]: сэтой целью используются готовые клон-детекторы, слегка адаптированные дляработы с документацией. Следует отметить, что данный подход не позволяетэффективно искать неточные повторы в документации ПО, посколькуиспользует поиск по синтаксическому дереву программы.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















