| | SLO | ENG | Piškotki in zasebnost

Večja pisava | Manjša pisava

Izpis gradiva Pomoč

Naslov:Metoda kontekstno odvisne vektorske predstavitve sprememb programske kode za klasifikacijo vrste aktivnosti vzdrževanja : doktorska disertacija
Avtorji:ID Heričko, Tjaša (Avtor)
ID Šumak, Boštjan (Mentor) Več o mentorju... Novo okno
ID Karakatič, Sašo (Komentor)
Datoteke:.pdf Hericko_Tjasa-Metoda_kontekstno_odvisne_vektorske_predstavitve_sprememb_programske_kode_za_klasifikacijo_vrste_aktivnosti_vzdrzevanja.pdf (5,56 MB)
MD5: 492F1FA74AC0B07C1C180A98C05C34C6
 
Jezik:Slovenski jezik
Vrsta gradiva:Doktorsko delo/naloga
Tipologija:2.08 - Doktorska disertacija
Organizacija:FERI - Fakulteta za elektrotehniko, računalništvo in informatiko
Opis: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.
Ključne besede: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
Kraj izida:Maribor
Kraj izvedbe:Maribor
Založnik:[T. Heričko]
Leto izida:2024
Št. strani:XXVI, 210 str.
PID:20.500.12556/DKUM-88975 Novo okno
UDK:004.423:004.416(043.3)
COBISS.SI-ID:221034243 Novo okno
Datum objave v DKUM:06.01.2025
Število ogledov:0
Število prenosov:40
Metapodatki:XML DC-XML DC-RDF
Področja:KTFMB - FERI
:
Kopiraj citat
  
Skupna ocena:(0 glasov)
Vaša ocena:Ocenjevanje je dovoljeno samo prijavljenim uporabnikom.
Objavi na:Bookmark and Share


Postavite miškin kazalec na naslov za izpis povzetka. Klik na naslov izpiše podrobnosti ali sproži prenos.

Licence

Licenca:CC BY-NC-ND 4.0, Creative Commons Priznanje avtorstva-Nekomercialno-Brez predelav 4.0 Mednarodna
Povezava:http://creativecommons.org/licenses/by-nc-nd/4.0/deed.sl
Opis:Najbolj omejujoča licenca Creative Commons. Uporabniki lahko prenesejo in delijo delo v nekomercialne namene in ga ne smejo uporabiti za nobene druge namene.
Začetek licenciranja:12.09.2024

Sekundarni jezik

Jezik:Angleški jezik
Naslov:Method for Context-Dependent Vector Representation of Code Changes for Commit Classification Into Software Maintenance Activities
Opis: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.
Ključne besede:software maintenance, software commit, mining software repositories, machine learning, classification, neural language models of code, vector representations, vector embedding


Komentarji

Dodaj komentar

Za komentiranje se morate prijaviti.

Komentarji (0)
0 - 0 / 0
 
Ni komentarjev!

Nazaj
Logotipi partnerjev Univerza v Mariboru Univerza v Ljubljani Univerza na Primorskem Univerza v Novi Gorici