Käyttötapausten mallintaminen



Samankaltaiset tiedostot
Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotekniikan menetelmät, UML

Dynaaminen analyysi II

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen, kesä 2009

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistotekniikan menetelmät, kesä 2008

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Käyttäjien tunnistaminen on ensimmäinen tehtävä järjestelmän palveluja määriteltäessä. Käyttäjien löytämiseksi voidaan esittää kysymykset:

Määrittelyvaihe. Projektinhallinta

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, kevät 2008

Yhteistoimintakaavio (Esimerkki)

Ohjelmistojen mallintaminen kertausta Harri Laine 1

SÄILYTETTÄVIEN TIETOJEN MÄÄRITYS LUOKKAMALLI

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurin kehittäminen Liite 2 Arkkitehtuurikehyksen kuvaus

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

UCOT-Sovellusprojekti. Testausraportti

Ohjelmistojen mallintaminen

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely

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

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

Johdatus sovellussuunnitteluun, s2000, osa3 Helsingin yliopisto;/tktl. Harri Laine 1. Järjestelmän palvelujen määrittely

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Määrittely- ja suunnittelumenetelmät

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Liite 2, Todennetun osaamisen rekisteri, käyttötapausten. Todennetun osaamisen rekisterin kohdearkkitehtuuri

Ohjelmistojen suunnittelu

Ohjelmistojen mallintaminen

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Ohjelmistojen mallintaminen. Luento 6,

Harjoitustyön testaus. Juha Taina

Ohjelmiston toteutussuunnitelma

Unified Modeling Language

Ohjelmistojen mallintaminen

Ohjelmistotuotanto, s /3/2003

UML - unified modeling language

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

TIE = JOTU. VH5 - MagicDraw

Olioiden yhteistyön mallintaminen

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

VH5, JOTU, MagicDraw:n käyttö

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Oppijan palvelukokonaisuus. Tietomallinnuksen laaja katselmointi

käyttötapaukset mod. testaus

Luonnos eams-rakenteeksi

Unified Process (UP)

IT2015 EKT-ehtojen käyttö

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Testaussuunnitelma Labra

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

3a. Projektin hallinta (lisäys lukuun 3)

Ohjelmistojen mallintaminen

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

SIPOC ja Arvovirtakartta työskentely - Ohje

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

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

Liite D: Poikkeamispäätösten ja suunnittelutarveratkaisujen mallinnus tiedonsiirtoa varten

Testaaminen ohjelmiston kehitysprosessin aikana

Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot, näkökulmat ja esimerkit

Raportointi >> Perusraportti Palautepyyntö: ICT palvelujen kehittäminen: Vaatimusmäärittely

ICT-palvelujen kehittäminen - suositussarja Suvi Pietikäinen Netum Oy

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Maanvuokrausjärjestelmä Mvj. Projektitarpeen ja tavoitteiden kuvaus

UCOT-Sovellusprojekti. Vaatimusmäärittely

EMCS-järjestelmän sanomarajapinnan toiminnallinen kuvaus asiakkaille Meeri Nieminen

Käyttäjätarinat perinteisessä hankkeessa. Sisältö ja käytännöt

JHS- seminaari Uudet suositukset ICT- palvelujen kehittämiseen

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Onnistunut Vaatimuspohjainen Testaus

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurimenetelmä

Ical-kalenterisovellus

Ohjelmistotuotanto, s

Käyttötapauspohjainen testaaminen

PUTTE Puutteiden estimointijärjestelmä

Johdatus sovellussuunnitteluun. Johdatus sovellussuunnitteluun

UML:n yleiskatsaus. UML:n osat:

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

UML-kuvauskielten käyttö ohjelmistojen vaatimusmäärittelyissä

Vaatimusmääritelystä UML:n avulla

Transkriptio:

Käyttötapausten mallintaminen Vaatimukset ja testauslähtöisyys, swd4tn001 Anne Valsta 1.3.2011 (ent. 11.2.2011)

Sisällysluettelo 1 Käyttötapaukset ohjelmiston vaatimusten määrityksessä... 2 1.1 Käyttötapauskartta... 3 1.2 Käyttötapauskuvaus... 4 1.3 Käyttötapausten riippuvuuskaavio... 6 1.4 Päätöstaulu... 7 2 Käyttötapausten mallintamisen merkitys ohjelmistokehitystyössä... 8

Anne Valsta 2 (10) Käyttötapausten mallintaminen Vaatimukset ja testauslähtöisyys (swd4tn001) -opintojaksolla vaatimusten täsmentäminen alkaa toiminnallisten vaatimusten jäsentämisestä ja mallintamisesta. Toiminnalliset vaatimukset määritellään ja mallinnetaan käyttäen niin UML (Unified Modeling Language) -kuvauskieltä kuin muita tekniikoita. Käyttötapausten mallintaminen tähtää kuvauksiin, joista voidaan helposti johtaa käyttötilannekohtaiset skenaariot testitapausten laatimiseksi. Tämä moniste kattaa swd4tn001:llä tarvittavat ja käytettävät kuvaustyypit, eikä pyri olemaan kattava käyttötapausten mallintamisen opas. Sitä varten on useita ansiokkaita kirjoja, joita tässäkin on lainattu. Tässä esitetyt teoriakohdat tukeutuvat paljolti Ulla Vanhasen 2005 laatimaan luentotiivistelmään (sys48d). Esimerkit ovat Anne Valstan Tietojärjestelmän vaatimusmääritys (ict2td006) -materiaalista. Ullan ystävällisen tarkistuksen johdosta olen korjannut lukuun 1kahta kohtaa (ent. yliviivattuna). 1 Käyttötapaukset ohjelmiston vaatimusten määrityksessä Käyttötapaus (use case) on yksi ohjelmiston toiminnallisen vaatimuksen kuvaamisen käytäntö. Käyttötapaus kuvaa ohjelmiston tarjoaman palvelun, palvelun ja sen käyttäjän välisen vuoropuhelun sekä ohjelmiston sisäisiä kutsurakenteita. Käyttötapauksia kuvataan niin RUP:ia (Rational Unified Process) kuin ketteriä menetelmiä käytettäessä ohjelmistokehityksen työtapana. Käyttötapauksia kuvataan sekä kaavioina että tekstinä. Kun ohjelmiston kehittämiseen osallistuu useita ammattilaisia, käyttötapaukset ja niiden kuvaukset auttavat kehittäjiä ja kohdealueen asiantuntijoita ymmärtämään kehitettävää kokonaisuutta. Samalla kohdealueen (liiketoiminnan) asiantuntijat oppivat mallintamisesta ja ohjelmistokehityksestä. Käyttötapausmalli kuvaa ohjelmiston rakennetta, sen vuorovaikutteisia piirteitä ja dynaamisuutta sekä jäsentää käyttöliittymää, ulkoista rajapintaa. Käyttötapausten avulla voidaan täsmentää ohjelmiston toiminnallisten vaatimusten keskinäisiä riippuvuuksia, vuorovaikutteisia piirteitä ja ohjelmiston käyttöliittymän

Anne Valsta 3 (10) kehittämistä, käytettävyyttä ja käyttökokemusten parantamista. Käyttötapauksen tietotarpeiden avulla voidaan määritellä ohjelmiston käyttämät ja säilyttämät tiedot. Käyttötapauskuvauksia on erilaisia: käyttötapauskartta (use case diagram) kuvaa ohjelmiston nk. pääkäyttötapaukset eli käyttäjälle näkyvät palvelut, palveluiden käyttäjäroolit eli toimijat ja liittymäjärjestelmät käyttötapausten riippuvuuskaavio (use case dependence diagram) kuvaa pääkäyttötapausten ja niiden osakäyttötapausten kutsurakenteet, ohjelmiston sisäisen käyttäytymisen käyttötapauskuvaus eli step-by-step -kuvaus kertoo yksiselitteisesti, miten vuoropuhelu (vrt. käsikirjoituksen vuorosanat) toimijan ja käyttötapauksen kesken kulkee, mitä tietoja käsitellään, miten tietoja käsitellään. 1.1 Käyttötapauskartta Käyttötapauskarttaa käytetään, kun halutaan antaa yleiskuva ohjelmiston palveluista ja käyttäjäroolien käyttöoikeuksista ohjelmiston eri palveluihin. Käyttäjäroolit ovat ohjelmiston sidosryhmiä. Esimerkki käyttötapauskartasta on esitetty kuvassa 1. Kuvassa käyttäjärooleja eli toimijoita kuvaavat tikku-ukot, palveluita ellipsit, toimijoiden ja palveluiden välistä käyttöoikeussuhdetta suuntaamaton viiva. Super-Herkku SHAsiakas Kauppakassin keräily SHkantaAsiakas Toimituksen kokoaminen Kuva 1. Super-Herkun palvelut käyttötapauskarttana Käyttötapauskartta kuvaa tässä palvelut, jotka ovat toimijalle näkyviä ohjelmiston aloitussivulla. Vertaa kuvan 1 ja kuvan 2 sisältöä.

Anne Valsta 4 (10) Kuva 2. Super-Herkun aloitussivu. 1.2 Käyttötapauskuvaus Käyttötapauskartan palvelut jäsennetään vuoropuheluna eli käyttötapauskuvauksiksi. Käyttötapauskuvaus on algoritminen, askelittain etenevä, yksityiskohtainen kuvaus toimijan ja käyttötapauksen välisestä yhteistyöstä halutun lopputuloksen saamiseksi. Käyttötapauskuvauksen ensimmäinen askel kuvaa, mitä ohjelmisto tarjoa toimijalle nähtäväksi, kun kyseiseen käyttötapaukseen on tultu. Puheenvuoro siirtyy toimijalle, toimijan päätöksellä joko takaisin käyttötapaukselle tai toimija lopettaa käytön. Yksityiskohtainen tarkoittaa, että tietotarpeet ja niiden käsittelyyn liittyvät säännöt tai ohjeet kuvataan myös. Käsittelysäännöt kannattaa koota yhteen paikkaan ja esimerkiksi numeroida. Käyttötapauskuvauksessa viitataan numeroituun käsittelysääntöön, jotta itse käyttötapauskuvaus pysyy selkeänä. Käsittelysääntö voi olla esimerkiksi sisällön tai muodon tarkistus- tai muokkausohje, laskenta-, poiminta- tai lajitteluohje. Käyttötapauksen yksityiskohtaisen kuvaamisen yhteydessä otetaan kantaa ohjelmistolle asetettaviin suoriutumisvaatimuksiin, jotta käyttötapaus on mahdollista toteuttaa eli määritellään esiehto, jonka vallitessa käyttötapaus selviytyy sille ajatellusta tehtävästä. Samalla arvioidaan, kuinka usein jonkin aikayksikön kuluessa käyttötapauksen toiminnallisuutta toteutetaan. Käyttötiheys antaa vihjeitä kuormituksesta, mahdollisten tietokantayhteyksien määrästä ja käyttötapauksen vaikutuksesta yhteyden laatuun. Käyttötapauksen lopputulos kuvaa, mitä toimija odottaa tapahtuneen, kun kaikki meni kuten piti. Seuraava esimerkki kuvaa käyttötapauksen askel askeleelta kuvassa 3. Kauppakassin keräily step-by-step -kuvauksena. Nuoli ( ) ja lihavoitu käyttötapauksen nimi kertovat, että toiminta siirtyy toiseen käyttötapaukseen. Pelkkä nuoli tarkoittaa siirtymistä perusaskeleeseen, jonka numero seuraa nuolta.

Anne Valsta 5 (10) Kuva 3. Kauppakassin keräily step-by-step -kuvauksena. Toimija voi tietyissä askelissa valita käyttötapauksen perustoiminnan sijasta toisin. Vaihtoehtoista tapaa kutsutaan variaatioksi (V askelnumeron edessä). Variaatiot ovat toimijalle sallittu tapa poiketa perusaskelista. Jos käyttötapaus havaitsee virhetilanteen, on kyseessä poikkeus (P askelnumeron edessä). Poikkeukset kuuluvat käyttötapauksen askeliin, eivät toimijan. Jos käyttötapauksessa tarjotaan variaatioita tai ilmenee poikkeuksia, ne tulee myös testata vaihtoehtoisina polkuina toteuttaa vuoropuhelu. Erilaiset polut ovat erilaisia käyttötilanteita. Perusaskelluksen mukaisia käyttötilanteita on yleensä n. 80 % kaikista mahdollisista käyttötilanteista. Käyttötapauskuvauksia käytetään niin järjestelmän tietosisällön (luokkamallin) ja käyttöliittymärajapinnan (näytöt) määrittämiseen kuin uudelleenkäytettävien osien löytämiseen. Käyttötapauskuvausten avulla huomio kiinnittyy myös ylläpidettävyyteen. Käyttötapausten mallintaminen on iteratiivista, tarkentavaa ja uudelleen jäsentävää työtä, jossa ratkaisun (ohjelmiston) dynaaminen rakenne tulee näkyväksi.

Anne Valsta 6 (10) Useassa käyttötapauksessa ilmenevä vuoropuhelun eli askelten samankaltaisuus kertoo toisteisesta rakenteesta, jonka jäsentäminen osakäyttötapaukseksi on paikallaan. Erityisesti, jos sitä käyttää usea käyttötapaus. Monesti ohjelmiston käyttäjän tunnistamiseen liittyvä (sisään/ulos)kirjautuminen on näin tarkastellen aito osakäyttötapaus. Mikäli kovin moni ohjelmiston palvelu kuitenkin edellyttää käyttäjän tunnistamista, voidaan osakäyttötapaus katsoa pääkäyttötapaukseksi, jolla ohjelmiston käyttäjän pyydetään palveluun tullessaan tunnistautuvan. Huomaa, että aiemmin laaditut kuvaukset tulee tarkistaa ja korjata, kun käyttötapausten jäsennyksestä tai riippuvuuksista ilmeneviä muutoksia tapahtuu. Käyttötapausten mallinnuksen tulos voi muuttua useaan kertaan ymmärrys toiminnallisista vaatimuksista tarkentuu ja jalostuu työn edetessä. 1.3 Käyttötapausten riippuvuuskaavio Käyttötapauskartan palvelut täsmentyvät ja jäsentyvät pää- ja osakäyttötapauksiksi, kun kukin käyttötapaus puretaan vuoropuheluksi. Kun (kaikki) käyttötapaukset ovat löytyneet ja jäsentyneet, ne mallinnetaan käyttötapausten riippuvuuskaavioksi. Esimerkki riippuvuuskaaviosta on esitetty kuvassa 4. Kuva 4. Super-Herkun käyttötapaukset riippuvuuskaaviona. Riippuvuuskaaviossa kuvataan käyttötapausten väliset suhteet ja niiden tyyppi. Suhteisiin liittyvä (stereo)tyyppi kuvaa suhteen luonteen. <<include>> tarkoittaa pakollista siirtymää toiseen (osa)käyttötapaukseen. Pakollisuus näkyy käyttötapauksen perusaskelluksessa. <<extend>> kuvaa vaihtoehtoisuutta. Käyttötapauskuvauksessa vaihtoehtoisuus näkyy toimijalle sallittuna variaationa. Riippuvuusnuolen suunta kuvaa

Anne Valsta 7 (10) kontrollia ja suunta on tärkeä. Kuvassa 4. kauppakassin keräilystä siirrytään ehdoitta niin kirjautumiseen kuin selaamaan tilattavia tuotteita. Missä vaiheessa pakollinen siirtyminen tapahtuu, näkyy käyttötapauskuvauksen askelluksesta. 1.4 Päätöstaulu Käyttötapauksen toimintaa voi kuvata myös päätöstaulun avulla. Päätöstaulussa kuvataan käsittelyn säännöt ehtoina ja niiden vaihtoehtoisina kombinaatioina. Erilaiset vaihtoehdot johtavat erilaisiin toimenpiteisiin. Kuvassa 5 on esitetty yksinkertaisen kirjautumiskäyttötapauksen näyttöhahmotelma ja kuvassa 6 kirjautumisen toiminta päätöstaulun avulla. Kuva 5. Super-Herkkuun kirjautuminen. Päätöstaulussa K tarkoittaa, että ehto täyttyy. Vastaavasti E, ettei ehto täyty. Viiva tarkoittaa, ettei ehdon täyttyvyydellä ole väliä. Rasti kertoo, mikä toimenpide toteutetaan ehtojen vallitessa. Kuva 6. Kirjautuminen päätöstauluna.

Anne Valsta 8 (10) 2 Käyttötapausten mallintamisen merkitys ohjelmistokehitystyössä Kun käytetään ketterää työtapaa ja ohjelmiston kehittämistä ohjataan esim. Scrumin periaatteiden mukaisesti, ovat käyttötapaukset oiva tapa jäsentää, mitä kussakin iteraatiossa, kehittämiskierroksessa, sprintissä aiotaan saada valmiiksi. Kun käyttötapausten jäsennys on tehty huolella, voidaan kussakin sprintissä keskittyä valittujen käyttötapausten toteuttamiseen tarvitsematta kajota aiemmin valmistuneisiin. Käyttötapausten jäsennys ja mallinnus auttaa kehittäjiä osoittamaan tilaajalle ohjelmistoratkaisun valmistumista. Käyttötapauskuvaukset ovat hyvä pohja skenaarioiden eli erilaisten käyttötilannevaihtoehtojen kuvaamiselle. Skenaariot taas palvelevat testauksen tarpeita. Vähintäänkin skenaarioiden avulla voi testata vaatimusmääritystyön onnistuneisuutta. Kukin tarkasti kuvattu skenaario on jo miltei valmis testitapaus. Tarvittavien testitapausten määrää ja siten testauksen kattavuutta voi arvioida kunkin käyttötapauskuvauksen variaatioiden ja poikkeusten avulla. Kuvassa 7. on esitetty Super-Herkun kauppakassin keräily -käyttötapauksen mahdollisten käyttötilanteiden määrä eli 1*2*1*1*1*6 = 12 etenemispolkua suorittaa käyttötapaus. 1 2 3 4 5 6 7 Kuva 7. Käyttötapausten vaihtoehtoiset polut. Käytettävyyden kannalta käyttötapauksen tulee olla kokonaisuus, joka tuottaa toimijalle selvän lopputuloksen. Selviä suosituksia käyttötapausten määrälle per ohjelmisto ei ole. Käyttötapauksen koollekaan ei ole. Fowlerin (1998, 51) mukaan 10 henkilötyövuoden kokoisessa projektissa voi olla satakin käyttötapausta. Toisaalta Fowler suosittelee lyhyitä käyttötapauksia, jolloin pienet käyttötapaukset auttavat projektin aikataulussa pysymistä, mutta myöntää hallitsemattoman suuren käyttötapausten määrä voivan johtaa kaaokseen.

Anne Valsta 9 (10) Vaatimusten jäljitettävyyden kannalta on hyvin tärkeää kiinnittää huomio käyttötapausten nimeämiseen. Käyttötapauksen nimen tulee olla täsmälleen sama ja samassa asussa kuvauksesta toiseen: käyttötapauskuvaus, riippuvuuskaavio ja käyttötapauskartassa. Poikkeamat voivat saada aikaan sekaannusta. Käyttötapausjako kuvaa tässä monisteessa ohjelmiston ja sen käyttäjien vuoropuhelua. Kun käyttötapauksia aletaan jäsentää edelleen metodeiksi, komponenteiksi tai (yleis)moduuleiksi ja käyttötapausjakoon kajotaan, niin sekin kuuluu ohjelmistokehitystyön luonteeseen.

Anne Valsta 10 (10) LÄHTEET Booch, G. Rumbaugh, J. ja Jacobson, I. 1999. Unified Modeling Language. User Guide. Addison- Wesley. Fowler, M. 1998. UML Distiled. Applying the Standard Object Modeling Language. Addison- Wesley. Kruchten, P. 2000. The Rational Unified Process. An Introduction. Addison-Wesley. Vanhanen, U. 2005. Käyttötapaukset. Luentotiivistelmä Helian opintojaksolla sys48d, Tietojärjestelmän kehittäminen.