UML:n yleiskatsaus. UML:n osat:

Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Luokka- ja oliokaaviot

Unified Modeling Language

UML - unified modeling language

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

UML -mallinnus TILAKAAVIO

Ohjelmistojen suunnittelu

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

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

Ohjelmistojen mallintaminen kertausta Harri Laine 1

käyttötapaukset mod. testaus

UML- mallinnus: Tilakaavio

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

UML-kielen formalisointi Object-Z:lla

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

Toimintokaavio. UML-Toimontokaavio 1

UML OHJELMISTOPROSESSIEN TUKENA

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

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

UML Luokkakaavio 14:41

Visual Case 2. Miika Kasnio (C9767)

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

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

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

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

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

Mallinnus UML-yleiskatsaus

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

VH5, JOTU, MagicDraw:n käyttö

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Ohjelmistokehitysprosessin kuvaus. Ville Heikkinen Opinnäytetyö. Satakunnan Ammattikorkeakoulu Tekniikka, Pori

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

5. Järjestelmämallit. Mallinnus

Analyysi on tulkkaamista

Ohjelmistojen mallintaminen, kesä 2010

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

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

Kuvaustekniikoista menetelmiin

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, kesä 2008

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

TIE = JOTU. VH5 - MagicDraw

Eija Järvelä Elina Puusaari. käsikirja

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Yhteenveto. Menettelytavat

MagicDraw-pikaohje (VH5)

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Ohjelmistotekniikan menetelmät, kevät 2008

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

2. Olio-ohjelmoinnin perusteita 2.1

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

SÄILYTETTÄVIEN TIETOJEN MÄÄRITYS LUOKKAMALLI

Kaisu Keisanen. WinhaResurssit ja Mimosa opetuksen suunnittelun välineinä.

19. Unified Modeling Language (UML)

Vaatimusten keräys ja hallinta

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

UML-kaaviot. Jouni Kylä-Nikkilä

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

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistojen mallintaminen, sekvenssikaaviot

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

Vikailmoitusjärjestelmä

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Muutamia peruskäsitteitä

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

GroupDesk Toiminnallinen määrittely

Kertaus: yleistys-erikoistus ja perintä

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Olioiden yhteistyön mallintaminen

2 Ohjelmistoarkkitehtuurien kuvaus

Dynaaminen analyysi II

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

1. Tarkastellaan seuraavaa kaaviota

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

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus

Transkriptio:

UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän rakennelman yleiseen mallinnukseen. - tarpeeksi kattava ja yleinen, ei liian monimutkaisia tai erikoisia rakennelmia UML:n osat: Kaaviot (diagrams): - yhdeksän erilaista kaaviotyyppiä - yhdistelemällä muodostetaan järjestelmän kokonaiskuva Mallinnuselementit (model elements): - Kaavioissa käytetään mallinnuselementtejä, jotka vastaavat yleisiä olioohjelmoinnin käsitteitä, kuten luokkia, olioita ja viestejä, sekä niiden välisiä yhteyksiä, kuten assosiaatiota (association), riippuvuutta (dependency) ja yleistystä (generalization). - Mallinnuselementtiä käytettäessä erityyppisissä kaavioissa merkitys ja ulkoasu eivät muutu. Yleiset merkinnät (general mechanisms): Mallinnuselementteihin voidaan liittää kommentteja, lisätietoa tai lisämerkityksiä (semantics). UML:n laajennusmahdollisuus tiettyihin toimintatapoihin. UML yleistä 1

Näkymät - näyttävät mallinnettavan järjestelmän eri puolia. - ei tarkoita yksittäistä kuviota, vaan abstraktiota, joka koostuu useasta kaaviosta. - näkymien avulla mallinnuskieli yhdistetään kehityksessä käytettyyn työmenetelmään tai toimintaohjeisiin. Käyttötapausnäkymä (use-case view): - Käyttötapausnäkymä kuvaa järjestelmän tarjoamia palveluja ulkopuolisen toimijan (actor) kannalta. - Toimija - ihminen tai toinen järjestelmä, kommunikoi järjestelmän kanssa. - Käyttötapausnäkymiä käyttävät asiakkaat, suunnittelijat, kehittäjät ja testaajat. - Näkymä määritellään käyttötapauskaavioilla ja joskus toimintokaavioilla (activity diagrams). - Järjestelmän käyttö kuvataan näkymässä useilla käyttötapauksilla, jotka vastaavat tietyn käyttömahdollisuuden eli toiminnon kuvausta. - Käyttötapausnäkymä on keskeisessä asemassa, sillä sen sisältö ohjaa muiden näkymien kehitystä. - Järjestelmän lopullinen tavoite on tarjota tässä näkymässä kuvatut toiminnot - joidenkin laadullisten ominaisuuksien lisäksi - joten käyttötapausnäkymä vaikuttaa kaikkiin muihin näkymiin. UML yleistä 2

Looginen näkymä (logical view): - Kertoo, kuinka järjestelmän toiminnot on toteutettu. - Käyttö pääasiassa suunnittelijat ja kehittäjät. - Kuvaa järjestelmän sisällä pysyvät rakenteet eli luokat, oliot ja suhteet, sekä dynaamiset yhteistyötapahtumat (collaborations) olioiden lähettäessä viestejä toisilleen toteuttaakseen halutun toiminnon. - Ominaisuudet, kuten säilyvyys (persistence) ja samanaikaisuus (concurrency), määritellään myös, samoin luokkien tarjoamat ulkoiset rajapinnat ja sisäiset rakenteet. - Käytetään luokka- ja oliokaavioita, tila-, viestiyhteys-, yhteistyö- ja toimintokaavioilla Komponenttinäkymä (component view): - kuvaa moduulien toteutuksen ja niiden väliset riippuvuudet. koostuu komponenttikaaviosta. - erityyppisistä koodimoduuleista näytetään rakenteet ja riippuvuudet, mahdollisesti myös resurssien varaukset tai raportit työn etenemisestä. Samanaikaisuusnäkymä (concurrency view): - järjestelmän jako prosesseihin ja prosessoreihin. - tarkoitus mahdollistaa resurssien tehokkaan käytön, rinnakkaisajon ja ympäristöstä tulevien viestien asynkronisen käsittelyn. - rinnakkaisiin säikeisiin jaon lisäksi käsitellään näiden säikeiden välistä synkronointia ja kommunikaatiota. UML yleistä 3

- käyttää kehittäjät ja järjestelmän kokoojat (integrotors) - koostuu dynaamisista kaavioista (tila-, viestiyhteys-, yhteistyö- ja toimintokaaviot ja toteutuskaavioista), toteutuskaavioista (komponentti- ja käyttöönottokaaviot) Käyttöönottonäkymä (deployment vew): - kuvaa järjestelmän fyysisen sijoittelun, eli tietokoneet ja muut laitteet, sekä niiden väliset yhteydet. - hyödyntävät kehittäjät, kokoajat ja testaajat. kuvaavat käyttöönottokaaviot, jotka kertovat, minne eri koodimoduulit sijoittuvat eli mitkä ohjelmat ja oliot toimivat missäkin tietokoneessa. UML ei vaadi muitakin näkymiä - voidaan käyttää staattis-dynaamisia, loogisfyysisiä ja vuokaavioita. UML yleistä 4

Kaaviot Käyttötapauskaavio - Käyttötapauskaaviossa (use-case diagram) on useita ulkoisia toimijoita (actors) ja niiden yhteydet järjestelmän tarjoamiin käyttötapauksiin. - Yksittäinen käyttötapaus on järjestelmässä olevan yhden toiminnon kuvaus. Kuvaus tehdään yleensä sanallisesti ja tallennetaan käyttötapauselementin dokumentointi-ominaisuuteen, mutta se voidaan myös tehdä toimintokaaviota käyttäen. - Käyttötapaukset kuvataan vain ulkoisesti eli toimijan näkökulmasta, eikä niissä oteta kantaa siihen, kuinka toiminto saadaan toteutettua. Luokkakaavio - Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakenteen. - Luokat vastaavat asioita, joita järjestelmä käsittelee. - luokkakaaviossa näytetään luokkien sisäiset rakenteet tietojen (attributes) ja toimintojen (operotions) kanssa. - Kaavio on staattinen, mikä tarkoittaa sitä, että se on pätevä millä tahansa hetkellä. - järjestelmässä on yleensä useita luokkakaavioita - kaikkia luokkia ei laiteta samaan kaavioon - ja luokka voi olla mukana useissa luokkakaavioissa. Oliokaavio - Oliokaavio (object diagram) on luokkakaavion muunnelma. UML yleistä 5

- oliokaaviossa on useita olioita eli luokkien ilmentymiä (instances), eikä itse luokkia. - Notaatio on sama kuin luokkakaaviossakin poikkeuksena: olioiden nimet alleviivataan ja tiettyyn yhteyteen liittyvät kaikki yksittäiset ilmentymät näytetään. - Oliokaaviot eivät ole yhtä tärkeitä kuin luokkakaaviot, mutta niillä voidaan selkiyttää monimutkaisia luokkakaavioita näyttämällä, miltä yksittäiset oliot ja niiden yhteydet näyttävät. Oliokaavioita käytetään myös osana yhteistyökaavioita, joissa näytetään tietyn olioryhmän välisiä yhteistyöviestejä. Tilakaavio - Tilakaaviota (state diagram) käytetään yleensä täydentämään luokan kuvausta. - Kaavio näyttää kaikki mahdolliset tilat, joihin luokan ilmentymät eli oliot voivat joutua, ja mitkä tapahtumat aiheuttavat tilasiirtymiä. - Tilakaavioita ei piirretä kaikille luokille, vaan vain niille, joilla on useita selkeästi erottuvia tiloja ja joiden käyttäytyminen muuttuu tilasta toiseen. Tilakaavioita voidaan piirtää myös koko järjestelmälle. Viestiyhteyskaavio - Viestiyhteyskaavio (sequence diagram) kuvaa dynaamista yhteistyötä joidenkin olioiden välillä. - Kaavion tehtävä on näyttää viestiyhteys eli sarja viestejä näiden olioiden kesken. Se esittää myös olioiden välistä yhteistyötä, eli kuvaa, mitä järjestelmässä tapahtuu tietyssä tilanteessa. Kaavio koostuu olioista, joille UML yleistä 6

piirretään pystysuorat viivat alaspäin. Aika kuluu kaaviossa alaspäin ja kaavio näyttää viestien kulun oliolta toiselle ajan kuluessa. Viestit piirretään nuolina pystysuorien olioviivojen välillä. Aikamääreet ja muut selitteet lisätään kaavion marginaaliin. Yhteistyökaavio - Yhteistyökaavio (collaboration diogram) kuvaa dynaamista yhteistyötilannetta, kuten viestiyhteyskaaviokin. - Viestien vaihdon (interaction) lisäksi yhteistyökaavio näyttää oliot ja niiden suhteet toisiinsa (context). - Valinta yhteistyö- ja viestiyhteyskaavion välillä voidaan tehdä seuraavin perustein: jos ajan kuluminen tai viestisarja on tärkeä piirre, käytä viestiyhteyskaaviota; jos tärkeä ominaisuus on olioiden suhteet toisiinsa, käytä yhteistyökaaviota. - Yhteistyökaaviossa voi olla myös aktiivisia olioita (active objects), jotka suorittavat jotakin tehtävää samanaikaisesti muiden aktiivisten olioiden kanssa. Toimintokaavio - Toimintokaavio (activity diagram) näyttää tapahtumien kulun aikajärjestyksessä. Komponenttikaavio UML yleistä 7

- Komponenttikaavio (component diogram) näyttää lähdekoodin fyysisen rakenteen koodikomponentteina (code components). - Komponenttien väliset riippuvuussuhteet näytetään, jolloin on helppo nähdä, mihin komponenttiin jokin tehty muutos voi vaikuttaa. Komponentit voidaan näyttää myös niiden paljastamien rajapintojen, kuten OLE/COMin, kanssa ja ne voidaan ryhmitellä paketteihin (packages). Käyttöönottokaavio - Käyttöönottokaavio (deployment diagram) näyttää järjestelmän laitteiston ja ohjelmiston fyysisen arkkitehtuurin. - Kaaviossa näytetään tietokoneet ja muut laitteet eli yhteisesti solmut (nodes) ja niiden väliset yhteydet tyyppeineen. Solmujen sisällä näytetään, mitä komponentteja minkäkin solmun sisällä on käytössä. Myös komponenttien väliset riippuvuudet voidaan näyttää. - Kuvataan järjestelmän fyysisen rakenteen. UML yleistä 8

UML yleistä 9