Artificial intelligence -assisted software development

No Thumbnail Available
Files
Koivu_Joonas_2024.pdf (175.38 KB)
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Bachelor's thesis
Electronic archive copy is available locally at the Harald Herlin Learning Centre. The staff of Aalto University has access to the electronic bachelor's theses by logging into Aaltodoc with their personal Aalto user ID. Read more about the availability of the bachelor's theses.
Date
2024-05-02
Department
Major/Subject
Tietotekniikka
Mcode
SCI3027
Degree programme
Teknistieteellinen kandidaattiohjelma
Language
en
Pages
22
Series
Abstract
In recent years, significant advancements have been made in natural language processing, particularly through the use of large language models, such as OpenAI's GPT-4. These models possess the revolutionary feature of generating responses to commands and questions given by users. The purpose of the thesis is to explore the application of large language model-based services in automating tasks across software development phases. The bachelor's thesis is conducted as a literature study, examining the results and findings of articles published after 2022. Articles were chosen based on them including case studies that researched the usefulness of large language models in different software development phases. The thesis demonstrates that large language models and the services based on them offer a variety of benefits throughout the different phases of software development. The most common findings about the services are their usefulness in starting various tasks, quickly generating different options, and speeding up testing and development tasks in general. Services based on large language models can quickly generate requirements specifications, UML diagrams, documentation, and program code based on the prompts given to them. However, the thesis also highlights the importance of verifying the responses produced by the language models. In many cases, the models produced answers that were partially incomplete or incorrect. Identifying and correcting these require expertise so that software development can continue towards a coherent and functioning product. Since this is a new and rapidly evolving field, future research is required to utilize new technologies and to conduct research on the development of larger software products that would better represent real software products.

Viime vuosina on tapahtunut suuria kehityksiä luonnollisen kielen prosessoinnissa (natural language processing, NLP) erityisesti suurten kielimallien (large language model, LLM) avulla. Suuriin kielimalleihin pohjautuvat palvelut, kuten OpenAI:n GPT-4, pystyvät generoida vastauksia käyttäjien antamiin käskyihin sekä kysymyksiin (prompts) keskustelunomaisessa vuorovaikutuksessa. Nämä palvelut ovat keränneet hyvin laajaa huomiota sekä satoja miljoonia rekisteröityneitä käyttäjiä todella lyhyessä ajassa. Tästä syystä on hyvin tärkeää tutkia näiden työkalujen vahvuudet sekä heikkoudet, jotta työkaluja voidaan kehittää hyödyllisemmiksi sekä käyttäjät ovat voivat olla tietoisempia työkalujen rajoitteista. Tämän kandidaatintyön tarkoituksena on selvittää, miten suuriin kielimalleihin perustuvia palveluita voidaan hyödyntää ohjelmistokehityksen eri vaiheissa työtehtävien automatisointiin. Kandidaatintutkielma on toteutettu kirjallisuustutkimuksena, jossa tutkitaan 2022 jälkeen julkaistujen artikkeleiden tuloksia ja löydöksiä kielimallien hyödyllisyydestä ohjelmistokehityksen eri vaiheissa. Erityisesti painoitetaan tapaustutkimuksia, joissa suuria kielimalleja hyödynnetään käytännön työtehtävissä, arvioidaan niiden tarjoamia hyötyjä sekä heikkouksia. Tutkielma rajoittuu suurten kielimallien hyödyntämiseen ohjelmiston vaatimusten määrittelyssä, arkkitehtuurin mallintamisessa sekä ohjelmiston implementointiin, eli lähdekoodin kirjoittamiseen. Tutkielmasta rajautuu pois ohjelmistokehityksen elinkaaren vaiheet testaus, käyttöönotto ja ylläpito, sekä keskustelu eettisyyden että vastuullisuuden näkökulmasta. Tutkielma osoittaa, että suuriin kielimalleihin pohjautuvat palvelut tarjoavat monenlaisia hyötyjä ympäri ohjelmistokehityksen elinkaarta (software development life cycle, SDLC). Yleisimmät löydökset palveluista ovat niiden hyödyllisyys erinäisten työtehtävien aloituksessa, eri vaihtoehtojen nopea generoiminen sekä testaus ja yleisesti kehitystehtävien nopeuttaminen. Suuriin kielimalleihin perustuvat palvelut pystyvät nopeasti generoimaan niin vaatimusmäärittelyjä, UML-kaavioita (unified modeling language), dokumentaatiota kuin ohjelmakoodia niille annettujen kehotteiden pohjalta. Tutkielmassa kuitenkin korostui kielimallien tuottamien vastausten manuaalisen vahvistamisen tärkeys. Monissa tapauksissa kielimallit tuottivat vastauksia, jotka olivat osittain puuttellisia tai vääriä. Virheiden huomaaminen sekä korjaaminen vaativat aikaa ja ammattitaitoa, jotta ohjelmistokehitystä voidaan jatkaa kohti eheää ja toimivaa tuotetta. Työkaluille syötettyjen kehotteiden laadun huomattiin myös vaikuttavan tuotetun vastauksen laatuun. Tästä voidaan johtaa, että suuriin kielimalleihin perustuvien työkalujen tehokas hyödyntäminen vaatii käyttäjältä opettelua sekä vaivannäköä. Koska kyseessä on uusi sekä nopeasti kehittyvä ala, vaaditaan tulevaisuuden tutkimukselta uusimpien teknologioiden tutkimista ja hyödyntämistä. Tutkimusta tarvitaan myös aiempaa suurempien ja monimutkaisempien ohjelmistojen kehityksessä, jotka vastaisivat haastavuudeltaan paremmin oikeita ohjelmistotuotteita. Lisäksi avoimen lähdekoodin mallien kouluttaminen tiettyihin työtehtäviin erikoistuneeksi tarjoaa mielenkiintoisia mahdollisuuksia jatkotutkimukselle.
Description
Supervisor
Savioja, Lauri
Thesis advisor
Rintanen, Jussi
Keywords
large language models, software development, natural language processing, prompt
Other note
Citation