Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
1
582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML)
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
Luokka
• Samanrakenteiset oliot kuuluvat samaan luokkaan (class)
• Eli ovat ko. luokan ilmentymiä (instance)
3
• Pitäisikö määritellä luokat kirahvi ja leijona ?
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);
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
UML:n kaaviotyypit
6
[Wikipedia]
OmniGraffle-työkalun kategoria UML Use Case
7
OmniGraffle-työkalun kategoria UML General
8
OmniGraffle-työkalun kategoria UML Sequence
9
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
Luokkakaavioesimerkki: Ostoskori
11
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
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
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
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
Käyttötapausesimerkki: ostoskori
16
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
Tärkeimmät sekvenssikaavion elementit
• Kutsuja-olio kutsuu Kutsuttava-olion metodia nimeltä metodiKutsu()
• Paksunnettu pystypalkki kuvaa aktivaatiota
• Horisonaaliset viivat kuvaavat viestien kulkua
18
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
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
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
Esimerkki tilauksen vastaanottamisen mallintamisesta aktiviteettikaaviona
22
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