582104 Ohjelmistojen mallintaminen Unified Modeling Language UML 1

  • Slides: 23
Download presentation
582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1

582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1

Olioperustaisuus • Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla – Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus.

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ä

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

Luokka ja olio public class Eläin { int eläin. Numero; String laji; Color väri;

Luokka ja olio public class Eläin { int eläin. Numero; String laji; Color väri; float paino; public Eläin(int numero, String laji, Color väri, float paino) { …. } public float get. Paino() { … } } Eläin leo. Leijona = new Eläin(…. ); Eläin kira. Kirahvi = new Eläin(…. . ); leo. Leijona. syö(kira. Kirahvi); 4

Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien määrittelemiseen, visualisointiin, rakentamiseen

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 [Wikipedia] 6

UML: n kaaviotyypit [Wikipedia] 6

Omni. Graffle-työkalun kategoria UML Use Case 7

Omni. Graffle-työkalun kategoria UML Use Case 7

Omni. Graffle-työkalun kategoria UML General 8

Omni. Graffle-työkalun kategoria UML General 8

Omni. Graffle-työkalun kategoria UML Sequence 9

Omni. Graffle-työkalun kategoria UML Sequence 9

UML: n malli- ja kaaviotyypit: rakennemalli • Ohjelman staattinen rakenne • Kaaviotyypit: – Luokkakaavio

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

Luokkakaavioesimerkki: Ostoskori 11

UML: n malli- ja kaaviotyypit: käyttäytymismalli • Järjestelmän palvelut ja niiden toteuttaminen • Kaaviotyypit:

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ä

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

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

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

Käyttötapausesimerkki: ostoskori 16

UML: vuorovaikutuskaaviot: sekvenssikaavio • Keskeisin tekniikka käyttäytymisen mallintamiseen suunnittelutasolla UML: ssä • Visualisoi olioiden

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ä metodi. Kutsu() • Paksunnettu pystypalkki

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

UML: malli- ja kaaviotyypit: tilanmuutosmalli (state change model) • Järjestelmän tilan mahdolliset muutokset –

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

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

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

Esimerkki tilauksen vastaanottamisen mallintamisesta aktiviteettikaaviona 22

Millä kaaviot kannattaa piirtää? • Kaikkea ei tarvitse eikä kannata tunkea samaan kuvaan –

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, Omni. Graffle, 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