2 Ohjelmistoarkkitehtuurien kuvaaminen

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit. Kevät 2014, luento 3 Arkkitehtuurin kuvaus (mallinnus)

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

2 Ohjelmistoarkkitehtuurien kuvaus

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit. Kevät 2016, luento 3 Arkkitehtuurin kuvaus (mallinnus)

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

Ohjelmistoarkkitehtuurit, syksy

2 Description of Software Architectures

Ohjelmistotekniikan menetelmät, UML

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

UML-kielen formalisointi Object-Z:lla

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2008

Unified Modeling Language

käyttötapaukset mod. testaus

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

Ohjelmistoarkkitehtuurit. Kevät

UML:n yleiskatsaus. UML:n osat:

Analyysi on tulkkaamista

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

3. Komponentit ja rajapinnat

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

UML - unified modeling language

Ohjelmistoarkkitehtuurit. Syksy 2007

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Viestinvälitysarkkitehtuurit

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

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen, kesä 2010

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistojen mallintaminen, kesä 2009

9. Muunneltavuuden hallinta

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

UML- mallinnus: Tilakaavio

6 Ohjelmistoarkkitehtuurit

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

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

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


Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistoarkkitehtuurit kevät

Harjoitustehtävät ja ratkaisut viikolle 48

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

UML työvälineenä ja tutkimuskohteena

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Olioperustaisuus (object oriented)

Decision-centric architecture review method (DCAR) Ohjelmistoarkkitehtuurit Veli-Pekka Eloranta (Samuel Lahtinen)

Moniulotteisten ohjelmistojen hallinta

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

Viestinvälitysarkkitehtuurit Lähtökohta:

Integrointi. Ohjelmistotekniikka kevät 2003

12. Kehysarkkitehtuurit

10. Muunneltavuuden hallinta: variaatiopisteet

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät, kevät 2008

Mallinnus UML-yleiskatsaus

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

Muunneltavuuden hallinta (Variability management):

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit kevät

Harjoitustehtävät viikolle 42

Komponentit ja rajapinnat

Ohjelmistoarkkitehtuurit kevät

Ohjelmiston toteutussuunnitelma

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Ohjelmistoarkkitehtuurit kevät

UML työvälineenä ja tutkimuskohteena

Decision-centric architecture review method (DCAR) Tarjolla tänään. Arkkitehtuuritietämys Arkkitehtuuritietämys. Arkkitehtuuripäätökset

10. Tuoterunkoarkkitehtuurit

5. Järjestelmämallit. Mallinnus

HOJ J2EE & EJB & SOAP &...

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

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

UML OHJELMISTOPROSESSIEN TUKENA

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

OHJELMISTOARKKITEHTUURIT

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

Käyttötapausanalyysi ja testaus tsoft

Suunnitteluvaihe prosessissa

10. Muunneltavuuden hallinta: variaatiopisteet

Ohjelmistojen mallintaminen, kertausta

Transkriptio:

2 Ohjelmistoarkkitehtuurien kuvaaminen 2.1 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.2 Arkkitehtuurikuvaukset eri tasoilla 2.3 Arkkitehtuurinäkökulmat ja kuvaustyypit 2.4 UML arkkitehtuurien kuvauskielenä 2.5 Arkkitehtuuridokumentit 2.6 Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Arkkitehtuurien kuvaaminen Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 2

Arkkitehtuurikuvauksen merkityksestä Oletetaan, että järjestelmän arkkitehtuurin kuvaus ja järjestelmän toteutus ovat ristiriidassa. Mikä on järjestelmän arkkitehtuuri? Oletetaan, että järjestelmällä ei ole mitään arkkitehtuuri- tai suunnitteludokumentteja, eivätkä sen suunnittelijat ole saatavilla, vain lähdekoodi. Mikä on järjestelmän arkkitehtuuri? Arkkitehtuurikuvaus on järjestelmän keskeinen artifakti, joka on verifioitavissa (vasten vaatimuksia) Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 3

2.1 Arkkitehtuurin kuvaukseen liittyvät käsitteet (IEEE 1471-2000) Mission fulfills 1..* has an Architecture Rationale Environment System identifies 1 described by Architectural description provides selects has 1..* 1..* 1..* organized by Stakeholder 1..* View has 1..* 1..* is addressed to conforms to Concern Viewpoint 1..* Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 4

Lisäys (ISO/IEC 42010) Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 5

Arkkitehtuuripäätökset Arkkitehtuuri voidaan ymmärtää arkkitehtuuritason päätösten summana (esim. Bosch) Arkkitehtuuripäätöksille voidaan antaa puoliformaali esitystapa Arkkitehtuuripäätökset liittyvät yleensä johonkin vaatimukseen, huolenaiheeseen, rajoitteeseen ym. Arkkitehtuuripäätöksillä on aina jokin perustelu (rationale) Arkkitehtuuripäätökset tulisi kirjata arkkitehtuurin kuvaukseen Arkkitehtuuripäätösten kuvauksia tarvitaan myös arkkitehtuurin arvioinnissa (palataan myöhemmin) Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 6

Arkkitehtuurinäkymät Näkymä Näkymä Arkkitehtuurikuvaus Näkymä Näkymä kuvaa tietyn arkkitehtuuriin liittyvän asian tietyllä abstraktiotasolla Näkymien kuvaamat asiat ovat osittain päällekkäisiä järjestelmän kannalta Toimiva järjestelmä Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 7

2.2 Arkkitehtuurikuvaukset eri tasoilla perustuu yleistys Konkreettinen arkkitehtuuri Tuotearkkitehtuuri Yksityiskohtainen suunnittelu Tuoterunkoarkkitehtuuri Referenssiarkkitehtuuri Metaarkkitehtuuri Lähdekoodi Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 8

Arkkitehtuurikuvaukset eri tasoilla Meta-arkkitehtuuri: välineet arkkitehtuurien kuvaukseen Referenssiarkkitehtuuri: jonkin sovellusalueen malliarkkitehtuuri Konkreettinen arkkitehtuuri: yksittäisen järjestelmän arkkitehtuuri Tuoterunkoarkkitehtuuri: jonkin tuotealustan arkkitehtuuri Tuotearkkitehtuuri: tuotealustan päälle rakennetun ohjelmistotuotteen arkkitehtuuri Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 9

2.3 Arkkitehtuurinäkökulmat ja kuvaustyypit Näkökulmat: Skenaarionäkymät Vuorovaikutus ulkomaailman kanssa Loogiset näkymät Ohjelmistoyksiköiden vastuut Prosessinäkymät Prosessit ja niiden vuorovaikutus "4+1" (Kruchten) Kehitysnäkymät Järjestelmän jakaminen eri kehittäjille UML Fyysiset näkymät Ohjelmiston jako eri laiteyksiköille, verkko Muuntelunäkymät Ohjelmiston laajentaminen ja muuntelu Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 10

Arkkitehtuurikuvauksen tyypit Rakenne - Käyttäytyminen Staattinen - Dynaaminen Esimerkki Määrittelevä Toisistaan riippuvia! Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 11

Kaaviotyypit 2.4 UML arkkitehtuurien kuvauskielenä Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 12

Kaaviotyyppien käyttö Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 13

Esimerkki: Autonvuokrausjärjestelmä Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 14

Skenaarionäkymä: käyttötapauskaavio CarRentalSystem Reserve vehicle Deliver vehicle Client Return vehicle Clerk <<include>> Service Service Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 15

Tarkennettu skenaarionäkymä: aktiviteettikaavio Client Car request Clerk Make reservation :Bill [open] Make bill :Bill [paid] Pay Prepare car Take car Registrate renting Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 16

Looginen näkymä (rakenne): luokkakaavio Transaction kind info setkind setinfo TransactionManager * 1 handletransaction 1 1 Database * Store service information creates uses RentManager reserve(car,client) release(car) engage(car) return(car) update() 1 * RentableItem setreturned setreserved setactive setid Car regnumber setreturned manages RentableStorage PrivateClient id name address creditcard Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 17 rents 1 0..1 * Feature code description Client creates controller * <<interface>> LocationControl getpos(car) ItemManager setcar(car) start() stop() reserve() release() engage() return() lost() recover() Garage GPSService

Looginen näkymä (käyttäytyminen): sekvenssikaavio UI : RentManager acar: Car : Garage return(acar) setreturned store(acar) update Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 18

Looginen näkymä (käyttäytyminen): yhteistoimintakaavio 1.1: setreturned acar: Car UI 1: return(acar) : RentManager 1.3: update() 1.2: store(acar) : Garage Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 19

Prosessinäkymä: tilakaavio For a CarManager object: Lost do/announcement after(1 day) Vulnerable do/warning recover Service do/makereport lost return / stoptiming recover [suspect location] Active after(1 hour) LocCheck do/check location release engage/starttiming Available Reserved reserve Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 20

Fyysinen näkymä: sijoittelukaavio SiteWorkStation: Client : GUI : Rent Manager : Item Manager <<Corba>> VehicleServer: Server : Transaction Manager : Database Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 21

Kehitysnäkymä: pakkauskaavio Core Items +Car +Feature <<import>> +RentManager +CarManager +Rentable +RentableStorage +LocationControl +Client <<import>> Storage +Garage Clients +PrivateClient +Company <<import>> <<import>> DB +Transaction +TransactionManager +Database <<import>> GPS +GPSService Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 22

Muunneltavuusnäkymä: luokkakaavio feature Adding new item feature palette FeaturePalette Feature code description seticon(featureicon) price(): Integer * 1 FeatureIcon draw iconinterface initializer initcode add(feature) NewFeature price(): Integer myfeature NewFeatureIcon draw myicon initialize() Main... f = new NewFeature(...); fi = new FeatureIcon(...); f.seticon(fi); featurepalette.add(f);... Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 23

Harjoitus: UML ja kuvaustyypit Rakenne Käyttäytyminen Staattinen Dynaaminen Esimerkki Määrittelevä Sekvenssi kaavio Luokka kaavio Tila kaavio Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 24

UML-kaavioilla kuvataan osittain päällekkäisiä asioita Luokkakaaviot Aktiviteettikaaviot Tilakaaviot Sekvenssikaaviot Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 25

SCED: Sekvenssikaavio -> tilakaavio - työkalu päättelee joukosta sekvenssikaavioita millainen on tietyn osallistujan tilakaavio Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 26

Metakieleen perustuva kielten määrittely noudattaa (ilmentymä) M in M M = Metakieli noudattaa (ilmentymä) L in M noudattaa (ilmentymä) L = Kieli P = jokin kuvaus kielellä (malli, ohjelma tms) P in L noudattaa (ilmentymä) P:n ilmentymä Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 27

Vrt. tekstuaaliset kielet ja BNF BNF:n määrittely Javan määrittely Javan-ohjelman määrittely ilmentymä ilmentymä Produktio = Vasen = Oikea Vasen = Symboli Oikea = Symboli* Symboli = Class = class id InheritanceClause ExtensionClause { InheritanceClause = inherit IdList InheritanceClause = class myclass inherits yourclass { Java-ohjelman suoritus ilmentymä ohjelman suorituspolku Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 28

UML:n kieliarkkitehtuuri - oliot luokkina - olioiden visualisointi Meta-metamalli (MOF) Yksinkertaistaen: Class Association UML:n metamalli <<stereotype>> bean Operation ClassUML AssociationUML Järjestelmän malli <<bean>> Account holder(): Person has Person mycar(): Car owns Car owner(): Person Järjestelmä - ei semantiikkaa Kai Volkswagen AMY-336 - vrt. BNF Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 29

UML:n kieliarkkitehtuuri - oliot luokkina - olioiden visualisointi Meta-metamalli (MOF) Yksinkertaistaen: Class Association UML:n metamalli <<stereotype>> bean Operation ilmentymä ClassUML AssociationUML Järjestelmän malli <<bean>> Account holder(): Person has Person mycar(): Car ilmentymä owns Car owner(): Person Järjestelmä - ei semantiikkaa - vrt. BNF Kai ilmentymä Volkswagen AMY-336 Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 30

Ilmentymät Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 31

MOF oikeasti (pieni otos) (tämä osa on yhteistä UML:n kanssa) Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 32

Uuden kuvauskielen määrittely: Esimerkki Oletetaan, että halutaan kuvata hierarkkisia arkkitehtuurirakenteita graafisesti, esim.: D E A B C Miten määritellään tähän tarvittava kuvauskieli AML (Architecture Modeling Language)? Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 33

Kielen määrittely noudattaa (ilmentymä) AML in MOF Architecture yksinkertaistettu MOF in MOF Class 1 1 Association M in M * 2 MyArch: Architecture AssocEnd multiplicity kind noudattaa (ilmentymä) MyArch in AML L in M P in L noudattaa (ilmentymä) * Subsystem noudattaa (ilmentymä) * P:n ilmentymä MySystem: Subsystem B: Subsystem A: Subsystem visualisointi MySystem A B Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 34

Yleinen Tyyppiolio (Type Object) suunnittelumalli Tunnetaan myös nimellä Meta Object tai Reflection pattern Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 35

Esimerkki Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 36

Stereotyypit ja profiilit UML:ssä Stereotyyppi jonkin UML:n metamalliin kuuluvan luokan (metaluokan) laajennos Profiili joukko stereotyyppejä ja niihin liitettyjä rajoitteita räätälöity UML-pohjainen mallintamiskieli johonkin erityistarkoitukseen (esim. jollekin sovellusalueelle, arkkitehtuurityylille tms.) Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 37

Esimerkki: CORBA profiili (OMG) Stereotyyppimäärittelyjä: Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 38

Rajoitteiden määrittelyjä: Esimerkki: CORBA profiili (OMG) Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 39

2.5 Arkkitehtuuridokumentit Dokumenttityypit: Alustava arkkitehtuuridokumentti korostaa kaikkein kriittisimpiä ratkaisuja, vaihtoehtoisia ratkaisuja ja niihin liittyviä etuja/haittoja käytetään alustaviin työmääräarvioihin, liiketoimintapäätöksiin lähtökohta järjestelmäarkkitehtuurin suunnittelulle konkreettinen (+ referenssi) arkkitehtuuri Järjestelmäarkkitehtuuridokumentti järjestelmän ylimmän tason arkkitehtuuri käytetään projektisuunnitteluun, työmääräarviointiin, järjestelmätestauksen suunnitteluun, ylläpitoon lähtökohta alijärjestelmien arkkitehtuurien suunnittelulle konkreettinen (+ meta) arkkitehtuuri Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 40

Arkkitehtuuridokumentit (jatkuu) Alijärjestelmäarkkitehtuuridokumentti alijärjestelmän arkkitehtuuri käytetään tehtävien suunnitteluun, tarkennettuihin työmääräarvioihin, yksikkötestauksen suunnitteluun, ylläpitoon lähtökohta alijärjestelmien yksityiskohtaiselle suunnittelulle ja toteutukselle konkreettinen arkkitehtuuri Rajapintadokumentti järjestelmän rajapinnan kuvaus, tyypillisesti API täydentää muita arkkitehtuuridokumentteja käytetään komponenttien suunnittelun ja toteutuksen perustana Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 41

Arkkitehtuuridokumentit (jatkuu) Tuoterunkoarkkitehtuuridokumentti alustan arkkitehtuuri + säännöt, joiden mukaan sovelluksia rakennetaan käytetään alustan yksityiskohtaiseen suunnitteluun ja ohjaamaan tuotekehitystä konkreettinen + meta-arkkitehtuuri Tuotearkkitehtuuridokumentti alustan käyttö + tuotekohtaiset arkkitehtuuriratkaisut käytetään tuotteen yksityiskohtaiseen suunnitteluun, testaukseen ja ylläpitoon konkreettinen arkkitehtuuri Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 42

Arkkitehtuuridokumentin sisältö Seuraavat asiat (soveltuvin osin) tulisi ilmetä dokumentista: Identifiointi: mistä organisaatiosta, järjestelmästä ja dokumentista on kyse Konteksti: liiketoimintatavoitteet, sidosryhmät, kehitysympäristö Vaatimukset: arkkitehtuurin kannalta merkittävät vaatimukset Rajoitteet Toimintaympäristö Näkymät: kuvauksen ydin valittujen näkökulmien mukaiset näkymät, mallit Tärkeimmät arkkitehtuuriratkaisut ja niiden perustelut Arkkitehtuuriviipaleet: keskeiset poikkirakenteiset näkymät Analyysi: arkkitehtuurin arvioinnin tulokset Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 43

2.6 Yhteenvetoa Arkkitehtuurikuvaus jakaantuu näkymiin UML:ää voidaan käyttää eri näkymien esittämiseen UML perustuu metamallintamiseen UML:ää voidaan tarvittaessa laajentaa stereotyypeillä Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 44