Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Olioperustaisuus (object oriented)

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

Unified Modeling Language

UML:n yleiskatsaus. UML:n osat:

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, sekvenssikaaviot

UML - unified modeling language

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Mallinnus UML-yleiskatsaus

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Olioiden yhteistyön mallintaminen

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML-kielen formalisointi Object-Z:lla

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

Luokka- ja oliokaaviot

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

käyttötapaukset mod. testaus

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen, kesä 2010

UML- mallinnus: Tilakaavio

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kesä 2008

2. Olio-ohjelmoinnin perusteita 2.1

TIE = JOTU. VH5 - MagicDraw

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista)

2. Olio-ohjelmoinnin perusteita 2.1

UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen. Luento 4,

VH5, JOTU, MagicDraw:n käyttö

Dynaaminen analyysi II

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

UML -mallinnus TILAKAAVIO

Ohjelmistotekniikan menetelmät

UML Luokkakaavio 14:41

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistotekniikan menetelmät

UML-kuvauskielten käyttö ohjelmistojen vaatimusmäärittelyissä

Analyysi on tulkkaamista

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistojen mallintaminen, kertausta

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistotekniikan menetelmät, koe

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

MagicDraw-pikaohje (VH5)

3a. Projektin hallinta (lisäys lukuun 3)

UML-MALLINNUSKIELI JA SEN HYÖDYNTÄMINEN OHJELMISTOKEHITYKSESSÄ

Ohjelmistojen mallintaminen. Luento 3, 9.11.

5. Järjestelmämallit. Mallinnus

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

UML-kaaviot. Jouni Kylä-Nikkilä

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

UML OHJELMISTOPROSESSIEN TUKENA

UML - unified modeling language - use cases

UML ja luokkien väliset suhteet

Ohjelmistotuotanto, s /3/2003

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State

Ohjelmistojen mallintaminen. Luento 6,

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Tietovuokaaviot (data flow diagrams)

Ohjelmistojen mallintaminen, mallintaminen ja UML

Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Luento 3 Tietokannan tietosisällön suunnittelu

Kaaviotekniikoista (erityisesti UML)

Johdatus sovellussuunnitteluun

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

Ohjelmistotuotanto, s

Luokkakaavion laatiminen

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

Johdatus sovellussuunnitteluun, s2000, osa4 Helsingin yliopisto;/tktl. Harri Laine 1. Luokka- ja oliokaaviot. Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely

Johdatus sovellussuunnitteluun, s2000, osa3 Helsingin yliopisto;/tktl. Harri Laine 1. Järjestelmän palvelujen määrittely

Määrittelyvaihe. Projektinhallinta

Käyttötapausten mallintaminen

Ohjelmistojen mallintaminen. Matti Luukkainen

1. Tarkastellaan seuraavaa kaaviota

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Vaatimusten keräys ja hallinta

AVOIMEN LÄHDEKOODIN UML-MALLINNUSVÄLINEIDEN VERTAILU PIENTEN OHJELMISTOPROJEKTIEN TARPEISIIN

Transkriptio:

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ä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); 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

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