Artificial intelligence -assisted software development

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorRintanen, Jussi
dc.contributor.authorKoivu, Joonas
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.supervisorSavioja, Lauri
dc.date.accessioned2024-05-28T08:15:10Z
dc.date.available2024-05-28T08:15:10Z
dc.date.issued2024-05-02
dc.description.abstractIn 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.en
dc.description.abstractViime 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.fi
dc.format.extent22
dc.format.mimetypeapplication/pdfen
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/128267
dc.identifier.urnURN:NBN:fi:aalto-202405283869
dc.language.isoenen
dc.programmeTeknistieteellinen kandidaattiohjelmafi
dc.programme.majorTietotekniikkafi
dc.programme.mcodeSCI3027fi
dc.subject.keywordlarge language modelsen
dc.subject.keywordsoftware developmenten
dc.subject.keywordnatural language processingen
dc.subject.keywordprompten
dc.titleArtificial intelligence -assisted software developmenten
dc.typeG1 Kandidaatintyöfi
dc.type.dcmitypetexten
dc.type.ontasotBachelor's thesisen
dc.type.ontasotKandidaatintyöfi

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Koivu_Joonas_2024.pdf
Size:
175.38 KB
Format:
Adobe Portable Document Format