582104 Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely 1
Vaatimukset ja käyttötapaukset Vaiheittainen mallintaminen ja abstraktiotasot Käyttötapausmalli ja kaavio Käyttötapausmallin laatiminen 2
Vaiheittainen mallintaminen ja abstraktiotasot UML-mallinnusta voidaan tehdä usealla abstraktiotasolla, esimerkiksi Liiketoimintatason malli Kohdealuetason malli Molemmilla tasoilla voidaan laatia käyttötapaus- ja luokkamallit osana vaatimusmäärittelyä Kohdealueen perussanasto (glossary of terms) Mallinnuksen alkuvaiheessa Olennainen erityisesti luokkamallin laadinnassa 3
Toiminnalliset ja ei-toiminnalliset vaatimukset Toiminnalliset vaatimukset - Mitä toimintoja ohjelmassa on? Esim. kurssihallintojärjestelmä: Opetushallinto voi syöttää kurssin tiedot järjestelmään Opiskelija voi ilmoittautua valitsemalleen kurssille Opettaja voi syöttää opiskelijan suoritustiedot Opettaja voi tulostaa kurssin tulokset Ei-toiminnalliset vaatimukset (eli ympäristön rajoitteet) Toteutusympäristö, suorituskykyvaatimukset,... 4
Vaatimusmäärittelyn rajaus Vaatimusmäärittelyssä ei oteta kantaa ohjelman sisäisiin teknisiin ratkaisuihin, ainoastaan siihen miten toiminta näkyy käyttäjälle Miten toiminnalliset vaatimukset tulisi ilmaista? 5
Käyttötapausmalli Tietojärjestelmän käytön ja päätoimintojen kuvaaminen Kuvaa järjestelmän tarjoamat palvelut Järjestelmän palveluilla on käyttäjä UML tarjoaa symbolit käyttötapauksille Itse kaaviotekniikkaa olennaisempi asia on kuitenkin kunkin käyttötapauksen sanallinen kuvaus Sekä käyttötapausten välinen harmonia 6
Käyttötapaus (use case) Järjestelmän avulla suoritettava looginen tavoitteellinen tehtäväkokonaisuus, jolla on lähtökohta ja lopputulos Kuvaa usein järjestelmälle asetettavaa toiminnallista vaatimusta 7
Käyttäjä (actor) Kuvaa roolia, jota järjestelmään liittyvä taho esittää Usein ihminen, mutta voi olla myös toinen ohjelma / ohjelmisto Välitön rooli - suora osallistuminen (esim. toimihenkilö, joka käynnistää raportin tekemisen) Välillinen käyttäjä - epäsuora osallistuminen (viranomainen, joka saa raportin) Haluaa saavuttaa käyttötapaukseen liittyvän tavoitteen Toimii vuorovaikutteisesti järjestelmän kanssa toteuttaakseen tavoitteensa 8
Kurssi-ilmoittautumisjärjestelmä Käyttäjärooleja Opiskelija, Opettaja, Opetushallinto, Suunnittelija Laitoksen johtoryhmä, Tilahallintojärjestelmä, Henkilöstöhallintajärjestelmä Osa käyttäjistä yhteydessä järjestelmään vain epäsuorasti (esim. Johtoryhmä) Osa käyttäjistä on muita järjestelmiä Sana käyttäjä ei ole terminä tässä tilanteessa paras mahdollinen 9
Käyttötapauksen kuvaus Graafisen elementin lisäksi sanallinen kuvaus, vain vähän muotovaatimuksia Esitetään tyypillisesti toimintosarjana käyttäjän kannalta tarkasteltuna Mitä käyttäjä tekee tavoitteensa saavuttamiseksi, mitä palvelua saa Riittävän yksityiskohtainen Ei sisällä käyttöliittymäasioita eikä toteutukseen liittyviä yksityiskohtia 10
Käyttötapauksien hahmottelua Käyttötapaus voi kuvata liiketoimintaa (liiketoimintatehtävä) tai Käyttötapaus voi kuvata järjestelmän käyttöä (system use case) Tavallisesti käyttötapauksien välinen kytkentä jää heikosti määritellyksi ja epämääräiseksi UML ei tarjoa välineistöä eri tasoisten käyttötapausmallien yhdistämiseen Liiketoimintatehtävään (-prosessiin) liittyy tyypillisesti useita järjestelmän käyttöä kuvaavia käyttötapauksia 11
Esimerkki: Kurssi-ilmoittautuminen 12
Käyttötapauksen kuvauksen elementtejä Nimi (tekemistä, esim. lainaus, palautus) (name), versio Tavoite (goal) mitä tarkoitus saavuttaa Yhteenveto (summary) tiivis kuvaus Käyttäjät (actors) osallistujat, välitön / välillinen Lähtötilanne (pre-conditions) millä edellytyksin toimii Käynnistyminen (triggers) mikä laukaisee toiminnan Peruskulku (basic course of events) miten etenee normaalisti Vaihtoehtoiset kulut (alternative paths), eteneminen poikkeustilanteissa Lopputilanne (post-conditions) mihin päädytään Liiketoimintasäännöt (business rules) säännöt, joita toimintaan liittyy 13
Kurssi-ilmoittautuminen tarkemmalla tasolla 14
Graafinen kuvaustekniikka Käyttötapausmalliin liittyy graafinen kuvaustekniikka, jolla voidaan kuvata Käyttäjän yhteys käyttötapauksiin, Käyttäjien suhteita toisiinsa Käyttäjä voi olla erikoistapaus toisesta (tai päinvastoin toisen yleistys) [generalization] Käyttötapausten suhteita toisiinsa Käyttötapaus voi olla erikoistapaus tai yleistys Käyttötapaus voi olla toisen laajennus (esim. poikkeustilannetoiminnot) [extends] Käyttötapaus voi sisältää toisen tapauksen [include] 15
Käyttötapauskaavioiden elementtejä Yhteydet (associations) Yhteys käyttäjän ja käyttötapauksen välillä Yhteys käyttötapausten välillä Yleistyssuhde (generalizations) Joko käyttäjien tai käyttötapausten välinen Erikoistapaus tarkentaa yleisempää tapausta tai lisää siihen ominaisuuksia Verrattavissa periytymiseen luokkahierarkiassa 16
Vaatimusten esittäminen käyttötapausmallina Joukko käyttötapauskaavioita ja niiden tekstikuvauksia Usein tarvitaan useita kaavioita Käyttötapausten organisointi ja niiden väliset suhteet nousevat keskeiseen rooliin 17
Käyttötapauksen tekstikuvaus Vaatimusten kannalta olennaista on käyttötapausten tekstuaaliset kuvaukset Tekstikuvaus sisältää tyypillisesti ainakin Käyttötapauksen nimi ja numero Käyttötapaukseen liittyvät käyttäjät Tyypillinen kulku askeleittain Usein annetaan myös Annettavat syötteet ja saatavat tulosteet Tapaukseen liittyvät säännöt, vaatimukset, määrät.. Suhteet muihin tapauksiin, erikois- ja poikkeustilanteet 18
Käyttötapausten välisten suhteiden ilmaiseminen Käyttötapausten välisiä suhteita on usein tarpeen ilmaista tarkemmin Erityisiä suhdetyyppejä includes ja extends Useamman käyttötapauksen osatehtävänä aina esiintyvä käyttötapaus voidaan sisällyttää sitä tarvitseviin käyttötapauksiin Esimerkiksi kirjautuminen on monesti tällainen Käyttötapauksen perussisältöä laajentavat osat voidaan liittää yleiseen käyttötapaukseen, esim. Vaihtoehtoiset tai valinnaiset käyttötapaukset Virhe- ja poikkeustilanteet 19
Esimerkki sisällyttämisestä Tunnistautuminen on sisällytetty käyttötapaukseen ilmoittautuminen Mutta on sisällytettävissä myös muihin käyttötapauksiin Mahdollistaa tunnistautumiseen liittyvien yksityiskohtien abstrahoinnin 20
Esimerkki laajentamisesta Vaihtoehtoisuus: Tunnistautuminen tehdään henkilötunnuksella tai opiskelijanumerolla Virhetilanne: Verkkoyhteys opiskelijarekisteriin ei toimi, jolloin ilmoittautumista ei voida kirjata 21
Esimerkinomainen käyttötapausformaatti Otsaketiedot nimi, numero, laatija, päiväys, versio, status, Lyhyt, parin virkkeen kuvaus käyttötapauksesta Käyttötapaukseen liittyvät käyttäjät Ehdot Kuvaus tilanteesta, jossa käyttötapaus voidaan suorittaa Kuvaus järjestelmän tilasta normaalin tai poikkeuksellisen suorituksen jälkeen Askeleet Käyttötapauksen tyypillinen kulku Poikkeuksellisten tilanteiden kulku 22
Käyttötapaukset ohjelmiston elinkaaressa Vaatimusmäärittelyvaiheessa Voidaan lähteä liikkeelle esimerkiksi käyttäjien työtehtäviin perustuvista käyttötapauksista Listataan perussisällöt, joita tarkennetaan vaiheittain Suunnitteluvaiheessa Käyttöliittymäsuunnittelu Tietosisällön ja algoritmien riittävyyden ja toimivuuden tarkistus Toteutuksessa ja järjestelmän valmistuttua Testauksen pohjana Käyttöohjeen laatimisen apuna 23
Esimerkki: TKTL:n ilmo-järjestelmä TKTL:n ilmo-järjestelmästä käytännön esimerkki 1. Käyttötapauskaavio 2. Käyttötapauksen kuvaus 24
Ilmoittautumisjärjestelmän käyttötapaukset 25
Ilmo-järjestelmän opiskelijan käyttötapauksia 26
TKTL:n ilmo-järjestelmän käyttötapauksen sanallinen kuvaus (tiivis) Käyttötapaus: Kurssille ilmoittautuminen Käyttötapauksen tyypillinen kulku: 1. Opiskelija antaa tunnistustietonsa 2. Opiskelija valitsee kurssin ja harjoitusryhmän 3. Opiskelija kirjataan ryhmään ja hän saa tiedon ilmoittautumisen onnistumisesta Sääntöjä Täyteen ryhmään ei voi ilmoittautua Tietyn opiskelijan ilmoittautuminen voidaan estää Muuta Periodin alussa ilmoittautumisessa on ruuhkahuippu 27
Käyttötapauksen ilmentymä Esimerkki esitti käyttötapauksen tyypillistä kulkua Havainnollisuuden vuoksi on usein syytä antaa esimerkkejä Opiskelija Aatami antaa tunnistetietonsa 052955 ja valitsee kurssin 582101 sekä harjoitusryhmän numero 3. Aatami kirjataan ryhmään 3 ilmoittautuneeksi ja hänelle annetaan tieto ilmoittautumisen onnistumisesta. Käyttötapauksen käsitteet linkittyvät laadittuun sanastoon 28
Ilmo-järjestelmän suunnittelijan käyttötapaukset 29
Yleistetty ja erikoistettu käyttötapaus Suunnittelijan käyttötapauksista opetustarjonnan ylläpito on hyvin laaja tehtäväkokonaisuus Voidaankin ajatella, että kyseessä on yleistetty käyttötapaus, joka oikeasti pitääkin sisällään useita konkreettisia käyttötapauksia, kuten Uuden kurssin perustus Uuden harjoitusryhmän perustus Harjoitusryhmän peruutus Kurssin peruutus Mukana myös ulkoisia järjestelmiä, kuten tilanhallintajärjestelmä ja henkilöstöhallintajärjestelmä 30
Yleistetyt käyttötapaukset kaaviona 31
Käyttötapauksen modularisointi Useaan tapaukseen saattaa liittyä yhteinen osa Yhteisestä osasta voidaan tehdä alikäyttötapaus, joka sisällytetään (include) pääkäyttötapaukseen Käyttötapauskaaviossa tätä varten oma merkintänsä katkoviivanuoli pääkäyttötapauksesta apukäyttötapaukseen Esim. käyttötapaus kirjautuminen suoritetaan aina kun tehdään ilmoittautuminen tai peruutus 32
Yhteiset osat ja include Apukäyttötapauksen sisällytys on tärkeä ilmaista käyttötapauksen tekstuaalisessa kuvauksessa Muuten ei tietoa missä kohtaan sisällytys tapahtuu 33
Yhteydet ja yleistykset 34
Poikkeustilanteet ja laajennukset Sisällytettävä käyttötapaus suoritetaan aina pääkäyttötapauksen suorituksen yhteydessä Myös tarvittaessa suoritettava laajennus tai poikkeustilanne voidaan kuvata apukäyttötapauksena, joka laajentaa (extend) pääkäyttötapausta Laajennus suoritetaan siis vaan tarvittaessa Esim. Ilmoittautuessa saatetaan huomata esitietopuute, jonka käsittely on oma käyttötapauksensa 35
Poikkeustilanteet ja laajennukset esimerkki 36
Esimerkki: kassapäätejärjestelmä Esimerkki Craig Larmanin kirjasta Applying UML and Patterns Kirjan käyttötapausluku löytyy verkosta http://www.craiglarman.com/wiki/index.php? title=articles Aluksi etsitään järjestelmän käyttäjät: mitä käyttäjä haluaa saada järjestelmällä tehtyä Käyttäjän tavoitteellisista toiminnoista (esim. käsittele ostos) tulee tyypillisesti käyttötapauksia Samalla saatetaan löytää uusia käyttäjiä (erityisesti ulkoisia järjestelmiä joihin järjestelmä yhteydessä) Hahmotellaan alustava käyttötapausdiagrammi 37
Kassapäätejärjestelmän kaavio 38
Kuvauksen tekeminen karkealla tasolla Ensin kannattanee tehdä vapaamuotoinen kuvaus käyttötapauksista ( brief use case ) POS, point of sales terminal eli kassapääte 39
Tarkempi kuvaus kirjoitetaan sovitussa määrämuodossa 40
Käyttötapauksen normaalikulku 41
Laajennukset, tarkennukset ja poikkeukset 42
Tarkennuksia 43
Huomioita tarkkaan kuvatusta käyttötapauksesta Esimerkin mallin mukaan käyttötapauksen pääkulku kannattaa kuvata tiiviisti Eri askeleiden sisältöä voi tarvittaessa tarkentaa Kuten edellisellä sivulla tarkennettu askel 7 customer pays... Huomioi tapa, miten poikkeusten ja laajennusten sijainti pääkulussa merkitään 7a => laajentaa/tarkentaa pääkulun kohtaa 7 Osa jossa laajennukset, tarkennukset ja poikkeukset dokumentoidaan, on usein paljon pidempi kuin normaali kulku 44
Lopuksi Käyttötapaukset ovat de facto-tapa ilmaista vaatimuksia Toimii parhaiten interaktiivisille järjestelmille Kaaviotekniikka opittavissa nopeasti, hypoteesin mukaan kommunikoi myös asiakkaille Yksinkertainen ulkokuori sälyttää vastuun tekijälle: konsistessi ja järkevyys riippuu kontekstista Kattavuuden varmentamiseen ei ole välineitä, sillä sisältö on käyttötapausten tekstin varassa Käyttötapausten muokkaaminen vaatii jatkuvaa tarkkailua ja katselmointia, jotta kokonaiskuva ei rapaudu 45