| | SLO | ENG | Cookies and privacy

Bigger font | Smaller font

Show document Help

Title:Metoda kontekstno odvisne vektorske predstavitve sprememb programske kode za klasifikacijo vrste aktivnosti vzdrževanja : doktorska disertacija
Authors:ID Heričko, Tjaša (Author)
ID Šumak, Boštjan (Mentor) More about this mentor... New window
ID Karakatič, Sašo (Comentor)
Files:.pdf Hericko_Tjasa-Metoda_kontekstno_odvisne_vektorske_predstavitve_sprememb_programske_kode_za_klasifikacijo_vrste_aktivnosti_vzdrzevanja.pdf (5,56 MB)
MD5: 492F1FA74AC0B07C1C180A98C05C34C6
 
Language:Slovenian
Work type:Doctoral dissertation
Typology:2.08 - Doctoral Dissertation
Organization:FERI - Faculty of Electrical Engineering and Computer Science
Abstract:V doktorski disertaciji obravnavamo raziskovalni problem avtomatizacije prepoznavanja namenov sprememb programskih rešitev, izvedenih v fazi vzdrževanja. Klasifikacija programskih sprememb glede na vrsto aktivnosti vzdrževanja, ki odraža specifične namene sprememb, omogoča učinkovitejšo analizo in načrtovanje vzdrževanja, podpira delovne procese in naloge razvijalcev ter se pogosto uporablja v raziskavah programskega inženirstva za proučevanje sprememb in evolucije rešitev. S ciljem ugotavljanja raziskovalnih vrzeli smo s sistematičnim pregledom literature proučili obstoječe pristope h klasifikaciji sprememb programskih rešitev glede na vrsto aktivnosti vzdrževanja. Za naslovitev teh vrzeli smo s študijo sistematičnega mapiranja pregledali pristope vektorizacije sprememb programske kode z učenjem predstavitev na podlagi izvorne kode, ki se v obstoječi literaturi uporabljajo za naslavljanje različnih izzivov programskega inženirstva. Na podlagi ugotovitev smo razvili in predlagali novo metodo kontekstno odvisne vektorske predstavitve sprememb programske kode, ki omogoča ekstrakcijo semantičnih značilk sprememb izvorne kode med dvema različicama programske rešitve ob upoštevanju konteksta sprememb. Predlagana metoda predstavi spremembo programske rešitve kot množico podrobnih sorodnih sprememb programske kode, temelječih na predstavitvah zaznanih razlik v izvorni kodi na osnovi žetonov. Za ekstrakcijo semantičnih vložitev sorodnih sprememb metoda uporablja strojno učenje s prenosom znanja iz izbranega prednaučenega jezikovnega modela programske kode iz družine modelov BERT, kot so CodeBERT, UniXcoder in StarEncoder, ki je bil predhodno dodatno prilagojen ciljni nalogi s paradigmama samonadzorovanega in nadzorovanega učenja. Pridobljene vektorske vložitve podrobnih sorodnih sprememb so nato združene v enotno semantično vektorsko predstavitev spremembe programske rešitve. Za klasifikacijo sprememb programskih rešitev glede na vrsto aktivnosti vzdrževanja smo na označeni podatkovni množici izgradili modele strojnega učenja, pri čemer smo za ekstrakcijo značilk uporabili predlagano metodo ter referenčne in obstoječe metode predstavitve sprememb rešitev. Z nadzorovanim eksperimentom, študijo ablacije in primerjalno študijo smo proučili vpliv različnih parametrov predlagane metode predstavitve sprememb na uspešnost klasifikacije, primerjali uspešnost klasifikacije ob uporabi predlagane metode v primerjavi z uporabo referenčnih in obstoječih metod predstavitve sprememb ter ovrednotili uspešnost multimodalnih modelov strojnega učenja, temelječih na nadgradnji obstoječih metod predstavitve sprememb s predlagano metodo z združevanjem modalnosti naravnega jezika in programske kode. Empirične rezultate smo statistično analizirali s pomočjo frekventistične in Bayesove statistike. Izsledki raziskav potrjujejo izhodiščno tezo, da je z uporabo nove metode mogoče izgraditi modele strojnega učenja, ki uspešno klasificirajo spremembe programskih rešitev glede na vrsto aktivnosti vzdrževanja. Osrednje ugotovitve doktorske disertacije so naslednje: vektorske predstavitve sprememb programske kode na osnovi predlagane metode dosegajo primerljivo ali višjo uspešnost pri klasifikaciji v primerjavi s predstavitvami na osnovi referenčnih in obstoječih metod; zmanjšanje dimenzionalnosti kontekstno odvisnih vektorskih predstavitev sprememb omogoča zmanjšanje števila dimenzij brez negativnega vpliva na uspešnost klasifikacije; multimodalni klasifikacijski modeli dosegajo višjo uspešnost klasifikacije v primerjavi z unimodalnimi modeli.
Keywords:vzdrževanje programske opreme, spremembe programskih rešitev, rudarjenje repozitorijev programskih rešitev, strojno učenje, klasifikacija, nevronski jezikovni modeli programske kode, vektorske predstavitve, vektorska vložitev
Place of publishing:Maribor
Place of performance:Maribor
Publisher:[T. Heričko]
Year of publishing:2024
Number of pages:XXVI, 210 str.
PID:20.500.12556/DKUM-88975 New window
UDC:004.423:004.416(043.3)
COBISS.SI-ID:221034243 New window
Publication date in DKUM:06.01.2025
Views:158
Downloads:174
Metadata:XML DC-XML DC-RDF
Categories:KTFMB - FERI
:
Copy citation
  
Average score:(0 votes)
Your score:Voting is allowed only for logged in users.
Share:Bookmark and Share



Hover the mouse pointer over a document title to show the abstract or click on the title to get all document metadata.

Licences

License:CC BY-NC-ND 4.0, Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
Link:http://creativecommons.org/licenses/by-nc-nd/4.0/
Description:The most restrictive Creative Commons license. This only allows people to download and share the work for no commercial gain and for no other purposes.
Licensing start date:12.09.2024

Secondary language

Language:English
Title:Method for Context-Dependent Vector Representation of Code Changes for Commit Classification Into Software Maintenance Activities
Abstract:In this doctoral dissertation, we address the research problem of automating the identification of intents behind software changes made during the software maintenance phase. Classifying software changes based on the type of maintenance activities, which reflects specific change intents, facilitates more efficient analysis and planning of maintenance, supports developers' workflows and tasks, and is often employed in software engineering research to study changes and the evolution of software. To identify research gaps, a systematic literature review examined existing approaches for classifying commits based on the type of maintenance activities performed. To address these gaps, a systematic mapping study reviewed approaches to the vectorization of software code changes through representation learning based on source code, utilized in the existing literature to address various software engineering challenges. Based on the findings, we developed and proposed a novel method for context-dependent vector representation of software code changes, enabling the extraction of semantic features from source code changes between two versions of a software project while considering the context of changes. The proposed method represents a software change as a set of fine-grained conjoint code changes based on token-based representations of observed differences in the source code. To extract semantic embeddings of conjoint changes, the method employs transfer learning from a selected pre-trained language model of code from the BERT-based family of models, e.g., CodeBERT, UniXcoder, and StarEncoder, which was previously fine-tuned for the target task using self-supervised and supervised learning paradigms. The resulting vector embeddings of fine-grained conjoint changes are then aggregated into a unified semantic vector representation of a software change. We built machine learning models to classify software commits based on the type of maintenance activities using a labeled dataset, leveraging the proposed method as well as baseline and existing methods for change representation to extract features. Through a controlled experiment, an ablation study, and a comparative study, we investigated the impact of different parameters of the proposed code change representation method on classification performance, compared the classification performance using the proposed method with that achieved using baseline and existing change representation methods, and evaluated the performance of multimodal machine learning models that enhance existing change representation methods with the proposed method by combining modalities of natural language and programming code. The empirical results were statistically analyzed using frequentist and Bayesian statistics. The research findings support the initial thesis that the novel method can be used to build machine learning models that successfully classify software commits based on the type of maintenance activities performed. The key findings of the doctoral dissertation are as follows: vector representations of software code changes based on the proposed novel method achieve comparable or higher classification performance compared to change representations based on baseline and existing methods; reducing the dimensionality of context-dependent vector representations of software changes can reduce the number of dimensions without negatively affecting classification performance; multimodal classification models outperform unimodal models in terms of classification performance.
Keywords:software maintenance, software commit, mining software repositories, machine learning, classification, neural language models of code, vector representations, vector embedding


Comments

Leave comment

You must log in to leave a comment.

Comments (0)
0 - 0 / 0
 
There are no comments!

Back
Logos of partners University of Maribor University of Ljubljana University of Primorska University of Nova Gorica