Title: 582104
1582104 Ohjelmistojen mallintaminen Unified
Modeling Language (UML)
2Olioperustaisuus
- 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
3Luokka
- Samanrakenteiset oliot kuuluvat samaan luokkaan
(class) - Eli ovat ko. luokan ilmentymiä (instance)
- Pitäisikö määritellä luokat kirahvi ja leijona ?
4Luokka 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()
Eläin leoLeijona new Eläin(.) Eläin
kiraKirahvi new Eläin(..) leoLeijona.syö(kira
Kirahvi)
5Unified 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ä
6UMLn kaaviotyypit
Wikipedia
7OmniGraffle-työkalun kategoria UML Use Case
8OmniGraffle-työkalun kategoria UML General
9OmniGraffle-työkalun kategoria UML Sequence
10UMLn 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
11Luokkakaavioesimerkki Ostoskori
12UMLn 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ä
13Käyttötapaukset
- Keskeisin tekniikka järjestelmän ulkoisesti
havaittavien ominaisuuksien ja käyttäytymisen
mallintamiseen määrittelytasolla UMLssä - 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
14Kä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
15Kä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
16Käyttötapausesimerkki ostoskori
17UML vuorovaikutuskaaviot sekvenssikaavio
- Keskeisin tekniikka käyttäytymisen mallintamiseen
suunnittelutasolla UMLssä - 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)
18Tärkeimmät sekvenssikaavion elementit
- Kutsuja-olio kutsuu Kutsuttava-olion metodia
nimeltä metodiKutsu() - Paksunnettu pystypalkki kuvaa aktivaatiota
- Horisonaaliset viivat kuvaavat viestien kulkua
19UML malli- ja kaaviotyypittilanmuutosmalli
(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)
20Tilakaavio 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
21Aktiviteettikaavio 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
22Esimerkki tilauksen vastaanottamisen
mallintamisesta aktiviteettikaaviona
23Millä 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