Vaatimusten hallinta ja vaatimusmäärittely
Vaatimustenhallinta (esitutkinta) Ohjelmistotuotannon perimmäinen tavoite päätyä asiakasvaatimukset täyttävään ohjelmistoon Vaatimustenhallinta huolehtii asiakasvaatimusten synnyttämisestä sekä asiakasvaatimusten käsittelystä kehitysprosessin aikana, ottaen huomioon muutosten mahdollisuus Vaatimustenhallinnan keskeisin tehtävä varmistaa, että lopputuote vastaa asiakkaan vaatimuksia Lopputuotteessa on oltava kaikki halutut ominaisuudet ja vain ne. 25.9.2014 KKA 2
Vaatimustenhallinta tukitoimintana Vaatimustenhallinta hajaantuu käytännössä melkein kaikkiin elinkaaren vaiheisiin. Asiakasvaatimuksiin liittyvät asiat sisältyvät esitutkimukseen ja määrittelyyn tuotantoprosessin alkupäässä, ja tuotteenhallintaan loppupäässä sekä projektinhallintaan koko prosessin ajan. ongelma: muutoksia pitää välttää, mutta kuitenkaan kaikkia tarpeita ei tunnisteta hankkeen alussa. ratkaisu: ketterät menetelmät 25.9.2014 KKA 3
Vaatimustenhallinta tukitoimintana tarve erilliselle vaatimustenhallinnalle korostuu kun asiakasvaatimuksia on paljon ja ne muuttuvat projektin aikana. ohjelmistolla on useita käyttäjiä ja ristiriitaisia vaatimuksia. vaatimusten keruu on koko projektin ajan jatkuvaa jolloin kaikki ideat saadaan talteen muistettava, että ylimääräiset toteutetut ominaisuudet maksavat 25.9.2014 KKA 4
Yleiskuva vaatimustenhallinnasta Keskeisimmät vaatimustenhallinnan osa-alueet ovat asiakasvaatimusten kartoittaminen asiakasvaatimusten analysointi vaatimusten jäljitettävyys vaatimusmuutosten hallinta Vaatimusprosessin eteneminen seuraavassa kuvassa katkeamaton vaatimusten ketju asiakasvaatimuksista toteutettuun järjestelmään vaiheen päätteeksi on aina verifioitava että kaikki vaiheen syötteenä olevat vaatimukset on otettu huomioon 25.9.2014 KKA 5
Asiakasvaatimusten kartoittaminen ja analysointi Tärkeä vaihe Asiakasvaatimuksia kartoitetaan markkinoinnilta, omasta organisaatiosta, tuotteen aikaisempien versioiden käyttäjiltä, prototyyppejä rakentamalla, ja tutkimalla kilpailijoiden tuotteita Alustavat asiakasvaatimukset analysoidaan hyvin Asiakasvaatimuksia analysoimalla pyritään selvittämään kunkin asiakasvaatimuksen tarve arvioimaan kunkin vaatimuksen tärkeys (priorisointi) sovittamaan yhteen ristiriitaiset vaatimukset 25.9.2014 KKA 6
Monta näkökulmaa vaatimuksiin riippumatta käytettävästä tavasta oleellista on kerätä ja analysoida vaatimuksia (viewpoint oriented elicitation) monesta eri näkökulmasta kaikilta intressiryhmiltä 25.9.2014 KKA 7
Vaatimusten kerääminen asiakasvaatimukset kerätään usein informaaleissa asiakasneuvotteluissa ( ME vastaan HE mentaliteetti) menetelmiä tähän on kuitenkin kehitetty, FAST (Facilitated Application Specification Technique) QFD (Quality Function Deployment) 25.9.2014 KKA 8
FAST FAST-ohjeistukset osallistujien on oltava läsnä koko palaverissa osallistujina on sekä asiakkaan että toimittajan edustajia osallistujat ovat tasavertaisia palaverissa on oltava suunniteltu esityslista 25.9.2014 KKA 9
QFD QFD on menetelmä, joka pyrkii maksimoimaan asiakkaan tyytyväisyyden keskittyy ymmärtämään mikä on asiakkaalle arvokasta kolme vaatimustyyppiä normal requirements selkeitä asiakkaan vaatimuksia expected requirements vaatimuksia, joita ei ehkä mainita, mutta joiden puute romuttaa asiakastyytyväisyyden exciting requirements toimittajan näkemykseen ja osaamiseen perustuvat toiminnot, joita asiakas ei osaa pyytää 25.9.2014 KKA 10
Vaatimusten analysointi Analysoinnin tuloksena alustavat vaatimukset muuttuvat, niitä yhdistellään ja löydetään kokonaan uusia vaatimuksia Analysoidut vaatimukset voidaan ryhmitellä ja numeroida, jolloin niihin voidaan viitata muista dokumenteista Kustakin vaatimuksesta lisäksi: perustelut, prioriteetti, liittymät muihin vaatimuksiin, mistä vaatimus on peräisin voidaan analysoida myös vaatimuksen muutosherkkyyttä huom! Ketterät menetelmärt 25.9.2014 KKA 11
Yhteenveto vaatimustenhallinnasta Vaatimustenhallintaan kuuluu toteutettavuustutkimus vaatimusten kerääminen analyysi vaatimusten- ja muutoksenhallinta. Vaatimusten analyysi on iteratiivista toimintaa, johon kuuluu luokittelu priorisointi ristiriitojen selvitys validointi Systeemeillä on monia intressiryhmiä. joilla on erilaiset vaatimukset. Vaatimusten analysoinnissa ja täsmentämisessä tarkistetaan validius, ristiriidattomuus, täydellisyys, realismi ja todennettavuus. 25.9.2014 KKA 12
Yhteenveto vaatimustenhallinnasta Asiakasvaatimuksiin tulee muutoksia viimeistään ylläpidon aikana, tavallisesti jo kehitysprosessin kuluessa Syitä muutoksiin väärin ymmärretyt vaatimukset unohdetut vaatimukset vääräksi tai turhiksi osoittautuvat vaatimukset projektin viivästyessä tehty vaatimusten priorisointi markkinatilanteen nopea muuttuminen epäonnistuneet teknologiavalinnat Toiminnalliset vaatimukset voidaan kuvata käyttötapauskaavioiden avulla Vaatimustenhallinta kokonaisuudessaan on tukitoiminto joka pitää suunnitella hyvin ja noudattaa kurinalaisesti. 25.9.2014 KKA 13
Vaatimusmäärittely + ohjelmistuotanto 25.9.2014 KKA 14
25.9.2014 KKA 15
25.9.2014 KKA 16
Vaatimus/määrittelyvaiheen runko 25.9.2014 KKA 17
25.9.2014 KKA 18
25.9.2014 KKA 19
25.9.2014 KKA 20
25.9.2014 KKA 21
25.9.2014 KKA 22
25.9.2014 KKA 23
25.9.2014 KKA 24
25.9.2014 KKA 25
25.9.2014 KKA 26
25.9.2014 KKA 27
25.9.2014 KKA 28
25.9.2014 KKA 29
25.9.2014 KKA 30
25.9.2014 KKA 31
25.9.2014 KKA 32
25.9.2014 KKA 33
25.9.2014 KKA 34
25.9.2014 KKA 35
25.9.2014 KKA 36
Vaatimusmäärittely Toiminnalliset vaatimukset järjestelmän ominaisuuksiin ja niihin liittyviin toimintoihin liittyvät vaatimukset Toiminnallinen määrittely Ei-toiminnalliset vaatimukset suorituskykyvaatimukset tietoturvavaatimukset lokalisointivaatimukset käytettävyysvaatimukset ylläpitovaatimukset 25.9.2014 KKA 37
Vaatimusmäärittely Jokaisen vaatimuksen on oltava virheetön (correct) asiakkaan käsityksen mukaisia todentaminen vaikeaa ristiriidaton (consistent) realistinen (realistic) toteutuskelpoisuus suhteessa järjestelmän ympäristön ja sidosryhmien asettamiin rajoitteisiin ja mm. suorituskykyyn tarpeellinen (needed) priorisointi, luokittelu todellinen tarve ei usein käy ilmi asiakaan haastatteluista sovellusaluetuntemus avainasemassa 25.9.2014 KKA 38
Vaatimusmäärittely Jokaisen vaatimuksen on oltava todennettavissa (verifiable) vaatimuksen toteutuminen tuotteessa tulee olla todennettavissa toiminnallisten vaatimusten osalta voidaan joka vaiheen tuloksesta osoittaa ne kohdat, jotka toteuttavat tietyn vaatimuksen jäljitettävissä (traceable) eteenpäin jäljitettävyys: asiakasvaatimus voidaan jäljittää toteutukseen saakka taaksepäin jäljitettävyys: koodimodulit voidaan jäljittää asiakasvaatimuksiin asti ei-toiminnalliset vaatimukset ja rajoitteet eivät yleensä ole jäljitettäviä, ominaisuus hajoaa kaikkialle toteutukseen 25.9.2014 KKA 39
Vaatimusten jäljitettävyys Jäljitettävyys (traceability): työkalu, jonka avulla jokaisessa vaiheessa voidaan todeta, että tuote täyttää kaikki asiakasvaatimukset (eteenpäin jäljitettävyys) ja vain ne (taaksepäin jäljitettävyys) eteenpäin jäljitettävyys: yksittäisestä asiakasvaatimuksesta voidaan päätellä, mitkä toiminnallisessa määrityksessä kuvatut ohjelmistovaatimukset täyttävät ko. vaatimuksen, edelleen mitkä osat teknisessä määrittelyssä toteuttavat ko. toiminnot taaksepäin jäljitettävyys: Yksittäisestä koodimodulista lähtien voidaan päätellä sen liittyminen aikaisempien vaiheiden vaihetuotteisiin aina asiakasvaatimuksiin asti Jäljitettävyysmatriisi Vaatimustenhallintaohjelmisto 25.9.2014 KKA 40
Vaatimusten priorisointi Priorisointi tehdään liiketoimintaa ajatellen Priorisointi on apuna, kun päätetään, mitkä ominaisuudet otetaan mukaan ohjelmiston seuraavaan versioon ja mitkä voidaan jättää toteutettavaksi myöhemmin Esimerkkejä prioriteeteista: välttämätön, toivottu, valinnainen, siirretty, hylätty Priorisoinnista apua tilanteissa, jossa aikataulupaineiden takia joudutaan karsimaan toteutettavia ominaisuuksia 25.9.2014 KKA 41
25.9.2014 KKA 42
25.9.2014 KKA 43
25.9.2014 KKA 44
25.9.2014 KKA 45
25.9.2014 KKA 46
25.9.2014 KKA 47
25.9.2014 KKA 48
25.9.2014 KKA 49
25.9.2014 KKA 50
25.9.2014 KKA 51
25.9.2014 KKA 52
25.9.2014 KKA 53
25.9.2014 KKA 54
25.9.2014 KKA 55
25.9.2014 KKA 56
25.9.2014 KKA 57
25.9.2014 KKA 58
25.9.2014 KKA 59
Määrittelyn Yhteenveto mallina tiedot (tietoalkiot) määrittele tietoalkiot kuvaile tietoalkioiden ominaisuudet (eli attribuutit) määrittele tietoalkioiden suhteet mallinna toiminnot tunnista toiminnot, jotka muuttavat tietoalkioita kuvaa miten tieto virtaa järjestelmässä kuvaa tiedon tuottajat ja käyttäjät mallinna käyttäytyminen tunnista järjestelmän eri tilat kuvaa mitkä tapahtumat aikaansaavat tilasiirtymät osita mallit hierarkisuus, abstraktio, projisointi täsmennä tietoalkioita luo toimintojen hierarkia esitä käyttäytyminen osajärjestelmissä tarkemmalla tasolla 25.9.2014 KKA 60
UML (Unified Modeling Language) kuvauskieli, jolla voidaan mallintaa järjestelmän rakenne ja toiminnallisuudet yritys- tai projektitasolla täytyy sopia kuinka UML:ää käytetään kaaviotyyppejä, esim: käyttötapauskaaviot luokkakaaviot tilasiirtymäkaaviot viestikaaviot 25.9.2014 KKA 61
Avainkohtia perinteiset menetelmät vs. oliomenetelmät perustavoitteet ovat aivan samat käytetään paljolti samoja kuvaustekniikoita pohjautuvat pitkälti UML-standardiin oliomenetelmissä todellisuuden ja mallin vastaavuus pyritään pitämään yksinkertaisena samarakenteisuus! mallintaminen on todellisuuden yksinkertaistamista ja haluttujen näkökulmien korostamista. 25.9.2014 KKA 62
25.9.2014 KKA 63
25.9.2014 KKA 64
25.9.2014 KKA 65
25.9.2014 KKA 66
25.9.2014 KKA 67
25.9.2014 KKA 68
25.9.2014 KKA 69
25.9.2014 KKA 70
25.9.2014 KKA 71
25.9.2014 KKA 72
25.9.2014 KKA 73
25.9.2014 KKA 74
25.9.2014 KKA 75
25.9.2014 KKA 76
Aihe? Verkkokauppa lennokkinäyttelyn ilmoittautumisjärjestelmä, ATK-luokan laitteiden ylläpitojärjestelmä urheiluseuran kisajärjestelmä ATK-luokkien vikatiedotusjärjestelmä kirjaston lainausjärjestelmä, 25.9.2014 KKA 77
Aihe? työtuntien seurantajärjestelmä Kurssin läsnäolojärjestelmä urheiluseuran harjoituspäiväkirja työntekijöiden ansioluettelo järjestelmä järjestön jäsenrekisteri tai oma vapaavalintainen (hyväksytettävä Kimmolla) 25.9.2014 KKA 78