Vaatimusmäärittely ketterässä ohjelmistokehityksessä
Lindvall, Kim (2022)
Lindvall, Kim
2022
Tietojenkäsittelyopin maisteriohjelma - Master's Programme in Computer Science
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-05-18
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202204294176
https://urn.fi/URN:NBN:fi:tuni-202204294176
Tiivistelmä
Tässä tutkielmassa käsitellään vaatimusmäärittelyn prosesseja, menetelmiä sekä käytäntöjä ketterän ohjelmistokehityksen viitekehyksessä. Ketterä kehitysmalli on yleistynyt ohjelmistojen kehittämisen ja toimittamisen standardiksi. Malli perustuu itseohjautuvaan, useita työtehtäviä suorittavaan ryhmään sekä hallituissa, lyhyissä iteraatioissa tehtäviin julkaisuihin. Vaatimusmäärittely luo pohjan kaikille muille ohjelmistokehityksen vaiheille. Onnistunut vaatimusmäärittely on merkittävä tekijä ohjelmistoprojektin onnistumiselle esimerkiksi kustannusten, aikataulun ja asiakastyytyväisyyden näkökulmasta.
Perinteisessä, vesiputousmallisessa ohjelmistokehityksessä vaatimusmäärittely tapahtuu etukäteispainotteisesti siten, että vaatimukset määritellään kokonaisuudessaan ennen toteutusvaiheen aloittamista. Ketterä vaatimusmäärittely perustuu iteraatioihin, joissa vaatimuksia määritellään sitä mukaa, kun niitä tavoitellaan työstettäviksi seuraaviin iteraatioihin. Ketterä malli mahdollistaa vastaamisen nykyaikaisen, ketterän ohjelmistokehityksen tarpeisiin esimerkiksi valmiudella vastata nopeasti muuttuviin järjestelmälle asetettuihin muutoksiin.
Tämän tutkielman tavoitteena on selvittää kirjallisuuskatsauksen avulla mitä vaatimusmäärittely ohjelmistokehityksessä pitää sisällään, mitä ketterällä ohjelmistokehityksellä tarkoitetaan, millaisia hyötyjä ketterällä vaatimusmäärittelyllä voidaan saavuttaa, millaisia huomioonotettavia ongelmia ketterään vaatimusmäärittelyyn voi liittyä sekä millaisia prosesseja ja menetelmiä voidaan käyttää vaatimusmäärittelyn toteuttamiseksi ketterässä ohjelmistoprojektissa.
Ketterä vaatimusmäärittely edellyttää perinteisestä vaatimusmäärittelystä poikkeavaa lähestymistapaa. Raskaan etukäteissuunnittelun sijaan vaatimusmäärittely toteutetaan iteratiivisesti siten, että kaikkia avonaisia kysymyksiä ei ole pakko selvittää etukäteen. Iteratiivisesti toteutettu vaatimusmäärittely sisältää kaikki perinteisen vaatimusmäärittelyn vaiheet. Erottavana tekijänä jokaista määrittelyn vaihetta tarkastellaan uudelleen jokaisessa iteraatiossa, kunnes lopputulos todetaan valmiiksi. Lähestymistapa tarjoaa muun muassa helpomman riskienhallinnan ja valmiuden reagoida muutoksiin, jotka perinteisesti toteutetussa projektissa voisivat johtaa jopa projektin epäonnistumiseen. Ketterää vaatimusmäärittelyä voidaan tukea erilaisilla menetelmillä ja työkaluilla, esimerkiksi formalisoimalla määriteltyjä vaatimuksia ajettavaksi testikoodiksi.
Perinteisessä, vesiputousmallisessa ohjelmistokehityksessä vaatimusmäärittely tapahtuu etukäteispainotteisesti siten, että vaatimukset määritellään kokonaisuudessaan ennen toteutusvaiheen aloittamista. Ketterä vaatimusmäärittely perustuu iteraatioihin, joissa vaatimuksia määritellään sitä mukaa, kun niitä tavoitellaan työstettäviksi seuraaviin iteraatioihin. Ketterä malli mahdollistaa vastaamisen nykyaikaisen, ketterän ohjelmistokehityksen tarpeisiin esimerkiksi valmiudella vastata nopeasti muuttuviin järjestelmälle asetettuihin muutoksiin.
Tämän tutkielman tavoitteena on selvittää kirjallisuuskatsauksen avulla mitä vaatimusmäärittely ohjelmistokehityksessä pitää sisällään, mitä ketterällä ohjelmistokehityksellä tarkoitetaan, millaisia hyötyjä ketterällä vaatimusmäärittelyllä voidaan saavuttaa, millaisia huomioonotettavia ongelmia ketterään vaatimusmäärittelyyn voi liittyä sekä millaisia prosesseja ja menetelmiä voidaan käyttää vaatimusmäärittelyn toteuttamiseksi ketterässä ohjelmistoprojektissa.
Ketterä vaatimusmäärittely edellyttää perinteisestä vaatimusmäärittelystä poikkeavaa lähestymistapaa. Raskaan etukäteissuunnittelun sijaan vaatimusmäärittely toteutetaan iteratiivisesti siten, että kaikkia avonaisia kysymyksiä ei ole pakko selvittää etukäteen. Iteratiivisesti toteutettu vaatimusmäärittely sisältää kaikki perinteisen vaatimusmäärittelyn vaiheet. Erottavana tekijänä jokaista määrittelyn vaihetta tarkastellaan uudelleen jokaisessa iteraatiossa, kunnes lopputulos todetaan valmiiksi. Lähestymistapa tarjoaa muun muassa helpomman riskienhallinnan ja valmiuden reagoida muutoksiin, jotka perinteisesti toteutetussa projektissa voisivat johtaa jopa projektin epäonnistumiseen. Ketterää vaatimusmäärittelyä voidaan tukea erilaisilla menetelmillä ja työkaluilla, esimerkiksi formalisoimalla määriteltyjä vaatimuksia ajettavaksi testikoodiksi.