Arkkitehtuurin mallintaminen

Samankaltaiset tiedostot
Arkkitehtuurin mallintaminen

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

Ohjelmistoarkkitehtuurin suunnittelu

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen suunnittelu

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

Ohjelmistojen mallintaminen

OA:n kanoninen malli II

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

2 Ohjelmistoarkkitehtuurien kuvaus

Koodimalli Code Model

Ohjelmistotekniikan menetelmät, kesä 2008

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

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

Ohjelmistojen mallintaminen kertausta Harri Laine 1

UML- mallinnus: Tilakaavio

OA:n kanoninen malli I

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen, kesä 2009

UML:n yleiskatsaus. UML:n osat:

TOIMINNALLINEN MÄÄRITTELY MS

Ohjelmistojen mallintaminen, kesä 2010

UML-kielen formalisointi Object-Z:lla

OA:n kanoninen malli III

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

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

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tietojärjestelmän osat

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Uudelleenkäytön jako kahteen

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

ohjelman arkkitehtuurista.

Sovellusalue- ja suunnittelumallit Domain Model, Design Model

Ohjelmistojen mallintaminen, kertausta

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

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

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistotekniikan menetelmät, UML

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistoarkkitehtuurit. Syksy 2010

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

Ohjelmistoarkkitehtuurit. Kevät

Korkeakoulujen yhteentoimivuusmalli

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

3. Käsiteanalyysi ja käsitekaavio

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

5. Järjestelmämallit. Mallinnus

Harjoitustehtävät ja ratkaisut viikolle 48

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

Suunnitteluvaihe prosessissa

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

Ohjelmistoarkkitehtuuri

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Luokka- ja oliokaaviot

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

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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Viestinvälitysarkkitehtuurit

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

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

Ohjelmistoarkkitehtuurit, syksy

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Viestinvälitysarkkitehtuurit Lähtökohta:

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmistoarkkitehtuurit. Syksy 2007

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Palvelusuuntautunut ohjelmistotuotanto Laskuharjoitus 1: Ryhmätöiden alustaminen Toni Ruokolainen,

Algoritmit 1. Luento 10 Ke Timo Männikkö

Ohjelmistoarkkitehtuurin suunnittelu

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

Oleelliset vaikeudet OT:ssa 1/2

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

SEPA - Design Patterns

Algoritmit 1. Luento 2 Ke Timo Männikkö

Tiedonsiirto- ja rajapintastandardit

HELIA 1 (20) Outi Virkki Tiedonhallinta

Algoritmit 1. Luento 10 Ke Timo Männikkö

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

1.3 Katsaus ohjelmistotuotannon kehittymiseen

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

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

Harjoitustyön testaus. Juha Taina

Analyysi on tulkkaamista

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

13/20: Kierrätys kannattaa koodaamisessakin

Transkriptio:

Arkkitehtuurin mallintaminen Luento 7 25.9.2014 581385 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Miksi ja milloin ohjelmistoarkkitehtuurista kannattaa laatia malleja? Ohjelmistoarkkitehtuurimallin ohjeellinen rakenne 25.9.2014 581385 Ohjelmistoarkkitehtuurit 2 1

MIKSI MALLEJA? 25.9.2014 581385 Ohjelmistoarkkitehtuurit 3 1 Malli = Malleista ja niiden käytöstä 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 4 2

Malleista ja niiden käytöstä 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! 25.9.2014 581385 Ohjelmistoarkkitehtuurit 5 Kommutatiivinen kaavio Abstrakti ongelma Abstrakti ratkaisu Reaalimaailman ongelma Reaalimaailman ratkaisu 25.9.2014 581385 Ohjelmistoarkkitehtuurit 6 3

Mallien käyttö Ongelman laajuus ja monimutkaisuus vaatii abstrahointia 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! 25.9.2014 581385 Ohjelmistoarkkitehtuurit 7 Mallien käyttö 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 8 4

Mallien käyttö 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ä 25.9.2014 581385 Ohjelmistoarkkitehtuurit 9 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ä) 25.9.2014 581385 Ohjelmistoarkkitehtuurit 10 5

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ä on 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 mallintaminen ei ole sekään erityisen vaikeaa oikeilla työkaluilla ja matem. mallinnusmenetelmillä 25.9.2014 581385 Ohjelmistoarkkitehtuurit 11 Mallien käyttö 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 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 12 6

Mallien käyttö 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 13 OHJELMISTOARKKITEHTUURIN MALLIT JA NIIDEN RAKENNE 25.9.2014 581385 Ohjelmistoarkkitehtuurit 14 7

Ohjelmistoarkkitehtuurin mallintaminen Fairbanks esittää kanonisen 1 rakenteen ohjelmistoarkkitehtuurimalleille Määrittelee minkälaisia asioita ohjelmistoarkkitehtuurimallin pitäisi yleisesti ottaen kuvata metamalli tai mallinnusstandardi Kattaa koko arkkitehtuuriratkaisun sovellusalueen käsitteistä kooditasolle ja laitteistosijoitteluun asti 1) Ohjeellinen, esikuvallinen - MOT Kielitoimiston sanakirja 25.9.2014 581385 Ohjelmistoarkkitehtuurit 15 Ohjelmistoarkkitehtuurin mallintaminen 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 16 8

Ohjelmistoarkkitehtuurin mallintaminen 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 17 Ohjelmistoarkkitehtuurin mallintaminen Suunnittelun pitäisi aina edellyttää koodausta: väärin. Projektin aikaisessa vaiheessa tehty ratkaisun osittainen toteutus ja prototypointi voivat auttaa tunnistamaan hankalimmat ongelmat. 25.9.2014 581385 Ohjelmistoarkkitehtuurit 18 9

Kanonisen rakenteen perusideat Arkkitehtuurimalli (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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 19 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ä 25.9.2014 581385 Ohjelmistoarkkitehtuurit 20 10

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ä 25.9.2014 581385 Ohjelmistoarkkitehtuurit 21 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ää) 25.9.2014 581385 Ohjelmistoarkkitehtuurit 22 11

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! 25.9.2014 581385 Ohjelmistoarkkitehtuurit 23 Koodimalli Koodimalli on toteutetun ohjelmiston lähdekoodi tai jokin muu toteutuskoodin 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 24 12

Fairbanks G.: Just Enough Software Architecture, pp. 116 25.9.2014 581385 Ohjelmistoarkkitehtuurit 25 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 26 13

Vastaavuussuhde Fairbanks G.: Just Enough Software Architecture, pp. 117 25.9.2014 581385 Ohjelmistoarkkitehtuurit 27 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 28 14

Tarkennussuhde Tarkennusta käytetään myös linkittämään suunnittelumalli koodimalliin Suunnittelumallin rakenteelliset elementit kuvautuvat yleensä suoraan koodimallin elementteihin Moduuli suunnittelussa vastaa pakkausta koodissa Komponentti suunnittelussa vastaa joukkoa luokkia 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 ohjelmointikielen rakentein 25.9.2014 581385 Ohjelmistoarkkitehtuurit 29 Tarkennussuhde Fairbanks G.: Just Enough Software Architecture, pp. 118 25.9.2014 581385 Ohjelmistoarkkitehtuurit 30 15

Näkymät Sovellusalue-, suunnittelu- ja koodimallit ovat täynnä yksityiskohtia (ainakin käsitteellisessä mielessä), joita on hankalaa pitää edes mielessään yhtä aikaa saati dokumentoida eksplisiittisesti Näkymä eli projektio suodattaa mallista osajoukon yksityiskohtia jotakin tiettyä näkökulmaa (viewpoint) tai tarvetta varten 25.9.2014 581385 Ohjelmistoarkkitehtuurit 31 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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 32 16

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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 33 Master model Fairbanks G.: Just Enough Software Architecture, pp. 119 25.9.2014 581385 Ohjelmistoarkkitehtuurit 34 17

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 25.9.2014 581385 Ohjelmistoarkkitehtuurit 35 UML -työkalut Täysveriset UML-työkalut ovat isoja ja raskaskäyttöisiä (ja usein myös kalliita) ohjelmistoja Kevyempiä välineitä tämän kurssin tarpeisiin 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ää) 25.9.2014 581385 Ohjelmistoarkkitehtuurit 36 18