Vaatimustenhallinta
Ohjelmistotuotantoprosessin perimmäinen tavoite on päätyä asiakasvaatimuksista asiakasvaatimukset täyttävään (ja tehdyt sopimukset) täyttävään ohjelmistoon Edellämainitun varmistamiseen liittyviä toimenpiteitä kutsutaan yhteisellä nimellä vaatimustenhallinta
Lopputuotteessa on oltava kaikki halutut vaatimukset ja vain ne Käytännössä vaatimustenhallintaan ei ohjelmistokehityksessä kiinnitetä riittävästi huomioita Vaatimustenhallinta voidaan käsittää ja organisoida erillisenä tukitoimintona
Usein vaatimustenhallinnan osa-alueet on sisällytetty muihin ohjelmistotuotannon osa-alueisiin, pääasiassa esitutkimukseen ja määrittelyyn (kartoitus, analysointi ja priorisointi) sekä tuotteen- ja projektinhallintaan (muutosten hallinta) Kehitysprosessin aikana vaatimusten muutoksia pyritään välttämään, mutta kaikkia vaatimuksia ei voi etukäteen tietää osa vaatimuksista muuttuu projektin aikana (ympäristö)
Asiakasvaatimusten muuttuminen tavallista Vaatimukset erilaisia ja ristiriitaisia Vaatimusten kerääminen seuraavaa ohjelmistoversiota varten kestää koko elinkaaren ajan Vaatimustenhallintaan liittyy myös liiketoiminnallisia ulottuvuuksia kustannus/hyöty -analyysi, markkina-analyysit
Asiakasvaatimusten kartoittaminen Pyritään selvittämään kunkin asiakasvaatimuksen perimmäinen syy Tärkeys Sovitetaan yhteen ristiriitaiset asiakasvaatimukset
Syyn etsimisen ongelmana on niiden esittäminen ohjelmistovaatimusten muodossa ”STOP-valon vilkuttava punaisena, kun muistia vähissä” => lisätäänkö piirre ohjelmistoon vai ratkaistaanko muistiongelma jollain muulla tavalla => voidaan esittää ”Miksi?”-kysymyksiä
Vaatimusten verifiointi(todennus) jokaisen vaiheen päättyessä verrataan vaiheen syötedokumentteja tulosdokumentteihin Joka vaiheen tuloksista voitava osoittaa kohdat, jotka toteuttavat tietyn asiakasvaatimuksen = jäljitettävyys Validointi eli kelpoistaminen = toimenpiteet, joilla pyritään osoittamaan, että järjestelmä vastaa asiakasvaatimuksia
Vaatimusmuutosten hallinta Projektissa oltava sovitut menettelyt muutostenhallintaan: esim. ’ohjausryhmä hyväksyy muutokset’ Jäljitettävyyden merkitys: Eteenpäin: miten muutokset vaikuttavat eri vaiheissa Taaksepäin: jos osa ohjelmakoodista jää toteuttamatta, mikä asiakasvaatimus jää toteuttamatta