Unified Modeling Language

Samankaltaiset tiedostot
Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistotekniikan menetelmät, UML

UML:n yleiskatsaus. UML:n osat:

UML - unified modeling language

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

UML- mallinnus: Tilakaavio

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

UML-kielen formalisointi Object-Z:lla

Ohjelmistojen suunnittelu

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

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

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

Mallinnus UML-yleiskatsaus

Ohjelmistotekniikan menetelmät, kesä 2008

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen, kesä 2010

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

Ohjelmistotekniikan menetelmät, kevät 2008

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

TIE = JOTU. VH5 - MagicDraw

T Testiraportti - järjestelmätestaus

Ohjelmistojen mallintaminen

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Määrittely- ja suunnittelumenetelmät

käyttötapaukset mod. testaus

Visual Case 2. Miika Kasnio (C9767)

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

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

T Testiraportti - integraatiotestaus

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

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

UML OHJELMISTOPROSESSIEN TUKENA

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

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

Dynaaminen analyysi II

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Luokka- ja oliokaaviot

Analyysi on tulkkaamista

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

UML -mallinnus TILAKAAVIO

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Määrittelyvaihe. Projektinhallinta

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Olioiden yhteistyön mallintaminen

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

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

UML-kaaviot. Jouni Kylä-Nikkilä

UML Luokkakaavio 14:41

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

Yhteenveto. Menettelytavat

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Kaaviotekniikoista (erityisesti UML)

Ohjelmistojen mallintaminen, sekvenssikaaviot

UML työvälineenä ja tutkimuskohteena

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Hieman lisää malleista ja niiden hyödyntämisestä

Lomalista-sovelluksen määrittely

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

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

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Koodimalli Code Model

T SEPA - päiväkirja: Design Patterns. ETL työkalu

Ohjelmistojen mallintaminen, mallintaminen ja UML

Kaavioista luettavat UML-laajennukset

Kertaus: yleistys-erikoistus ja perintä

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Suunnittelumalleja, MVC. Juha Järvensivu 2008

VH5, JOTU, MagicDraw:n käyttö

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

Ohjelmiston toteutussuunnitelma

Vaatimusten keräys ja hallinta

15. Ohjelmoinnin tekniikkaa 15.1

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Oliosuunnittelu. Oliosuunnittelu

Kaaviotekniikoista (erityisesti UML)

Graafisen käyttöliittymän ohjelmointi Syksy 2013

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistotekniikka - Luento 2

Testaussuunnitelma. Ohjelmistotuotantoprojekti XPerf. Helsingin yliopisto. Tietojenkäsittelytieteen laitos

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

Transkriptio:

Unified Modeling Language Confuse 25.11.2001 Tila Versio: 1.0 Vaihe: T1 Jakelu: Julkinen Luontipäivä: 15.11.2001 Antti Haapakoski Muutettu viimeksi: 25.11.2001 Antti Haapakoski Sisältö 1 Yleistä 1 2 Mallinnuksesta 2 3 Tärkeimmät kaaviotyypit 2 3.1 Käyttötapauskaavio (Use-case diagram)................ 3 3.2 Luokkakaavio (Class diagram)..................... 4 3.3 Komponenttikaavio (Component diagram)............... 5 3.4 Sijoittelukaavio (Deployment diagram)................. 5 3.5 Yhteistyökaavio (Collaboration diagram)............... 6 3.6 Tilakaavio (Statechart diagram)..................... 6 3.7 Aktiviteettikaavio (Activity diagram).................. 7 3.8 Sekvenssikaavio (Sequence diagram).................. 7 4 Käyttäminen projektissa 7 1 Yleistä Ohjelmistojen koon kasvaessa yritykset haluavat kehittää ohjelmistoprosessiaan tehokkaammaksi, automatisoidummaksi ja laadukkaammaksi. Tähän tarvitaan uusia tekniikoita, kuten visualisointia, komponenttiteknologioita, suunnittelumalleja (design patterns) ja sovelluskehyksiä (frameworks). UML auttaa näiden tekniikoiden käyttöönotossa. Unified Modeling Language (UML) on tarkoitettu ohjelmistojärjestelmien ja niiden osien määrittelyyn, visualisointiin, rakentamiseen ja dokumentointiin. 1

UML:n on kehittänyt Rational Software yhteistyökumppaneineen aikaisempien mallinnusmenetelmien, kuten Booch, OOSE/Jacobson ja OMT, pohjalta. UML on aikaisempia mentelmiä monipuolisempi. Sillä voi esimerkiksi mallintaa rinnakkaisia hajautettuja järjestelmiä. Useat yritykset ovat jo ottaneet UML:n käyttöönsä ohjelmistojen kehitysprosessissaan, aina vaatimusmäärittelystä ohjelmiston testaukseen asti. 2 Mallinnuksesta Ohjelmiston mallinnus ennen sen rakentamista on tärkeää. Samoin kuin rakennus suunnitellaan paperilla ennen sen rakentamista, täytyy myös ohjelmisto suunnitella hyvin ennen sen toteutusta. Hyvä malli auttaa arkkitehtuurin pohdinnassa, sekä toimii toteutuksen lähtökohtana. Mallit ovat myös tärkeä kommunikaation muoto projektitiimin sisällä ja eri projektitiimien välillä. Ohjelmistojen kasvaessa suuremmiksi ja monimutkaisemmaksi, mallinnuksen rooli tulee yhä tärkeämmäksi. UML on hyvin määritelty ja laajasti hyväksytty tapa mallintaa ohjelmistoja. Se sopii erityisesti olio- ja komponenttipohjaisten järjestelmien mallinnukseen. UML ei ota kantaa toteutuksen ohjelmointikieleen eikä käytettävään ohjelmistoprosessiin. Tosin UML:n kehittäjät suosittelevat käyttötapauspohjaista (use-case driven), arkkitehtuurikeskeistä, iteratiivista ja inkrementaalista prosessia. 3 Tärkeimmät kaaviotyypit UML perustuu erilaisten kaavioiden käyttöön. Se määrittelee useita eri kaaviotyyppejä yrittäen kattaa mahdollisimman suuren osan ohjelmistojen mallinnustavoista. Kaavioiden syntaksi on melko tarkkaan määritelty. Esimerkiksi katkoviivalla ja yhtenäisellä viivalla on kaavioissa usein eri merkitys. Tarkka määrittely onkin tarpeellista jotta UML:stä olisi hyötyä kommunikaatiovälineenä. Seuraavat kappaleet esittelevät erittäin lyhyesti tärkeimmät kaaviotyypit. Kaaviot on esitelty jotta lukija saa jonkinlaisen kuvan siitä mitä UML on. Enemmän tietoa löytyy useista UML-kirjoista sekä UML:n määrittelystä [1]. 2

3.1 Käyttötapauskaavio (Use-case diagram) Palautejärjestelmä Opiskelija Palautteen antaminen Palautelomakkeen luonti Opettaja Palautelomakkeen aktivointi Kuva 1: Käyttötapauskaavio (Use-case diagram) Käyttötapauskaavio (Kuva 1) yhdistää toimijat (actors) ja käyttötapaukset (Use cases). Toimijat ovat järjestelmän käyttäjiä eli useimmiten ihmisiä. Käyttötapaukset määrittelevät toimintoja tai toimintojonoja jotka järjestelmän voi suorittaa toimijoiden pyynnöstä. Käyttötapaukset ja käyttötapauskaaviot ovat hyödyllisiä varsinkin vaatimusmäärittelyssä sekä käyttöliittymän suunnittelussa. Käyttötapauskaaviot toimivat selkeytensä vuoksi myös hyvänä kommunikaatiomuotona asiakkaan ja projektitiimin välillä. Käyttötapauksista voidaan usein johtaa tärkeimmät toiminnot, jotka järjestelmän tulee pystyä suorittamaan. 3

3.2 Luokkakaavio (Class diagram) <<interface>> Shape draw() rotate(angle:integer) resize(s:integer) <<implementationclass>> Circle radius: Integer setradius(r:integer) <<implementationclass>> Square side: Integer setside(s:integer) * squares 1 <<implementationclass>> SquareSet Kuva 2: Luokkakaavio (Class diagram) Luokkakaavio (Kuva 2) näyttää staattisen kokoelman olioita, kuten luokkia ja tyyppejä. Oliot on mallinnettu suorakaiteilla, joiden sisään voidaan merkitä metodeja sekä sisäisiä muuttujia. Luokkakaavio mallintaa myös olioiden suhteita, kuten periytymistä ja toisten olioiden käyttöä. Luokkakaavio on hyödyllinen varsinkin ohjelmiston toteutusta suunniteltaessa eli teknisessä määrittelyssä. Luokkakaavio sopii hyvin olio-ohjelmoinnilla toteutettavien modulien mallintamiseen mutta proseduraaliseen ohjelmointiin se ei sovellu. Jotkin mallinnusohjelmat osaavat muuttaa piirretyn luokkakaavion suoraan lähdekielisen ohjelman rungoksi. 4

3.3 Komponenttikaavio (Component diagram) Mapper <<text file>> UI choice descriptions Configurator GUI Kuva 3: Komponenttikaavio (Component diagram) Komponenttikaavio (Kuva 3) näyttää komponenttien väliset riippuvuudet. Komponentit ovat yleensä ajettavia ohjelma-moduuleja. Mukana voi myös olla komponentteja, joita ei ajonaikana enää suoranaisesti esiinny. Sijoittelukaaviossa (Kappale 3.4) puolestaan näkyy vain ajonaikaiset komponentit. Komponenttikaavio sopii yleisyytensä vuoksi moneen eri projektin vaiheeseen aina vaatimusmäärittelystä testaukseen. 3.4 Sijoittelukaavio (Deployment diagram) :Client :Server <<browser>> :Netscape <<servlet>> :UIManager <<Entity>> :Session <<database>> :ContentDB Kuva 4: Sijoittelukaavio (Deployment diagram) Sijoittelukaavio (Kuva 4) esittää komponentteja ajonaikaisissa ympäristöissään sekä laitteita joissa komponenttien prosesseja ajetaan. Kukin komponentti sijaitsee jossain solmussa (Node), joka on suoritusaikainen koneresurssi. Solmut ovat laitteita joilla on yleensä muistia ja jonkinlainen prosessori. Myös sijoittelukaavio sopii moneen eri projektin vaiheeseen vaatimusmäärittelystä lähtien. 5

3.5 Yhteistyökaavio (Collaboration diagram) redraw() wnd:window 1.1.1.1: putpixel(x,y) <<parameter>>window 1.1*[i:=1..n]: drawshape(wnd) pic 1: paint(wnd) <<self>> pic:picture i 1.1.1: draw(wnd) shape:shape Kuva 5: Yhteistyökaavio (Collaboration diagram) Yhteistyökaavio (Kuva 5) näyttää luokkien instanssit ja niiden välisen vuorovaikutuksen. Kaavioon on usein merkitty tapahtumien järjestys numeroinnilla. Sisäkkäiset funktio- tai metodikutsut esitetään alanumeroinnilla. Yhteistyökaavio näyttää samaa informaatiota kuin sekvenssikaavio (katso 3.8), mutta eri muodossa. Kaavio sopii varsinkin tekniseen määrittelyyn, ohjelman tarkan toiminnan suunnitteluun. 3.6 Tilakaavio (Statechart diagram) press + /increase h press set clock Set hour do/blink hour display press - /decrease h Idle do/show clock press OK press OK press + /increase m Set minute do/blink minute display press - /decrease m Kuva 6: Tilakaavio (Statechart diagram) Tilakaavio (Kuva 6) esittää normaalin tilakoneen graafisesti. Lisäksi tiloihin ja tilasiirtymiin on voitu merkitä suoritettavia toimintoja. 6

3.7 Aktiviteettikaavio (Activity diagram) Circle::draw Calculate position [off screen] [on screen] Draw pixels Mark drawn Kuva 7: Aktiviteettikaavio (Activity diagram) Aktiviteettikaavio (Kuva 7) on erikoistapaus tilakaaviosta. Suurin osa aktiviteettikaavion tiloista on ns. toimintotiloja (action state), eli tiloja joissa suoritetaan jokin laskenta tai toimenpide. Tilasiirtymät puolestaan aktivoituvat lähtötilojensa tapahtumista. Kaaviolla voidaan mallintaa myös rinnakkaisia prosesseja. 3.8 Sekvenssikaavio (Sequence diagram) Sekvenssikaavio (Kuva 8) esittää objektien välisen vuorovaikutuksen järjestettynä ajan mukaan. Sekä objektit että niiden väliset viestit on merkitty kaavioon. Normaalisti pystyakselilla on aika, joka kasvaa alaspäin. Vaaka-akselilla näkyvät objektit, jotka ovat vuorovaikutuksessa keskenään. Kaavion oliot voivat myös toimia rinnakkain. Tiettyjen toimintojen väliselle viiveelle voidaan asettaa rajoitteita merkitsemällä ne pystyakselille. Sekvenssikaavio näyttää samaa informaatiota kuin yhteistyökaavio (katso 3.5), mutta eri muodossa. Tosin sekvenssikaavio ei näytä niin hyvin objektien välisiä suhteita kuten yhteistyökaavio. Sekvenssikaavio sopii moneen projektin vaiheeseen, varsinkin toiminnalliseen ja tekniseen määrittelyyn. 4 Käyttäminen projektissa UML:ää käytetään Confuse:n projektissa heti vaatimusmäärittelystä lähtien. Myös toiminnallisen määrittelyn tekoon käytetään UML-kaavioita. Ohjelmiston toteutuksen suunnittelu (tekninen määrittely) pyritään soveltuvin osin tekemään UML:ää apuna käyttäen. UML:ää käytetään kuitenkin vain visualisointiin ja mallinnukseen eikä kaavioista suoraan generoida lähdekielistä koodia. Osa järjestelmästä, ainakin GUI, kirjoitetaan olio-ohjelmointikielellä. Tällöin voidaan luontevasti käyttää UML:ää luokkien ja niiden välisten riippuvuuksien mallintamiseen. Tosin järjestelmässä on myös proseduraalisia komponentteja, jotka suorittavat yksinkertaisia funktio-tyyppisiä tehtäviä. UML ei kovinkaan hyvin sovellu niiden mallintamiseen. Toisaalta yksinkertaiselle osalle riittää myös sanallinen kuvaus. 7

window picture shape a: paint() b: draw() c: putpixel() b: draw() < 10ms c: putpixel()... d: paintdone() Kuva 8: Sekvenssikaavio (Sequence diagram) Viitteet [1] Object Management Group, Unified Modeling Language (UML), version 1.4, September, 2001. http://www.omg.org/technology/documents/formal/uml.htm 8