Vaatimusmäärittely osana ohjelmistokehitysprosessia - Virtala, Jani (2019)
Tässä tutkielmassa tutkittiin, mistä tekijöistä ohjelmistokehitysprosessi koos-tuu. Tämän lisäksi pyrittiin selvittämään, minkälainen on vaatimusmäärittelyn rooli ohjelmistokehityksessä. Tämä on tärkeää, sillä ohjelmistot ovat välttämättömiä nyky-yhteiskunnan toiminnalle. Vaatimusmäärittelyn roolin tutkiminen on tärkeää, sillä puutteelliset vaatimukset ovat isoin syy ohjelmistoprojektin epäonnistumiselle. Tutkimus suoritettiin kirjallisuuskatsauksena. Lähteinä tutkielmaan kerättiin alan oppikirjoista ja tieteellisistä artikkeleista. Ohjelmistokehitysprosessia tutkittiin kolmen tekijän avulla: ohjelmistokehityksen kerrokset, ohjelmistokehityksen elinkaari ja ohjelmistokehitysprosessimallit. Ohjelmistokehitys pitää sisällään neljä kerrosta: organisaation sitoutuminen laatuun, prosessikerros, menetelmäkerros ja työkalukerros. Eri kirjoittajat kuvaavat ohjelmistonkehityksen elinkaaren eri vaiheita eri tavoin. Laajimman ja vähiten yksityiskohtaisen kategorisoinnin mukaan ohjelmistonkehityksen elinkaari jaetaan kolmeen vaiheeseen: määrittely-, kehitys- ja käyttöönottovaihe. Ohjelmistokehitysprosessimallilla tarkoitetaan yksinkertaistettua esitystapaa ohjelmistoprosessista. Malleja voidaan käyttää selittämään ohjelmistokehityksen eri lähestymistapoja. Tähän tutkielmaan valittiin tarkempaan tarkisteluun vesiputousmalli sekä Extreme Programming, jotka ovat kaksi toisestaan poikkeavaa mallia eri aikakausilta. Vaatimustenmäärittelyn roolia tutkittiin vaatimusmäärittelyprosessin, vaatimusten kategorioinnin ja hyvien vaatimusten kriteerien avulla. Vaatimusmäärittelyprosessi pitää sisällään kolme päävaihetta: vaatimusten kerääminen ja analysointi, vaatimusten määrittely sekä vaatimusten validointi. Vaatimukset kategorisoidaan toiminnallisiin ja ei-toiminnallisiin vaatimuksiin. Toiminnalliset vaatimukset ovat vaatimuksia, jotka kuvaavat millaisia palveluita ohjelmiston tulee tarjota, kuinka se reagoi syötteisiin ja kuinka sen tulisi käyttäytyä. Ei-toiminnalliset vaatimukset ovat ohjelmiston tarjoamien palveluiden tai toimintojen rajoituksia. Jotta vaatimukset ovat hyviä, täytyy niiden olla täydellisiä, selkeitä, yksiselitteisiä, johdonmukaisia, sopivia, priorisoituja, toteutettavissa olevia, ymmärrettäviä, asiaankuuluvia, hyvin jäsenneltyjä, muokattavissa olevia, jäljitettäviä, sekä niiden pitää olla mitattavissa.