Improving software development workflows using generative AI
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2024-08-19
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
51
Series
Abstract
The rapid advancement of generative artificial intelligence, particularly large language models, has introduced new possibilities for enhancing software engineering processes. This thesis investigates the integration of generative AI into three key areas of software development: unit test generation, code review, and code documentation. The primary goal is to evaluate the potential of generative AI to improve developer productivity by automating repetitive and time-consuming tasks. The research methodology includes a comprehensive literature review on the history and current state of artifical intelligence, and empirical experiments to assess the effectiveness of LLMs in practical software engineering tasks. The study compares the performance of AI-generated unit tests with existing manual tests using coverage metrics, evaluates AI-assisted code review tools against a dataset of deliberately introduced bugs, and examines AI-generated code documentation through expert analysis. Findings indicate that LLMs, especially GPT-4, are indeed capable of succeeding in these tasks, and can be used to streamline software development. However, they also underscores the current limitations of LLMs, such as the need for human oversight and the difficulty in handling complex code structures.Generatiivisen tekoälyn, etenkin suurten kielimallien kehitys on mahdollistanut uusia tapoja ohjelmistokehityksen prosessien parantamiseksi. Tämä diplomityö tutkii generatiivisen tekoälyn integroimista kolmeen ohjelmistokehityksen osa-alueeseen: yksikkötestien luomiseen, koodin katselmointiin ja koodin dokumentaatioon. Työn ensisijainen päämäärä on arvioida generatiivisen tekoälyn potentiaalia nostaa ohjelmistokehittäjien tuottavuutta automatisoimalla toistuvia ja aikaavieviä tehtäviä. Tutkimus sisältää kattavan kirjallisuuskatsauksen tekoälyn historiaan ja nykytilaan, sekä empiirisia kokeita, joilla arvioidaan tekoälyn tehokkuutta käytännön ohjelmistokehityksessä. Tutkimus vertaa tekoälyn luomien yksikkötestien laatua olemassaoleviin yksikkötesteihin käyttäen kattavuusmetriikoita, arvioi tekoälyavusteisen koodikatselmointityökalun suorituskykyä käyttämällä tutkimusta varten luotua virhetietojoukkoa, sekä arvostelee tekoälyn luomaa koodin dokumentaatiota asiantuntijanalyysin avulla. Tulokset osoittavat, että suuret kielimallit, etenkin GPT-4, ovat kykeneviä suorittamaan näitä tehtäviä, ja siten niitä voidaan käyttää tehostamaan ohjelmistokehitystä. Työ kuitenkin myös korostaa nykyteknologian rajoituksia, kuten tarvetta ihmisen työpanokselle puutteellisten tulosten korjaamisessa, sekä haasteita monimutkaisten ohjelmistorakenteiden ymmärtämisessä.Description
Supervisor
Rintanen, JussiThesis advisor
Lehikoinen, MiikkaKeywords
generative artificial intelligence, large language model, software engineering, software development