magistrsko delo
Povzetek
Statična analiza izvorne kode je pomemben del razvoja programske opreme, ki pa ima nekaj pomembnih pomanjkljivosti, ker z metrik programske kode ne moremo sklepati o semantični pravilnosti. Kot potencialno rešitev smo v magistrskem delu raziskali nevronsko mrežo Code2Vec. V teoretičnem delu smo obravnavali osnovne koncepte umetnih nevronskih mrež, tehnike redukcij dimenzionalnosti vektorjev in delovanje Code2Vec. V praktičnem delu smo izvedli eksperiment vizualizacije, klasifikacije in gručenja nad podatkovno množico, ki jo sestavljajo tako visoko-dimenzionalni vektorji kot tudi splošne značilnosti programske kode metod šestih odprtokodnih projektov. Glede na rezultate sklepamo, da so vektorji Code2Vec koristni za izvedbo statične analize kode.
Ključne besede
nevronske mreže;vektorizacija;izvorna koda;strojno učenje;magistrske naloge;
Podatki
Jezik: |
Slovenski jezik |
Leto izida: |
2020 |
Tipologija: |
2.09 - Magistrsko delo |
Organizacija: |
UM FERI - Fakulteta za elektrotehniko, računalništvo in informatiko |
Založnik: |
[A. Miloševič] |
UDK: |
004.8:004.415.3(043.2) |
COBISS: |
23085334
|
Št. ogledov: |
781 |
Št. prenosov: |
182 |
Ocena: |
0 (0 glasov) |
Metapodatki: |
|
Ostali podatki
Sekundarni jezik: |
Angleški jezik |
Sekundarni naslov: |
Analysis of vectorized source code with machine learning |
Sekundarni povzetek: |
Static software analysis as an integral part of software development has important flaws because it is impossible to discern the semantic structure and correctness of software from metrics alone. In this work, we have researched the neural network Code2Vec as a potential solution to this problem. In the theoretical segment, we have described the basics of neural networks, dimensionality reduction techniques and the inner workings of Code2Vec. In the practical segment, we have conducted a visualization, classification and clustering experiment using a dataset comprised of standard features as well as Code2Vec code embeddings of Java methods. We can conclude from the results of the experiment that Code2Vec embeddings are an appropriate tool for static code analysis. |
Sekundarne ključne besede: |
artificial neural networks;code embeding;source code;machine learning; |
Vrsta dela (COBISS): |
Magistrsko delo/naloga |
Komentar na gradivo: |
Univ. v Mariboru, Fak. za elektrotehniko, računalništvo in informatiko, Informatika in tehnologije komuniciranja |
Strani: |
XI, 100 f. |
ID: |
11356732 |