582104 Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely 1
Vaatimukset ja käyttötapaukset Vaiheittainen mallintaminen ja abstraktiotasot Järjestelmän rajaaminen sidosryhmäkaaviolla 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
Liiketoiminnallinen sidosryhmäkaavio Yksinkertainen korkean tason kaavio, joka on lainattu DFD-tekniikoista (ei varsinaista UML:ää) Kuvaa yrityksen tai järjestelmän tarjoamat keskeisimmät palvelut ja suhteet keskeisiin sidosryhmiin Ilmaisee kehitettävän järjestelmän rajauksen Yhteydet sidosryhmien ja liiketoiminnan välillä esittävät sidosryhmiltä liiketoimintaan saatavia tai niille toimitettavia tietoja 4
Esimerkki liiketoiminnallisesta sidosryhmäkaaviosta Kirjan esimerkkikuva: 6.1 (markkinoinnin vaikutusten ja kustannusten analysointia) 5
Sidosryhmäkaavion tarkoituksesta Sidosryhmäkaavion tarkoituksena on tunnistaa tahot, jotka tulevat olemaan ohjelmiston kanssa tekemisissä Lisäksi tietovirtoihin liitetään tyyppi, jolla hahmotellaan toimintaa Sidosryhmien dokumentoimisella myös rajataan järjestelmän käyttäjäkuntaa Sidosryhmäkaaviossa tarkoituksellisesti ei mietitä mitä palvelut pitävät sisällään Vaatimukset ohjelman toiminteille kuvataan tarkemmin käyttötapauksina. 6
Käyttötapausmalli Tietojärjestelmän käytön ja päätoimintojen kuvaaminen Kuvaa organisaation, yrityksen tai järjestelmän palvelut tarkemmin kuin sidosryhmäkaavio 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 7
Käyttötapausmalli Liiketoiminnan tarkempi kuvaus liiketoimintatehtävämallin (business use case model) avulla. Ylimmän tason mallissa kuvataan tärkeimmät liiketoiminnan osaprosessit ja niihin osallistuvat tahot. Erikoistapaus UML:n käyttötapausmallista (use case model) 8
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 9
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 10
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 11
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 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
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] 14
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 15
Yhteydet ja yleistykset 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
Kurssikirjan 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. Sidosryhmäkaavio 2. Käyttötapauskaavio 3. Käyttötapauksen kuvaus 24
TKTL ilmo-järjestelmän sidosryhmäkaavio 25
TKTL:n ilmo-järjestelmän käyttötapauskaavio 26
TKTL:n ilmo-järjestelmän toisia käyttötapauksia 27
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 28
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 29
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 30