Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

– Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Samankaltaiset esitykset


Esitys aiheesta: "– Ohjelmistojen mallintaminen Unified Modeling Language (UML)"— Esityksen transkriptio:

1 582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML)

2 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

3 Luokka Samanrakenteiset oliot kuuluvat samaan luokkaan (class)
Eli ovat ko. luokan ilmentymiä (instance) Pitäisikö määritellä luokat kirahvi ja leijona ?

4 Luokka ja olio Eläin leoLeijona = new Eläin(….);
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ö(kiraKirahvi);

5 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ä

6 UML:n kaaviotyypit [Wikipedia]

7 OmniGraffle-työkalun kategoria UML Use Case

8 OmniGraffle-työkalun kategoria UML General

9 OmniGraffle-työkalun kategoria UML Sequence

10 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

11 Luokkakaavioesimerkki: Ostoskori

12 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ä

13 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

14 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

15 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

16 Käyttötapausesimerkki: ostoskori

17 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)

18 Tärkeimmät sekvenssikaavion elementit
Kutsuja-olio kutsuu Kutsuttava-olion metodia nimeltä metodiKutsu() Paksunnettu pystypalkki kuvaa aktivaatiota Horisonaaliset viivat kuvaavat viestien kulkua

19 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)

20 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

21 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

22 Esimerkki tilauksen vastaanottamisen mallintamisesta aktiviteettikaaviona

23 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. Tämän kurssin tarpeisiin kynä ja paperia riittää enemmän kuin hyvin


Lataa ppt "– Ohjelmistojen mallintaminen Unified Modeling Language (UML)"

Samankaltaiset esitykset


Iklan oleh Google