Спосіб порівняння графів потоку керування програми
dc.contributor.advisor | Марченко, Олександр Іванович | |
dc.contributor.author | Грек, Олександр Васильович | |
dc.date.accessioned | 2019-03-12T19:27:40Z | |
dc.date.available | 2019-03-12T19:27:40Z | |
dc.date.issued | 2018-12 | |
dc.description.abstractuk | Актуальність теми. Створення та підтримка великих програмних систем - це нагальна проблема для сучасного бізнесу у сфері інформаційних технологій. З метою автоматичного виявлення помилок у програмному коді все більше використовуються системи статичного аналізу коду. Відсутність дублювання коду вважається критерієм якості коду, так як копіювання вихідного тексту програми може призвести до виникнення помилок, що не можуть бути ефективно знайдені автоматизованими засобами. Для вирішення задачі пошуку дублікатів у програмному коді використовується як текстовий аналіз вихідного коду, так і аналіз за допомогою метрик та графів. Останній дає більш високу точність, але низьку швидкість роботи. Тому створення способів, що дозволяють прискорити визначення дублювання коду за допомогою порівняння графів потоку керування програми є актуальним. Об’єктом дослідження є процес визначення співпадіння графів потоку керування програми. Предметом дослідження є способи визначення дублювання коду за допомогою порівняння графів потоку керування програми. Мета роботи: прискорення процесу визначення співпадіння графів потоку керування, розробка більш ефективного способу зберігання графів потоку виконання для прискорення процесу порівняння. Наукова новизна: 1. Проаналізовано існуючі системи та способи визначення дублювання коду і показано, що ці системи мають недоліки у їх використанні за різними показниками: недостатня точність визначення при змінах вхідних даних, низька швидкість роботи та обмеженість варіантів використання. 2. Запропоновано спосіб зберігання графів потоку керування програми для визначення відповідності графів, який відрізняється від інших тим, що завдяки використанню спеціального стисненого представлення графів дозволяє зменшити використання дискового простору для зберігання графів. 3. Запропоновано спосіб побудови та порівняння графів потоку керування програми для визначення відповідності дерев, який відрізняється від інших тим, що відповідність підграфів двох графів визначається на основі співпадіння їх текстового представлення, що дозволяє прискорити процес порівняння для кодової бази великого об’єму. 4. Виконано порівняльний аналіз розробленого способу з існуючими аналогами для вирішення задачі визначення співпадіння графів потоку керування у вихідному коді мовою програмування C# і показано, що модифікований спосіб має вищі показники швидкості роботи, але нижчі показники точності визначення. Практична цінність отриманих в роботі результатів полягає в тому, що розроблений спосіб дозволяє прискорити процес пошуку дублікатів програмного коду у випадку регулярного використання, якщо побудову графів потоку виконання необхідно виконати лише для зміненої частини коду. Крім того, запропонований спосіб може бути використаний для контролю ліцензій контенту у публічних репозиторіях. Система, що використовувалась для тестування розробленого способу, може використовуватись як модуль аналізу коду у системі збірки MSBuild. Апробація роботи. Система для визначення шаблонів проектування у програмах була представлена та обговорювалась на науковій конференції магістрантів та аспірантів “Прикладна математика та комп’ютинг” ПМК-2018-2 (Київ, 15 листопада 2018 р.), «Підвищення точності порівняння програм», міжнародній науково-практичній конференції «Цілі сталого розвитку третього тисячоліття» (Київ, 23-25 травня 2018 р.), ІV Міжнародній науково-технічній Internet-конференції «Сучасні методи, інформаційне, програмне та технічне забезпечення систем керування організаційно-технічними та технологічними комплексами» (Київ, 22 листопада 2018 р.). Структура та обсяг роботи. Магістерська дисертація складається з вступу, чотирьох розділів та висновків. У вступі подано узагальнену оцінку сучасного стану проблеми, обґрунтовано актуальність виконаного дослідження, дано загальну характеристику роботи, поставлено мету та задачу дослідження, і наведено практичну цінність роботи. У першому розділі розглянуто існуючі системи для визначення дублювання коду у програмах, їх класифікацію та особливості, недоліки та переваги кожного сопобу. Розглянуто різні існуючі програмні системи, що вирішують дану проблему. У другому розділі розглянуто способи побудови, зберігання та виявлення подібності графів потоку керування програми. Запропоновано способи зберігання, а також побудови та порівняння графів потоку керування програми для пошуку дублікатів програмного коду. У третьому розділі описано особливості реалізації розробленої системи. У четвертому розділі наведено методику тестування системи та порівняння розробленої системи з аналогами. У висновках представлені результати проведеної роботи. Робота представлена на * аркушах, містить посилання на список використаних літературних джерел. Ключові слова: виявлення дублювання коду, граф потоку керування, подібність графів. | uk |
dc.format.page | 89 с. | uk |
dc.identifier.citation | Грек, О. В. Спосіб порівняння графів потоку керування програми : магістерська дис. : 123 Комп’ютерна інженерія. Спеціалізовані комп’ютерні системи / Грек Олександр Васильович. – Київ, 2018. – 89 с. | uk |
dc.identifier.uri | https://ela.kpi.ua/handle/123456789/26702 | |
dc.language.iso | uk | uk |
dc.publisher.place | Київ | uk |
dc.subject | виявлення дублювання коду | uk |
dc.subject | граф потоку керування | uk |
dc.subject | подібність графів | uk |
dc.subject.udc | 044.77 | uk |
dc.title | Спосіб порівняння графів потоку керування програми | uk |
dc.type | Master Thesis | uk |
Файли
Контейнер файлів
1 - 1 з 1
Вантажиться...
- Назва:
- Grek_magistr.pdf
- Розмір:
- 2.43 MB
- Формат:
- Adobe Portable Document Format
- Опис:
Ліцензійна угода
1 - 1 з 1
Ескіз недоступний
- Назва:
- license.txt
- Розмір:
- 9.06 KB
- Формат:
- Item-specific license agreed upon to submission
- Опис: