Vaatimusmäärittelyt. Luennon tavoitteista. Motivointia. Haikala ja Märijärvi, Ohjelmistotuotanto

Samankaltaiset tiedostot
Projektityö

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Ohjelmiston vaatimusmäärittely

Tietojärjestelmän osat

ITK130 Ohjelmistojen luonne

Ohjelmistotuotteen hallinnasta

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Yhteenveto. Menettelytavat

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

T Johdatus käyttäjäkeskeiseen tuotekehitykseen Kertausluento

Ohjelmistojen suunnittelu

TOIMINNALLINEN MÄÄRITTELY MS

Määrittely- ja suunnittelumenetelmät

Projektityö

käyttötapaukset mod. testaus

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

A4.1 Projektityö, 5 ov.

Standardi IEC Ohjelmisto

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Projektiryhmä Tete Työajanseurantajärjestelmä. Riskienhallintasuunnitelma

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

Ohjelmiston toteutussuunnitelma

Johdantoluento. Ohjelmien ylläpito

Ohjelmistojen mallintaminen, mallintaminen ja UML

Nimi: Opnro: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä. 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla:

Ohjelmistotekniikan menetelmät, UML

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

OHJELMISTOTEKNIIKKA LABORATORIOHARJOITUKSEN OHJEET

HELIA TIKO ICT03D Tieto ja tiedon varastointi T.Mikkola, O.Virkki. Tietoturva tiedon varastoinnissa

UML- mallinnus: Tilakaavio

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

TIETOKANNAN SUUNNITTELU

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Dokumentointi ketterissä menetelmissä

Projektityö

Miten suunnitella hyvä käyttöliittymä?

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Ohjelmistotekniikka - Luento 2

Määrittelyvaihe. Projektinhallinta

KÄYTETTÄVYYDEN PERUSTEET 1,5op. Käytettävyyden arviointi paperiprototyypeillä Kirsikka Vaajakallio TaiK

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

GroupDesk Toiminnallinen määrittely

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Käytettävyys verkko-opetuksessa Jussi Mantere

HELIA 1 (11) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

Ohjelmoinnin perusteet Y Python

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

Visual Case 2. Miika Kasnio (C9767)

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

WebOodin käyttöliittymän kehitys

1. Johdanto. Ohjelmistotuotannon ongelmia

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Langattomien verkkojen tietosuojapalvelut

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

TUKIMATERIAALI: Arvosanan kahdeksan alle jäävä osaaminen

Linssintarkastusjärjestelmän käyttöliittymän käytettävyyden arviointi

Käyttäjäkeskeisyys verkkopalveluissa

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Miksi käytettävyys on tärkeää

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

PCI DSS 3.0. Merkittävimmät muutokset Seppo Heikkinen, QSA Nixu

Kansallinen ASPAtietojärjestelmä

Yhdeksän mittaria ohjelmistotuotannon. seuraamiseen. tsoft. Vesa Tenhunen Joensuun yliopisto, TKT:n laitos

KÄYTETTÄVYYSPÄIVÄ

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Käytettävyys ja sen merkitys

Office ohjelmiston asennusohje

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

Projektityö

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Onnistunut Vaatimuspohjainen Testaus

Projektin suunnittelu

ABB Drives and Controls, Koneenrakentajan ja laitetoimittajan yhteistoiminta toiminnallisen turvallisuuden varmistamisessa

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Käytettävyys tuotekehityksessä mitä pitäisi osata?

Projektisuunnitelma Viulu

Liikkuva-sovellusprojekti

Tietoturvan Perusteet Yksittäisen tietokoneen turva

Ohjelmistotekniikan menetelmät, kesä 2008

REALTIME CUSTOMER INSIGHT Wellnator Oy

HAAVOITTUVUUKSIEN HALLINTA RAJOITA HYÖKKÄYSPINTA-ALAASI

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Käyttötapausanalyysi ja testaus tsoft

Aki Taanila LINEAARINEN OPTIMOINTI

Paikkatietojen tietotuotemäärittely

Transkriptio:

Vaatimusmäärittelyt Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Haikala ja Märijärvi, Ohjelmistotuotanto Software requirements, styles and techniques, Soren Lauesen. 1

Tavoitteista Luentojen jälkeen opiskelijan tulisi osata: Kerätä vaatimuksia erilaisia tekniikoita käyttäen. Käyttää erilaisia vaatimusten esitystekniikoita. Tunnistaa tärkeimmät vaatimuskategoriat. Arvioida vaatimusmäärittelyjen käyttökelpoisuutta ja vaatimusten onnistuneisuutta. 2

Sisällöstä Tavoitekalvon asioita. Miksi vaatimuksia kerätään? Vaatimusten muodostamisen ajankohta projekt(e)issa. Käydään lävitse joukko vaatimustenkeruutekniikoita. Vaatimuksia kerätään tai esitetään mm. tiedosta ja sen esitysja käyttötavoista, muusta toiminnallisuudesta, laatuasioista, hallinnollisista asioista. Erilaisia esitystekniikoita on runsaasti: kaikkia ei voi välttämättä soveltaa samaan projektiin. (Mutta kurssilla toki yritetään kokeilla mahdollisimman useaa... ) 3

Motivointia Vaatimuksissa tapahtuneet virheet huomattavasti kalliimpia korjata kuin toteutusvaiheessa tehdyt virheet. Tarpeet (ohjelmistolle asetetut) voivat muuttua ajan myötä. Mikäli vaatimusten etsinnässä ja esittämisessä epäonnistuu, voi tehdä yhden projektitoiminnan perusvirheen: antaa ratkaisun väärään ongelmaan. 4

Vaatimukset ja projektin vaiheet Ohjelmiston kehitystyö alkaa yleensä analyysi- ja määrittelyvaiheella, jonka tuloksena saadaan mm. vaatimusmäärittely. Vaatimusmäärittely ohjastaa seuraavia vaiheita, kuten suunnitteluvaihetta. 5

Keneltä vaatimuksia Vaatimukset saadaan muodostettavan järjestelmän käyttäjiltä ja muilta asianosaisilta. Suunnittelija analysoi tarpeita ja muodostaa niistä johdonmukaisia käyttökelpoisia kokonaisia vaatimuksia. 6

Vaatimusten keruun vaikeuksia Vaatimusten muodostaminen voi olla hankalaa asianosaiset eivät välttämättä osaa ilmaista tarpeitansa asianosaiset saattavat pyytää ratkaisuja, jotka eivät vastaa todellisia tarpeita osa tarpeista voi olla keskenään ristiriitaisia uusia toimintatapoja ei välttämättä osata kuvitella uusien ratkaisujen kaikkia vaikutuksia ei välttämättä ymmärretä loppukäyttäjiä ei ole aina käytettävissä (esim. uusi tuote) 7

Mistä vaatimuksia yleensä esitetään? datasta käyttäytymisestä laadusta hallinnollisista asioista Myös muista asioista saattaa tulla vaatimuksia tai kommentteja vaatimusmäärittelyihin. 8

Datavaatimuksista Vaatimuksia voidaan esittää datalle. varastointi syöttäminen tulostaminen Järjelmän osat voivat myös olla jossain tilassa, ja eri osien keskenäiset suhteet tällöin saattavat edellyttää muilta osilta jotain. 9

Käyttäytymisvaatimuksista Kuinka dataa tallennetaan, lasketaan, muunnetaan, välitetään. Lisäksi käyttäytymisvaatimukset kertovat, mitä toimintoja ohjelmasta löytyy. Laadullisista vaatimuksista Laadulliset vaatimukset sisältävät tehokkuuteen, käytettävyyteen ja ylläpitoon liittyviä asioita. 10

Hallinnollisista vaatimuksista Hallinnolliset vaatimukset kertovat toimitusajan, lakiin liittyvät asiat ja esimerkiksi kehitysprosessista. Muusta vaatimusmäärittelyjen sisällöstä Vaatimusmäärittelyissä on usein muutakin asiaa kuin mitä edellä on esitetty. Aiemmin jaetut dokumenttipohjat kertovat kohtuu hyvin, minkälaisia asioita vaatimusmäärittely voi pitää sisällään. Lukijan lukemisen helpottaminen on hyvä muistaa. Esimerkiksi sopiva määrä taustatietoja auttaa ymmärtämään, mitkä ovat todelliset tarpeet. 11

Kuinka kerätä vaatimuksia? 1. Asianomaisten analyysi. Ketkä ovat asianosaisia? Mitä tavoitteita heillä on? Miksi he panostavat tähän? Mitä riskejä ja kuluja heille koituu? Mitä ratkaisuja ja toimittajia he harkitsevat? 2. (Ryhmä) haastattelu. Tiedon keruuta nykyisistä työtavoista ja ongelmista. 3. Tarkkailu. Käyttäjät eivät aina tiedä, mitä he tekevät ja kuinka. Esimerkiksi jonkin sivun hakeminen tutusta kirjasta käyttäjien mukaan tapahtuu hakemiston avulla lähes aina, vaikka todellisuudessa iso osa selailee suoraan kirjaa kunnes löytää halutun kohdan. 12

4. Tehtävä- ja toimintademo. Pyydetään käyttäjiä näyttämään, kuinka tekevät/toimittavat nykyiset tehtävät. (Joskus esittäminen on helpompaa kuin selittäminen.) 5. Dokumenttien tutkiminen. Saadaan esim. tietoa vanhasta datasta. 6. Kyselylomakkeet. Tiedonkeruuta usealta käyttäjältä: saadaan tilastollista näyttöä jostain asiasta, tai sitten mielipiteitä ja ehdotuksia. 7. Aivoriihet. Generoidaan ideoita. 13

8. Kohderyhmät (tulevaan keskittyvät ryhmätyöt). Hieman tavoitteellisempaa kuin kohdassa 7). Lähdetään nykykäytännöistä ja yritetään kuvitella tulevia työtapoja. 9. Perustoimintoryhmätyöt (domain workshops). Mitä toimintoja tarvitaan alalla? Kokeneet käyttäjät kertovat työstään. 10. Suunnitteluryhmätyöt. Käyttäjät ja suunnittelijat suunnittelevat jotain yhdessä. Usein käyttöliittymiä. 11. Prototyypit. Lopputuotteen yksinkertaistettu versio. Kuinka se toimisi todellisessa elämässä? 12. Pilottikokeilut. Uuden systeemin käyttöönoton riskien pienentämiseksi. 14

13. Samanlaiset yrityksien tutkailut. Voi antaa uusia ideoita. 14. Toimittajakyselyt. Heidän etuihinsa kuuluu antaa ideoita heidän tuotteden myyntiin liittyen. 15. Neuvottelu. Ratkaistaan mahdollisia konflikteja (voivat olla mm. eri asiakasryhmien välillä). 16. Riskianalyysi. Riskien etsintää ja niihin varautumista. Niitä voi etsiä yhdessä asianosaisten kanssa. Kuinka heidän työnsä muuttuu järjestelmän käyttöönoton jälkeen? Mitä muutoksia tarvitaan? Mitä mahdollisia konflikteja heidän mielestään saattaa tulla esille? 15

17. Hinta- ja hyötyanalyysi. Voidaan esittää rahana, mutta jako raha- ja laatutekijöihin esiintyy. 18. Tavoite- ja ala-analyysi (goal-domain). (Liike)toimintatavoitteiden ja tehtävien suhde. Tavallaan tarkistustekniikka mutta voi muuttaa vaatimuksia paljon. 19. Ala- ja vaatimusanalyysi (domain-req.). Samanlaista kuin edellisessä kohdassa mutta alemmalla tasolla. 16

Yllä olevilla tekniikoilla voi löytää vaatimuksia nykytyölle, nykyisille ongelmille ja saada esille tavoitteita ja avainkysymyksiä. Lisäksi voidaan saada ideoita tulevalle systeemille, hahmottaa realistiset mahdollisuudet ja kartoittaa seurauksia sekä riskejä. Edelleen halutaan saada selville, kuinka projektiin sitoudutaan ja kuinka mahdolliset konfliktit ratkaistaan. Tuloksena saadaan vaatimuksia, prioriteetteja ja tietoa, kuinka täydellisesti vaatimukset ja prioriteetit on onnistuttu kartoittamaan. 17

Kuinka esittää vaatimuksia datan (tiedon) suhteen? 1. Tietomalli (data model). Esimerkiksi ER-malli, oliomalli tms. tarpeen mukaan. 2. Tietohakemisto (data dictionary). (TODO, tarkista!) Datan kuvaus tekstinä (aina tietohakemisto ei ole tarpeen, vaan voidaan jättää esim. suunnittelijan huoleksi). 18

3. Tietoilmaisut (data expression). Käytetään datan esittämiseen jotain formaalimpaa menetelmää, erityisesti jos datalla on rakennetta, kuten koosteisessa datassa tai protokollissa. Esimerkiksi säännöllisiä lausekkeita tai BNF-notaatiota (Backus-Naur Form). (Jos ei tuttuja, niin tutustu unixin grep-komentoon vaikka aluksi). 4. Virtuaali-ikkunat (virtual windows). Yksinkertaistettuja näyttökuvia, joista löytyy grafiikkaa ja realistista dataa mutta ei esimerkiksi nappuloita saati menuja. 19

Kuinka esittää toiminnallisuuden (käyttäytymisen) suhteen vaatimuksia? 1. Ihminen/tietokone - kuka tekee mitäkin? Tässä voi käyttää esimerkiksi yksinkertaisia tietovirtakaavioita, prosessikaavioita ( kaveri ) ja varmaan UMLstä löytyy kasa kaavioita, jotka kelpaavat yhtä hyvin. Saadaan toiminnallisuuden fyysinen malli. Alla olevat kohdat tarkentavat: 2. Kontekstikaaviot. Tuotteen ja sen ympäristön kuvaavat kaaviot näyttävät tuotteen laajuuden. Notaationa jonkinlainen tietovirtakaavio varmaan toimii parhaiten. 20

3. Tapahtuma- ja toimintolistat. Tuotteen käsittelemät tapahtumat. Ihmisen+koneen käsittelemät tapahtumat. Päätapahtumat voidaan esittää käyttötapauksina (use cases). Tuotetapahtumia sanotaan usein viesteiksi (messages). 4. Ominaisuusvaatimukset. Esimerkiksi tekstiä tuote laskee/tallentaa/näyttää... (Voi johtaa väärään käyttäjien ja analysoijan turvallisuuden tunteeseen.) 5. Näytöt ja prototyypit. Mitä nappulasta tapahtuu? 21

6. Toimintokuvaukset. Rakenteellista tekstiä käyttäjän toimintojen kuvaamiseen. Toiminnot voidaan jakaa koneen ja ihmiseen osuuksiin. Koneen osuudet voidaan esittää esimerkiksi käyttötapauksin (use case). Yhdessä käyttötapauksessa (tai toimintokuvauksessa) voidaan kertoa mm. tapauksen nimi, tarkoitus, esiehto ja laukaisija, esiintymistiheys, kriittisyys, osatapaukset ja muunnelmat. 7. Piirteitä toimintokuvauksista. Toimintojen käytössä pärjättävä ilman hiirtä... 22

8. Tehtävät ja tukitoiminnot. Rakenteellista tekstiä, joka kuvaa tehtävät, pääongelmat ja mahdollisen tuen niille. Halutaan selvittää kriittiset asiat. Esim. jos käyttötapauksissa saadaan jokin tehtävät jaettua osatehtäviin, voidaan osatehtävien kohdalla huomata kysymyksiä ja ongelmia, joihin on vastattava. Tekemällä kaksi palstaa, voi vasemmassa olla nuo osatehtävät ja huomatut kysymykset, ja oikealla puolella esimerkkiratkaisuja (jotka myöhemmin projektin edetessä muuttuvat ehdotetuiksi ratkaisuiksi ja lopulta sovituiksi ratkaisuiksi). 23

9. Hahmotelmat (skenaariot). Jokin tapaus joka valottaa yhtä tai useampaa toimintoa, tai jotain tiettyä testattavaa tapausta. Näiden avulla pystyy parantamaan käyttäjien ymmärrystä (mutta ei anna vaatimuksia). 10. Käyttötapaukset (use cases). Booch et al. (1999) A use case is a description of a set of sequences of actions, including variants, that a system performs to yield an observable result to an actor. UMLstä löytyy omia kaaviotyyppejä tälle. Kohdan 6 kuvaus kertoo myös käyttötapauksista. Aktiviteettikaavio (jossa näkyy käyttäjä tekemässä kaikenlaista). 24

11. Toiminnot datan kanssa. Rakenteellista tekstiä, kuvaavat käyttötapauksien osatoiminnot ja niiden tarvitseman datan. Kuten kohdassa 8, mutta nyt käytössä kolme saraketta: ensimmäiseen osatoiminto, toisessa kuvataan kunkin osatoiminnon näkyvä data ja kolmannessa listataan virtuaali-ikkunat. 12. Tietovirtakaaviot. (DFD, data flow diagram, PSPEC, processing specification, CSPEC, control specification.) Näyttää toiminnot, datan virtaamassa eri toimintojen välillä. Lisäksi mukana saattaa näkyä toimijoita (esim. kaveri -ohjelmisto). 13. Standardit. Nämä tekstinä: tuote tukee standardia xx. 14. Kehitysprosessiin liittyvät vaatimukset. Esimerkiksi vaatimus, että käytetään jotain tiettyä menetelmää vaatimusten keräämiseen. 25

Laatuvaatimuksista Kuinka systeemin tulee suorittaa toimintonsa? Millaiset vasteajat? Kuinka helppokäyttöinen sen on oltava? Miten tietoturva? 26

Laatutekijät Laatutekijöitä voi kerätä erilaisiin listoihin, joita voi käyttää tarkistuslistoina. Esimerkkinä kolme eri tapaa, McCall ja Matsumoto, ISO 9126 ja IEEE 830. McCall ja Matsumoto: Toiminnallisuus: eheys (turvallisuus), oikeellisuus, luotettavuus, käytettävyys, tehokkuus. Korjattavuus: ylläpidettävyys, testattavuus, joustavuus. Muunnettavuus: siirrettävyys, liitettävyys (muihin systeemeihin), uudelleen käytettävyys (reusability). 27

ISO 9126 (vain päätason laatutekijät): Toiminnallisuus, luotettavuus, käytettävyys, tehokkuus, ylläpidettävyys, siirrettävyys, sopivuus (tarkoituksenmukaisuus), mukautuvaisuus ja yhdenmukaisuus sekä uudet osatekijät. IEEE 830: Tehokkuusvaatimukset, ohjelmiston systeemiominaisuudet, luotettavuus, käyttökelpoisuus, turvallisuus, ylläpidettävyys, siirrettävyys ja helppokäyttöisyys. Listoihin voi tarpeen vaatiessa lisätä uusia kohteita. Seuraavilla kalvoilla esitetään tekniikoita, kuinka esittää joitain yllä olevista laatutekijöistä. 28

Laatutaulukko (quality grid) Laitetaan valitut laatutekijät riveinä taulukkoon, jonka sarakkeita ovat esim. kriittinen, tärkeä, tavallinen, ei-tärkeä ja sivuutetaan. Esim: kriitt. tärkeä tav. ei-tärkeä sivuut. Toiminnallisuus: eheys (turvallisuus) oikeellisuus luotettavuus 1 käytettävyys 2 tehokkuus 3 Korjattavuus: ylläpidettävyys X X X 29

Taulukon jälkeen voi antaa numeroille selitykset, miksi luotettavuus on tärkeää, miksi käytettävyys kriittistä jne. Jos jotain laittaa tavallista tärkeämmäksi, pitäisi löytyä myös asioita, jotka eivät ole yhtä tärkeitä tai jotka sivuutetaan (kaikkeen ei voi panostaa samalla tavalla). Laatua voi parantaa työskentelemällä kovemmin, saamalla lisää rahoitusta, sivuuttamalla merkityksettömät asiat ja käyttämällä parempia tekniikoita. 30

Avoimet mittarit ja päämäärät Joskus voi olla vaikeaa valita sopiva mittari (metriikka) laadun mittaamista varten. Tai päättää jostain arvosta. Esimerkiksi jos halutaan ennusteita jostain asiasta, pitäisi päättää, kuinka kauan ennusteen laskemiseen saa käyttää aikaa, ja kuinka tarkkoja ennusteiden pitäisi olla. Joissain tilanteissa toimittajalta voi kysyä noita. Tällöin laskenta-aika jää vaatimuksissa avoimeksi päämääräksi ja ennusteen tarkkuuden mittari avoimeksi mittariksi. 31

Planguage-kieli on kehitetty laatutekijöistä keskustelemiseen (Tom Gilb). Se koostuu seuraavista kohdista: Tag (laatutekijä), Gist (tavoitteesta yleisin termein), Scale (mitta-asteikko), Meter (kuinka mitataan), Must, Plan, Wish, Past. Nyt esimerkiksi avoin päämäärä vastaisi plan -kohdan jättämistä auki. 32

Kapasiteetti- ja täsmällisyysvaatimukset (tarkkuus-) Yksinkertaisimpia ellei peräti triviaaleja laatutekijöitä, jotka usein unohdetaan. Yhtäaikaisia käyttäjiä 50, kasvaa vuosittain 10%. Täytyy toimia alle 1Mb muistissa. Nimikentässä käytetään 150 merkkiä. Joissain standardeissa tarkkuusvaatimukset ovat osa toiminnallisia vaatimuksia. 33

Tehokkuusvaatimukset Vasteajat, huippukuorma, jne. Teknisiä ja psykologisia rajoja. Voidaan ilmaista ylä- ja alarajoina, ja keskimääräisinä arvoina. Monen käyttäjän systeemeissä esimerkiksi max-vasteaikaa ei tulisi määrittää, koska sen takaaminen on vaikeaa, ellei mahdotonta. Sen sijaan 95% rajan käyttö on ok. Esim. että vastaukset saapuvat 2 sekunnissa 95% tapauksista. Tehokkuusvaatimuksia voi esittää myös joukolle toimintoja tai vain kriittisimmille toiminnoille, jos toimintoja on paljon. Joissain useista erillisistä osista koostuvissa systeemeissä (esim. eri toimittajilta) ei aina voi rajoja laittaa lainkaan. 34

Käytettävyys Käytettävyysongelmat voidaan havaita käytettävyystesteillä. Vaatimus systeemi on helppokäyttöinen ei toimi vaatimuksena. Parempi olisi esimerkiksi, että 80% uusista käyttäjistä pystyy kirjaamaan henkilötiedot viidessä minuutissa, tekemään tilauksen kymmenessä minuutissa. (Minkä jälkeen kerrotaan, mitä uudella käyttäjällä tarkoitetaan.) Käytettävyyttä voi parantaa tekemällä prototyyppejä, käytettävyystestaamalla prototyyppejä ja suunnittelemalla ja muuntelemalla prototyyppejä. Tuloksena ohjelmointi helpottuu ja asiakastyytyväisyys paranee. Käytettävyystestit on syytä tehdä ennen kuin koodia on aloitettu kirjoittamaan, jo paperinäyttöjen käyttö voi paljastaa osan ongelmista. 35

Käytettävyysvaatimukset Voivat olla tai koskea: ongelmalaskureita, tehtävän suoritusaikoja, näppäinten painalluslaskureita, mielipidemittauksia, ymmärtämispisteytyksiä, suunnittelutason vaatimuksia, 36

tuotetason vaatimuksia, tyylioppaan noudattamista (guideline adherence) ja tuotantoprosessin vaatimuksia. Luettelon eri kohtien käyttäminen aiheuttaa erilaisia riskejä sekä toimittajalle että asiakkaalle (jotkut kohdista ovat arveluttavia esim. asiakkaan kannalta). 37

Turvallisuus Suojauksia väärinkäyttöä ja onnettomuuksia vastaa. Uhkien kartoitusta ja niiden vaikutusten arviointia (turvallisuusriskien arviointia). Omaisuuden suojaamista, tässä yhteydessä datan ja prosessointikyvykkyyden turvaaminen. CIA+A malli: luotettavuus (dataa käytetään vain luvallisiin tarkoituksiin), eheys (datan), saavutettavuus (data näkyvillä vain luvan omaavilla henkilöillä) ja autentikointi (Confidentiality, Integrity, Availability, ja Authenticity). 38

Suojautumiskeinoja voivat olla: estäminen, havaitseminen ja korjaaminen. 39

Uhkia voivat olla: fyysinen häiriö, onnettomuus, yksinkertainen käyttäjän virhe, ohjelmointivirhe, sabotaasi (tahallinen rikkominen), luvaton kirjautuminen tai salasanojen varastaminen, väärennös, verkon kuuntelu, verkossa liikkuvan datan muuntaminen, ohjelmoitu rikos. Kukin uhista voi kohdistua syöttö-, tallennus- tai tulostusprosesseihin. 40

Turvavaatimukset Ensin on syytä arvioida turvallisuusriskit. Toimittajalta voi kysyä, kuinka suojautua uhkiin, joihin liittyy suuren tappion tms. mahdollisuudet. Esim. Tuote suojattu kovalevyn rikkoutumisia vastaan. Arvioidut ongelmat alle kerran sadassa vuodessa. Tuote sisältää firewall-ratkaisun ja virusskannerin. 41

Ylläpito Systemaattista puutteiden korjaamista, tuotteen laajentamista ja käyttäjien tiedottaminen ja kouluttamista. Usein erotetaan kolme ylläpitotoimintoa, korjaava ylläpito, ennaltaehkäisevä ylläpito ja täydentävä ylläpito. 42

Ylläpitoon liittyy sykli, johon liittyy ongelman raportointi, sen analyysi, päätösvaihtoehtojen kartoitus, vastaus, mahdollisen ratkaisun testaus ja lopulta päätöksen toteuttaminen. 43

Lisäksi pitää ratkaista, milloin kyseessä on puutteen tai virheen korjaus (joka ehkä tehdään takuutyönä), ja milloin asiakkaan tulee maksaa muutoksista. Virheitä voivat olla mm. ohjelmointivirhe, vaatimuksen rikkominen, järkevän ja oletetun toiminnon rikkominen (kaikkia vaatimuksia ei voi kirjata) ja ehkä jotkut käytettävyysongelmat. 44

Ylläpidettävyysvaatimukset Taattu korjausaika on turvallista asiakkaalle mutta toimittajalle riskialtista. Toimittaja voi veloittaa korkeaa hintaa muutoksista: asiakas voi kysyä hintaa muutosyksikköä kohden. Ylläpidon tehokkuus, tuen ominaisuudet ja kehitysprosessin vaatimuksia. Lisäksi tähän liittyen saatetaan esittää tuotteen mutkikkuuden ja tuotteen ominaisuuksien suhteen vaatimuksia. 45