2 Ohjelmistoarkkitehtuurien kuvaus

Samankaltaiset tiedostot
2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

2 Ohjelmistoarkkitehtuurien kuvaaminen

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit. Kevät

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

2 Description of Software Architectures

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

Ohjelmistoarkkitehtuurit, syksy

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistotekniikan menetelmät, UML

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

UML-kielen formalisointi Object-Z:lla

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

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

Ohjelmistoarkkitehtuurit. Kevät

Moniulotteisten ohjelmistojen hallinta

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

6 Ohjelmistoarkkitehtuurit

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

UML:n yleiskatsaus. UML:n osat:

9. Muunneltavuuden hallinta

1.3 Katsaus ohjelmistotuotannon kehittymiseen

UML - unified modeling language

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

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

3. Komponentit ja rajapinnat

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit kevät

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

Ohjelmistoarkkitehtuuri

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri

Harjoitustehtävät ja ratkaisut viikolle 48

HOJ J2EE & EJB & SOAP &...

Tapahtuipa Testaajalle...

käyttötapaukset mod. testaus

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistotekniikka - Luento 2

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

OHJELMISTOARKKITEHTUURIT

Viestinvälitysarkkitehtuurit

Ohjelmistojen mallintaminen

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

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

Arkkitehti?

7. Tuoterunkoarkkitehtuurit

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

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

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Ohjelmistoarkkitehtuurit kevät

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Komponentit ja rajapinnat

Integrointi. Ohjelmistotekniikka kevät 2003

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

SEPA - Design Patterns

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

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

Ohjelmiston toteutussuunnitelma

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallintaminen, kesä 2010

1 Johdanto! Arkkitehti?!

Harjoitustehtävät viikolle 42

Arkkitehtuurin dokumentointi O A

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

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

10. Tuoterunkoarkkitehtuurit

Suunnitteluvaihe prosessissa

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistojen mallintaminen, kesä 2009

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Olioperustaisuus (object oriented)

Viestinvälitysarkkitehtuurit Lähtökohta:

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

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

HSMT J2EE & EJB & SOAP &...

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

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

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

Abstraktiotason nostoa, mallipohjainen ohjelmistokehitys. Samuel Lahtinen Ohjelmistoarkkitehtuurit

Koodimalli Code Model

Ohjelmistoarkkitehtuurit kevät

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? Jos järjestelmän toteutus ja arkkitehtuurikuvaus ovat ristiriidassa, kyseessä on enemmän tai vähemmän vakava laiminlyönti (vrt. rakennus) Arkkitehtuurikuvaus antaa järjestelmästä tietoa, jota ei ole muualla (vrt. lakia ei voi päätellä yhteiskuntaa tarkkailemalla) Arkkitehtuurikuvaus on järjestelmän keskeinen artifakti, verrattavissa lähdekoodiin Käytännöllinen ajattelutapa: arkkitehtuuri realisoituu arkkitehtuurikuvauksessa 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ä Toisistaan riippuvia! 6

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

UML:n kaavioiden suhteet ACD SED SCD CLD 8

SCED: Sekvenssikaavio -> > tilakaavio - työkalu päättelee joukosta sekvenssikaavioita millainen on tietyn osallistujan tilakaavio 9

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... 10

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

Inari: Viipaletyökalu concerns Feature A Security Extension point P class B { void checkid() { } } class C { } <DESCR> <SEC> strict </SEC> <PARA> 1000 </PARA> Team T navigation generation validation mining queries 12

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 13

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 14

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 15

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 16

2.7 UML arkkitehtuurien kuvauskielenä 17

Metakieleen perustuva kielten mää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ä 18

Meta-metamalli (MOF) UML:n kieliarkkitehtuuri Class Association UML:n metamalli <<stereotype>> bean Operation ilmentymä Class Association 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 19

MOF oikeasti (pieni otos) (tämä osa on yhteistä UML:n kanssa) 20

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 InheritanceClase ExtensionClause { InheritanceClause = inherit IdList InheritanceClause = class myclass inherits yourclass { Java-ohjelman suoritus ilmentymä ohjelman suorituspolku 21

Uuden kuvauskielen määm äärittely: Esimerkki Oletetaan, että halutaan kuvata hierarkkisia arkkitehtuurirakenteita graafisesti, esim.: D E A B C 22

Kielen määm äärittely noudattaa (ilmentymä) Architecture simplified MOF: Class Association 1 1 M in M * 2 MyArch: Architecture AssocEnd multiplicity kind noudattaa (ilmentymä) L in M P in L noudattaa (ilmentymä) * Subsystem * P:n ilmentymä noudattaa (ilmentymä) MySystem: Subsystem B: Subsystem A: Subsystem visualisointi A MySystem B 23

Yleinen Tyyppiolio (Type Object) suunnittelumalli Tunnetaan myös nimellä Meta Object tai Reflection pattern 24

Esimerkki 25

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

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

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

ART: Profiilipohjainen mallintarkistus Stereotyyppien määrittely: <<metaclass>> Class <<metaclass>> Interface <<stereotype>> Sensor <<stereotype>> Actor <<stereotype>> ControlUnit <<stereotype>> FieldUnit Rajoitteet graafisesti: <<FieldUnit>> afieldunit <<ControlUnit>> acontrolunit 1 <<Sensor>> asensor * <<Actor>> anactor * 29

Profiilin mukainen malli <<FieldUnit>> DeviceInterface <<ControlUnit>> UnitManager <<Sensor>> ThermDetector <<Sensor>> FaultDetector <<Actor>> AdjustingUnit Työkalu tarkistaa, noudattaako malli profiilissa annettuja arkkitehtuurisääntöjä 30

Model-Driven Architecture (MDA) Bran Selic 31

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

2.8 Yhteenvetoa Arkkitehtuurikuvausta ei voi johtaa olemassa olevasta järjestelmästä Arkkitehtuurikuvaus on keskeinen järjestelmäartifakti Arkkitehtuurikuvaus jakaantuu näkymiin Arkkitehtuuriviipaleet poikkileikkaavia ohjelmisto-osia UML:ää voidaan käyttää laaja-alaisesti arkkitehtuurien kuvaukseen UML:ää voidaan tarvittaessa laajentaa stereotyypeillä MDA on OMG:n visio UML:n käytöstä mallipohjaisessa ohjelmistokehityksessä 33