dc.contributor.advisor |
Perera I |
|
dc.contributor.author |
Hettiarachchi DH |
|
dc.date.accessioned |
2021 |
|
dc.date.available |
2021 |
|
dc.date.issued |
2021 |
|
dc.identifier.citation |
Hettiarachchi, D.H. (2021). Nalyzer: AI based community-driven source code analysis tool [Master's theses, University of Moratuwa]. Institutional Repository University of Moratuwa. http://dl.lib.uom.lk/handle/123/20012 |
|
dc.identifier.uri |
http://dl.lib.uom.lk/handle/123/20012 |
|
dc.description.abstract |
Identifying error-prone code snippets and potential vulnerabilities in the early stages of the development process allows reducing the considerable amount of time & the cost of the software project. But the process of ensuring the reliability of software projects has become a significant challenge due to the high complexity & the scalability of modern software projects. Also, the dynamic nature of modern frameworks & programming languages becomes a barrier to consistency. Manual code reviews/automated code analysis tools are obsolete due to time constraints & lack of adaptability for new programming languages & frameworks.
Nalyzer project aims to build a Machine Learning (ML) model to identify error-prone code snippets and potential vulnerabilities in the source code. And introduce a self-sustainable approach to adopt future programming languages & framework changes.
We used Convolutional Neural Network (CNN) deep learning algorithm to build an ML model for classifying buggy & non-buggy code snippets from source code. And introduce a maven customized build plugin to push source code to ML model & get prediction as a step in the Continuous Integration/Continuous Delivery (CI/CD) pipeline. Then the generated Nalyzer analysis result was published on the interactive dashboard inside the project directory. Interactive dashboard facilitated to get feedback from developers to improve ML model accuracy & future adaptations.
We evaluate the ML model in terms of F-measure. The evaluation results demonstrated the compatibility of ML techniques in the source code analysis paradigm with a significant score. And the interactive dashboard makes sure of the self-sustainability of the ML model through a Community-Driven approach.
Nalyzer project proves that the ML approach is an alternative for overcoming the limitations of manual code reviews and automated code analysis tools. |
en_US |
dc.language.iso |
en |
en_US |
dc.subject |
NEURAL NETWORK |
en_US |
dc.subject |
CONVOLUTIONAL NEURAL NETWORK |
en_US |
dc.subject |
SOURCE CODE ANALYSIS |
en_US |
dc.subject |
MACHINE LEARNING |
en_US |
dc.subject |
COMPUTER SCIENCE AND ENGINEERING - Dissertation |
en_US |
dc.subject |
COMPUTER SCIENCE - Dissertation |
en_US |
dc.title |
Nalyzer: AI based community-driven source code analysis tool |
en_US |
dc.type |
Thesis-Abstract |
en_US |
dc.identifier.faculty |
Engineering |
en_US |
dc.identifier.degree |
MSc in Computer Science and Engineering |
en_US |
dc.identifier.department |
Department of Computer Science & Engineering |
en_US |
dc.date.accept |
2021 |
|
dc.identifier.accno |
TH4577 |
en_US |