Главная » Просмотр файлов » Диссертация

Диссертация (1149623), страница 14

Файл №1149623 Диссертация (Поиск неточных повторов в документации программного обеспечения) 14 страницаДиссертация (1149623) страница 142019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 14)

Делается следующее. Множество 3 разбивается на максимальные, транзитивно замкнутые по пересечению, подмножества. Для каждого такого подмножества выбирается фрагмент 3 с наименьшим значениемd (3 , ), а в случае наличия нескольких таких — фрагмент с наибольшей длиной, то есть наилучший из перекрывающихся определяется с использованиемопределённой выше функции Compare (3.2.1). Остальные фрагменты из множества 3 удаляются.Оптимизация 4 применяется на фазе 3 и производит расширение всех текстовых фрагментов 3 до целых слов.

Другими словами, начало и конец текстовогофрагмента могут нарушать границу слова, и в этом случае границы текстовогофрагмента соответственно «раздвигаются» с тем, чтобы включить в себя этислова целиком.После реализации оптимизаций алгоритм был проверен на тех же тестах, чтои до оптимизации. Результаты представлены на рис. 3.4.1 и 3.4.2.75Рис. 3.4.1. Результаты оптимизации алгоритма поискапо образцу: время поиска в среднем по документам700Размер выдачи600500400До оптимизации300После оптимизации20010002030405060708090100Размер образца (в символах)Рис. 3.4.2.

Результаты оптимизации алгоритма поискапо образцу: размер выдачи в среднем по документамОптимизация сократила время поиска в среднем до 14 секунд, то есть в 31,75раз. Максимальное время поиска составило две минуты18. Отметим, что при по-Дальнейшее ускорение программной реализации алгоритма возможно при помощи распараллеливания фаз 1 и 2.1876иске по образцам размером более 300 символов время работы алгоритма не увеличивалось, т.к. настолько длинные фрагменты текста не повторялись многократно. Средний размер выдачи до оптимизации составлял 231, а после оптимизации стал равен 44, то есть сократился в 5,25 раз. Для образца, по которому алгоритм без оптимизации выдавал 13056 повторов (это пример обсуждался выше),после оптимизации алгоритм выдаёт 1012 повторов. В ходе экспериментов былиполучены следующие результаты (ниже приводятся данные анализа совокупнойвыдачи по всем тестам для алгоритма с оптимизациями).1.

У 60,8% выдачи присутствует по 1–2 «лишних» токенов в начале или вконце. У 0,1% выдачи в случае отличий повторов от образца близко кначалу или концу повторов, начало и конец были потеряны. Эти проблемылегко решаются пользователем при редактировании результатов работыалгоритма.2. При поиске по коротким образцам (3–4 токена) в отдельных случаяхнайденные повторы встречались в контексте, отличающемся от контекстаисходного образца. Такие фрагменты можно назвать сематическими ложными срабатываниями, но наша методика не претендует на автоматический отсев таких случаев: осмысленность повторов достигается точностьювыбора образца, а также возможностью пользователя удалить неосмысленные фрагменты из выдачи «вручную».3. Ни для одного фактически присутствующего повтора не выдавалось по нескольку вариантов, все результаты перекрывались с повторами более (всреднем существенно более), чем на 3/4 длины образца (при (0,87) ≈0,73||, то есть результаты оказались лучше теоретической оценки).Таким образом, после применения оптимизации алгоритм удовлетворил требованиям, сформулированным выше, как по времени поиска, так и по размеру/составу выдачи.

Итак, можно сделать вывод о готовности алгоритма и методики для практического использования.Покажем теперь, что представленные выше оптимизации сохраняют полноту.Вначале докажем два свойства редакционного расстояния d .77Утверждение 3.4.1. Если 1 , 2 , , — строки, причём || = || = 1 (строки изодного символа), то |d (1 , ∘ 2 ) − d (1 , 2 ∘ )| ≤ 2.19Таким образом, применительно к алгоритму, если сдвинуть окно на одинсимвол, то для нового положения окна ′ изменение редакционного расстоянияне превысит 2: |d (, ) − d (, ′ )| ≤ 2.Доказательство.

Для произвольной строки очевидно, что d (, ∘ ) =d (, ∘ ) = 1, т.к. добавление одного символа в начало или в конец одной изстрок соответствует всего одной операции редактирования.Покажем теперь, что для любых строк 1 и 2 справедливо |d (1 , ∘ 2 ) −d (1 , 2 )| ≤ 1. Поскольку расстояние d обладает метрическими свойствами,для него выполняется неравенство треугольника, то есть d (1 , ∘ 2 ) ≤d (1 , 2 ) + d (2 , ∘ 2 ) = d (1 , 2 ) + 1. Следовательно, d (1 , ∘ 2 ) −d (1 , 2 ) ≤ 1. Также неравенство треугольника для d позволяет утверждатьd (1 , ∘ 2 )−d (1 , 2 ) ≤ (d (1 , 2 ) + d (2 , ∘ 2 )) − d (1 , 2 ) =d (2 , ∘ 2 ) = 1,тоесть|d (1 , ∘ 2 ) − d (1 , 2 )| ≤ 1.Аналогично|d (1 , 2 ) − d (1 , 2 ∘ )| ≤ 1.Поскольку редакционное расстояние — целое неотрицательное число, то дляразности его значений также выполняется неравенство треугольника, следовательно: |d (1 , ∘ 2 ) − d (1 , 2 ∘ )| ≤ |d (1 , ∘ 2 ) − d (1 , 2 )| +|d (1 , 2 ) − d (1 , 2 ∘ )| ≤ 1 + 1 = 2.

■Утверждение 3.4.2. Пусть имеется два текстовых фрагмента 1 , 2 ∈ . Еслипри этом |b(1 ) − b(2 )| < и |1 | = |2 |, то для любой строки справедливо: |d (, 1 ) − d (, 2 )| < 2.Доказательство. Пусть b(1 ) < b(2 ). Будем сдвигать 1 вправо посимвольно, пока он не совпадёт с 2 . Пусть у нас имеется два соседних положения1 : и +1 , то есть b( ) + 1 = b( +1 ). Тогда очевидно, что существуютстроки и : || = || = 1 и str( ) ∘ = ∘ str( +1 ). Тогда, согласно19Здесь и далее при помощи 1 ∘ 2 будем обозначать результат конкатенации строк 1 и 2 .78утв. 3.4.1, |d (, ) − d (, +1 )| ≤ 2. В итоге мы можем утверждать, что понеравенству треугольника для разности целых чисел справедливо |d (, 1 ) −b( )−b(1 )d (, 2 )| ≤ ∑=12|d (, ) − d (, +1 )| < 2,т.к.|b(1 ) −b(2 )| < .Аналогично утверждение доказывается для случая b(1 ) > b(2 ).В случае b(1 ) = b(2 ) фрагменты совпадают, и справедливость утверждения очевидна.

■Теорема 3.4.1. В результате применения оптимизаций 1, 2, 4 сохраняется свойство полноты алгоритма.Доказательство. Рассмотрим оптимизацию 1. На первой фазе (сканирование)мы имеем положение окна , для которого в случае d (, ) > + 1 следующее положение сканирующего окна вычисляется как смещениевправо на = (d (, ) − )/2 символов.Покажем, что для ∀ ′ : | ′ | = || ∧ b() < b( ′ ) < b() + справедливоd ( ′ , ) > , то есть по описанию фазы 1 ′ нельзя поместить в 1 .

Из этогоутверждения будет следовать, что при скачке на символов вправо мы не потеряем ни одного элемента 1 .Действительно, b() < b( ′ ) < b() + ⇒ |b() − b( ′ )| < . Тогда, согласно утверждению 3.4.2, справедливо d (, ) − d (, ′ ) < 2. Но поскольку = (d (, ) − )/2, то выполняется d (, ) − d (, ′ ) <d (, ) − . Следовательно, d ( ′ , ) > , т.е.

по построению фазы 1фрагмент ′ не может быть элементом 1 .Доказательство полноты для оптимизации 2 аналогично доказательству дляоптимизации 1.Рассмотрим оптимизацию 4. Ее использование лишь расширяет фрагменты вфинальной выдаче, и это действие не может повлиять на полноту результата.

■Замечание 3.4.1. Возможны ситуации, когда оптимизация 3 нарушает критерий полноты. Например, если текст документа — «abc abc abc abc», образец —79«abc abc» то при любом в результате оптимизации 3 алгоритм выдаст единственное вхождение образца в текст, в то время как образец входит в текст документа дважды (согласно определению 2.1.11 неточные повторы не пересекаются). Тем не менее, результаты апробации показывают, что потеря значимыхэлементов в выдачах алгоритма на практике происходит только в случаях наличия близко расположенных повторов, при этом даже в этих случаях это происходит очень редко.80Глава 4. Метод улучшения документации на основе неточных повторовВ этой главе описывается метод улучшения документации на основе неточныхповторов.

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

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

В то же время, документациятребует изменений, не связанных с изменениями программного обеспечения:необходимо исправлять ошибки, реструктурировать документацию и приводитьеё к единообразному виду, изменять её в связи с внедрением новых инструментов и технологий работы с документацией и т.д. В качестве отрицательного примера можно привести документацию ядра ОС Linux, которую в данный моментактивно улучшают и конвертируют в новые форматы [51]. Ниже мы определимметод улучшения документации на основе неточных повторов и покажем, какимобразом он может быть применён на практике.811ДокументацияАвтоматическийпоиск повторов2Анализ повтороввручнуюИсправления вдокументацииРекомендациипо написаниюдокументацииУлучшеннаядокументация3Повторноеиспользование,рефакторингОсмысленныепереиспользуемыефрагменты текстаРис.

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

Здесь применяются подходы и техники, описанные в предыдущих главах.Вторая фаза — «ручной» анализ повторов и внесение изменений в документацию. С одной стороны, автоматизированный поиск повторов выдаёт значительную долю ложноположительных несодержательных срабатываний [89]. С другой стороны, даже обнаруженные содержательные повторы зачастую не являются корректными: они нарушают структуру документа и не обладают смысловой замкнутостью. Для того, чтобы решить эти проблемы, к анализу в интерактивном режиме привлекается пользователь. С другой стороны, повторы, обнаруженные автоматически, должны быть проанализированы вручную для того,чтобы внести в документацию правки, исправляющие ошибки и повышающие её82единообразие.

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

Характеристики

Список файлов диссертации

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее