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

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

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

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

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:

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

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

5. Järjestelmämallit. Mallinnus

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kevät 2008

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Määrittelyvaihe. Projektinhallinta

Ohjelmistojen mallintaminen, mallintaminen ja UML

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen, kesä 2009

Vaatimusmääritelystä UML:n avulla

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

Kurssin aihepiiri: ohjelmistotuotannon alkeita

UML- mallinnus: Tilakaavio

Ohjelmistojen suunnittelu

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

Käyttötapausten mallintaminen

Ohjelmistojen mallintaminen

Dynaaminen analyysi II

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

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Käyttötapaukset

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

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

Tietojärjestelmän osat

Käyttötapausanalyysi ja testaus tsoft

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

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen. Matti Luukkainen

Opetussuunnitelmien ja tutkintojen perusteiden rakenteistaminen

Ohjelmistojen mallintaminen kertausta Harri Laine 1

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

Ohjelmistojen mallintaminen, kertausta

UML:n yleiskatsaus. UML:n osat:

OTM-HANKE. Opintohallinnon tietojärjestelmän modernisointi - tilannekatsaus

TOIMINNALLINEN MÄÄRITTELY MS

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Olioiden yhteistoiminta

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Testaussuunnitelma Labra

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Testaaminen ohjelmiston kehitysprosessin aikana

Ratkaisut harjoitusviikon 2 tehtäviin

Joku hauska otu-aiheinen kuva (no ei oo pakko olla hauska) OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Paikkatietojen tietotuotemäärittely

Paikkatietojen tietotuotemäärittely

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Ohjelmistotekniikan menetelmät, koe

3. Käsiteanalyysi ja käsitekaavio

Yhteishankkeen tavoitteet vuoteen 2017 mennessä. Sidosryhmäseminaari

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

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

MagicDraw-pikaohje (VH5)

käyttötapaukset mod. testaus

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Oppijan palvelukokonaisuus. Tietomallinnuksen laaja katselmointi

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen

Vaatimusdokumentti Labra

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

OpasOodi. Ilmari Hyvönen Opiskelijarekisteri

Ohjelmistojen mallintaminen. Luento 8,

Ohjelmistotuotanto, s /3/2003

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

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

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Luokkakohtaiset eli stattiset metodit ja attribuutit

Ohjelmistotuotanto, s

Ohjelmiston toteutussuunnitelma

Kanta - määrittelyjen vakiointi Tiivis esittely

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

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Tietokannan suunnittelu

Ohjelmistojen mallintaminen luokkamallin laatiminen

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

GroupDesk Toiminnallinen määrittely

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

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Toimintaa tukeva tietomalli. OTM Sidosryhmäseminaari Inka Paukku

Johdatus sovellussuunnitteluun

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Transkriptio:

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