23
1 582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML)

582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 582104 – Ohjelmistojen mallintaminen Unified Modeling ... · • UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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