582104 Ohjelmistojen mallintaminen Unified Modeling Language UML 1
- Slides: 23
582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1
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) • 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; 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 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
Omni. Graffle-työkalun kategoria UML Use Case 7
Omni. Graffle-työkalun kategoria UML General 8
Omni. Graffle-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ä 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 – 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, 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
- Uml structure diagram example
- 582104
- Unified modeling language tutorial
- Introduction to the unified modeling language
- Uml ppt
- Pengertian unified modeling language
- What is uml?
- Introduction to unified modeling language
- Introduction to unified modeling language
- Unified modeling language nedir
- Unified modeling language adalah
- Uml diagrams
- Mof uml
- Yrityksen prosessikartta
- Prosessien mallintaminen
- Language
- Helen erickson biography
- Dimensional modeling vs relational modeling
- Structural modeling in uml
- Structural modeling in uml
- Uml modeling tutorial
- Uml 1..*
- Language
- Virtual reality modeling language tutorial