2 Ohjelmistoarkkitehtuurien kuvaus

Samankaltaiset tiedostot
2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

2 Ohjelmistoarkkitehtuurien kuvaaminen

2 Description of Software Architectures

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit kevät

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

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

Ohjelmistoarkkitehtuurit, syksy

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2010

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

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

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistojen suunnittelu

6 Ohjelmistoarkkitehtuurit

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

3. Komponentit ja rajapinnat

9. Muunneltavuuden hallinta

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Ohjelmistotekniikan menetelmät, UML

Moniulotteisten ohjelmistojen hallinta

UML:n yleiskatsaus. UML:n osat:

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

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

OHJELMISTOARKKITEHTUURIT

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

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuuri

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

Ohjelmiston toteutussuunnitelma

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

7. Tuoterunkoarkkitehtuurit

Ohjelmistotekniikka - Luento 2

Ohjelmistoarkkitehtuurit kevät

Komponentit ja rajapinnat

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

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Arkkitehti?

Yleisiä asioita. Harkat alkavat ensi viikolla Vierailuluentoa. Slackin #luennot-kanava taas käytössä. Ensi viikon perjantaina, Janne Viitala, Sandvik

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

Arkkitehtuurin mallintaminen

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

1 Johdanto. Pieni motivointikalvo. 1.1 Mikä on ohjelmistoarkkitehtuuri?

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

10. Tuoterunkoarkkitehtuurit

UML - unified modeling language

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

Arkkitehtuurin dokumentointi O A

Viestinvälitysarkkitehtuurit

Koodimalli Code Model

Suunnitteluvaihe prosessissa

1 Johdanto! Arkkitehti?!

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri

HOJ J2EE & EJB & SOAP &...

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

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

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

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

Arkkitehtuurin mallintaminen

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

Ohjelmistojen mallintaminen, kesä 2010

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen. Luento 11, 7.12.

UML-kielen formalisointi Object-Z:lla

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Harjoitustehtävät viikolle 42

Integrointi. Ohjelmistotekniikka kevät 2003

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistojen mallintaminen kertausta Harri Laine 1

SEPA - Design Patterns

Harjoitustehtävät ja ratkaisut viikolle 48

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

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

Standardi IEC Ohjelmisto

Arkkitehtuurityylejä ja ratkaisumalleja

Viestinvälitysarkkitehtuurit Lähtökohta:

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

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit, syksy

UCOT-Sovellusprojekti. Testausraportti

Uudelleenkäytön jako kahteen

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Transkriptio:

2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit 2.5 Arkkitehtuuriviipaleiden kuvaus 2.6 Arkkitehtuuridokumentit 2.7 UML arkkitehtuurien kuvauskielenä 2.8 Yhteenvetoa 1

2.1 Arkkitehtuurikuvauksen merkityksestä Oletetaan, että järjestelmän arkkitehtuurin kuvaus ja todellinen arkkitehtuuri eroavat. Mikä on järjestelmän arkkitehtuuri? Arkkitehtuurikuvaus antaa järjestelmästä tietoa, jota ei ole muualla. Arkkitehtuurikuvaus on järjestelmän keskeinen artifakti, verrattavissa lähdekoodiin. Jos järjestelmän toteutus ja arkkitehtuurikuvaus ovat ristiriidassa, järjestelmä on väärin toteutettu. Käytännöllinen ajattelutapa: arkkitehtuuri realisoituu arkkitehtuurikuvauksessa, ei järjestelmässä Todellisuus usein: on olemassa kaksi (tai useampia) arkkitehtuureja: suunniteltu&dokumentoitu arkkitehtuuri ja todellinen arkkitehtuuri 2

2.2 Arkkitehtuurin kuvaukseen liittyvät t käsitteet k (IEEE) 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..* 3

2.3 Arkkitehtuurikuvaukset eri tasoilla perustuu yleistys Konkreettinen arkkitehtuuri Tuotearkkitehtuuri Yksityiskohtainen suunnittelu Tuoterunkoarkkitehtuuri Referenssiarkkitehtuuri Metaarkkitehtuuri Lähdekoodi 4

2.4 Arkkitehtuurinäkym kymät t ja kuvaustyypit Näkymät: Skenaarionäkymä Vuorovaikutus ulkomaailman kanssa Looginen näkymä Ohjelmistoyksiköiden vastuut Prosessinäkymä Prosessit ja niiden vuorovaikutus "4+1" (Kruchten) Kehitysnäkymä Järjestelmän jakaminen eri kehittäjille UML Fyysinen näkymä Ohjelmiston jako eri laiteyksiköille, verkko Muuntelunäkymä Ohjelmiston laajentaminen ja muuntelu 5

Arkkitehtuurikuvauksen tyypit Rakenne - Käyttäytyminen Staattinen - Dynaaminen Esimerkki - Määrittelevä 6

Harjoitus: UML ja kuvaustyypit Rakenne Käyttäytyminen Staattinen Dynaaminen Esimerkki Määrittelevä Sekvenssi kaavio Luokka kaavio Tila kaavio 7

2.5 Arkkitehtuuriviipaleiden kuvaus Arkkitehtuuriviipale: jonkin (arkkitehtuuritason) kriteerin perusteella toisiinsa liittyvät osat, jotka eivät muodosta omaa ohjelmistoyksikköä (komponenttia) Esimerkkejä: Yksittäiset arkkitehtuuriratkaisut Suunnittelumallien ilmentymät Piirteet Globaalit huolenaiheet, intressit (aspect, concern) Laajennuskohdat... 8

Arkkitehtuuriviipale abstraktina käsitteenk sitteenä Viipale rooli Ohjelmistoyksikkö rooliin sidottu osa 9

Arkkitehtuuriviipaleiden kuvausmuoto (esim.) Nimi (esim. "Copy and paste") Laji (esim. piirre, suunnittelumalli ) Tarkoitus Sidosryhmät (esim. ylläpitäjä, sovellusohjelmoija ) Roolit ja niiden suhteet Sidonnat Vrt. suunnittelumallit 10

2.6 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 11

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 12

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 13

Arkkitehtuuridokumentin sisält ltö Seuraavat asiat (soveltuvin osin) tulisi ilmetä dokumentista: Identifointi: mistä organisaatiosta, järjestelmästä ja dokumentista on kyse Konteksti: liiketoimintatavoitteet, sidosryhmät Vaatimukset: arkkitehtuurin kannalta merkittävät vaatimukset Ympäristö: tekninen toimintaympäristö Näkymät: ydin valittujen näkökulmien mukaiset näkymät, mallit Perustelut: miksi on päädytty näihin ratkaisuihin Arkkitehtuuriviipaleet: poikkirakenteiset näkymät Analyysi: arkkitehtuurin arvioinnin tulokset 14

2.7 UML arkkitehtuurien kuvauskielenä 15

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.) 16

Meta-metamalli (MOF) UML:n nelikerrosmalli Class Association UML:n metamalli <<stereotype>> bean Operation is instance of Class Association Järjestelmän malli <<bean>> Account holder(): Person has Person mycar(): Car is instance of owns Car owner(): Person Järjestelmä Kai is instance of Opel SEG-399 17

Esimerkki: CORBA profiili (OMG) Stereotyyppimäärittelyjä: 18

Rajoitteiden määrittelyjä: Esimerkki: CORBA profiili (OMG) 19

Profiilin määm äärittely (TTY) <<metaclass>> Class <<metaclass>> Interface <<stereotype>> Sensor <<stereotype>> Actor <<stereotype>> ControlUnit <<stereotype>> FieldUnit Rajoitteet: <<FieldUnit>> afieldunit <<ControlUnit>> acontrolunit 1 <<Sensor>> asensor * <<Actor>> anactor * 20

Profiilin mukainen malli <<FieldUnit>> DeviceInterface <<ControlUnit>> UnitManager <<Sensor>> ThermDetector <<Sensor>> FaultDetector <<Actor>> AdjustingUnit 21

Kokonaan uusi metamalli Jos profiili ei ole riittävän voimakas väline, voidaan mallintamiskieli määritellä antamalla uusi MOF-pohjainen metamalli. Esimerkiksi: Alijärjestelmähierarkian kuvauskieli Metamalli D E Architecture A B C * Subsystem * 22

Model-Driven Architecture (MDA) Bran Selic 23

MDA:n mallikerrokset CIM (Computation Independent Model) Mallitransformaatioita PIM (Platform Independent Model) PSM (Platform Specific Model) Koodin generointi Implementation 24

2.8 Yhteenvetoa Arkkitehtuurit ovat korkean tason malleja ohjelmistosta Arkkitehtuuria ei voi johtaa olemassa olevasta järjestelmästä Arkkitehtuuri on keskeinen osa järjestelmää Arkkitehtuurin merkitys korostuu nykyisissä ohjelmistotuotannon trendeissä Arkkitehtuuri on olemassa vain kuvauksensa kautta UML on de facto standardi esityskieli arkkitehtuurimalleille 25