Improving software development workflows using generative AI

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

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, Jussi

Thesis advisor

Lehikoinen, Miikka

Keywords

generative artificial intelligence, large language model, software engineering, software development

Other note

Citation