<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="88975" NadgradivoID="0" NRID="25040440" OceID="0" DomainUrl="https://dk.um.si/" IzpisPolniUrl="https://dk.um.si/IzpisGradiva.php?lang=slv&amp;id=88975" StOgledov="159" StPrenosov="174" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-10-01 16:13:05" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/DKUM-88975">20.500.12556/DKUM-88975</PID>
  <Naslov>Metoda kontekstno odvisne vektorske predstavitve sprememb programske kode za klasifikacijo vrste aktivnosti vzdrževanja</Naslov>
  <Podnaslov>doktorska disertacija</Podnaslov>
  <TujJezik_Naslov>Method for Context-Dependent Vector Representation of Code Changes for Commit Classification Into Software Maintenance Activities</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <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.</Opis>
  <TujJezik_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&#039; 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.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>vzdrževanje programske opreme</Beseda>
    <Beseda>spremembe programskih rešitev</Beseda>
    <Beseda>rudarjenje repozitorijev programskih rešitev</Beseda>
    <Beseda>strojno učenje</Beseda>
    <Beseda>klasifikacija</Beseda>
    <Beseda>nevronski jezikovni modeli programske kode</Beseda>
    <Beseda>vektorske predstavitve</Beseda>
    <Beseda>vektorska vložitev</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>software maintenance</Beseda>
    <Beseda>software commit</Beseda>
    <Beseda>mining software repositories</Beseda>
    <Beseda>machine learning</Beseda>
    <Beseda>classification</Beseda>
    <Beseda>neural language models of code</Beseda>
    <Beseda>vector representations</Beseda>
    <Beseda>vector embedding</Beseda>
  </TujJezik_KljucneBesede>
  <Potrjeno>true</Potrjeno>
  <JeZaklenjeno>true</JeZaklenjeno>
  <JeRecenzirano>false</JeRecenzirano>
  <Zaloznik>[T. Heričko]</Zaloznik>
  <Izvor></Izvor>
  <Jezik ID="1060" ISO639-3="slv">Slovenski jezik</Jezik>
  <TujJezik ID="1033" ISO639-3="eng">Angleški jezik</TujJezik>
  <Povezave></Povezave>
  <Pokrivanje></Pokrivanje>
  <CasovnoPokritje></CasovnoPokritje>
  <AvtorskePravice></AvtorskePravice>
  <VrstaGradiva ID="mb31" DRIVER="info:eu-repo/semantics/doctoralThesis">Doktorsko delo/naloga</VrstaGradiva>
  <DatumVstavljanja>2024-06-03 10:15:01</DatumVstavljanja>
  <DatumObjave>2025-01-06 12:46:11</DatumObjave>
  <DatumSpremembe>2025-01-07 03:09:31</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2024</LetoIzida>
  <LetoIzidaDo>0</LetoIzidaDo>
  <KrajIzida>Maribor</KrajIzida>
  <LetoIzvedbe>0</LetoIzvedbe>
  <KrajIzvedbe>Maribor</KrajIzvedbe>
  <Opomba></Opomba>
  <StStrani>XXVI, 210 str.</StStrani>
  <StevilcenjeNivo1></StevilcenjeNivo1>
  <StevilcenjeNivo2></StevilcenjeNivo2>
  <Kronologija></Kronologija>
  <Patent_Stevilka></Patent_Stevilka>
  <Patent_DatumVeljavnosti>0000-00-00</Patent_DatumVeljavnosti>
  <VerzijaDokumenta>NiDoloceno</VerzijaDokumenta>
  <StatusObjaveDrugje>NiDoloceno</StatusObjaveDrugje>
  <VrstaStroskaObjave>NiDoloceno</VrstaStroskaObjave>
  <DatumPoslanoVRecenzijo>0000-00-00</DatumPoslanoVRecenzijo>
  <DatumSprejetjaClanka>0000-00-00</DatumSprejetjaClanka>
  <DatumObjaveClanka>0000-00-00</DatumObjaveClanka>
  <Licence>
    <Licenca ID="1" Kratica="CC BY-NC-ND 4.0" Naziv="Creative Commons Priznanje avtorstva-Nekomercialno-Brez predelav 4.0 Mednarodna" URL="http://creativecommons.org/licenses/by-nc-nd/4.0/deed.sl" Logo="by-nc-nd.eu.png" LogoPolniUrl="https://dk.um.si/teme/dkumDev2/img/licence/by-nc-nd.eu.png" DatumZacetkaLicenciranja="2024-09-12" VezanoNa="" VezanoNaAng="" Besedilo="" BesediloAng=""></Licenca>
  </Licence>
  <EmbargoDo></EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="75650" Ime="Tjaša" Priimek="Heričko" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="188562275" Afiliacija="" ArrsID="53588" ORCID=""></Oseba>
    <Oseba ID="30027" Ime="Boštjan" Priimek="Šumak" AltIme="" VlogaID="991" VlogaNaziv="Mentor" ConorID="11735651" Afiliacija="" ArrsID="23392" ORCID=""></Oseba>
    <Oseba ID="73187" Ime="Sašo" Priimek="Karakatič" AltIme="S. Karakatic; Sašo Karaktič" VlogaID="994" VlogaNaziv="Komentor" ConorID="205231203" Afiliacija="" ArrsID="36086" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="4" Sifra="UDK" Naziv="UDK" URL="">004.423:004.416(043.3)</Identifikator>
    <Identifikator ID="3" Sifra="CobissID" Naziv="COBISS_ID" URL="https://plus.cobiss.net/cobiss/si/sl/bib/221034243">221034243</Identifikator>
  </Identifikatorji>
  <Relacije>
  </Relacije>
  <VerzijeGradiva>
  </VerzijeGradiva>
  <Datoteke>
    <Datoteka ID="187621" DatotekaNRID="14046778" NamenDatotekeID="2" NamenDatoteke="Predstavitvena datoteka" FormatDatotekeID="2" FormatDatoteke=".pdf" MIME="application/pdf" IkonaFormata="pdf.gif" IkonaFormataPolniUrl="https://dk.um.si/teme/dkumDev2/img/fileTypes/pdf.gif" VelikostDatoteke="5831640" VelikostDatotekeKratko="5,56 MB" DatumVstavljanja="2025-01-06 12:44:59" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="true" JeVidno="true" VidnoOd="01.01.1970" Zaporedje="0">
      <Naziv>Hericko_Tjasa-Metoda_kontekstno_odvisne_vektorske_predstavitve_sprememb_programske_kode_za_klasifikacijo_vrste_aktivnosti_vzdrzevanja.pdf</Naziv>
      <OrgNaziv>Hericko_Tjasa-Metoda_kontekstno_odvisne_vektorske_predstavitve_sprememb_programske_kode_za_klasifikacijo_vrste_aktivnosti_vzdrzevanja.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>492F1FA74AC0B07C1C180A98C05C34C6</MD5>
      <SHA256>a09e9233bfd1a381b77bb93682a12659960c1e5bf68a1a121885503aa3a7531f</SHA256>
      <UUID>a8161ae7-cc23-11ef-8cf7-00155d000105</UUID>
      <PID></PID>
      <PrenosPolniUrl>https://dk.um.si/Dokument.php?lang=slv&amp;id=187621</PrenosPolniUrl>
      <Vsebine>
        <Vsebina TipVsebine="GoloBesedilo" JezikID="1060" Oznaka="" Dolzina="511253"></Vsebina>
      </Vsebine>
    </Datoteka>
  </Datoteke>
  <Organizacije>
    <Organizacija OrganizacijaID="3" Kratica="FERI" ZavodEvsID="0000080" Logo="FERI_logo.gif" LogoPolniUrl="https://dk.um.si/teme/dkumDev2/img/logo/FERI_logo.gif">Fakulteta za elektrotehniko, računalništvo in informatiko</Organizacija>
  </Organizacije>
  <OrganizacijeVira>
  </OrganizacijeVira>
  <MetodeZbiranjaPodatkov>
  </MetodeZbiranjaPodatkov>
  <TipologijaDela ID="2.08" Koda="2.08" Naziv="Doktorska disertacija" SchemaOrg="Thesis"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
