Mikä on ei-toiminnallinen vaatimus ohjelmistosuunnittelussa?
⚡ Älykäs yhteenveto
Ei-toiminnalliset vaatimukset määrittelevät laatuominaisuuksia, kuten suorituskyvyn, turvallisuuden, käytettävyyden, luotettavuuden, skaalautuvuuden ja siirrettävyyden. Ne määrittelevät, kuinka hyvin ohjelmistojärjestelmän on toimittava, ja muuttavat epämääräiset odotukset mitattaviksi, testattaviksi ja täytäntöönpanokelpoisiksi suunnittelutavoitteiksi koko toimitussyklin ajan.
Mikä on ei-toiminnallinen vaatimus?
A Ei-toiminnallinen vaatimus (NFR) määrittelee ohjelmistojärjestelmän laatuominaisuuden. NFR:t arvioivat järjestelmää reagointikyvyn, käytettävyyden, turvallisuuden, siirrettävyyden ja muiden menestyksen kannalta kriittisten laatuominaisuuksien perusteella. Yleinen esimerkki ei-toiminnallisesta vaatimuksesta on "Kuinka nopeasti verkkosivusto latautuu?" Ei-toiminnallisten vaatimusten täyttämättä jättäminen tuottaa järjestelmiä, jotka turhauttavat käyttäjiä.
Ohjelmistosuunnittelun ei-toiminnalliset vaatimukset asettavat rajoituksia järjestelmän suunnittelulle ketterän kehitystyön aikana. Esimerkiksi sivuston tulisi latautua kolmessa sekunnissa, kun samanaikaisten käyttäjien määrä ylittää 10 000. Ei-toiminnallisten vaatimusten kuvaaminen on aivan yhtä tärkeää kuin toiminnallisten vaatimusten tallentaminen.
Ei-toiminnallisten vaatimusten tyypit
Ei-toiminnallisten vaatimusten pääluokat ovat:
Ei-toiminnallisten vaatimusten tyypit
- Käytettävyys
- huollettavuus
- hallittavuus
- Palautettavuus
- Turvallisuus
- Päiväys Integrity
- Koko
- Saatavuus:
- skaalautuvuus
- Interoperability
- Luotettavuus
- ylläpidettävyys
- Sääntelyn noudattaminen
- Ympäristön rajoitukset
Esimerkkejä ei-toiminnallisista vaatimuksista
Tässä on käytännön esimerkkejä ei-toiminnallisista vaatimuksista:
- Käyttäjien on vaihdettava alkuperäinen salasana ensimmäisen onnistuneen kirjautumisen jälkeen, eikä alkuperäistä salasanaa saa koskaan käyttää uudelleen.
- Työntekijöiden ei saa päivittää omia palkkatietojaan, ja kaikista tällaisista yrityksistä on ilmoitettava turvallisuuspäällikölle.
- Jokainen käyttäjän epäonnistunut yritys käyttää tietoalkiota on kirjattava lokitietoon.
- Verkkosivuston tulee tukea 20 miljoonaa samanaikaista käyttäjää hidastamatta vasteaikoja.
- Ohjelmiston tulee olla kannettava, jotta siirtyminen käyttöjärjestelmästä toiseen ei aiheuta ongelmia.
- Tietosuojan, rajoitettujen teknologioiden viennin ja immateriaalioikeuksien on oltava auditoitavissa.
Toiminnalliset vs. ei-toiminnalliset vaatimukset
Toiminnallisten ja ei-toiminnallisten vaatimusten tärkeimmät erot ovat:
| parametrit | Toiminnallinen vaatimus | Ei-toiminnallinen vaatimus |
|---|---|---|
| Mikä se on? | Verbi | Ominaisuudet |
| Vaatimus | Se on pakollinen | Se ei ole pakollista |
| Kaappaustyyppi | Se on tallennettu käyttötapaukseen. | Se on kuvattu laatumääritteeksi. |
| Lopputulos | Tuotteen ominaisuus | Tuotteen ominaisuudet |
| Kaappaaminen | Helppo vangita | Vaikea vangita |
| Tavoite | Auttaa sinua varmistamaan ohjelmiston toimivuuden. | Auttaa sinua tarkistamaan ohjelmiston suorituskyvyn. |
| Tarkennusalue | Keskity käyttäjän tarpeisiin | Keskittyy käyttäjän odotuksiin. |
| Dokumentaatio | Kuvaile, mitä tuote tekee | Kuvaa, miten tuote toimii |
| Testin tyyppi | Toiminnallinen testaus kuten järjestelmä-, integraatio-, kokonaisvaltainen testaus, API-testaus jne. | Ei-toiminnallinen testaus, kuten suorituskyky, stressi, käytettävyys, tietoturvatestaus jne. |
| Testin suorittaminen | Testin suoritus suoritetaan ennen ei-toiminnallista testausta. | Toimintatestin jälkeen |
| tuotetiedot | Ominaisuudet | Tuotteen ominaisuudet |
Ei-toiminnallisten vaatimusten edut
Tärkeimmät edut Ei-toiminnallinen testaus ovat:
- Ei-toiminnalliset vaatimukset varmistavat, että järjestelmä noudattaa lakisääteisiä ja vaatimustenmukaisuussääntöjä.
- Ne suojaavat järjestelmän luotettavuutta, saatavuutta ja suorituskykyä.
- Ne tarjoavat hyvän käyttökokemuksen ja helppokäyttöisyyden.
- Ne muokkaavat ohjelmiston tietoturvapolitiikkaa.
Ei-toiminnallisten vaatimusten haitat
Ei-toiminnallisten vaatimusten yleisiä haittoja ovat:
- Ei-toiminnalliset vaatimukset voivat vaikuttaa useisiin korkean tason ohjelmistoalijärjestelmiin.
- Ne vaativat erityistä huomiota arkkitehtuurin ja korkean tason suunnittelun aikana, mikä lisää kustannuksia.
- Toteutus harvoin liittyy yhteen ohjelmistoalijärjestelmään.
- Niitä on vaikea muokata, kun arkkitehtuurivaihe on valmis.
FURPS+-malli ei-toiminnallisten vaatimusten luokitteluun
FURPS+ on laajimmin käytetty ei-toiminnallisten vaatimusten taksonomia. Alun perin Hewlett-Packardin kehittämä se ryhmittelee laatuominaisuudet viiteen pääluokkaan sekä lisärajoituksiin, jotka on merkitty plussalla (+). Malli auttaa liiketoiminta-analyytikoita välttämään kokonaisen vaatimusluokan huomiotta jättämisen.
- Toimivuus: Perusominaisuuksia laajempi ominaisuusvalikoima, turvallisuus ja uudelleenkäytettävyys.
- Käytettävyys: Inhimilliset tekijät, estetiikka, johdonmukaisuus, dokumentointi ja käyttäjäkokemuksen reagointikyky.
- Luotettavuus: Saatavuus, keskimääräinen vikaantumisväli, toipuvuus, ennustettavuus ja tarkkuus.
- Suorituskyky: Nopeus, läpäisykyky, kapasiteetti, skaalautuvuus ja resurssien kulutus kuormituksen aikana.
- Tuettavuus: Toimitetun järjestelmän testattavuus, joustavuus, asennettavuus, lokalisoitavuus ja ylläpidettävyys.
- Plussa (+): Suunnittelu, toteutus, rajapinta ja fyysiset rajoitteet, kuten vaaditut alustat, standardit tai laitteistot.
Tiimit, jotka kartoittavat kaikki ei-toiminnalliset vaatimukset FURPS+-kategoriaan, toimittavat epätodennäköisemmin järjestelmän, joka täyttää ominaisuudet, mutta epäonnistuu suorituskyvyn, turvallisuuden tai ylläpidettävyyden osalta.
Testattavien ei-toiminnallisten vaatimusten kirjoittaminen
Hyvin kirjoitettu ei-toiminnallinen vaatimus on mitattavissa, todennettavissa ja ajallisesti sidottu. Epämääräiset lausunnot, kuten "järjestelmän on oltava nopea" tai "sovelluksen tulee olla turvallinen", ovat pyrkimyksiä, eivät vaatimuksia. Noudata alla olevia ohjeita muuntaaksesi aikomuksen testattavaksi ei-toiminnalliseksi vaatimukseksi.
- Tunnista laatuominaisuus. Yhdistä huolenaihe FURPS+-kategoriaan, jotta tiimi tietää, onko kyseessä suorituskyky-, käytettävyys-, tietoturva- vai luotettavuusvaatimus.
- Valitse mittari. Jokainen NFR tarvitsee yksikön – millisekunteja, pyyntöjä sekunnissa, samanaikaisia käyttäjiä, käyttöajan prosenttiosuutta tai vaatimustenmukaisuusstandardin, kuten ISO 27001.
- Aseta numeerinen kynnysarvo. Korvaa ”nopea” sanalla ”alle 400 millisekuntia 95. persentiilillä”. Korvaa ”erittäin käytettävissä” sanalla ”99.9 prosentin kuukausittainen käyttöaika”.
- Kuvaile ehtoa. Ilmoita kuormitus, ympäristö tai käyttäjäsegmentti, johon kynnysarvo koskee, kuten "huippumyynnin aikana, kun samanaikaisia käyttäjiä on 10 000".
- Määrittele vahvistusmenetelmä. Huomioi testityyppi – kuormitustesti, tunkeutumistesti, kaaoskoe, saavutettavuustarkastus – ja työkalu, joka vahvistaa kynnysarvon.
- Käytä SMART-tarkistusta. Varmista, että vaatimus on spesifi, mitattava, saavutettava, relevantti ja aikasidonnainen, ennen kuin se siirtyy tilausjonoon.
Esimerkki uudelleenkirjoittamisesta: ”Järjestelmän on oltava nopea” muotoutuu muotoon ”Kassasivun on vastattava alle 500 millisekunnissa 95. persentiilillä 5 000 samanaikaisella käyttäjällä, mikä on varmistettu” JMeter kuormitustestaa jokaisen julkaisun." Tarkistettu lausunto antaa kehittäjille mahdollisuuden suunnitella sen, testaajille tarkistaa sen ja tuoteomistajille hyväksyä sen ilman vastaväitteitä.


