Mallinnus UML-yleiskatsaus



Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

UML:n yleiskatsaus. UML:n osat:

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen

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

UML-kielen formalisointi Object-Z:lla

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen suunnittelu

Unified Modeling Language

Ohjelmistojen mallintaminen kertausta Harri Laine 1

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.

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

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

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

Olioperustaisuus (object oriented)

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

UML - unified modeling language

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kesä 2008

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Kaaviotekniikoista (erityisesti UML)

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Muutamia peruskäsitteitä

UML-kaaviot. Jouni Kylä-Nikkilä

UML työvälineenä ja tutkimuskohteena

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Visual Case 2. Miika Kasnio (C9767)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen, kesä 2010

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

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

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

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

Ohjelmistojen mallintaminen, sekvenssikaaviot

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

TIE = JOTU. VH5 - MagicDraw

Javan perusteita. Janne Käki

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

1. Olio-ohjelmointi 1.1

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistojen mallintaminen. Luento 4,

käyttötapaukset mod. testaus

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Luento 3 Tietokannan tietosisällön suunnittelu

Luokka- ja oliokaaviot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

UML Luokkakaavio 14:41

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

Ohjelmistojen mallintaminen. Luento 3, 9.11.

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

Olioiden yhteistyön mallintaminen

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

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Rajapinta (interface)

Analyysi on tulkkaamista

UML -mallinnus TILAKAAVIO

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

13/20: Kierrätys kannattaa koodaamisessakin

UML OHJELMISTOPROSESSIEN TUKENA

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistojen mallintaminen. Matti Luukkainen

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

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

VH5, JOTU, MagicDraw:n käyttö

UML- mallinnus: Tilakaavio

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

2. Olio-ohjelmoinista lyhyesti 2.1

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

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

Tietokannan suunnittelu

Integrointi. Ohjelmistotekniikka kevät 2003

Ohjelmistojen mallintaminen

Kertaus: yleistys-erikoistus ja perintä

3. Käsiteanalyysi ja käsitekaavio

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

TIETOKANNAN SUUNNITTELU

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

Ohjelmistojen mallintaminen

Määrittely- ja suunnittelumenetelmät

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

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

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

Transkriptio:

2 Mallinnus UML-yleiskatsaus Tule maalle - näe mullin malli. Tämän osan sisältö Mallinnus ohjelmistoprojekteissa Mallinnuskielet UML-yleiskatsaus Oliopohjainen ajattelu UML-kaaviot rakennetta kuvaavat käyttäytymistä kuvaavat vuorovaikutusta kuvaavat Kaavioiden käytöstä erilaisia näkymiä järjestelmään millä tuottaa UML-kaaviot Mallintaminen / Häkkinen A. / K2013 2-1 Mallintaminen / Häkkinen A. / K2013 2-2 Mallinnus ohjelmistoprojekteissa Ohjelmistot monimutkaisia ja sisältävät paljon yksityiskohtia häiritsee kokonaisuuden hahmottamista Kehittäjillä ja ohjelmiston sidosryhmillä erilaisia tarpeita projektin eri vaiheissa ennen suunnittelua on ymmärrettävä vaatimukset vaatimukset suhteutettava ympäristöön ja käytössä oleviin resursseihin Järjestelmää tarve mallintaa eri tarkkuustasoilla ja eri näkökulmista projektin eri vaiheissa Mallit ja kaaviot sallivat eri abstraktiotasot, laajuudet ja näkökulmat mahdollistavat todellisuuden yksinkertaistamisen kätkevät tarpeettomat yksityiskohdat toimivat vaihetuotteina suunnittelumenetelmissä auttavat ymmärtämään ja jäsentämään sovellusaluetta helpottavat kommunikointia koskien järjestelmää ja sovellusaluetta Yleisiä, kaikkiin tilanteisiin ja ympäristöön sopivia malleja ei ole käytä tarpeen mukaan, tilanteeseen sopivasti Mallinnuskielet kuvaustekniikkaa = käsitteistö + esitystapa ymmärtämisen, määrittelyn ja suunnittelun apuvälineitä Matemaattinen kieli esim. ohjelmiston formaali, matemaattinen määrittely täsmällistä ja vaativaa, lähinnä akateemista aherrusta Luonnollinen kieli esim. suloinen suomenkielinen teksti ongelma: voi jättää tulkinnanvaraisuutta, pitää olla ristiriidaton sopii mm. sanaston (glossary) laadintaan järjestelmän keskeisten käsitteiden luettelointia ja määrittelemistä apua muiden mallien laatimisessa (esim. olioluokkien löytäminen) myös ei-teknisen henkilön helppo ymmärtää Pseudokieli ohjelmointikielen ohjausrakenteita ja luonnollista kieltä sopii esim. algoritmien toiminnan yleiskuvaukseen Mallintaminen / Häkkinen A. / K2013 2-3 Mallintaminen / Häkkinen A. / K2013 2-4 Mallinnuskielet Visuaalinen / graafinen kieli esitetään graafisin kuvioin ja tekstein ensisijaisesti ihmisille esim. Tietovuokaavio (Data Flow Diagram, DFD) hierarkkinen, tarkentuva toiminnallinen ositus osajärjestelmiin tietovirta: input - prosessi - output historiallinen kuvaustapa ei käsitellä tällä kurssilla UML-YLEISKATSAUS esim. UML-kaaviot oliopohjaisuus tämän kurssin pihvit! Mallintaminen / Häkkinen A. / K2013 2-5 Mallintaminen / Häkkinen A. / K2013 2-6 Unified Modelling Language (UML) Ohjelmistojen määrittelyyn, suunnitteluun ja dokumentointiin tarkoitettu graafinen kieli visualisointi kuvaustapoja ja niiden käyttösääntöjä Ei liity suoranaisesti mihinkään tiettyyn suunnittelumenetelmään Standardoi ohjelmistomallien esitystavat yhtenäiset / yhteensopivat kuvausmenetelmät kaikkiin vaiheisiin laajassa käytössä: kirjallisuudessa, teollisuudessa, työkaluissa Tarkoitettu erityisesti oliopohjaisten ohjelmistojen mallintamiseen Pitkän kehitystyön tulos, kehittyy edelleen pohjana OMT-, Booch-, OOSE-suunnittelumenetelmät kehittäjänä alkujaan Rational Software Corp. ensimmäinen standardi vuonna 1997 uusin versio 2.4 (elokuu 2011) www.uml.org Laaja 13 kaaviotyyppiä UML-standardeja koordinoi Object Management Group (OMG) Oliopohjainen ajattelu Ohjelmisto koostuu itsenäisistä olioista, jotka tuottavat yhdessä ohjelmiston kokonaistoiminnallisuuden oliot kommunikoivat käyttämällä toistensa julkisia palveluja oliot toimivat mallinnuksen perustana eri abstraktiotasoilla Oliolla sisäinen tila (private) = muuttujat olion ominaisuudet, attribuutit, joita muut eivät näe (kapselointi) Oliolla julkisia palveluja (public) = metodit palvelun käyttäjä tietää niiden käytön, mutta ei kuinka toteutettu Palvelun käyttö voi muuttaa olion sisäistä tilaa olion ominaisuudet (eli muuttujien arvot) voivat muuttua Julkinen rajapinta, API (application programming interface) 1) palvelun nimi 2) mitä palvelulla saa aikaan 3) mitä tietoa kutsuja välittää kutsuttavalle käyttäessään palvelua (parametrit) 4) palauttaako kutsuttu tietoa kutsujalle (paluuarvo) Mallintaminen / Häkkinen A. / K2013 2-7 Mallintaminen / Häkkinen A. / K2013 2-8

Oliopohjainen ajattelu Luokka (class) sapluuna / template, joka kuvaa olion rakenteen ja toiminnan ("tyypin") esittelee luokan ominaisuudet = muuttujat = data määrittelee luokan tarjoamat palvelut = metodien toteutukset = koodi Olio (object) on luokan ajonaikainen ilmentymä luokan sapluunan mukaan luotu aktiivinen toimija Kukin erillinen olio saa syntyessään ikiomat muuttujat jokaisella oliolla oma erillinen tallealue koneen muistissa poikkeus: luokkamuuttujat Samasta luokasta luodut oliot käyttävät yhteisiä metodeja koodi vain kertaalleen koneen muistissa koodi ei muutu ajonaikana UML-kaaviot UML 2:ssa 13 kaaviotyyppiä Rakennetta kuvaavat kaaviot luokkakaavio (class diagram) komponenttikaavio (component diagram) oliokaavio (object diagram) * koostekaavio (composite structure diagram) * pakkauskaavio (package diagram) * sijoittelukaavio (deployment diagram) Käyttäytymistä kuvaavat kaaviot aktiviteettikaavio (activity diagram) käyttötapauskaavio (use case diagram) tilakaavio (state machine diagram) Vuorovaikutusta kuvaavat kaaviot sekvenssikaavio (sequence diagram) yhteistoimintakaavio (communication diagram) * Kuvaavat järjestelmän staattisen ja fyysisen rakenteen: luokat, oliot ja olioiden suhteet Kuvaavat järjestelmän dynaamista toimintaa ajoituskaavio (timing diagram) * kokoava vuorovaikutuskaavio (interaction overview diagram) * Vuorovaikutus on olioiden viestintää jossain järjestelmän toimintatilanteessa Mallintaminen / Häkkinen A. / K2013 2-9 Mallintaminen / Häkkinen A. / K2013 2-10 UML-kaaviot RAKENNETTA yleistys, periytyminen Mallintaminen / Häkkinen A. / K2013 2-11 Mallintaminen / Häkkinen A. / K2013 2-12 Luokkakaavio (class diagram) Kuvaa järjestelmän luokkarakenteen määrittely- ja suunnittelutasolla Mistä luokista ohjelma koostuu Mikä on luokkien välinen suhde koostuminen, periytyminen, assosiaatio Oliokaavio (object diagram) Kaavion muoto perustaltaan sama kuin luokkakaaviossa luokan nimen lisäksi mahd. myös olion nimi attribuuttityyppien paikalla todelliset arvot Kuvaa miten oliot nivoutuvat toistensa kanssa tietyssä tilanteessa suoritusaikainen rakenne Oliokaaviossa luokalla voi olla useita ilmentymiä Autonvuokrauskaavioiden lähde: Koskimies K. Oliokirja. Satku. 2000 Mallintaminen / Häkkinen A. / K2013 2-13 Mallintaminen / Häkkinen A. / K2013 2-14 Komponenttikaavio (component diagram) Ryhmittelee esim. luokat suurempiin kokonaisuuksiin, itsenäisiin ohjelmistoyksiköihin komponentin voi tarvittaessa korvata toisella toteutuksella Kuvaa komponenttien väliset toteutus- ja käyttösuhteet komponentin tarjoamat rajapinnat (pallo) komponentin tarvitsemat rajapinnat (kuppi) Voi kuvata kokonaisia järjestelmiä yhtä hyvin kuin jonkin (osa)komponentin toiminnallisuutta Koostekaavio (composite structure diagram) Laajennettu luokkakaavio, joka kuvaa luokkien välisiä suhteita luokkien sisään piirretty olioita ja komponentteja Yhdistää luokka- ja komponenttikaaviot, mutta ei keskity yksityiskohtiin tai sijoitteluun Kuvaa miten luokat muodostavat mahdollisesti monimutkaisia rakenteita Symboli muuttunut Mallintaminen / Häkkinen A. / K2013 2-15 Mallintaminen / Häkkinen A. / K2013 2-16

Sijoittelukaavio (deployment diagram) Kuvaa miten järjestelmän osat sijoitetaan fyysisiin laiteympäristöön (solmuihin), ja mitä ohjelmakomponenttia ajetaan milläkin laitteella Kuvaa millaisella yhteydellä / kommunikointitavalla solmut yhdistetty toisiinsa Pakkauskaavio (package diagram) Kuvaa miten luokkia ja rajapintoja ryhmitellään loogisiksi kokonaisuuksiksi Kuvaa UML-elementtien väliset suhteet ja määrittelyjen näkyvyydet Pakkaus on UML:n yleinen ryhmittely- ja kokoamisväline merkitystä vain mallinnuksen kannalta asiakaspiste:asiakas : GUI : Autonvuokraus «TCP/IP» ajoneuvorekisteri:palvelin :Xtietokantaliittymä :Xtietokanta Mallintaminen / Häkkinen A. / K2013 2-17 Mallintaminen / Häkkinen A. / K2013 2-18 Käyttötapauskaavio (use case diagram) KÄYTTÄYTYMISTÄ Kiteyttää järjestelmän toiminnalliset vaatimukset käyttötapaus = yksi toiminnallinen kokonaisuus ja sen kuvaus Kuvaa järjestelmää toimijoiden (käyttäjän / toisen järjestelmän) näkökulmasta Ei ota kantaa rakenteeseen tai toteutukseen Lähtökohtana useimmille muille kaavioille Mallintaminen / Häkkinen A. / K2013 2-19 Mallintaminen / Häkkinen A. / K2013 2-20 Aktiviteettikaavio (activity diagram) Kuvaa miten käyttäytyminen tai toiminta kulkee suorituksen edetessä Esittää vuorovaikutuksen yhteydessä olioiden tekemät tehtävät ja niiden ajallisen järjestyksen kullakin toimijalle oma "uimarata" Käytetään täydentämään käyttötapauksia Tilakaavio (state machine diagram) Kuvaa millaisia tiloja olioon tai järjestelmään liittyy sen elinkaaren aikana tila on esim. jonkun muuttujan arvo tietyllä hetkellä Kuvaa kuinka esim. olion tulee reagoida ulkoisiin herätteisiin milloin: tiettyjen ehtojen toteutuessa miten: toimintaa ja siirtyminen uuteen tilaan Mallintaminen / Häkkinen A. / K2013 2-21 Mallintaminen / Häkkinen A. / K2013 2-22 Sekvenssikaavio (sequence diagram) VUOROVAIKUTUSTA Vuorovaikutuskaavio, jossa keskitytään suorituksessa olevien olioiden välisten viestien järjestykseen kuvaa viestinvaihtoa aikaulottuvuudessa, aikajärjestyksessä Kullakin oliolla oma pystysuuntainen "elämänviiva" Tärkein ja samalla käytetyin vuorovaikutuskaavio Mallintaminen / Häkkinen A. / K2013 2-23 Mallintaminen / Häkkinen A. / K2013 2-24

Yhteistoimintakaavio (communication diagram) Kokoava vuorovaikutuskaavio (interaction overview diagram) Kuvaa tiettyyn käyttäytymiseen liittyen olioiden suhteita ja vuorovaikutusta viestejä, operaatiokutsuja vrt. sekvenssikaavio Ajallinen järjestys kuvataan linkkeihin liitetyillä numeroilla Yhdistelee useita sekvenssikaavioita samaan kuvaan Kuvaa yleisesti johonkin toimintoon liittyvien olioiden suhteita ja vastuita viestinnän aikana Mallintaminen / Häkkinen A. / K2013 2-25 Mallintaminen / Häkkinen A. / K2013 2-26 Ajoituskaavio (timing diagram) Viestien välityksen ajoitukseen liittyvä kuvaus esim. yhteydenmuodostuksen kättely Selventää vuorovaikutukseen kuluvaa aikaa KAAVIOIDEN KÄYTÖSTÄ Mallintaminen / Häkkinen A. / K2013 2-27 Mallintaminen / Häkkinen A. / K2013 2-28 Miten UML:ää käytetään? Kiinnitettyjen asioiden esittäminen tarkoitukseen sopivalla tavalla Kaaviot ei itsetarkoitus Rajaus: tarpeet kaivettava tarkastelijan näkökulmasta Hahmottelu eli luonnosten teko (sketch) Usein ohjelmiston elinkaaren alkuvaiheessa punnittaessa vaihtoehtoisia toteutustapoja Epätarkkoja ja yksityiskohdiltaan puutteellisia hahmotelmia Aluksi usein käsin paperille tai valkotaululle Tarkkojen suunnitelmien tekeminen (blueprint) Yleensä tietokoneella UML-piirto-ohjelmalla Esim. keskeisimpien kaavioiden puhtaaksikirjoitus Iteratiivisesti työstäen Samoihin kaavioihin palataan uudelleen ja uudelleen Lisää ja syvennä vaihe vaiheelta kaavioissa näytettävää tietoa Saadaan palautetta Tiedetään enemmän Kiinnitetään valintoja ja ratkaisuja Inkrementaalisesti työstäen Määrittele, suunnittele, toteuta, testaa, dokumentoi yksi osakokonaisuus kerralla Täydennä ja tarkenna kaavioita matkan varrella Saadaan palautetta Tiedetään enemmän Kiinnitetään valintoja ja ratkaisuja Ohjelmointikielenä, koodin generointi Kaupallisia ja ilmaisia piirtotyökaluja UML-kaaviosta halutun kielistä ohjelmakoodia (forward engineering) Lähdekoodista UML-kaavioita (reverse-engineering) Ei yksi yhteen -kuvaus, käsityötä riittää Mallintaminen / Häkkinen A. / K2013 2-29 Mallintaminen / Häkkinen A. / K2013 2-30 Kaavioiden käytöstä Kaavioita luodaan vaatimusmäärittelyn ja suunnittelun aikana muun dokumentaation tueksi Kaavioita päivitetään tarvittaessa vielä toteutuksenkin aikana Kaikille kaavioille ei ole suoraa käyttötarkoitusta "perusvaiheistuksessa" eivät pakollisia, eikä kaikissa projekteissa edes tarpeellisia Käytetyimmät kaaviot käyttötapauskaavio sekvenssikaavio luokkakaavio tilakaavio Hajautetuissa ja suurissa järjestelmissä lisäksi sijoittelukaavio komponenttikaavio Reaaliaikaisissa järjestelmissä (aikakriittisyys) ajoituskaavio yhteistoimintakaavio Millä tuottaa UML-kaavioita? Jos ei osaa tuottaa paperilla ja kynällä, ei välineestäkään ole apua Demot ja pikkuesimerkit antavat välineistä melko ruusuisen kuvan opeteltavaa riittää CASE-työvälineet (computer aided software engineering) perustuvat kuvauskantaan (tietokanta) tallettaa malliin liittyvät tiedot kaaviot ovat vain näkymiä tietokantaan ymmärtävät jossain määrin kaavioiden semantiikkaa tietämyksen siirtoa kaaviosta toiseen mahdollistaa koodirungon generoinnin tukevat dokumentointia esim. Rational Rose Modeler Visual Paradigm for UML MagicDraw UML Enterprice Architect OmniGraffle Prosa Mallintaminen / Häkkinen A. / K2013 2-31 Mallintaminen / Häkkinen A. / K2013 2-32

Millä tuottaa UML-kaavioita? Millä tuottaa UML-kaavioita? astah* Metropolian valinta UML-kaaviot, käsitekartat NetBeans (Linux, Windows) Visual Paradigm Streamlined Development Environment for NetBeans Community Edition (SDE CE-NB) free for non-commercial use ei sisällä kaikkia kaupallisen version piirteitä Sun Microsystems: JDeveloper Eclipse (Linux, Windows) plugin Help Install New Software -> Work with Galileo, ja sitten Modeling Visual Paradigm Streamlined Development Environment for Eclipse Community Edition (SDE CE-EC) free for non-commercial use Muut ilmaisohjelmistot pärs tuntumalta kelpo työkaluja, mutta näkyy, että kaupallisuus puuttuu eivät välttämättä tue kaikkia UML-kaaviotyyppejä, tai UML 2:ta monista sekä Linux- että Windows-versiot esim. StarUML - UML 2 Umlet - UML 2 Gaphor - UML 2 ArgoUML - UML 2-tuki tekeillä, Java Web Start Dia Umbrello - ei kaikkia kaavioita Tavalliset piirto-ohjelmat selvästi CASE-työkaluja edullisempia monissa nykyään myös UML-tukea valintana OK, jos ei tarvitse CASE-välineen tietokannan lisäetuja Täältä lisää vinkkejä: http://plg.uwaterloo.ca/~migod/uml.html Mallintaminen / Häkkinen A. / K2013 2-33 Mallintaminen / Häkkinen A. / K2013 2-34 Välikysymyksiä Miksi mallinnusta? Oliopohjainen ajattelu? UML-kaavioiden pääluokat? Tunnistatko mikä kaavio? 4+1 näkymää: kuka näkee ja mitä haluaa nähdä? Mallintaminen / Häkkinen A. / K2013 2-35