Oppimistavoitteet. Arkkitehtuurin mallintaminen. Malleista ja niiden käytöstä. Malleista ja niiden käytöstä. Kommutatiivinen kaavio 22.9.

Samankaltaiset tiedostot
Arkkitehtuurin mallintaminen

Arkkitehtuurin mallintaminen

Ohjelmistoarkkitehtuurin suunnittelu

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

Ohjelmistojen suunnittelu

Ohjelmistojen mallintaminen, mallintaminen ja UML

2 Ohjelmistoarkkitehtuurien kuvaus

OA:n kanoninen malli II

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

Oppimistavoitteet. Suunnittelumalli Design Model. Suunnittelumalli. Suunnittelumalli. Suunnittelumalli SUUNNITTELUMALLI.

Ohjelmistojen mallintaminen

Koodimalli Code Model

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

OA:n kanoninen malli I

Ohjelmistojen mallintaminen, kesä 2009

UML:n yleiskatsaus. UML:n osat:

Tietojärjestelmän osat

TOIMINNALLINEN MÄÄRITTELY MS

2. Käsiteanalyysi ja relaatiomalli

Ohjelmistojen mallintaminen kertausta Harri Laine 1

OA:n kanoninen malli III

Ohjelmistotekniikan menetelmät, kesä 2008

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistojen mallintaminen, kesä 2010

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

Uudelleenkäytön jako kahteen

UML-kielen formalisointi Object-Z:lla

Ohjelmistotekniikan menetelmät, kevät 2008

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurin kehittäminen Liite 2 Arkkitehtuurikehyksen kuvaus

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Sovellusalue- ja suunnittelumallit Domain Model, Design Model

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Ohjelmistoarkkitehtuurit. Syksy 2008

Oppimistavoitteet. Koodimalli Code Model. Näkymätyypit. Näkymätyypit Yksi arkkitehtuuri monta näkymää NÄKYMÄTYYPIT

5. Järjestelmämallit. Mallinnus

Ohjelmistoarkkitehtuurit. Syksy 2010

Suunnitteluvaihe prosessissa

Ohjelmistoarkkitehtuurit. Kevät

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

ohjelman arkkitehtuurista.

3. Käsiteanalyysi ja käsitekaavio

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Harjoitustehtävät ja ratkaisut viikolle 48

Luokka- ja oliokaaviot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistotekniikan menetelmät, UML

Algoritmit 1. Luento 2 Ke Timo Männikkö

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Ohjelmistoarkkitehtuuri

Viestinvälitysarkkitehtuurit

Oppimistavoitteet. Sovellusaluemalli Domain Model. Esimerkkiohjelmisto Yinzer 1. Sovellusaluemallin käyttö. Sovellusaluemallin käyttö 24.9.

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

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

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Korkeakoulujen yhteentoimivuusmalli

Viestinvälitysarkkitehtuurit Lähtökohta:

Harjoitustyön testaus. Juha Taina

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistoarkkitehtuurit. Syksy 2007

Fysiikan ja kemian perusteet ja pedagogiikka Kari Sormunen Kevät 2014

Ohjelmistojen mallintaminen, kertausta

Oppimistavoitematriisi

Algoritmit 1. Luento 10 Ke Timo Männikkö

Ohjelmistoarkkitehtuurin suunnittelu

SEPA - Design Patterns

Oppimistavoitteet. Ohjelmistoarkkitehtuurin suunnittelu. Referenssejä L. Bass, P. Clements, R. Kazman: I. Mistrik, A. W. Brown, M. Ali Babar 8.9.

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

Tiedonsiirto- ja rajapintastandardit

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

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

Algoritmit 1. Luento 10 Ke Timo Männikkö

1.3 Katsaus ohjelmistotuotannon kehittymiseen

ITSLEARNING RAPORTOINTI JA ANALYTIIKKA. Johda tiedolla

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Oppimistavoitematriisi

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Tietokantojen suunnittelu, relaatiokantojen perusteita

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Dynaaminen analyysi I

L models. Käyttöohje. Ryhmä Rajoitteiset

Transkriptio:

Oppimistavoitteet Arkkitehtuurin Miksi ja milloin ohjelmistoarkkitehtuurista kannattaa laatia malleja? mallin ohjeellinen rakenne Luento 7 22.9.2015 581385 Ohjelmistoarkkitehtuurit 1 22.9.2015 581385 Ohjelmistoarkkitehtuurit 2 Malleista ja niiden käytöstä MIKSI MALLEJA? 1 Malli = esine, kuva, kuvio, kaava tms., jonka mukaan tehdään jtak t. josta havainnoidaan jtak. [ ] Erik. [ ] b. jtak kuviona, kaaviona tm. havainnollistava esitys. Molekyylin kolmiulotteinen malli. Atomiytimen malli. Väestön kehitystä kuvaava matemaattinen malli. [ ] 1 MOT Sanakirja 22.9.2015 581385 Ohjelmistoarkkitehtuurit 3 22.9.2015 581385 Ohjelmistoarkkitehtuurit 4 Malleista ja niiden käytöstä Kommutatiivinen kaavio Yksinkertaiset ongelmat voidaan ratkaista suoraan (ratkaisu on ilmeinen) Monimutkaiset reaalimaailman ongelmat vaativat asian kuvaamista abstraktina mallina (joka pelkistää ongelman ytimen) ja sen ratkaisemista ensin mallissa, minkä jälkeen ratkaisu siirretään reaalimaailman implementaatioksi Esimerkiksi matemaattisten mallien käyttö rakenteiden lujuuslaskennassa jne. 3D-mallien käyttö rakennusten suunnittelun apuna! Abstrakti ongelma Reaalimaailman ongelma Abstrakti ratkaisu Reaalimaailman ratkaisu 22.9.2015 581385 Ohjelmistoarkkitehtuurit 5 22.9.2015 581385 Ohjelmistoarkkitehtuurit 6 1

Ongelman laajuus ja monimutkaisuus vaatii abstrahointia (eli yksityiskohtien karsimista) On nähtävä metsä puilta Yksittäistä luokkaa, moduulia tai suunnittelumallin ilmentymää laajempien kokonaisuuksien hahmottaminen ja niiden roolin ymmärtäminen Suuren ohjelmiston koodin lukeminen rivi riviltä sen arkkitehtuurin ymmärtämiseksi on käytännössä mahdotonta Abstraktiot pelkistävät ongelmia ja tarjoavat mahdollisuuden kehittää työkaluja Oikein laadittu abstraktio vangitsee reaalimaailman ongelman oleelliset piirteet, jotka vaikuttavat hyväksyttävän ratkaisun muodostamiseen Turhat yksityiskohdat karsitaan pois Abstraktiin malliin voidaan käyttää erityisiä työkaluja ongelmien ratkaisemiseksi Esim moduulien/luokkien uudelleensijoittelu kirjastoihin/pakkauksiin haitallisiksi havaittujen riippuvuuksien karsimiseksi ja heijastusvaikutusten vähentämiseksi 22.9.2015 581385 Ohjelmistoarkkitehtuurit 7 22.9.2015 581385 Ohjelmistoarkkitehtuurit 8 Mallit helpottavat päätelmien tekemistä järjestelmän ominaisuuksista Malli auttaa päättämään, mitkä yksityiskohdat ja suunnittelupäätökset ovat tärkeitä laatuominaisuuksien ja niiden toteutumisen arvioinnin kannalta Malli voi olla luonnosmainen ja/tai pelkästään analysoijan mielessä Web-palvelimen malliluonnos Asiakkaan yksi web-sivun pyyntö voi aiheuttaa monia tietokantahakuja Client(s) Server(s) Database(s) Asiakkaan kokema viive pyyntöön vastaamisessa = Viestinvälitykseen kuluva aika + palvelimen pyynnön prosessointiaika + (tietokantahakuun kuluva aika x hakujen lukumäärä) 22.9.2015 581385 Ohjelmistoarkkitehtuurit 9 22.9.2015 581385 Ohjelmistoarkkitehtuurit 10 Web-palvelimen malliluonnos Kun edellisen mallin suoritusajoille annetaan arviot (esim. 10 + 10 + n x 25ms), niin mallin perusteella on helppo nähdä, että tietokantakyselyihin kuluva aika dominoi asiakkaan kokemaa viivettä Normalisoitu, hierarkinen relaatiotietokanta vs. normalisoimaton flat tietomalli -> Tietokantahakujen määrässä voi olla kertaluokan ero Malli jättää monia yksityiskohtia huomiotta (cache:t, jonotus*), mutta tällaisenaankin se on hyödyllinen analyysin kannalta * ) samanaikaisten pyyntöjen aiheuttaman jonotuksen ja resurssikilpailun ei ole sekään erityisen vaikeaa oikeilla työkaluilla ja matem. mallinnusmenetelmillä 22.9.2015 581385 Ohjelmistoarkkitehtuurit 11 Mallit karsivat ongelman ratkaisussa käsiteltäviä yksityiskohtia Malli valikoi ongelman ratkaisemisen kannalta oleelliset asiat ja jättää muut pois Malli on aina jossain mielessä epätäydellinen, mutta reaalimaailman täydellinen malli olisi liian suuri ja hankala käsiteltäväksi ja käsitettäväksi Essentially, all models are wrong but some are useful. 22.9.2015 581385 Ohjelmistoarkkitehtuurit 12 2

Mallit tehostavat päätelmien ja arviointien tekemistä Suunnittelija voi keskittyä vain pieneen joukkoon suunnittelupäätöksiä/yksityiskohtia kerrallaan (=työmuisti ja kognitio) Käsitteellinen tai konkreettinen malli auttaa suhteuttamaan ratkaisun eri yksityiskohtia toisiinsa ja havaitsemaan ja analysoimaan niiden välisiä riippuvuuksia ja rajoitteita Kysy ensin mitä haluat tietää ja laadi malli vasta sitten Ei malleja mallinnuksen vuoksi Samasta asiasta voidaan laatia erilaisia malleja eri käyttötarkoituksiin (suorituskyky, turvallisuus, riippuvuuksien hallinta jne.)! Arkkitehtuurityössä malleista on hyötyä ja ne ovat usein jopa välttämättömiä, mutta konkreettisia malleja pitäisi laativa vain todelliseen tarpeeseen, ei varmuuden vuoksi 22.9.2015 581385 Ohjelmistoarkkitehtuurit 13 22.9.2015 581385 Ohjelmistoarkkitehtuurit 14 OHJELMISTOARKKITEHTUURIN MALLIT JA NIIDEN RAKENNE Fairbanks esittää kanonisen 1 rakenteen ohjelmistoarkkitehtuurin malleille Määrittelee minkälaisia asioita ohjelmistoarkkitehtuurin mallin pitäisi yleisesti ottaen kuvata metamalli tai mallinnusstandardi Kattaa koko arkkitehtuuriratkaisun aina sovellusalueen käsitteistä totetutuksen koodiin ja laitteistosijoitteluun asti 1) Ohjeellinen, esikuvallinen - MOT Kielitoimiston sanakirja 22.9.2015 581385 Ohjelmistoarkkitehtuurit 15 22.9.2015 581385 Ohjelmistoarkkitehtuurit 16 Kanoninen rakenne antaa myös käsitteellisen kehyksen (conceptual model) ohjelmistoarkkitehtuurille Kehys tukee OA:n suunnittelua ohjaamalla suunnittelutyötä tietynlaisten kysymysten ja rakenteiden pohtimiseen Ohjaa jakamaan ohjelmistoa koskevien faktojen käsittelyn sopivalle abstraktiotasolle Ei ole kuitenkaan tarkoitus, että jokaisesta ohjelmistoprojektista laaditaan kanonisen rakenteen mukainen kattava kuvaus Projektit valikoivat todellisen tarpeen mukaan, mitä osia arkkitehtuurista mallinnetaan kanonisen metamallin sääntöjä noudattaen Harhakäsityksiä Jokaisen projektin pitää dokumentoida arkkitehtuurinsa: väärin. Arkkitehtuurimalleja ja dokumentteja kannattaa laatia vain kun ne auttavat pienentämään (projekti- ja tuote-) riskejä Arkkitehtuurin dokumentaation pitää olla aina kattava:väärin. Mallinnuksen pitäisi kohdistua riskipitoisimpiin ratkaisun osa-alueisiin (laatuominaisuuksiin). Laaja dokumentaatiokin saattaa joskus olla tarpeen, esimerkiksi erityisen kommunikointitarpeen tyydyttämiseksi! 22.9.2015 581385 Ohjelmistoarkkitehtuurit 17 22.9.2015 581385 Ohjelmistoarkkitehtuurit 18 3

Suunnittelun pitäisi aina edellyttää koodausta: väärin. Projektin aikaisessa vaiheessa tehty ratkaisun osittainen toteutus ja prototypointi voivat auttaa tunnistamaan hankalimmat ongelmat. Vrt. Walking Skeleton Kanonisen rakenteen perusideat Arkkitehtuurin malli (jatkossa a-malli) jakautuu kolmeen osamalliin 1. Sovellusaluemalli (domain model) 2. Suunnittelumalli (design model) 3. Koodimalli (code model) Sovellusaluemalli on abstraktein ja koodimalli konkreettisin (lähimpänä toteutusta) Vastaavuus- ja tarkennussuhteet (designation and refinement) kytkevät osamallit toisiinsa 22.9.2015 581385 Ohjelmistoarkkitehtuurit 19 22.9.2015 581385 Ohjelmistoarkkitehtuurit 20 Kanoninen rakenteen perusideat Osamallit voivat periaatteessa olla hyvin laajoja, mutta näkymillä (view) voidaan suodattaa ja poimia esiin vain tietyn näkökulman kannalta mielenkiintoisia faktoja Käytännössä a-mallin fyysinen ilmentymä (kaaviokokoelma, dokumentti) koostuu aina tietyin perustein valituista näkymistä Täydellinen malli voi olla olemassa vain suunnittelijoiden mielissä Kanoninen rakenteen perusideat Malli jakaa erilaiset faktat toteutettavasta ohjelmistosta omiin osamalleihinsa Laskutusjakso on 30 vuorokautta Ladatut fonttiresurssit pitää aina eksplisiittisesti vapauttaa Asiakkaan osoite on talletettu varchar(80) tyyppiseen kenttään Auttaa pitämään erityyppiset asiat erillään helpottaen niitten ymmärtämistä ja käsittelemistä 22.9.2015 581385 Ohjelmistoarkkitehtuurit 21 22.9.2015 581385 Ohjelmistoarkkitehtuurit 22 Sovellusaluemalli Ilmaisee reaalimaailman eli ongelma-alueen tosiasioita, jotka ovat relevantteja toteutettavan ohjelmiston kannalta (~ käsitteet jotka esiintyvät toiminnallisissa vaatimuksissa) Ilmiöt ja oliot Niiden keskinäiset suhteet Miten yllämainitut kehittyvät ja muuttuvat ajan kuluessa Näihin tosiasioihin on suhtauduttava annettuina; niitä ei voi muuttaa tai tulkita toisin (esim. viikossa on aina seitsemän päivää) Suunnittelumalli Ohjelmistototeutuksen (SUD, System Under Design) suunnittelu taas on täysin ohjelmistoprojektin käsissä Suunnittelumalli on osajoukko kaikista ohjelmiston suunnittelupäätöksistä Osa päätöksistä jää avoimiksi ja koodimallissa ratkaistaviksi Se koostuu rekursiivisesti sisäkkäisistä rajapinta- (boundary) ja sisärakennemalleista Hierarkia, yksityiskohtaisuuden tasot Rajapintamalli kuvaa elementin julkisen rajapinnan muuhun ohjelmistoon Sisärakennemalli kuvaa elementin yksityisen sisäisen suunnittelun! 22.9.2015 581385 Ohjelmistoarkkitehtuurit 23 22.9.2015 581385 Ohjelmistoarkkitehtuurit 24 4

Koodimalli Koodimalli on toteutetun ohjelmiston lähdekoodi tai jokin muu toteutuksen kanssa ekvivalentti malli Voidaan tuottaa käänteistekniikalla (reverseengineering, code-to-uml) Siinä missä suunnittelumalli jättää joitain suunnittelupäätöksiä avoimiksi, koodimalli on riittävän täydellinen suoritettavaksi tietokoneessa Fairbanks G.: Just Enough Software Architecture, pp. 116 22.9.2015 581385 Ohjelmistoarkkitehtuurit 25 22.9.2015 581385 Ohjelmistoarkkitehtuurit 26 Vastaavuussuhde Vastaavuussuhde linkittää kahden eri mallin samanlaiset oliot toisiinsa Sovellusaluemallin käsitteillä ja ilmiöillä on oltava vastinparinsa suunnittelumallissa Vastaavuussuhdetta ei välttämättä määritellä eksplisiittisesti (listaamalla vastaavuuksia, mapping), mutta se on voitava aina validoida Vastaavuuden rikkoutuminen johtaa yleensä ohjelmistovikoihin, jotka näyttäytyvät vääränä käyttäytymisenä (hyväksyntä-) testauksessa Vastaavuus ei välttämättä ole 100% oikein toimivassakaan ohjelmistossa, koska suunnittelussa voidaan tarkoituksella tehdä yksinkertaistuksia sovellusalueen tietotyyppeihin 22.9.2015 581385 Ohjelmistoarkkitehtuurit 27 Vastaavuussuhde Fairbanks G.: Just Enough Software Architecture, pp. 117 22.9.2015 581385 Ohjelmistoarkkitehtuurit 28 Tarkennussuhde Tarkennus kytkee toisiinsa saman olion vähän yksityiskohtia sisältävän (low-detail) mallin ja yksityiskohtaisen (high-detail) mallin Sitä käytetään kytkemään rajapintamalli sisärakennemalliin, joka siis kuvaa elementin julkisen rajapinnan toteutuksen (suunnittelun tasolla) Tarkennusta voidaan käyttää myös hierarkisesti jakamaan jokin kokonaisuus osiinsa Tarkennussuhde Tarkennusta käytetään myös linkittämään suunnittelumalli koodimalliin Suunnittelumallin rakenteelliset elementit kuvautuvat yleensä suoraan koodimallin elementteihin Moduuli suunnittelumallissa vastaa pakkausta koodissa Komponentti suunnittelussa vastaa joukkoa luokkia (niiden ilmentymiä eli olioita) koodissa Mutta on kuitenkin joukko suunnittelumallin elementtejä, joilla ei ole suoraa vastinetta koodissa Invariantit, rajoitteet, arkkitehtuurityylit ja ratkaisumallit Koodissa voi pyrkiä noudattamaan niitä, mutta niitä ei voi suoraan ilmaista ohjelmointikielellä (kieli ei määrittele) 22.9.2015 581385 Ohjelmistoarkkitehtuurit 29 22.9.2015 581385 Ohjelmistoarkkitehtuurit 30 5

Tarkennussuhde Näkymät Sovellusalue-, suunnittelu- ja koodimallit ovat täynnä yksityiskohtia (ainakin käsitteellisessä mielessä), joita on hankalaa pitää mielessä yhtä aikaa saati dokumentoida eksplisiittisesti Näkymä eli projektio suodattaa mallista osajoukon yksityiskohtia jotakin tiettyä näkökulmaa (viewpoint) tai tarvetta varten Fairbanks G.: Just Enough Software Architecture, pp. 118 22.9.2015 581385 Ohjelmistoarkkitehtuurit 31 22.9.2015 581385 Ohjelmistoarkkitehtuurit 32 Näkymät Esimerkiksi kaupungin maa-alue ja sen rakennukset, tiet ym. muodostavat mallin Opaskartta auttaa asukasta löytämään tietyn katuosoitteen kaupungista Reittiopas kertoo julkisten liikennevälineiden reitit kaupungissa Rakentajat ja kaavoittajat tarvitsevat taas aivan erilaisia tietoja omiin karttoihinsa Näkymät Eri näkymät samaan Master -malliin eivät saisi olla keskenään ristiriitaisia Jos jokin sovellusaluemallin toiminnallinen skenaario viittaa johonkin oliotyyppiin, tyypin pitäisi olla kuvattuna myös mallin tietomallissa Master mallia ei välttämättä koskaan täydellisenä dokumentoida, joten on tärkeää muuten huolehtia, että kaikilla projektiin osallistuvilla on sama master malli mielessään 22.9.2015 581385 Ohjelmistoarkkitehtuurit 33 22.9.2015 581385 Ohjelmistoarkkitehtuurit 34 Master model UML UML 2.0 versioon on lisätty tukea arkkitehtuurien mallinnukselle Kieli on laaja ja sen semantiikka ei ole kovin hyvin määritelty, mutta sille on melko yleinen hyväksyntä ja hyvä, joskin kirjava, työkalutuki Kurssilla ja kurssikirjassa käytetään UML 2.0:aa mallien visualisointiin Fairbanks G.: Just Enough Software Architecture, pp. 119 22.9.2015 581385 Ohjelmistoarkkitehtuurit 35 22.9.2015 581385 Ohjelmistoarkkitehtuurit 36 6

UML -työkalut Täysveriset UML-työkalutovat isoja ja raskaskäyttöisiä (ja usein myös kalliita) ohjelmistoja Tukevat täydellisten mallien laatimista ja esim. automaattista koodin generointia Kevyempiä välineitä tämän kurssin tarpeisiin Draw.io https://www.draw.io/ varsin monipuolinen ilmainen piirrrosväline, joka ei aivan täysin tue UML 2.0:n rakennekaavioiden (composite structure diagram) piirtämistä, mutta pienellä säätämisellä nekin onnistuvat UMLet http://www.umlet.com/ -osin tekstipohjainen, osin graafinen, askeettinen mutta suhteellisen toimiva väline, jolla onnistuvat myös UML 2.0:n arkkitehtuuritason rakennekaaviot (composite structure diagram) PlantUML http://plantuml.sourceforge.net/ - helppokäyttöinen tekstipohjainen UML-työkalu, ei tukea UML 2.0:n arkkitehtuuritason rakennekaavioille (composite structure diagram) Verkossa toimivia piirtovälineitä (ominaisuuksiltaan rajoittuneempia) http://yuml.me/(luokka- ja käyttötapauskaavioihin) https://www.websequencediagrams.com/(sekvenssikaavioihin) Laitoksen Linux-koneilta löytyy Umbrello, joka ei kuitenkaan tue UML 2.0:n rakennekaavioita (komponenttikaavioita voi piirtää) 22.9.2015 581385 Ohjelmistoarkkitehtuurit 37 7