Математичне та програмне забезпечення для визначення характерних рис програмного коду
dc.contributor.advisor | Фіногенов, Олексій Дмитрович | |
dc.contributor.author | Ващенко, Юрій Олександрович | |
dc.date.accessioned | 2021-03-11T09:04:06Z | |
dc.date.available | 2021-03-11T09:04:06Z | |
dc.date.issued | 2020-12 | |
dc.description.abstracten | Topicality. The continuous development of computer systems leads to an increasing number of software products created, in addition, due to the ever-increasing requirements, the complexity of the existing software code is growing. As a result, we have a very complex system of software products, which, moreover, are interconnected. One of the consequences of this is the appearance of a large number of errors in the software, as well as a decrease in stability. This is one of the biggest problems because it slows down the growth of the software environment, and worst of all, it can put an end to areas related to analytics and decision making, real-time systems, medical systems. Therefore, more and more relevant tools for analysing the quality of software products. At the moment, there is already a great variety of tools, in addition, and tools for their integration into learning and code development. Unfortunately, most of these tools perform only a superficial check, and do not include complex cases, such as predicting possible ways to execute code, analysing errors related to the state of the program. That is why the tools for static analysis are relevant now and their relevance will only increase over time. Connection of work with scientific programs, plans, themes. The work was performed at the Department of Automated Information Processing and Control Systems of the National Technical University of Ukraine "Kyiv Polytechnic Institute. Igor Sikorsky ”in the framework of the initiative topic“ Intelligent methods of programming, modeling and forecasting using probabilistic and linguistic approaches ”. The purpose of the study is to improve the process of source code analysis, to develop an algorithm that performs a deeper typed analysis of program code. To achieve this goal it is necessary to perform the following tasks: − explore methods of static code processing and analysis; − review existing tools that perform code validation; − choose algorithms that can be the basis for improvement; − based on the analysis to perform an algorithm that gives more data about the code during startup; − develop a software implementation of the algorithm; − to compare the quality of the obtained results with the existing open analogues; − to analyze the obtained results. The object of research is the process of static analysis of program source code. The subject of research is algorithms of static analysis of syntactic and semantic model of program code. The scientific novelty of the obtained results is to obtain a method of static analysis of the syntactic and semantic model of the source code for reliability based on the Hindley-Milner type inference algorithm. The practical significance of the results obtained in the work is that the developed method of software verification provides more detailed information on the quality of the source code, for example, objects that have a variable state and are polymorphic and can be used in software development in as a verifier and in the process of being taught as a control. Publications. The results of the research were published in the dissertation "Application of static code analysis on the example of Data-flow analysis" in the framework of the All-Ukrainian scientific-practical conference of young scientists and students "Information systems and control technologies" (ISTU-2020) - Kyiv: NTUU " Igor Sikorsky Kyiv Polytechnic Institute ». | uk |
dc.description.abstractuk | Актуальність. Безперервний розвиток комп’ютерних систем призводить до все більшох кількості створюваних програмних продуктів, до того ж, у зв’язку з постійно зростаючими вимогами, виростає складність існуючого програмного коду. Як результат маємо дуже складу систему програмних продуктів, які, до того ж, пов’язані між собою. Одни із наслідків цього є поява великої кількості помилок в програмному забезпеченні, а тоже і до зменшення показника стабільності. Це є однією з найбільших проблем оскільки сповільнює зріст програмного середовища, та найгірше, може поставити крапку на напрямках пов’язаних з аналітикою та прияняттям рішень, систем реального часу, медичних системах. Тому все більше та більше актуальним стають засоби для аналізу якості програмних продуктів. На даний момент вже є велика різноманітність засобів, крім того, й інструментів їх інтеграції в процеси навчання та розробки код. На жаль, більша частина із цих засобів виконує лише поверхневу перевірку, та не включає складні випадки, такі як прогнозування можливих шляхів виконання коду, аналіз помилок пов’язаних зі станом програми. Ось чому засоби для статичного аналізу є актуальними назараз та їх актуальність лише буде збільшуватись із часом. Зв'язок роботи з науковими програмами, планами, темами. Робота виконувалась на кафедрі автоматизованих систем обробки інформації та управління Національного технічного університету України «Київський політехнічний інститут ім. Ігоря Сікорського» в рамках ініціативної теми «Інтелектуальні методи програмування, моделювання і прогнозування з використанням ймовірністного і лінгвістичних підходів». Мета дослідження – покращення процесу аналізу вихідного коду, розробка алгоритму, що виконує більш глибокий типізований аналіз програмного коду. Для досягнення поставленої мети необхідно виконати наступні завдання: − дослідити методи статичного обробки та аналізу коду; − виконати огляд існуючих інструментів, що виконують перевірку коду; − вибрати алгоритми, що можуть стати основою для покращення; − розробити алгоритм, що забезпечує збільшення інформації про код в процесі запуску; − розробити програмну реалізацію алгоритму; − провести порівняння якості отриманих результатів з існуючими відкритими аналогами; − провести аналіз отриманих результатів. Об’єкт дослідження – є процес статичного аналізу вихідного коду програм. Предмет дослідження – є алгоритми статичного аналізу синтаксичної та семантичної моделі програмного коду. Наукова новизна отриманих результатів полягає у отриманні методу аналізу статичної та семантичної моделі коду на надійність на основі модифікованого алгоритму виводу типів Хіндлі-Мілнера, що забезпечує отримання більш детальної інформації про стан вихідного коду та дозволяє підвищити його якість. Практичне значення одержаних результатів отриманих в роботі результатів полягає в тому, що розроблений спосіб верифікацї програмного забезпечення надає більш детальну інформацію, щодо якості вихідного коду, наприклад, об'єктів, що мають змінюваний стан та є поліморфними та може використовуватись в процесі розробоки програмного забезпечення в якості верифікатора та в процессі в навчать в якості контролю. Публікації. Результати проведених досліджень були опубліковані в дисертації «Застосування статичного аналізу коду на прикладі Data-flow аналізу» рамках всеукраїнської науково-практичної конференції молодих вчених та студентів «Інформаційні системи та технології управління» (ІСТУ-2020) -м Київ: НТУУ «КПІ ім. Ігоря Сікорського». | uk |
dc.format.page | 102 с. | uk |
dc.identifier.citation | Ващенко, Ю. О. Математичне та програмне забезпечення для визначення характерних рис програмного коду : магістерська дис. : 121 Інженерія програмного забезпечення / Ващенко Юрій Олександрович. – Київ, 2020. – 102 с. | uk |
dc.identifier.uri | https://ela.kpi.ua/handle/123456789/39904 | |
dc.language.iso | uk | uk |
dc.publisher | КПІ ім. Ігоря Сікорського | uk |
dc.publisher.place | Київ | uk |
dc.subject | статичний аналіз коду | uk |
dc.subject | шаблони проектування | uk |
dc.subject | потік даних | uk |
dc.subject | функціональне програмування | uk |
dc.subject | static code analysis | uk |
dc.subject | design templates | uk |
dc.subject | data flow | uk |
dc.subject | functional programming | uk |
dc.subject.udc | 004.43 | uk |
dc.title | Математичне та програмне забезпечення для визначення характерних рис програмного коду | uk |
dc.type | Master Thesis | uk |
Файли
Контейнер файлів
1 - 1 з 1
Вантажиться...
- Назва:
- Vashchenko_magistr.pdf
- Розмір:
- 1.34 MB
- Формат:
- Adobe Portable Document Format
- Опис:
Ліцензійна угода
1 - 1 з 1
Ескіз недоступний
- Назва:
- license.txt
- Розмір:
- 9.1 KB
- Формат:
- Item-specific license agreed upon to submission
- Опис: