Design principles for Prompt Engineering within Large Language Models Case Study on Software Maintenance

Ohjelmistojen ylläpito on merkittävä vaihe ohjelmistojen elinkaarella, joka korostuu suurissa, liiketoimintakriittisissä järjestelmissä. Tässä pro gradu-tutkielmassa tutkitaan generatiivisen tekoälyn vaikutusta ohjelmistojen ylläpitoon. Toteutimme konstruktiivisen suunnittelutieteen tutkimuksen suur...

Täydet tiedot

Bibliografiset tiedot
Päätekijä: Uusnäkki, Joonas
Muut tekijät: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Aineistotyyppi: Pro gradu
Kieli:eng
Julkaistu: 2023
Aiheet:
Linkit: https://jyx.jyu.fi/handle/123456789/92430
_version_ 1826225730962325504
author Uusnäkki, Joonas
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Uusnäkki, Joonas Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Uusnäkki, Joonas Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Uusnäkki, Joonas
datasource_str_mv jyx
description Ohjelmistojen ylläpito on merkittävä vaihe ohjelmistojen elinkaarella, joka korostuu suurissa, liiketoimintakriittisissä järjestelmissä. Tässä pro gradu-tutkielmassa tutkitaan generatiivisen tekoälyn vaikutusta ohjelmistojen ylläpitoon. Toteutimme konstruktiivisen suunnittelutieteen tutkimuksen suurten kielimallien käytöstä ohjelmistokoodin analyysissä 36 keskustelun avulla 4 eri mallilla etsien systemaattisia lähestymistapoja ohjelmistojen ylläpidon parantamiseksi. Huomasimme, että suuret kielimallit tuottavat järjestelmällisesti näkemyksiä ja ehdotuksia ohjelmistoanalyysiin todellisissa tuotantojärjestelmissä. Tutkimuksen työkaluksi esittelemme PESD-viitekehyksen, joka toimii perustana kehotesuunnittelulle ohjelmistoympäristössä ja tarjoaa suunnitteluperiaatteet kehosuunnittelun tueksi. Software maintenance is a significant phase in software´s lifecycle that is highlighted in large, business-critical systems. In this thesis, the impact of generative AI on software maintenance is investigated. We conducted a constructive design science research on the usage of Large Language Models (LLMs) in the analysis of software code base, with 36 chats within 4 different LLMs, seeking systematic approaches for enhancing software maintenance. We discovered that LLMs systematically produce insights and suggestions in software analysis within real production systems. As a tool for the study, we introduce the PESD framework, which serves as a foundation for prompt engineering within software development environment, offering design principles for the prompt engineering processes.
first_indexed 2023-12-20T21:05:03Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "Mikkonen, Tommi", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.advisor", "value": "Myllym\u00e4ki, Pasi", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Uusn\u00e4kki, Joonas", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2023-12-20T10:47:51Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2023-12-20T10:47:51Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2023", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/92430", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Ohjelmistojen yll\u00e4pito on merkitt\u00e4v\u00e4 vaihe ohjelmistojen elinkaarella, joka korostuu suurissa, liiketoimintakriittisiss\u00e4 j\u00e4rjestelmiss\u00e4. T\u00e4ss\u00e4 pro gradu-tutkielmassa tutkitaan generatiivisen teko\u00e4lyn vaikutusta ohjelmistojen yll\u00e4pitoon. Toteutimme konstruktiivisen suunnittelutieteen tutkimuksen suurten kielimallien k\u00e4yt\u00f6st\u00e4 ohjelmistokoodin analyysiss\u00e4 36 keskustelun avulla 4 eri mallilla etsien systemaattisia l\u00e4hestymistapoja ohjelmistojen yll\u00e4pidon parantamiseksi. Huomasimme, ett\u00e4 suuret kielimallit tuottavat j\u00e4rjestelm\u00e4llisesti n\u00e4kemyksi\u00e4 ja ehdotuksia ohjelmistoanalyysiin todellisissa tuotantoj\u00e4rjestelmiss\u00e4. Tutkimuksen ty\u00f6kaluksi esittelemme PESD-viitekehyksen, joka toimii perustana kehotesuunnittelulle ohjelmistoymp\u00e4rist\u00f6ss\u00e4 ja tarjoaa suunnitteluperiaatteet kehosuunnittelun tueksi.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Software maintenance is a significant phase in software\u00b4s lifecycle that is highlighted in large, business-critical systems. In this thesis, the impact of generative AI on software maintenance is investigated. We conducted a constructive design science research on the usage of Large Language Models (LLMs) in the analysis of software code base, with 36 chats within 4 different LLMs, seeking systematic approaches for enhancing software maintenance. We discovered that LLMs systematically produce insights and suggestions in software analysis within real production systems. As a tool for the study, we introduce the PESD framework, which serves as a foundation for prompt engineering within software development environment, offering design principles for the prompt engineering processes.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Miia Hakanen (mihakane@jyu.fi) on 2023-12-20T10:47:51Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2023-12-20T10:47:51Z (GMT). No. of bitstreams: 0\n Previous issue date: 2023", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "56", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "eng", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": null, "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "generative AI", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "large language models", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "prompt engineering", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "software maintenance", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "PESD framework", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "design science research", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "generatiivinen teko\u00e4ly", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "suuret kielimallit", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "kehotesuunnittelu", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "PESD-viitekehys", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "ohjelmistojen yll\u00e4pito", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "suunnittelutiede", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-202312208424", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietoj\u00e4rjestelm\u00e4tiede", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Information Systems Science", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.collaborator", "value": "business", "language": "", "element": "contractresearch", "qualifier": "collaborator", "schema": "yvv"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "yvv.contractresearch.initiative", "value": "student", "language": "", "element": "contractresearch", "qualifier": "initiative", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.copyright", "value": "\u00a9 The Author(s)", "language": null, "element": "rights", "qualifier": "copyright", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "601", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "tietokoneohjelmat", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmistosuunnittelu (tietotekniikka)", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "teko\u00e4ly", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "computer programmes", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "software design", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "artificial intelligence", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}]
id jyx.123456789_92430
language eng
last_indexed 2025-02-18T10:54:44Z
main_date 2023-01-01T00:00:00Z
main_date_str 2023
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/eb302cb5-ff8d-472a-b99f-2f9261c99816\/download","text":"URN:NBN:fi:jyu-202312208424.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2023
record_format qdc
source_str_mv jyx
spellingShingle Uusnäkki, Joonas Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance generative AI large language models prompt engineering software maintenance PESD framework design science research generatiivinen tekoäly suuret kielimallit kehotesuunnittelu PESD-viitekehys ohjelmistojen ylläpito suunnittelutiede Tietojärjestelmätiede Information Systems Science 601 tietokoneohjelmat ohjelmistosuunnittelu (tietotekniikka) tekoäly computer programmes software design artificial intelligence
title Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance
title_full Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance
title_fullStr Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance
title_full_unstemmed Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance
title_short Design principles for Prompt Engineering within Large Language Models
title_sort design principles for prompt engineering within large language models case study on software maintenance
title_sub Case Study on Software Maintenance
title_txtP Design principles for Prompt Engineering within Large Language Models : Case Study on Software Maintenance
topic generative AI large language models prompt engineering software maintenance PESD framework design science research generatiivinen tekoäly suuret kielimallit kehotesuunnittelu PESD-viitekehys ohjelmistojen ylläpito suunnittelutiede Tietojärjestelmätiede Information Systems Science 601 tietokoneohjelmat ohjelmistosuunnittelu (tietotekniikka) tekoäly computer programmes software design artificial intelligence
topic_facet 601 Information Systems Science PESD framework PESD-viitekehys Tietojärjestelmätiede artificial intelligence computer programmes design science research generatiivinen tekoäly generative AI kehotesuunnittelu large language models ohjelmistojen ylläpito ohjelmistosuunnittelu (tietotekniikka) prompt engineering software design software maintenance suunnittelutiede suuret kielimallit tekoäly tietokoneohjelmat
url https://jyx.jyu.fi/handle/123456789/92430 http://www.urn.fi/URN:NBN:fi:jyu-202312208424
work_keys_str_mv AT uusnäkkijoonas designprinciplesforpromptengineeringwithinlargelanguagemodelscasestudyonsoftwarem