![Page 1: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/1.jpg)
1
582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML)
![Page 2: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/2.jpg)
Olioperustaisuus • Olio toimii mallinnuksen perusyksikkönä eri
abstraktiotasoilla – Järjestelmän rajaus, suunnittelu, ohjelmointi,
suoritus.. • Järjestelmä koostuu joukosta olioita (object), jotka
yhdessä tuottavat järjestelmän palvelut • Olio on kokonaisuus (entity), joka suorittaa omaan
tietosisältöönsä perustuvia palveluita • Olio kapseloi omat tietonsa tarjoamiensa palveluiden
kautta käytettäviksi • Oliolla on identiteetti (identity), joka pysyy vaikka olion
tila (state) tai käyttäytyminen (behavior) muuttuisivat
2
![Page 3: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/3.jpg)
Luokka
• Samanrakenteiset oliot kuuluvat samaan luokkaan (class)
• Eli ovat ko. luokan ilmentymiä (instance)
3
• Pitäisikö määritellä luokat kirahvi ja leijona ?
![Page 4: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/4.jpg)
Luokka ja olio public class Eläin { int eläinNumero; String laji; Color väri; float paino;
public Eläin(int numero, String laji, Color väri, float paino) { …. } public float getPaino() { … } }
4
Eläin leoLeijona = new Eläin(….); Eläin kiraKirahvi = new Eläin(…..);
leoLeijona.syö(kiraKirahvi);
![Page 5: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/5.jpg)
Unified Modeling Language (UML)
• ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien määrittelemiseen, visualisointiin, rakentamiseen ja dokumentointiin tarkoitettu kieli.” [UML Specification 2003]
• Alun perin yhdistelmä vanhemmista oliotekniikoista – OMT (Rumbaugh) + Booch + OOSE (Jacobson)
• Kehitetty Rational Softwaren toimesta vuodesta 1996 lähtien
• Nykyisin teollisuusstandardi • Useiden CASE-välineiden valinta • Sisältää kymmenkunta (=13) kaaviotyyppiä
5
![Page 6: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/6.jpg)
UML:n kaaviotyypit
6
[Wikipedia]
![Page 7: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/7.jpg)
OmniGraffle-työkalun kategoria UML Use Case
7
![Page 8: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/8.jpg)
OmniGraffle-työkalun kategoria UML General
8
![Page 9: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/9.jpg)
OmniGraffle-työkalun kategoria UML Sequence
9
![Page 10: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/10.jpg)
UML:n malli- ja kaaviotyypit: rakennemalli
• Ohjelman staattinen rakenne • Kaaviotyypit:
– Luokkakaavio ja oliokaavio • Järjestelmän tietosisältö ja käytettävissä olevat
luokkien tarjoamat palvelut • Käytössä määrittely- ja suunnittelutasolla
– Toteutuskaaviot eli komponentti- ja sijoittelukaavio (component diagram, deployment diagram) • Ohjelmiston koostuminen komponenteista ja
niiden suoritusaikainen sijoittuminen
10
![Page 11: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/11.jpg)
Luokkakaavioesimerkki: Ostoskori
11
![Page 12: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/12.jpg)
UML:n malli- ja kaaviotyypit: käyttäytymismalli • Järjestelmän palvelut ja niiden toteuttaminen • Kaaviotyypit:
– Käyttötapauskaavio (use case diagram) • Mitä järjestelmällä tehdään • Tekstuaaliset kuvaukset olennaisia
– Vuorovaikutuskaaviot eli sekvenssi- (sequence) ja kommunikointikaavio (communication diagram • Palveluiden toteuttaminen olioiden välisenä
yhteistyönä • Sekvenssikaavio korostaa palveluiden käyttämistä
aikajärjestyksessä • Kommunikointikaavio korostaa olioiden kytkentöjä
12
![Page 13: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/13.jpg)
Käyttötapaukset
• Keskeisin tekniikka järjestelmän ulkoisesti havaittavien ominaisuuksien ja käyttäytymisen mallintamiseen määrittelytasolla UML:ssä
• UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen kuvaus
• Käyttötapauksia voi kuvata eri tarkkuustasolla, mutta ne eivät muodosta varsinaista hierarkkista rakennetta
13
![Page 14: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/14.jpg)
Käyttötapaus ja käyttäjä
• Käyttötapaus (use case) – Looginen tavoitteellinen tehtäväkokonaisuus,
jolla on lähtökohta ja lopputulos – Usein järjestelmälle asetettava toiminnallinen
vaatimus
• Käyttäjä (actor) – Rooli, jota järjestelmään liittyvä taho esittää – Usein ihminen, mutta voi olla myös ulkoinen
järjestelmä – Toimii vuorovaikutteisesti järjestelmän kanssa
14
![Page 15: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/15.jpg)
Käyttötapauksen tekstikuvaus
• Sisältää tyypillisesti ainakin – Käyttötapaukseen liittyvät käyttäjät – Käyttötapauksen kulku askelittain
• Usein myös: – Annettavat syötteet ja saatavat tulosteet / tulokset – Säännöt, vaatimukset, määrät – Suhteet muihin tapauksiin, erikois- ja
poikkeustilanteet
15
![Page 16: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/16.jpg)
Käyttötapausesimerkki: ostoskori
16
![Page 17: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/17.jpg)
UML: vuorovaikutuskaaviot: sekvenssikaavio
• Keskeisin tekniikka käyttäytymisen mallintamiseen suunnittelutasolla UML:ssä
• Visualisoi olioiden välisen viestinvälityksen – Viesti (message) kuvataan nuolena oliosta toiseen – Kaaviossa aika kulkee ylhäältä alas, viestit merkitään
aikajärjestykseen – Viesti aktivoi metodin (eli palvelun tai operaation)
suorituksen vastaanottavassa oliossa – Aktivaatio (activation) kuvataan suorakaiteena olion
elämänviivassa (lifeline)
17
![Page 18: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/18.jpg)
Tärkeimmät sekvenssikaavion elementit
• Kutsuja-olio kutsuu Kutsuttava-olion metodia nimeltä metodiKutsu()
• Paksunnettu pystypalkki kuvaa aktivaatiota
• Horisonaaliset viivat kuvaavat viestien kulkua
18
![Page 19: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/19.jpg)
UML: malli- ja kaaviotyypit: tilanmuutosmalli (state change model)
• Järjestelmän tilan mahdolliset muutokset – Aktiviteettikaavio (activity diagram)
• Kontrollin kulku prosessissa tai olion operaatiossa • Sisältää ehtoja ja haaraumia
– Tilakaavio (statechart diagram) • Olion tilamuutokset esitetään tilakoneena • Tapahtumat (event) laukaisevat tilasiirtymiä (state
transition) ja • Tuottavat toimintoja (actions)
19
![Page 20: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/20.jpg)
Tilakaavio lyhyesti
• Yksittäisten olioiden käyttäytymistapa voi olla erilainen eri tilanteissa – Kirjastoesimerkissä luokan Kirja oliot käyttäytyvät eri
tavalla ollessaan lainassa kuin ollessaan hyllyssä • Olion käyttäytyminen siis riippuu sen tilasta
– Kun kirja on lainassa, ei sille voi suorittaa operaatiota lainaa
– Kun kirja palautetaan, vaihtuu sen tila jälleen sellaiseksi, että uusi lainaus on mahdollista
20
![Page 21: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/21.jpg)
Aktiviteettikaavio lyhyesti
• Tilakaaviot kuvaavat lähinnä yksittäisen olion toimintaa • Aktiviteettikaavioilla on mahdollisuus kuvata suurempaa
toiminnallista kokonaisuutta, esim. – Kokonaista liiketoimintaprosessia – Tiedon ja työn kulkua järjestelmässä monen toimijan
kannalta – Käyttötapauksen etenemislogiikkaa
• Aktiviteettikaavioissa kuvataan sarja toimintoja ja niiden suoritusjärjestys
21
![Page 22: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/22.jpg)
Esimerkki tilauksen vastaanottamisen mallintamisesta aktiviteettikaaviona
22
![Page 23: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen](https://reader034.vdocuments.pub/reader034/viewer/2022042209/5eacf3e84711762f3d000bd9/html5/thumbnails/23.jpg)
Millä kaaviot kannattaa piirtää? • Kaikkea ei tarvitse eikä kannata tunkea samaan kuvaan
– Kukin malli valitsee tietyn näkökulman • Kynä ja paperia tai valkotaulu
– Paperi talteen tai roskiin – Tarvittaessa skannaus tai digikuva
• Tarjolla paljon (=liikaa?) ilmaisia työkaluja – MS Paint, Dia, Umbrello, Xfig, OmniGraffle, Office..
• Paljon maksullisia vaihtoehtoja, esim. MS Visio – Visio löytyy laitoksen ohjelmistojakelusta: – ks. www.cs.helsinki.fi/compfac/ohjeet/msdnaa
• Tämän kurssin tarpeisiin kynä ja paperia riittää enemmän kuin hyvin
23