Математичне та програмне забезпечення для визначення характерних рис програмного коду
Вантажиться...
Дата
2020-12
Автори
Науковий керівник
Назва журналу
Номер ISSN
Назва тому
Видавець
КПІ ім. Ігоря Сікорського
Анотація
Актуальність. Безперервний розвиток комп’ютерних систем призводить до все більшох кількості створюваних програмних продуктів, до того ж, у зв’язку з постійно зростаючими вимогами, виростає складність існуючого програмного коду. Як результат маємо дуже складу систему програмних продуктів, які, до того ж, пов’язані між собою. Одни із наслідків цього є поява великої кількості помилок в програмному забезпеченні, а тоже і до зменшення показника стабільності. Це є однією з найбільших проблем оскільки сповільнює зріст програмного середовища, та найгірше, може поставити крапку на напрямках пов’язаних з аналітикою та прияняттям рішень, систем реального часу, медичних системах. Тому все більше та більше актуальним стають засоби для аналізу якості програмних продуктів. На даний момент вже є велика різноманітність засобів, крім того, й інструментів їх інтеграції в процеси навчання та розробки код. На жаль, більша частина із цих засобів виконує лише поверхневу перевірку, та не включає складні випадки, такі як прогнозування можливих шляхів виконання коду, аналіз помилок пов’язаних зі станом програми. Ось чому засоби для статичного аналізу є актуальними назараз та їх актуальність лише буде збільшуватись із часом.
Зв'язок роботи з науковими програмами, планами, темами. Робота виконувалась на кафедрі автоматизованих систем обробки інформації та управління Національного технічного університету України «Київський політехнічний інститут ім. Ігоря Сікорського» в рамках ініціативної теми «Інтелектуальні методи програмування, моделювання і прогнозування з використанням ймовірністного і лінгвістичних підходів».
Мета дослідження – покращення процесу аналізу вихідного коду, розробка алгоритму, що виконує більш глибокий типізований аналіз програмного коду.
Для досягнення поставленої мети необхідно виконати наступні завдання:
− дослідити методи статичного обробки та аналізу коду;
− виконати огляд існуючих інструментів, що виконують перевірку коду;
− вибрати алгоритми, що можуть стати основою для покращення;
− розробити алгоритм, що забезпечує збільшення інформації про код в процесі запуску;
− розробити програмну реалізацію алгоритму;
− провести порівняння якості отриманих результатів з існуючими відкритими аналогами;
− провести аналіз отриманих результатів.
Об’єкт дослідження – є процес статичного аналізу вихідного коду програм.
Предмет дослідження – є алгоритми статичного аналізу синтаксичної та семантичної моделі програмного коду.
Наукова новизна отриманих результатів полягає у отриманні методу аналізу статичної та семантичної моделі коду на надійність на основі модифікованого алгоритму виводу типів Хіндлі-Мілнера, що забезпечує отримання більш детальної інформації про стан вихідного коду та дозволяє підвищити його якість.
Практичне значення одержаних результатів отриманих в роботі результатів полягає в тому, що розроблений спосіб верифікацї програмного забезпечення надає більш детальну інформацію, щодо якості вихідного коду, наприклад, об'єктів, що мають змінюваний стан та є поліморфними та може використовуватись в процесі розробоки програмного забезпечення в якості верифікатора та в процессі в навчать в якості контролю.
Публікації. Результати проведених досліджень були опубліковані в дисертації «Застосування статичного аналізу коду на прикладі Data-flow аналізу» рамках всеукраїнської науково-практичної конференції молодих вчених та студентів «Інформаційні системи та технології управління» (ІСТУ-2020) -м Київ: НТУУ «КПІ ім. Ігоря Сікорського».
Опис
Ключові слова
статичний аналіз коду, шаблони проектування, потік даних, функціональне програмування, static code analysis, design templates, data flow, functional programming
Бібліографічний опис
Ващенко, Ю. О. Математичне та програмне забезпечення для визначення характерних рис програмного коду : магістерська дис. : 121 Інженерія програмного забезпечення / Ващенко Юрій Олександрович. – Київ, 2020. – 102 с.