Toiminnallinen vaatimus (Functional Requirement)

Kuvauksen kirjoitti: Marika Näivö, L8343

Lyhyt kuvaus käsitteestä tai aiheesta

Toiminnallisten vaatimusten (functional requirements) löytäminen on osa vaatimusmäärittelyä.

Vaatimukset on jaettu perinteisesti kahteen luokkaan: toiminnallisiin ja ei-toiminnallisiin vaatimuksiin.

Kysymys ”mitä tekee” kuvaa toiminnallisia vaatimuksia vastaten kysymykseen mitä palveluja tuleva ohjelmisto tarjoaa. Toiminnallisuus tarkoittaa tuotteessa olevia toimintoja. Toiminnallisten vaatimuksien kohdassa vaatimusmäärittelydokumentissa määritellään kaikki ne asiat, joita lopputuloksen syntyvän ohjelmiston tulee käytännön näkökulmasta pitää sisällään ja miten ohjelmiston tulee toimia.

Toiminnallinen vaatimus on vaatimus, jolla määritellään lopputuotteen käyttäytymistä tai toiminnallisuutta ja voi olla käyttäjän tai järjestelmän asettama vaatimus. Toimintoja kuvataan tavallisesti syötteiden ja tulosteiden kautta. Tarkoitus ei ole keskittyä ohjelmiston sisäisiin toimintoihin, vaan nimenomaan niihin tilanteisiin, joissa reagoidaan ulkopuolelta tuleviin tapahtumiin.

Toiminnallisia vaatimuksia tarkastellaan näkökulmasta, jossa pohditaan millä tavoin suunnittelussa oleva ohjelmisto vaikuttaa ympäristössä, jossa se tulee aikanaan toimimaan. Esimerkiksi jonkin laitteen valvontaohjelmisto lähettää pyydettäessä omasta tilasta kertovan raportin.

Toiminnallisiin vaatimuksiin voidaan liittää myös ehtoja tilaan, joka on oltava olemassa, ennen kuin jokin toiminto tehdään. Esimerkiksi edellä mainitun laitteen valvontaohjelmisto varmistaa, että laitteen kapasiteetti on jollain tietyllä tasolla, ennen kuin jokin osa kytketään päälle tai pois päältä.

Mahdollisimman nopeaan prosessiin pyrkiminen ja ketterä kehitys voi vaikuttaa vaatimusmäärittelyyn niin, että sitä voidaan tehdä ”kevennetysti”, annetaan asiakkaan kertoa itse vaatimuksia vain pienellä niihin kohdistuvalla arvioinnilla, määrittelyllä ja laadunvarmistuksella ottaen ne sitten mukaan vaatimuksiin. Tai jopa jättäen arviointiin, määrittelyihin ja laadunvarmistuksiin liittyvät vaiheet kokonaan väliin eli käytännössä luottaen asiakkaan osaamiseen hoitaa asia. Tästä saattaa aiheutua haasteita myöhemmin, esimerkiksi testauksen kannalta, koska testitapaukset vaativat tarkkoja määrittelyjä. Asiakas harvoin osaa antaa täydelliset ohjelmiston kehittämisen näkökulmasta toiminnalliset vaatimukset heti, yhtenäisinä ilman ristiriitoja ja oikeasti toimivassa tärkeysjärjestyksessä.

Apua toiminnallisten vaatimuksien määrittelyyn voi saada sovellukseen liittyvän toimialan asiantuntijoilta (käyttäjä, joka tuntee aiheen hyvin), tietohallinnon asiantuntijoilta (standardien mukaisesti tehty kuvaus, esim. UML) tai vaikkapa ulkopuoliselta konsultilta.

Toiminnallisten vaatimusten löytämisessä voi käyttää apuna prototyypin tekemistä, mistä on parhaimmillaan paljon apua. Tulevaan ohjelmistoon liittyvien eri sidosryhmien ja nimenomaan sidosryhmiin liittyvien toiminnallisten vaatimusten löytyminen voi suuresti helpottua prototyyppiä käyttämällä.

Ei-toiminnalliset vaatimukset ja toiminnalliset vaatimukset ovat eri vaatimustyyppejä. Näiden välillä voi olla luonnostaan tästä johtuen ristiriitoja: Tärkeä vaatimus toisen vaatimustyypin listalla voi olla ristiriidassa toisen vaatimustyypin listassa olevan vaatimuksen kanssa.

Toiminnallisuuteen liittyviä vaatimuksia kuvataan ensisijaisesti toimintaprosessien näkökulmasta, koska on pystyttävä hahmottamaan kokonaisuuksia ja käyttötapauksina (toimintojen hahmottaminen).

Prosessien kuvauksissa, jotka ovat syntyneet esiselvitys- ja vaatimusmäärittelyvaiheessa on oltava kaikki ne sovelluksen osat, koska niiden pohjalta luodaan toiminnalliset vaatimukset.

Järjestelmän toiminnallisuuden kuvaamiseen selkeä tekniikka on käyttötapauskaavio, jolla kuvataan käyttäjän ja järjestelmän välistä vuorovaikutusta. Kaavioissa tulee kuitenkin muistaa, että ne ovat yleisellä tasolla asioita kuvaavia ja vaativat tueksi tarkempia määrittelyjä. Toiminnallisiin vaatimuksiin liittyviä avainsanoja käyttötapauksiin liittyen: Tunnistaminen, kuvaaminen, dokumentointi, kommunikointi ja haltuunotto käyttötapausten avulla.

Tietoturvan kannalta vaatimukset voivat olla toiminnallisia tai ei-toiminnallisia. Kun vaatimus liittyy tietoturvaan ja on toiminnallinen vaatimus, on kyseessä tietoturvan varmistamiseen liittyvä asia. Esimerkiksi tunnistautuminen kirjautumisen yhteydessä, kun tiettyjen tietojen on oltava vain haluttujen henkilöiden käytössä. Tietoturvaan liittyvien vaatimusten löytämisessä käytetään riskien käsittelyyn liittyvää suunnitelmaa, jonka tulisi olla laadittu aiemmin.

Lähteitä liittyen aiheeseen

Linkit wikin muihin sivuihin