Kodo defektų prognozavimo modelis
Trinkūnas, Justas | Recenzentas / Rewiewer |
Darbo gynimo komisijos pirmininkas / Thesis Defence Board Chairman | |
Darbo gynimo komisijos narys / Thesis Defence Board Member | |
Darbo gynimo komisijos narys / Thesis Defence Board Member | |
Darbo gynimo komisijos narys / Thesis Defence Board Member | |
Darbo gynimo komisijos narys / Thesis Defence Board Member | |
Darbo gynimo komisijos narys / Thesis Defence Board Member |
Baigiamajame magistro darbe nagrinėjamas mašininio mokymosi metodų naudojimas kodo defektams prognozuoti TypeScript programavimo kalboje. Tikslas - pagerinti programinės įrangos kokybę automatizuojant kodo defektų, kurie dažnai aptinkami žmogui peržiūrint ir testuojant kodą, nustatymą. Tyrimas apima duomenų rinkinių kūrimą, mašininio mokymosi metodų analizę ir kodo defektų prognozavimo modelio kūrimą.Analitinėje darbo dalyje nagrinėjama kodo defektų sąvoka ir daugybė jų formų, taip pat kriterijai, naudojami kodo kokybei vertinti. Nagrinėjami kodo defektų nustatymo metodų, pavyzdžiui, statinės analizės priemonės ir mašininio mokymosi metodai. Tyrime pabrėžiama duomenų parengimo svarba ir sunkumai, kuriuos kelia subjektyvus kodo defektų pobūdis. Darbe taip pat nagrinėjamas kelių mašininio mokymosi metodų, įskaitant „Random Forest”, „AdaBoost”, „Gradient Boosting” ir „XGBoost”, veiksmingumas prognozuojant kodo defektus.Eksperimentiniame etape naudojami modeliai, kurie naudoja mašininio mokymosi metodus kodo defektams prognozuoti. Išsamiai paaiškinamas duomenų rinkinio sudarymo procesas, kuris apima abstrakčių sintaksės medžių naudojimą ir tokių metodų, kaip žodžių sudalinimas ir vektorizavimas, taikymą. Įvertinami įvairūs mašininio mokymosi metodai ir tikslinami jų hiperparametrai, kad būtų padidintas našumas. Rezultatai nagrinėjami siekiant nustatyti veiksmingiausią modelį, kuris vėliau naudojamas TypeScript kodo defektams prognozuoti. Darbe pateikiama idėjų, kaip patobulinti prognozavimo modelį ir išplėsti jo panaudojimo galimybes kuriant programinę įrangą.
The thesis explores the use of machine learning techniques to forecast code defects in the TypeScript programming language. The objective is to enhance the quality of software by automating the identification of code defects, which are often detected via human code reviews and testing. The research encompasses the creation of datasets, the analysis of machine learning methods, and the development of a prediction model for code defects.The analytical section of the thesis investigates the notion and many forms of code defects, along with the criteria used to assess code quality. The article examines many approaches to identifying code defects, such as static analysis tools and machine learning techniques. The study emphasises the significance of data preparation and the difficulties presented by the subjective character of code defects. The thesis also examines the efficacy of several machine learning techniques, including Random Forest, AdaBoost, Gradient Boosting, and XGBoost, in forecasting code defects.The experimental phase entails the creation of models that use machine learning techniques to forecast code defects. The process of constructing the dataset is explained in depth, which involves using Abstract Syntax Trees and employing methods such as tokenization and vectorization. A range of machine learning methods are evaluated, and their hyperparameters are fine-tuned to enhance performance. The findings are examined to ascertain the most effective model, which is then used to forecast code defects in TypeScript. The thesis provides ideas for enhancing the prediction model and expanding its possible uses in software development.