Диссертация (1149623), страница 2
Текст из файла (страница 2)
Кроме того, такой5подход приводит к большому количеству ложноположительных срабатываний(false positives), а также к низкому качеству найденных повторов (одна изосновных проблем здесь — игнорирование структуры документа). С. Вагнер(S. Wagner) и Д. Фернандес (D. Fernández) [145] пишут о преимуществахметодов обработки естественных языков (natural language processing) приформальной обработке текстовой информации программных проектов, но неприводят готовых методов для поиска повторов. Также следует отметить, что досих пор остались не исследованными вопросы семантического анализа повторовв документации ПО.Итак, необходима формальная модель нечетких повторов, ориентированная наразработку соответствующих алгоритмов, а также эффективные подходы дляпоиска неточных повторов в документации ПО, которые обеспечили бы учетсемантической информации, а также были бы максимально свободны отложноположительных срабатываний.
Также требуется детально исследоватьсемантику повторов документации различного вида.Наконец, необходимосоздание методов использования найденных повторов при улучшениидокументации и их стыковка с подходами к повторному использованиюдокументации.Объектом исследования диссертационной работы являются алгоритмыпоиска точных и неточных повторов в документации ПО, подходы ксопровождению и улучшению документации, модели разработки программногообеспечения, языки разметки (markup languages), технологии и программныесредства для разработки документации.Целью данной работы является создание алгоритмов и методов для поисканеточных повторов в документации ПО для повышения её качества в процессесопровождения. Для достижения этой цели был сформулирован ряд следующихзадач.1. Формализовать понятие неточного повтора в документации ПО и разработать эффективные алгоритмы поиска таких повторов.2.
Создать метод улучшения документации на основе поиска повторов.63. Выполнить программную реализацию алгоритмов и методик, апробировать результаты исследования на реальной документации ПО.Постановка цели и задач исследования соответствует следующим пунктампаспорта специальности 05.13.11: модели, методы и алгоритмы проектированияи анализа программ и программных систем, их эквивалентных преобразований,верификации и тестирования (пункт 1); оценка качества, стандартизация исопровождение программных систем (пункт 10).Методология и методы исследования. Методология исследования базируется на идеях и подходах программной инженерии, нацеленных на разработкуэффективных методов создания ПО и документации.В работе использована концепция архетипа и дельт, а также концепциянастраиваемых фреймов для повторного использования вариативного контента(P.
Bassett) [36]. В качестве базового средства поиска повторов был примененметод поиска клонов в ПО [35, 130], использована структура данных подназванием интервальное дерево (interval tree) [42, 116] для быстрого поискапересекающихся целочисленных интервалов, а также редакционное расстояниемежду строками для вычисления степени сходства тестовых фрагментов.Применена известнаяметафора тепловойкарты(heatmap) [136] длявизуализации информации о найденных повторах. В качестве средств программной реализации использовались языки Python и Java.Положения, выносимые на защиту.1.
Предложена формальная модель неточных повторов в программнойдокументации, разработан алгоритм поиска неточных повторов вдокументации ПО на основе компоновки точных повторов, найденных спомощью метода поиска точных клонов ПО. Доказана корректностьалгоритма.2. Созданаметодикаинтерактивногопоисканеточныхповторов,позволяющая учитывать заданную экспертом семантику повторов. Созданалгоритм поиска по образцу, доказана полнота данного алгоритма.73.
Создан метод улучшения документации на основе неточных повторов,включая автоматизированный рефакторинг документации в формате DocBook.Научная новизна представленных результатов заключается в следующем.1. Предложенная формальная модель неточных повторов является новой,делает акцент на синтаксической структуре повторов, уточняя иформализуя концепцию повторно используемого контента, предложеннуюП.
Бассеттом [36]. М. Носал и Я. Порубан дают определение неточногоповтора [111], но оно является неформальным и оставляет в сторонесинтаксическую структуру повтора. В работах Э. Юргенса с коллегами [89]и М. Омазиза с коллегами [112] лишь говорится о необходимости поисканеточных повторов, но не предлагается соответствующих формальныхмоделей.2. Предложенные алгоритмы поиска неточных повторов в документации ПОновы, основываются на формальной модели повторов, что позволяетформально доказывать их свойства.В свою очередь, существующиеалгоритмы поиска неточных клонов ПО не могут быть применены длярешения данной задачи, так как они производят поиск по синтаксическомудереву программы, а тексты на естественных языках не могут бытьэффективно проанализированы таким способом.
Алгоритмы из областиинформационного поиска, решая аналогичную задачу, созданы для другоймоделииспользования,решаятакиевопросыкакранжированиерезультатов при представлении больших выдач, решение проблемыпроизводительности на больших коллекциях документов, определениесходства/различия документов целиком (а не поиск повторяющихсяфрагментов) и т.д.3. Предложенный метод улучшения документации на основе неточныхповторов является новым. Выдвинута идея использовать повторы дляунификации документации и не считать их плагиатом или ненужнойизбыточностью. Существующие инженерные подходы к использованию8повторов ограничиваются повторным использованием (М.
Носал иЯ. Порубан [110, 111], М. Омазиз [112]) и верхнеуровневым анализомкачества документации (А. Вингквист [150]).Теоретическая и практическая значимость работы. Полученные результаты обобщают исследования в области поиска повторов в документации ПО,впервые предлагая формальные определения и алгоритмы. При этом использованы современные методы поиска, такие как поиск клонов в ПО.Практическая значимость работы заключается в создании метода улучшениядокументации на основе неточных повторов, а также в реализации предложенных алгоритмов в рамках программного инструмента Duplicate Finder (исходныекоды и примеры выложены в свободный доступ [60]).Достоверность результатов работы подтверждается формальными доказательствами базовых свойств предложенных алгоритмов, а также инженерными экспериментами на документах реальных программных продуктов.Результаты исследования были доложены на следующих научных конференциях и семинарах: 10th International Andrei Ershov Memorial Conference on Perspectives of System Informatics (PSI, 26 августа 2015 года, Казань), Spring/SummerYoung Researchers’ Colloquium on Software Engineering (SYRCoSE, 31 марта 2017года, Иннополис), 5th International Conference on Actual Problems of System andSoftware Engineering (APSSE, 15 ноября 2017 года, Москва), семинар в ИПМ им.М.В.
Келдыша РАН (05 декабря 2017 года, Москва), семинар в СПбГТУ (08 декабря 2017 года, Санкт-Петербург).Дополнительной апробацией результатов является поддержка исследований,представленных в диссертации, грантом РФФИ №16-01-00304 «Управление повторами при разработке и сопровождении документации программного обеспечения».Публикации по теме диссертации. Все результаты диссертации опубликованы в 8-ми печатных работах, из них 5 зарегистрированы в РИНЦ, 3 статьи изданы в журналах из «Перечня российских рецензируемых научных журналов, в9которых должны быть опубликованы основные научные результаты диссертаций на соискание учёных степеней доктора и кандидата наук», 3 статьи опубликованы в изданиях, входящих в базы цитирования Scopus и Web of Science.Работы [16, 19, 17, 18, 90, 91, 101] написаны в соавторстве.
Личный вклад автора в данных публикациях заключается в следующем. В работе [19] автор участвовал в разработке алгоритма поиска неточных повторов на основе N-грамм, атакже в экспериментах, соавторы создали и реализовали алгоритм. В работах[16, 17] автор разработал и реализовал алгоритм поиска неточных повторов наоснове поиска клонов, соавторы участвовали в создании идеи алгоритма, разработке процесса и настройки инструмента поиска клонов. В работах [90, 101] автору принадлежит идея доработки алгоритма поиска неточных повторов на основе клонов, реализация этих доработок. Соавторы занимались экспериментами.В работе [91] автор разработал методику применения поиска неточных повторовдля улучшения документации, соавторы предложили идею этой методики, сделали обзор литературы и эксперименты.
В работе [18] автору принадлежат идеивизуальных метафор, предложенных для отображения результатов иерархического сравнения документов, соавторы предложили концепцию создания целевых сервисов на базе поиска повторов для разработки и сопровождения офиснойдокументации.Объем и структура работы.
Диссертация состоит из введения, пяти глав, заключения и приложения. Полный объем диссертации — 122 страницы текста с16 рисунками и 5 таблицами. Список литературы содержит 153 наименования.10Глава 1. ОбзорВ этом разделе рассматривается документация ПО, описывается задача поискаповторов в документации ПО, обсуждаются существующие средства поиска иметоды использования найденных повторов при разработке документации ПО.Также описываются методы поиска повторов в других областях — в информационном поиске, при анализе текстов на естественных языках, при поиске клонов в ПО. Рассматриваются существующие языки и средства разметки электронных документов, которые применяются при разработке документации ПО. Приводятся примеры документации ПО, имеющей различный объём и использующей различные форматы.















