vaatimusmäärittelyistäsysta/jotu2013/04vaatimusmaarittelyistaweb.pdfmitä vaatimuksesta kirjataan...

42
Vaatimusmäärittelyistä JOTU 16.09.2013 16.9.2013 JOTU2013/K.Systä 1

Upload: others

Post on 19-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Vaatimusmäärittelyistä

JOTU 16.09.2013

16.9.2013 JOTU2013/K.Systä 1

Page 2: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Tiedotuksia

• Harjoitusryhmiin ilmoittautuminen on vihdoin avautunut IDLE:ssä

• Ryhmän maksimi koko on 4 henkeä

• Ilmoittautumisen takaraja on 24.9!

16.9.2013 JOTU2013/K.Systä 2

Page 3: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Tässä kuvassa on koko kurssin sisältö?

16.9.2013

3 JOTU2013/K.Systä

Page 4: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 4

Viime kerrasta Kehitysprosessit: erilaisia variaatioita samasta teemasta

Asiakkaan ongelma

Määrittely

asiakasvaatimukset

Suunnittelu

ohjelmistovaatimukset, ”määrittely”

Toteutus

tekniset vaatimukset, ”suunnittelu”

Hyväksymistestaus

asiakastoimitus

Te

sta

us, la

ad

un

va

rmis

tus

Seuraava versio

JOTU2013/K.Systä

Page 5: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Viime kerrasta Vesiputousmalli

16.9.2013 5

Määrittely

Suunnittelu

Toteutus

Testaus

JOTU2013/K.Systä

Page 6: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Viime kerrasta Iteratiiviset, ketterät yms

16.9.2013

6

Toimittaja

Asiakas

tutkimus

määr.

tot

test

käyt.otto

tarjouspyyntö

tarjous

tarjous

määr. käyt.otto

demo

demo

tot

test

demo

demo

tot

test

tot

test

demo

demo

Demo tarkoittaa yhdessä käyttäjän

kanssa tehtävää uudelleen

pohdintaa.

JOTU2013/K.Systä

Page 7: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Viime kerrasta Kaksi erilaista johtopäätöstä

1. Kannattaa käyttää alussa paljon aikaa vaatimusten

miettimiseen ja kirjaamiseen ennen kuin kirjoittaa

yhtäkään koodiriviä.

2. Vaatimukset – tai ainakin ymmärrys niistä – muuttuu

projektin aikana kuitenkin. Joten parasta iteroida

palanen kerrallaan.

16.9.2013 7 JOTU2013/K.Systä

Page 8: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Kuitenkin

• Käyttäjän ja asiakkaan ongelman

ymmärtäminen ja toimivaksi ohjelmaksi

muuttaminen on edelleen se haaste.

• Ainakin alustavat vaatimukset on oltava

kasassa ennen kuin projektia aloitetaan.

• Käymme ensiksi asiat läpi kuin ketteryyttä ei

tarvittaisi ja sitten tuomme mukaan

ketteryyden.

16.9.2013 JOTU2013/K.Systä 8

Page 9: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Kiva löytö: (Ken Schwaber: Agile project managemet)

16.9.2013 JOTU2013/K.Systä 9

Close to

agreement

Far from

agreement

Close to certainty Far from certainty

Simple

Complicated

Complicated

Complex

Anarchy

Page 10: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Asiakasvaatimuksista tuotteeseen

Määrittely

Suunnittelu& toteutus

ohjelmistovaatimukset

asiakasvaatimukset

16.9.2013 JOTU2013/K.Systä 10

Page 11: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Erilaisia vaatimuksia - esimerkki

• Asiakasvaatimus – tyypillisesti asiakkaan ongelma, jolle toivotaan ratkaisua: tuotetaan mahdollisimman virheettömiä dokumentteja.

• Ominaisuus, feature – jokin asiakkaan kannalta mielekäs kokonaisuus ohjelmiston toiminnallisuudesta: tuki oikeinkirjoituksen tarkastamiselle.

• Ohjelman toiminto – yksittäinen ohjelmistolla tehtävä asia: tarkasta oikeinkirjoitus, ehdota korjausta, korjaa automaattisesti...

• Tekniset vaatimukset – miten ohjelmisto toteutetaan: tiedostopuskuri, dialogin toteutus, ...

Kannattaa huomata, että luokittelu ei ole mitenkään itsestään selvä.

16.9.2013 JOTU2013/K.Systä 11

Asiakas- vaatimukset

Ohjelmisto- vaatimukset

Page 12: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Vaatimukset vs. rajoitteet

• Toiminnallinen vaatimus (functional requirement), esimerkiksi ohjelmassa on tuki oikeinkirjoituksen tarkastamiselle.

• Ei-toiminnallinen vaatimus (non-functional requirement), esimerkiksi ohjelman käyttöliittymä on UI-tyyliopas mukainen tai ohjelmiston asennus saa käyttää korkeintaan 5MB levytilaa.

• Reunaehdot (constraints), esimerkiksi ohjelmisto on toteutettava Windows-ympäristöön C++-kielellä.

16.9.2013 JOTU2013/K.Systä 12

Page 13: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013

Rajoitteiden rooli

Kaikki mahdolliset ratkaisut

Rajoite 1 Rajoite 2

Page 14: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Vaatimusmäärittely työvaiheena

16.9.2013 JOTU2013/K.Systä 14

Page 15: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013

Määrittelyvaihe (kuva 3.8)

Asiakasvaatimukset

muuntuvat ohjelmistovaatimuksiksi

OK

korjattavaa

Määrittelyprosessi Ideat,

lähtökohdat,

rajoitteet,

reunaehdot Ongelman

ymmärtäminen,

vaatimusten

kartoitus

Toteutettavan

järjestelmän

spesifiointi

Tarkastus

Toiminnallinen

määrittely, alustava

käyttöohje,

toteutusprojektin

projektisuunnitelma,

testaussuunnitelma

Arkkitehtuuri-

suunnittelu

Asiakasvaatimukset Ohjelmistovaatimukset

Page 16: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

-sidosryhmien tarpeet (asiakkaat, käyttäjät, markkinointi, johto...) -olemassa olevat järjestelmät -sovellusalueen erityispiirteet -asiakasorganisaation käytännöt -viranomaismääräykset -...

-Kartoittaminen -Analysointi -Dokumentointi -Validointi

Vaatimusten muutosprosessi

Hyväksytyt vaatimukset

Vaatimukset seuraaviin tuoteversioihin

Vaatimusmäärittely

Vaatimustenhallinta

vaatimusmuutokset muutokset projektissa

hyväksytyt muutokset

Vaatimusmäärittely vs - hallinta

16.9.2013 JOTU2013/K.Systä 16

Page 17: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

-Kartoittaminen -Analysointi -Dokumentointi -Validointi

Vaatimusten muutosprosessi

Hyväksytyt vaatimukset

Vaatimukset seuraaviin tuoteversioihin

Vaatimusmäärittely

Vaatimustenhallinta

vaatimusmuutokset muutokset projektissa

hyväksytyt muutokset

Vaatimusmäärittely ja –hallinta ketterässä

16.9.2013 JOTU2013/K.Systä 17

Page 18: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013

Miten asiakasvaatimukset saa selville (kehittäjänäkökulma)

• Toimialan tuntemusta ei korvaa mikään. • Tee luettelo sidosryhmistä (stakeholder).

– Mieti, mitä odotuksia/toiveita/pelkoja jne... kullakin sidosryhmällä on.

• Keskustele käyttäjien kanssa heidän työpaikallaan. • Suunnittele vierailut etukäteen huolellisesti. • Tekeydy hieman tyhmemmäksi kuin luulet olevasi. • Esitä varmistavia kysymyksiä: tarkoitat siis, että… • Käytä esitystapoja, joita asiakas ymmärtää. • Analysoi ja dokumentoi vierailun anti, tee yhteenveto. • Yritä löytää alkuperäinen ongelma:

– miksi jokin asia pitää tehdä, voisiko sen jostain syystä jättää kokonaan tekemättä.

– yritä erottaa oleellinen pinttyneistä toimintatavoista

• Prototyypit. • Käyttäjäkeskeinen suunnittelu (User Centered Desing)

JOTU2013/K.Systä 18

Page 19: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013

Miten asiakasvaatimukset saa kerrottua (asiakasnäkökulma)

• Muista että toimittajalla ei aina ole toimialan tuntemusta – Voisi olla valintakriteeri

• Tee luettelo sidosryhmistä (stakeholder). – Mieti, mitä odotuksia/toiveita/pelkoja jne... kullakin on.

• Keskustele käyttäjien kanssa heidän työpaikallaan. • Suunnittele vierailut etukäteen huolellisesti. • Tekeydy hieman tyhmemmäksi kuin luulet olevasi. • Esitä varmistavia kysymyksiä: tarkoitat siis, että… • Käytä esitystapoja, joita toimittaja ymmärtää. • Analysoi ja dokumentoi vierailun anti, tee yhteenveto. • Yritä löytää ja kertoa alkuperäinen ongelma:

– Et ehkä tiedä miten asia kannattaisi ratkaista – Mitä ja miten ovat eri asioita

• Prototyypit. • Käyttäjäkeskeinen suunnittelu (User Centered Desing)

JOTU2013/K.Systä 19

Page 20: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013

Mitä vaatimuksesta kirjataan (esimerkki)

• Luontipäivämäärä

• Tekijä

• Asiakas, vaatimuksen alkuperä

• Tyyppi (lisäys, muutos, korjaus)

• Vaatimuksen kuvaus

• Suhde muihin vaatimuksiin

• Tarpeellisuus (välttämätön, suotava, ekstra)

• Varmuus: ei muutu, saattaa muuttua, muuttuu todennäköisesti

JOTU2013/K.Systä 20

Page 21: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013

Hyvän speksin/vaatimuksen ominaisuuksia

• täydellisyys: kaikki tarpeellinen, ei mitään turhaa

• tarkkuus

• virheettömyys

• ymmärrettävyys

• testattavuus: miten voidaan "mitata", onko vaatimus täytetty

• jäljitettävyys: mistä vaatimus on peräisin, miten tärkeä se on

• sama asia vain yhdessä paikassa (ei redundanssia) (?)

JOTU2013/K.Systä 21

Page 22: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013

Esimerkkejä

• Järjestelmän käytettävissä on 64k-tavun muisti. • Luokalla voi siis olla vain yksi luokanvalvoja? • Jos kuukauden toteutunut myynti alittaa tavoitteet,

tulostetaan raportti, ellei toteutuneen myynnin ja tavoitteen ero ole vähemmän kuin puolet edellisen kuukauden tavoitteen ja toteutuneen myynnin erosta, tai toteutunut myynti alittaa tavoitteen alle 5%.

• Varaston kiertonopeus kasvaa. • Ilmoituksen on oltava kuvaruudulla 300ms kuluessa

hälytyksen tapahtumisesta. • Suihkumoottoreita ei saa kytkeä “pakille” ellei kone ole

kentällä. • Suihkumoottoreita ei saa kytkeä “pakille” ellei nokkapyörä

pyöri tai nopeus ole nolla.

JOTU2013/K.Systä 22

Page 23: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Tämän viikon ”sattumus” Ariane 5 kantoraketin onnettomuus

16.9.2013 23 JOTU2013/K.Systä

Page 24: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Ariane 5 – analyysi (koko analyysi: http://www.ima.umn.edu/~arnold/disasters/ariane5rep.html)

• Ongelman alkulähde on vaakanopeutta seuraava yksikkö

• 64bittinen liukuluku muunnettiin 16-bittiseksi kokonaisluvuksi

– Tällä kertaa syntyi ylivuoto

– Tämä oli voitu välttää tarkistuksilla, mutta juuri tätä muuttujaa ei oltu suojattu.

– Joten syntyi ns. ”poikkeus” ja yksikkö lähetti ”potaskaa”

• Vääristyneiden mittausarvojen tuloksena ohjausraketit yrittivät massiivista korjausliikettä

• Ylivuoto syntyi koska Ariene 5:n suorituskyky oli suurempi kuin edeltäjän (Ariane 4) mutta Arian 5 uudelleen käytti vanhan järjestelmän softaa

• Ylivuotoon joutunut järjestelmä oli vikatilanteiden vuoksi kahdennettu mutta ajoi samaa ohjelmistoa

16.9.2013 24 JOTU2013/K.Systä

Page 25: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Ariane 5

• Ylivuotoon joutunut järjestelmä oli tarpeen vain silloin kun raketti vielä seisoo laukaisualustalla ja se oltaisiin voitu ottaa jo pois päältä

– Sen piti olla päällä edellisessä versiossa

• Ongelmana oli vaakanopeus jonka kukaan ei ollut uskonut kasvavan liian suureksi

16.9.2013 25 JOTU2013/K.Systä

Page 26: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 26

UML-kaaviot

Use case

driver

Handle tree

Cut log

Use case diagram

Käyttötapauskaavio

Sijoittelukaavio Komponenttikaavio Tilakaavio Aktiviteettikaavio

Yhteistyökaavio Tap.sekv.kaavio Luokkakaavio Class/Package/Object diagrams

Log Tree

1..*

pine: Tree :Tree

Sequence diagram

pine:Tree :Log

Driver

Cut <<create>>

calcullate

Feed setMeasures

Collaboration diagram

pine:Tree

:Log

Driver

1. Cut

2. Feed

1.1. <<create>>

1.2. calculate

2.1. setMeasures

Activity diagram

H

H

Select tree

variety

Catch hold of tree

Fall the tree

Feed&saw

State machine diagram (State chart)

H

H

Saw idle

Saw operational

Cut / ^Start chain

CutOK / ^StopChain

Component diagram

Production

Production H.U.I.

Log Tree

Production

Deployment diagram

<<Laptop>> H.U.I.

Production

H.U.I.

<<processor>> Main Unit

<<CAN>>

JOTU2013/K.Systä

Page 27: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 27

Dipparekisteri

• Ohjelmistotekniikan laitoksella valmistuu noin 100 diplomityötä vuodessa

• D-työn tekemiseen kuluu aikaa muutamista kuukausista useisiin vuosiin

• D-töitä ohjaavat laitoksen professorit, kukin hieman toisista poikkeavalla tavalla

• D-työstä ylläpidetään aina tiettyjä perustietoja, lisäksi ohjaajilla on henkilökohtaisia tapoja pitää muistiinpanoja

• D-töiden etenemistä seurataan: diplomityön rajaus valmis, aihe hyväksytty tk-neuvostossa, x sivua kirjoitettu, työ tuotu tarkastettavaksi, työ hyväksytty, seminaariesitelmän pvm, jne.)

• Järjestelmän pitää siis sisältää yhteinen tietovarasto, jossa on kaikkien diplomitöiden perustiedot ja toisaalta yksittäisen ohjaajan tietovaraston pitää olla henkilökohtaisiin tarpeisiin mukautettavissa (ja käytettävissä ilman verkkoyhteyttä?).

JOTU2013/K.Systä

Page 28: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 28

Käyttötapauskaavio, versio 1

Ohjaaja

Lisää uusi

opiskelija

Etsi ehdot

täyttävät

opiskelijat

kirjoita

lausunto

tee

palaverimuisti

o

Lisää uusi

kenttä

Dipparekisteri

Pohja järjestelmän

hahmottamiselle ja siitä

keskustelemiselle

JOTU2013/K.Systä

Page 29: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 29

Käyttötapauskaavio, versio 2

Ohjaaja

Laitoksen johtaja

Lisää uusi

opiskelija

Etsi ehdot

täyttävät

opiskelijat

kirjoita

lausunto

tee

palaverimuistio

tarkastele

tilastoja

lisää/poista

ohjaaja

Lisää uusi

kenttä

Dipparekisteri

JOTU2013/K.Systä

Page 30: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 30

Toinen esimerkki KT-kaaviosta (kuva 8.6)

Varausten

poistaminen

Salinvarausjärjestelmä

Vastuu -henkilö

assistentti

ylläpitäjäPerustietojen

ylläpito

Luentosalin

varaaminen

Harjoitussalin

varaaminen

Käyttäjän

identifiointi

Käyttäjän

identifiointi

<<include>>

<<include>>

<<include>>

<<include>>

Salivuokran

laskutus

Salivuokran

laskutus <<actor>>

vuokra-

järjestelmä

<<actor>>

vuokra-

järjestelmä

JOTU2013/K.Systä

Page 31: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

… esimerkki (kuva 8.7) Nimi: Luentosalin varaaminen, versio 1.0 / ijh

Osallistujat: Kurssin vastuuhenkilö

Tuloehdot: Vastuuhenkilö ja kurssi on syötetty järjestelmään (KT henkilötietojen

ylläpito)

Kuvaus: Vastuuhenkilö seuraa WWW-linkkiä, joka johtaa järjestelmän

pääsivulle. Hän syöttää järjestelmään käyttäjätunnuksensa ja salasanansa

(include: KT käyttäjän identifiointi). Käyttäjä pyytää järjestelmää näyttämään

salin varaustilanteen haluamaltaan aikaväliltä. Hän saa eteensä salin

lukujärjestysnäytön (ks. liite). Käyttäjä näkee näytöstä vapaat ajat sekä myös,

mille kursseille sali on milloinkin varattu ja kuinka monelle viikolle. Käyttäjä

tekee varauksen joltain vapaaksi havaitsemaltaan ajankohdalta. [Poikkeus:

varaus ei onnistu].

Poikkeukset: Varaus ei onnistu: Varaustilanne on voinut muuttua sillä aikaa kun

varaaja tekee varausta. Järjestelmä ilmoittaa tilanteesta käyttäjälle ja käyttäjä

yrittää uudelleen.

Lopputulos:Varaukset kurssin luentoajoiksi on tehty.

Muut vaatimukset:Päivittäin käsitellään kiireisimpänäkin aikana enintään n.

100 varausta. Vastausajan on oltava alle 1 sekuntia, lukujärjestysnäytön päivitys

saa kestää 5 sekuntia. 16.9.2013 JOTU2013/K.Systä 31

Page 32: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Käyttötapauksen kuvaaminen UML ei standardoi mitenkään esitystapaa, eikä oikeastaan juuri

muutakaan niihin liittyvää => paljon erilaisia tulkintoja

Käyttötapauksen sisältö voidaan kuvata esimerkiksi:

Käyttötapauksen nimi: Kuvaava nimi

Osallistujat: Mitkä aktorit osallistuvat

Tuloehdot: Mitkä ehdot ovat voimassa, kun käyttötapaus aloitetaan

Kuvaus: Epäformaali, voidaan käyttää myös sekvenssikaavioita

Poikkeukset: Poikkeustilanteet (mainitaan myös kuvauksessa)

Lopputulos: Mitkä ehdot ovat voimassa, kun käyttötapaus

lopetetaan

Muut vaatimukset: käyttötapaukseen liittyvät ei-toiminnalliset vaatimukset

16.9.2013 JOTU2013/K.Systä 32

Page 33: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 33

Käyttötapaus

Käyttötapaus

Aktori <<include>>

Käyttötapaus

<<extend>>

Aktori: käyttötapaukseen

osallistuva käyttäjärooli

Käyttötapaus sisältää

laajennuskohtia, joihin

toinen käyttötapaus

voidaan sijoittaa

Järjestelmä

Käyttötapaus sisältää

toisen osanaan

Käyttötapaus

Käyttötapaus on

erikoistapaus

toisesta

Käyttötapauskaavio: notaatio

JOTU2013/K.Systä

Page 34: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Pay overdraft fee

Pay invoice

<<extend>>

Accounting System

Perform

interaction Byer

Seller

Vältä käyttötapausten välisiä suhteita

Älä käytä erikoistamista ja laajentamista

ja sisällyttämistäkin vain säästeliäästi. 16.9.2013 JOTU2013/K.Systä 34

Page 35: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 35

Käyttötapausten laatimisesta

• Käyttötapauskaavio tukee käyttötapojen suhteiden kuvaamista, ei niiden sisällön kuvaamista. UML ei määrittele sisällön esitystapaa.

• Käyttötapausten tulee olla ymmärrettävissä sekä asiakkaan että suunnittelijan kannalta.

• Käyttötapauksen abstraktiotason on oltava sopiva (ei esim. yleensä käyttöliittymän yksityiskohtia).

• Kaikkia käyttötilanteita/asiakasvaatimuksia ei voi/kannata antaa käyttötapauksina.

• Käyttötapauksella tulee olla selkeä aloitustilanne ja lopetustilanne. • Käyttötapauksen "suuruudesta" päättäminen voi olla vaikeaa:

– Käyttötapauksen tulisi olla suhteellisen lyhyt (yhden sivun kuvaus). – Käyttötapaus tuottaa käyttäjälle lisäarvoa (ei yleensä yksittäinen

ohjelmiston toiminto, vaan kokonainen tuloksen tuottava ketju toimintoja).

– Käyttötapaus ei siis yleensä ole yksittäinen ohjelmalla suoritettava toiminto (ei siis esimerkiksi: tekstin kopiointi leikkuupöydälle).

JOTU2013/K.Systä

Page 36: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 36

Miksi käyttötapauksia? • Toimii apuna hahmotettaessa järjestelmää (yhteinen näkemys

järjestelmästä)

• Liittää asiakasvaatimukset järjestelmän toimintoihin

• Mahdollistaa vaatimusten täsmentämisen

• Rajaa järjestelmän ympäristöstään

• Auttaa tunnistamaan kuka tai mikä käyttää järjestelmää

• Määrittää järjestelmän korkean tason toiminnallisuuden

• Auttaa jakamaan toiminnallisuuden osajärjestelmiin.

• Määrittää järjestelmän perustermit.

• Apuna olioiden (keskeisten käsitteiden) tunnistamisessa.

• Voidaan käyttää ohjelmistokehityksen organisointiin (iteraatioiden suunnittelu)

• Testauksen suunnittelu

• Käyttöohjeiden laatiminen

JOTU2013/K.Systä

Page 37: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 37

KT:a käytetään usein liittämään asiakasvaatimukset järjestelmä/ohjelmistovaatimuksiin (~kuva 8.8)

tekstin kopiointi

tekstin siirtäminen

maalaa

kopioi

leikkaa

siirrä

kohdistin

liitä

...

...

...

...

KT kopioi teksti

maalaa

kopioi

siirrä

kohdistin

liitä KT siirrä teksti

maalaa

leikkaa

siirrä

kohdistin

liitä

Asiakasvaatimukset Ohjelmistovaatimukset

...

...

...

... JOTU2013/K.Systä

Page 38: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

16.9.2013 38 JOTU2013/K.Systä

Page 39: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Käyttäjätarina (user story)

• Ketterissä menetelmissä yleisesti käytetty termi. • Muutamaan lauseeseen typistetty "käyttötapaus" • Tarinasta selviää:

– rooli (aktori) – mitä tehdään – ja mahdollisesti mitä lisäarvoa tekeminen tuottaa

käyttäjälle (usein tämä on kuitenkin ilmeistä)

• Esimerkiksi: Kurssin vastuuhenkilönä pystyn tekemään kaikki yhden kurssin luentosalivaraukset yhdellä varausoperaatiolla (silloin kun luentoajat ovat koko kurssin ajan samoina viikonpäivinä samaan kellonaikaan).

16.9.2013 JOTU2013/K.Systä 39

Page 40: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Vaatimukset ja Scrum

16.9.2013 JOTU2013/K.Systä 40

Page 41: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Scrum

16.9.2013 JOTU2013/K.Systä 41

Page 42: Vaatimusmäärittelyistäsysta/JOTU2013/04VaatimusmaarittelyistaWeb.pdfMitä vaatimuksesta kirjataan (esimerkki) • Luontipäivämäärä • Tekijä • Asiakas, vaatimuksen alkuperä

Tiivistetysti

• Jonkinlainen alustava vaatimusmäärittely ennen tarvitaan ennen töihin ryhtymistä

• Product backlog on (muuttuva) vaatimusmäärittely)

16.9.2013 JOTU2013/K.Systä 42