Vaatimustenhallinta Asiakasvaatimusten hallinnan tarkoitus on analysoida ja priorisoida kerätyt asiakasvaatimukset sekä hallita niitä ohjelmistokehityksen eri vaiheissa. Olennaista on jäljitettävyys: on oltava dokumentoitu katkeamaton ketju asiakasvaatimuksista järjestelmän toteutukseen - koodiin ja päinvastoin. Hallintaa monimutkaistaa se, että yksittäinen asiakasvaatimus saattaa näkyä monissa eri osissa järjestelmän toteutusta ja vastaavasti toteutettu osio perustua moneen eri asiakasvaatimukseen. Tässä luvussa tarkastellaan asiakasvaatimusten kartoittamista, analysointia, verifiointia, validointia ja jäljitettävyyttä sekä muutosten hallintaa. Exit
Sisällys Vaatimustenhallinta Vaatimusten hallinta erillisenä tukitoimintona vaatimustenhallinta Asiakasvaatimusten kartoitus ja analysointi asiakasvaatimusten kartoitus ja analysointi Vaatimusten verifiointi, validointi ja jäljitettävyys vaatimusten verifiointi, validointi ja jäljitettävyys Vaatimusmuutosten hallinta Jäljitettävyysmatriisi Hallittu muutosprosessi Kertauskysymykset Vaatimustenhallinta
Vaatimustenhallinta No No matter where you you are are in in the the system development life life cycle, the the system will will change, and and the the desire to to change will will persist through the the life life cycle Bersoff et et al. al. 980 The The top top five five causes for for poor poor cost cost estimation all all relate to to the the requirements process.. Frequent requirement changes.. Missing requirements 3. 3. Insufficient communication with users 3. 3. Poor Poor specification of of requirements 4. 4. Insufficient analysis Lederer & Prasad, 99 Vaatimustenhallinta 3
Vaatimusten hallinta erillisenä tukitoimintona ohelmistoprojektin tavoitteena on saada asiakasvaatimukset täyttävä järjestelmä vaatimustenhallinta: toiminnot, joilla em. tavoitteen saavuttaminen pyritään varmistamaan ottaen huomioon muutosten mahdollisuus (todennäköisyys) sisältyy eri vaiheisiin (tukiprosessin luonteiset toiminnot eri vaiheissa muodostavat vaatimustenhallinnan kokonaisuuden) Vaatimustenhallinta 4
vaatimustenhallinta paradoksi vaatimuksiin kohdistuvia muutoksia on pyrittävä välttämään kehitysprosessissa kaikkia vaatimuksia ei voida tuntea ja ymmärtää etukäteen vaatimusten jäädytys, hallittu vaatimusten muutosprosessi ristiriitaiset vaatimukset vaatimukset ovat olemassa toteutus on kompromissi (valinta, priorisointi) tuotteen kehittyminen elinkaaressa - jatkuva uusien vaatimusten keruu seuraavaa versiota varten varautuminen myös tuleviin tarpeisiin tärkeää (ennakointi; vaikutukset arkkitehtuuriin ja toteutukseen) vaatimukset -> järjestelmän ominaisuudet -> toteutetut piirteet (katkeamaton jäljitettävissä oleva ketju vaatimuksista järjestelmään) Vaatimustenhallinta
vaatimustenhallinta Alustavat asiakasvaatimukset Vaatimustenhallinta: kartoitus, analysointi, jäljitettävyys, muutokset Vaatimukset Kelpuutetut Myöhempään versioon Toiminto Toiminto 3 8 7 6 Toiminto 3 Hylätty 4 Analysoidut vaatimukset ominaisuus ominaisuus Ohjelmistovaatimukset: Järjestelmän toiminnallinen määrittely Hallitut muutokset moduuli a moduuli b moduuli c moduuli e moduuli f moduuli d Järjestelmän tekninen määrittely Toteutettu järjestelmä Verifiointi:Vaatimusten Verifiointi:Vaatimusten toteutuminen toteutuminen vaiheesta vaiheesta toiseen toiseen siirryttäessä siirryttäessä Validointi: Validointi: Toteutettu Toteutettu järjestelmä järjestelmä vastaa vastaa asiakkaan asiakkaan tarpeita tarpeita Jäljitettävyys: Jäljitettävyys: dokumentoitu dokumentoitu aukoton aukoton ketju ketju vaatimuksista vaatimuksista järjestelmään järjestelmään ja ja päinvastoin päinvastoin Vaatimustenhallinta 6
Asiakasvaatimusten kartoitus ja analysointi Vaatimusmuutokset säteilevät muutoksia koko ohjelmistotyöhön (muutosten hinta!) Asiakasvaatimusten kartoitus markkinointi kerää, omassa organisaatiossa ideoidaan, asiakaspalaute, prototyypeistä saadut kokemukset, aivoriihityö, tutkimalla kilpailijoiden tuotteita, toiveiden erottaminen todellisista tarpeista käyttötapauksien käyttö asiakasvatimusten kuvaamisessa» kuvaukset käyttäjien tyypillisistä tavoista käyttää järjestelmää» määrittelyn liitos järjestelmän käyttöympäristöön Vaatimustenhallinta 7
asiakasvaatimusten kartoitus ja analysointi Asiakasvaatimusten analysointi selvitetään asiakasvaatimuksen todellinen tarve arvioidaan sen tärkeys (prioriteetti) ristiriitaisten vaatimusten sovittaminen yhteen asiakasvaatimusten esittämismuodon ja perimmäisen syyn (miksi vaatimus on tärkeä) selvittäminen (asiakasvaatimus saattaa näkyä ohjelmistovaatimuksena) priorisointiluokat: välttämätön, toivottu, valinnainen myös tarpeen stabiilisuus, kiireellisyys, jne. vaikuttavat priorisointiin Asiakasvaatimus: Asiakasvaatimus: asiakkaan tarpeen tyydyttävä toiminnallisuus Ohjelmistovaatimus: asiakkaan Ohjelmistovaatimus: asiakasvaatimuksen tarpeen tyydyttävä asiakasvaatimuksen toteutumisen toiminnallisuus toteutumisen ilmentymä ilmentymä ohjelmiston ohjelmiston toiminnassa toiminnassa Exit /04/00 Vaatimustenhallinta 8
asiakasvaatimusten kartoitus ja analysointi ristiriidat vaatimusten kesken sekä järjestelmässä jo olevien ominaisuuksien kanssa ratkaistaan analysointi saattaa johtaa vaatimusten muuttumiseen, niitä saatetaan yhdistellä ja myös uusia vaatimuksia saattaa löytyä vaatimusten muutosherkkyyden arviointi vaikuttaa toteutustapaan (ohjelmistoarkkitehtuuri) riskien arviointia tukeva menettely on tarpeen vaikuttaa myös käytettävän kehitysmallin valintaan (stabiili - vesiputous, muutosherkkä - prototyypitys tai EVO) "Clients "Clientscan can only only tell tell us us what what they they want want when when they they see see it" it" Requirements Requirements Gathering Gathering Folclore Folclore Vaatimustenhallinta 9
Vaatimusten verifiointi, validointi ja jäljitettävyys asiakasvaatimukset luovat pohjan kehitystyölle asiakasvaatimus voi kuvautua määrittelyyn moneksi toiminnoksi yksi toiminto (määrittelyssä) voi perustua moneen asiakasvaatimukseen verifiointi (todennus): kussakin vaiheessa tarkastetaan vaatimusten toteutuminen vertaamalla tulosdokumenttia syötedokumentteihin dokumentoitu verifiointiin perustuva ketju asiakasvaatimuksista toteutettuun toimintoon mahdollistaa jäljitettävyyden Vaatimustenhallinta 0
vaatimusten verifiointi, validointi ja jäljitettävyys jäljitettävyys eteenpäin: asiakasvaatimuksesta liikkeelle lähtien osoitettavissa oleva ketju toiminnallisen määrittelyn toimintoon, teknisen määrittelyn toimintoon ja edelleen ohjelmakoodiin taaksepäin: koodimoduulista liikkeelle lähtien osoitettavissa oleva ketju aina asikasvaatimuksiin saakka tarvitaan erityisesti järjestelmän ylläpidossa laatujärjestelmälähtöiset toimintatavat Vaatimustenhallinta
vaatimusten verifiointi, validointi ja jäljitettävyys jäljitettävyyttä tukevia menettelytapoja ovat mm. kattava dokumentointijärjestelmä jäljitettävyysmatriisi: vaiheen n vaatimusten kuvautuminen vaiheen n+ vaatimuksiksi apuvälinetuki, esim.» Rational RequisitePro, QSS:n DOORS ei-toiminnallisten ominaisuuksien ja reunaehtojen jäjitettävyyden osoittaminen ei yleensä ole tarpeellista validointi (kelpoistaminen) tutkitaan että järjestelmä vastaa asiakkana tarpeita» validointi = todellisten asiakastarpeiden ja sovittujen (toteutettujen) asiakastarpeiden välinen verifiointi käyttäjätestit (useita erilaisia käytäntöjä) Vaatimustenhallinta
Jäljitettävyysmatriisi Toim./ As.vaat. T T T3 x x x x Esimerkkimatriisi asiakasvaatimusten hallinnan kuvauksesta Vaatimustenhallinta 3
Vaatimusmuutosten hallinta muutosten syitä kaikkia asiakasvaatimuksia ei alussa ymmärretä kaikkia vaatimuksia ei huomata ohjelmiston toimintaympäristössä tapahtuvat muutokset jokin järjestelmän ominaisuus osoittautuu käyttökelvottomaksi jokin ominaisuus päätetään jättää toteuttamatta markkinatilanteen muuttuminen teknologiamuutokset ja kokemukset käytettävästä teknologiasta hallittu muutosprosessi muutokset tehdään hallitussa muutosprosessissa, jossa muutos järjestelmään hyväksytään samankaltaisella menettelyllä kuin kohdekin on hyväksytty» jäljitettävyys: dokumentti -> muutosta koskeva hyväksytty muistio -> muutettu dokumentti muutosten vaikutukset tuotteen sisällä / tuotteen ympäristöön arvioitava aina muutosta tehtäessä Vaatimustenhallinta 4
Hallittu muutosprosessi Muutostarve Muutostarve Jäädytetty Jäädytetty asiakasvaatimus asiakasvaatimus (vaihetuote) (vaihetuote) Muutoksenhallinta Hylätty muutos Hyväksytty muutos Muutettu Muutettu asiakasvaatimus asiakasvaatimus (vaihetuote) (vaihetuote) Muutoksenhallinta: Muutoksenhallinta: -muutostarpeen -muutostarpeen analysointi analysointi (vaikutukset) (vaikutukset) -muutoksen -muutoksen hyväksyminen hyväksyminen // hylkääminen hylkääminen -muutoksen -muutoksen suunnittelu suunnittelu -muutoksen -muutoksen toteutus toteutus ja ja integrointi integrointi -muutetun -muutetun kohteen kohteen hyväksyminen hyväksyminen (jäädytys) (jäädytys) Vaatimustenhallinta
Kertauskysymykset Mitä tarkoitetaan vaatimustenhallinnalla ja mihin ohjelmistotyön vaiheisiin se sisältyy. Mitä tarkoitetaan eteen- ja taaksepäin jäljitettävyydellä ohjelmiston kehitystyössä. Miten nämä jäljitettävyyden muodot toteutuvat. Vaatimusten analysointi osana vaatimusten hallintaa. Millä tavalla vaatimusmuutokset toteutetaan hyvin hoidetussa projektissa. Mitä ovat käyttötapaukset. Mitä merkitystä on vaatimusten muutosherkkyyden arvioinnilla osana vaatimustenhallintaa. Mitä tarkoitetaan verifioinnilla vaatimustenhallinnan yhteydessä. Miten toteutetaan eitoiminnallisten ominaisuuksien jäljitettävyys vaatimustenhallinnassa. Kuvaa hallitun muutosprosessin eteneminen. Miten se tukee jäljitettävyyttä. Vaatimustenhallinta 6