uml - unified modeling language - use cases · uml - unified modeling language - life cycle –...
TRANSCRIPT
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 1/7
1
UML - unified modeling language - use cases
• Käyttötapausmalli (use case model)– kuvaus järjestelmän käytöstä.
• Käyttötapaus (use case)– hyödyllinen toiminnallinen kokonaisuus -
tehtäväkokonaisuus– tuottaa jonkin tuloksen– käyttäjän alullepanema– kuvataan luokkina - ei ilmentyminä– käyttötapausten ilmentymiä ovat käyttötilanteet
• -joita kuvataan skenaarioina = toimenpidesarjoina
2
UML - unified modeling language - use cases
• Käyttötapaus (use case)– Mitä palveluita käyttäjät haluavat?– Tarvitseeko käyttäjälle tiedottaa joistain ilmiöistä– Tarvitseeko käyttäjän tiedottaa järjestelmälle– Täytyykö lukea, kirjoittaa, muuttaa, hävittää tietoa
• Käyttäjä (actor)– jokin joka käyttää järjestelmää
• henkilörooli, järjestelmä, laite
– edustaa roolia, joka käyttäjällä on– toimii järjestelmän kanssa antamalla sille tai
saamalla siltä viestejä (mesage)– välillinen tai välitön– käyttäjien välillä voi olla luokkahierarkia
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 2/7
3
UML - unified modeling language - use cases
• Käyttötapauksen kuvaaminen:– Käyttötapauksen tarkoitus - mitä käyttötapauksen
avulla halutaan saada aikaan (tämä saattaa riittäämääritysvaiheen kuvaukseksi)
– Miten käynnistyy– Vuorovaikutus käyttäjän ja järjestelmän välillä -
välitettävät viestit - normaali toimenpidesarja(skenaario)
– vaihtoehtoiset vuorovaikutukset (skenaariot)– Miten päättyy
• Usein luettelo ja tekstikuvaus riittävät
4
UML - unified modeling language - use cases
• UML:ssä määritelty kaaviotekniikkakäyttötapauskaaviota (use case diagram)varten:– Kuka käyttää käyttötapausta,– Miten käyttötapaukset liittyvät toisiinsa– Kuvattavissa käyttötapausten välisiä yhteyksiä
• laajennos• hyödyntäminen
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 3/7
5
UML - unified modeling language - use cases
• Laajennos– käyttötapaus tarjoaa lisätoiminnallisuutta
laajennettavaan käyttötapaukseen verrattuna– esimerkiksi poikkeustapausten mukaanottaminen
laajentaa käyttötapausta
kurssi täynnäkurssipaikanvaraus
extends
tämä laajentaa tätä
6
UML - unified modeling language - use cases
• Hyödyntäminen– käyttötapaus käyttää hyväkseen jotain yleis-
käyttöistä käyttötapausta, siten erikoistamalla sen– käyttötapausten yhteiset osat koottu yhteen
yleiseksi käyttötapaukseksi
kurssipaikan varaus tilisiirto
uses
tämä hyödyntää tätä
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 4/7
7
UML - unified modeling language - use cases
• Lentopalloesimerkissä käyttäjiä:– Peliohjelman suunnittelija– Tuomari– Valvoja– Toimistovirkailija– Kirjuri– Urheilutoimittaja, jne
8
UML - unified modeling language - use cases
• Lentopalloesimerkissä käyttötapauksia:– Peliohjelman suunnittelija
• Otteluohjelman laatiminen– Valitaan ottelupäivät ja kyseisenä päivänä vastakkain
pelaavat joukkueet• Tuomarin valinta
– Valitaan ottelulle tuomari• Valvojan valinta
– Valitaan ottelulle valvoja
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 5/7
9
UML - unified modeling language - use cases
• Lentopalloesimerkissä käyttötapauksia:– Kirjuri
• vaihdon rekisteröinti– Kirjataan pelaajavaihto pöytäkirjaan
• aloituskokoonpanon kirjaus– Kirjataan joukkueen aloituskokoonpano
• erätuloksen kirjaus– Kirjataan erän lopputulos
• ylläolevista voisi koota yhteisiä osia käyttötapaukseenpelitapahtuman kirjaus
10
UML - unified modeling language - use cases
• Lentopalloesimerkissä käyttötapauksia:– Toimistovirkailija
• pelaajan rekisteröinti– kirjataan pelaajan lisenssitiedot
• jäsenen rekisteröinti– Rekisteröidään seuran jäsenyys
• Seuran perustaminen
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 6/7
11
UML - unified modeling language - use cases
extends
uses
uses
uses
Peliohjelman suunnittelijaKirjuri
otteluohjlemanlaatiminen
pelaajan rekisteröinti
Seuran perustaminen
jäsenen rekisteröinti
vaihdonkirjaus
pelitapahtuman kirjaus
erätuloksenkirjaus
kirjaus
12
UML - unified modeling language - life cycle
• Dynaaminen malli (dynamic model)– Olioiden elinkaaret (life cycle)– Olioiden yhteistyö (collaboration)
– Olion elinkaari kuvaa olion käyttäytymistä(behaviour)
– Useissa oliomalleissa käyttäytymisen kuvaus ontärkeässä asemassa.
– Käyttäytymisen kuvauksella pyritään löytämäänolioiden operaatioita ja toisaalta varmistamaan,että kaikki oleellinen tulee otetuksi mukaan.
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 7/7
13
UML - unified modeling language - life cycle
– Käyttäytyminen perustuu siihen että olioelinkaarensa aikana on erilaisissa tiloissa (state).
– Tila (state) =• attribuuttien arvojen ja olion kytkentöjen muodostama
nimetty kokonaisuus, olotila. Tilan määrytymiseen voivaikuttaa vai yksi attribuutti tai useampien yhdistelmä.
• Tuoppi on tilassa täysi• Lasku on tilassa maksettu• Lompakko on tilassa tyhjä
– Perinteisessä tila-automaattimallissa automaatti(tässä olio) voi olla vain yhdessä tilassa tietyllähetkellä.
14
UML - unified modeling language - life cycle
– Siirtymä (transition) =• Siirtyminen tilasta toiseen.• Siirtymän saa aikaan jokin heräte (event, message).• Heräte on jokin tapahtuma. Siirtymiseen tilasta toiseen
liittyy olion suorittamaa toimintaa.
maksamatta maksettumaksaminen
Laskun tiloja, heräte maksaminen vaihtaa tilaa.
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 8/7
15
UML - unified modeling language - life cycle
– Siirtymään voidaan liittää ehto, joka sääteleesiirtymismahdollisuutta.
maksamatta maksettu
maksaminen[eräpäiväänalle viikko]
Laskua ei saa maksaa liian aikaisin.
16
UML - unified modeling language - life cycle
• Siirtymään voidaan liittää myös toimintaa tai viestinlähetys toiselle oliolle.
maksamatta maksettu
maksaminen[eräpäivään alle viikko]/ lompakko. anna_rahaa(määrä)
LASKU:
pullottaa tyhjä
LOMPAKKO
anna_rahaa
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 9/7
17
UML - unified modeling language - life cycle
• Alkutila ja lopputilat (alla laskun elinkaarta)
luottotappiona
perinnässä
karhuttu
maksettu
nyt_saa_jo_riittää
maksaminen
tuloutus
uffet
/karhua
18
UML - unified modeling language - life cycle
• Tiloihin voidaan liittää toimintaa. Toimintavoidaan liittää– tilaan saapumiseen (entry)– tilasta poistumiseen (exit)– tilassa olemiseen (do)
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 10/7
19
peruttu
ei ole
do: ilmoita ettei ole
valmis
exit:anna karkit, nollaa summa
saatu liikaa
entry: palauta vaihtoraha
lisää
entry:lisää summaan
karkit jakoon karkki_valittu
odotus
valitsinta painettu
[lajia on]
[vaihto=0)
[lajia ei ole]
valitsinta painettu
peruttu peruttuperuttu
20
UML - unified modeling language - life cycle
• Rakenteinen tilaautomaatti (statechart)– Harel: Statecharts: A visual formalism for complex
systems, Science of computer programming, 8,1987, 231-274
– Poikkeaa perinteisestä tila-automaatista esim.tarjoamalla
• rinnakkaiset tilakoneet– kokonaisuus voi olla samanaikaisesti useassa
rinnakkaisessa tilassa - seuraus pienennät tilakoneet– rinnakkaiset tilakoneet voivat olla toisistaan
riippumattomia tai riippuvia– esim olion tilaa tarkastellaan eri ominaisuuksien
suhteen.
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 11/7
21
UML - unified modeling language - life cycle
– yleistyshierarkian tiloille - alitila - ylitila (xor-tila)
s15
ylitilaH
ali_3ali_1 ali_2
s13help
22
UML - unified modeling language - life cycle
• Edellisen kalvon automaatissa 'help' siirtää mistätahansa alitilasta ali_1, ali_2, ali_3 tilaan s13.
• Automaatti voi olla joko tilassa ali_1, ali_2, ali_3, s13tai s15.
• Jos ulkopuolelta siirrytään ylitilaan valitaan alitilaksialoitustilaksi merkitty eli s15.sta siirrytään ali_1:een.
• Tässä automaatissa on historiatila H, joka tarkoittaapaluuta siihen alitilaan, josta viimeeksi poistuttiin, elitässä palataan help-toiminnon jälkeen samaan tilaan,josta lähdettiin
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 12/7
23
UML - unified modeling language - life cycle
• Tila-automaateilla on käyttöä muuallakin kuinolioiden elinkaarissa, esim.– syöttötiedon jäsennys, saapuva merkki
hyväksytään, hylätään, automaatti voi vaihtaatilaa, joka taas vaikuttaa seuraavaksihyväksyttävään merkkiin, ...
– käyttöliittymän toiminnan kuvaaminen, tietyttoiminnot mahdollisia vain joissain tiloissa
24
UML - unified modeling language - life cycle
• Olioiden elinkaarten kuvaaminen on keino löytääolioihin liittyviä palveluita. Se on myös hyödyllinenhaluttaessa varmistaa, että elinkaari toteutuujärjestelmässä.
• elinkaaria on tarpeen määritellä vain sellaisiin luokkiinliittyen, joiden ilmentymillä on selkeä, monitilainen jamerkityksellinen elinkaari:– tunnista elinkaareen vaikuttavat tapahtumat
(ulkoiset)– laadi elinkaarimalli
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 13/7
25
4. korjattavana
1. valmisteilla
3. käsiteltävänä
2. lausunnolla
7. viimeisteltävänä 6. hyväksytty
8. oikoluettavana
Artikkelin saapuminen
Lähetys lausunnoille
Lausuntojen saapuminen
Uuden version saapuminen
hylkäyspäätöksen teko
hylkäyspäätöksen teko
Korjattavaksi lähettäminen
Viimeistelyyn lähetys
Viimeistelty versio saapuu
Sijoitetaan lehteen
time out
26
UML - yhteistyö
• Olioiden yhteistoiminta:– Oliojärjestelmän toiminta perustuu olioiden yhtei-
styöhön. Olioiden yhteistyön selvittäminen onkiinteästi sidoksissa olioiden palveluiden määrit-telyyn, sillä yhteistyö toteutuu palvelujen kautta.
– Yhteistoimintakuvauksilla kuvataan miten palvelujakäytetään.
– Olioiden yhteistoiminnan kuvaaminen ei oikeas-taan kuulu ohjelmiston määrittelyyn, sillä palve-lujen jakaminen olioille on varsinaisesti suunnit-teluvaiheen tehtävä (monet menelmät, esim. OMTtarjoavat sitä kuitenkin määrittelyvaiheeseen)
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 14/7
27
UML - yhteistyö
• Joissain menetelmissä esim. 'Yourdon, et all. :Mainstream objects, ' ja Haapa-aho, et al: Olioidenmaihinnousu, Suomen atk-kustannus, 1997'yhteistoimintakuvausta käytetään määrittelytasollakuvaamaan liiketoimintaprossessia.Liiketoimintaprosessin osapuolista kuitenkin vain osatulee vastaamaan järjestelmän olioita.
28
UML - yhteistyö
• Olioiden yhteistoimintaa kuvataan yhteistoiminta-kaaviolla.– UML esittelee kaksi tekniikkaa yhteistoiminnan
kuvaamiseen.• Sekvenssikaavion (sequence diagram), jossa
keskitytään erityisesti kuvaamaan operaatioidentapahtumajärjestystä ja toimintaan liittyvien viestienkulkua. Sekvenssikaavion toinen ulottuvuus on aika.
• Yhteistyökaavion (collaboration diagram), jossakeskitytään kuvaaman, sitä miten yhteistyö hyödyntääolioiden välisiä kytkentöjä
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 15/7
29
UML - yhteistyö
• Sekvenssikaavio– Tämä kuvaustekniikka joskin hyvin monella eri nimellä on
tarjolla lähes kaikissa oliomenetelmissä (OMT: event trace,OOSE: interaction diagram, Mainstream objects: transactionsequence, Olioiden maihinnousu: yhteistoimintakaavio)
• Sekvenssikaavio kuvaa:– käyttötapauksen ilmentymään liittyvän olioiden
yhteistyön• käyttötapauksen ilmentymästä käytetään esim. OMT-
menetelmässä nimitystä skenaario (scenary) = tiettyasioiden kulku
– olion palvelun suoritukseen liittyvän olioidenyhteistyön
30
UML - yhteistyö
olio:luokka olio:luokka
[ehto] viesti (parametrit)
operaatio /palvelu
nimeää käytettävänpalvelun
aika
aloitusviesti
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 16/7
31
UML - yhteistyö
• Viestit ovat yleensä palvelujen kutsuja =– pavelun nimi (parametrit)– käytännössä aliohjelmakutsu tai metodikutsu
oliohjelmassa
• ehto ei ole välttämätön
• palveluun liittyvä paluunuoli saatetaan jättääpiirtämättä vaikka palaute saataisiinkin(kaavio yksinkertaisemmaksi)
32
UML - yhteistyö
• UML:ssä nuolen ulkoasuun voi liittääsemantiikkaa
täsmentämätön
synkroninenpyytäjä jää odottamaan
asynkroninenpyytäjä ei odota
synkroninenvälitön palaute
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 17/7
33
UML - yhteistyö
valmentaja sisään:pelaaja ulos:pelaaja verkko:tuomari pää: tuomari
valmistaudu
mene(numerolätkä)vaihtopyyntö vaihto
kuka ulos
mene poisanna lätkä
miksi?
34
UML - yhteistyö
• valmistaudu
• mene(numerolätkä)
• vaihtopyyntö
• vaihto
• kuka ulos
• mene pois
• anna lätkä• miksi:
• riisuu veryttelypuvun• ottaa numerolätkän, kävelee
kentän laidalle• puhaltaa pilliin, antaa
käsimerkin päätuomarille,tarkistaa pöytäkirjan
• katsoo sisääntulijan lätkästäkuka ulos, osoittaaulosmenijän
• heiluttelee lätkää
• kävelee laidalle, ottaa lätkän sisääntulijalta, ihmettelee• antaa lätkän , kävelee
kentälle• haukut
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 18/7
35
UML - yhteistyö
penkillä
kentällävaihto sisään
vaihto ulos
valmistaudu
peli päättyy
= anna lätkä
pelaajan elinkaari ottelun aikana
36
UML - yhteistyö
• UML:n yhteistyökaavio– Pohjana oliokaavio. Yhteyksiin liitetään niiden
kautta kulkevat viestit. Kuvausta käytetäänsamaan tarkoitukseen kuin sekvenssikaaviota.
– kaaviolla voidaan varmistaa, että oliomalli tarjoaatarvittavat kytkennät palvelujen saamiseksi(viestien välittämiseksi)
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 19/7
37
:Valmentaja
Sisään:pelaaja
Ulos:Pelaaja
verkko:Tuomari
1. valmistaudu
3. vaihtopyyntö
Pää:tuomari
4. vaihto
5. mene ulos
6. anna lätkä
Vaihto
7. miksi
2.mene
38
UML - yhteistyö
• Edellisellä kalvolla kuvattiin ‘Pelaajan vaihto’UML:n yhteistyökaaviona.
• Tässä esimerkissä yhteydet olioden välillätarkoittavat sitä, että pelaajat, valmentaja jatuomarit näkevät toisensa kentällä. Oliot ovatsiis tavallaan globaalisti tunnettuja.
• Palvelua voi pyytää vain tunnetulta oliolta.• Numero viestin edessä kuvaa viestin
järjestyksen yhteistyöketjussa.
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 20/7
39
Dynaamisten kuvausten yhteydet
• tapahtuma-analyysi– tapahtuma-analyysi voidaan suorittaa jo ennen
käyttötapausten määrittelyä, useat käyttö-tapauksista liittyvät nimenomaan jonkinreaalimaailman tapahtuman käsittelyyn.
• liiketoiminta tapahtumat = keskeisiä kohdealueentapahtumia
• tapahtuman vaikutukset– olioiden elinkaareen,
• sama tapahtuma voi vaikuttaa monen olion elinkaareen
40
Dynaamisten kuvausten yhteydet
• tapahtuman vaikutukset– käyttötapauksiin
• käyttötapaus liittyy usein jonkin liiketoiminta tapahtumankäsittelyyn
• skenaariot:– skenaariossa tunnistetaan yleensä eri tasoisia tapahtumia
kuin tapahtuma-analyysissä (tietojenkäsittelytapahtumat)– yhteistoimintakaavio = tapa esittää skenaario– Olioiden elinkaarten tarkentaminen skenaarioiden myötä
löytyneillä tapahtumilla aiheuttaa iteraatiokierroksenoliomallinnuksessa. Tämäntasoisia elinkaaria tarvitaanyleensä vasta suunnitteluvaiheessa.
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 21/7
41
Määrittelyvaiheen kuvausten liittyminen toisiinsa
• Tarkastellaan luokkakaaviota, käyttötapausmallia jaolioiden elinkaaria.
• Järjestelmän tulisi toteuttaa olioiden elinkaari, ts.simuloida todellista elinkaarta. Tällöin järjestelmäänpitäisi sisältyä käyttötapaukset, joilla siirtymätsaadaan aikaan.
• Kunkin olion elinkaareen, vaikkei sitä erityisestikuvattaisikaan sisältyy olion synty ja mahdollisestikuolema. Usein myös erilaisia attribuuttien arvojenmuunnoksia. Järjestelmään pitäisi sisältyäkäyttötapaukset, joilla siirtymät saadaan aikaan.
42
Määrittelyvaiheen kuvausten liittyminen toisiinsa
• Jos luokan olioilla on jokin merkittävä tilaelinkaaressan tämän tilan on toteuduttava luokanattribuuttien ja/tai yhteyksien avulla (erityinentilamuuttuja tai useiden attribuuttien yhdistelmä)
• Jos luokan attribuutin arvo voi muuttua,järjestelmässä pitäisi olla käyttötapaus, jolla muutossaadaan aikaan.
• Jos luokkaan on liitetty yhteyksia, järjestelmässäpitäisi olla käyttötapaukset, joilla olio saadaankytketyksi yhteyteen ja mahdollisesti irroitetuksi siitä.
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 22/7
43
Määrittelyvaiheen kuvausten liittyminen toisiinsa
• Laadukas kuvauskokonaisuus täyttää edelläesitetyt vaatimukset.
• Laadunvarmistustekniikkana voi käyttääriippuvuusmatriiseja:– Luokat ja yhteydet / käyttötapaukset
• Luo, muuttaa, poistaa
– Tapahtumat / käyttötapaukset
– Matriisit voidaan esittää myös luokkakohtaina,jolloin riippuvuudet näkyisivät attribuuttitasolla.
44
Määrittelyvaiheen kuvausten liittyminen toisiinsa
Käyttötapaukset
Olioluokat Uus
i art
ikke
li
Uus
i art
ikke
liver
sio
Tie
dust
elu
artik
kelin
tila
sta
Mui
stut
us la
usun
nost
a
Puu
ttum
aan
jään
yt la
usun
to
Julk
aisu
päät
ökse
n ki
rjaus
Pal
autu
s ko
rjatta
vaks
i
Julk
aist
avak
si h
yväk
sym
inen
Hyl
kääm
inen
Viim
eist
elly
n sa
apum
inen
Oik
oved
okse
n lä
hettä
min
en
Kor
jaus
ten
vast
aano
tto
Erip
aino
sten
tila
us
Hen
kilö
tieto
jen
reki
ster
öint
i
ww
w-s
ivut
Rap
ortit
Article L M K K K K K K M M M M M M M K K K K KArticle version L L K M K K K M M M M M KPerson X X X K K K K K K K K X KReference K L M M M M KJournal L K K K
K= Käyttää, L = Luo, M= Muuttaa, P= Poistaa, X=Luo tai muuttaa
Luokat/käyttötapaukset - tieteellinen lehti
Ohjelmistotuotanto, syksy 1998, oloiot -3 14.10.1998
Harri Laine 23/7
45
Käyttötapaukset
Kommunikointitapahtuma Uus
i art
ikke
li
Uus
i art
ikke
liver
sio
Tie
dust
elu
artik
kelin
tila
sta
Mui
stut
us la
usun
nost
a
Puu
ttum
aan
jään
yt la
usun
to
Julk
aisu
päät
ökse
n ki
rjaus
Pal
autu
s ko
rjatta
vaks
i
Julk
aist
avak
si h
yväk
sym
inen
Hyl
kääm
inen
Viim
eist
elly
n sa
apum
inen
Oik
oved
okse
n lä
hettä
min
en
Kor
jaus
ten
vast
aano
tto
Erip
aino
sten
tila
us
Hen
kilö
tieto
jen
reki
ster
öint
i
ww
w-s
ivut
Rap
ortit
artikkeli x xkuittauskirje x xreferoijien valinta x x xlausuntopyyntö x x xmuistutus x xlausunto xkorjausehdotukset xkorjattu artikkeli x xuusintatarkastuspyyntö x julkaisuehdotus x xhyv/hyl päätös x x x xvalitus xviimeistelty artikkeli xoikolukuvedos xkorjaukset xeripainostilaus xpaino-originnalit ja kannet x x xeripainosten tilaukset x MUU TARVE:markkinointi x x x xtoiminnan seuranta x x x x x
Liiketoiminta-tapahtuma/käyttötapaus