Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Samankaltaiset tiedostot
2 Ohjelmistoarkkitehtuurien kuvaus

2 Ohjelmistoarkkitehtuurien kuvaus

2 Ohjelmistoarkkitehtuurien kuvaaminen

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)

2 Description of Software Architectures

Ohjelmistoarkkitehtuurit, syksy

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Kevät

UML-kielen formalisointi Object-Z:lla

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

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

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

3. Komponentit ja rajapinnat

6 Ohjelmistoarkkitehtuurit

Viestinvälitysarkkitehtuurit

Moniulotteisten ohjelmistojen hallinta

UML - unified modeling language

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

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

UML:n yleiskatsaus. UML:n osat:

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

Ohjelmistoarkkitehtuuri

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen, kesä 2010

Suunnitteluvaihe prosessissa

9. Muunneltavuuden hallinta

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

OHJELMISTOARKKITEHTUURIT

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Malliperustainen ohjelmistokehitys ja malliperustainen arkkitehtuuri

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistoarkkitehtuurit kevät

käyttötapaukset mod. testaus

Ohjelmistotekniikka - Luento 2

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Viestinvälitysarkkitehtuurit Lähtökohta:

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Harjoitustehtävät ja ratkaisut viikolle 48

Ohjelmiston toteutussuunnitelma

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Tapahtuipa Testaajalle...

7. Tuoterunkoarkkitehtuurit


Integrointi. Ohjelmistotekniikka kevät 2003

SEPA - Design Patterns

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Olioperustaisuus (object oriented)

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

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

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

Arkkitehtuurin mallintaminen

Abstraktiotason nostoa, mallipohjainen ohjelmistokehitys. Samuel Lahtinen Ohjelmistoarkkitehtuurit

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit kevät

Komponentit ja rajapinnat

UML työvälineenä ja tutkimuskohteena

HOJ J2EE & EJB & SOAP &...

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistotekniikan menetelmät, kesä 2008

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

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

10. Tuoterunkoarkkitehtuurit

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

Ohjelmistoarkkitehtuurit, syksy

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

L models. Tekninen määrittely. Ryhmä Rajoitteiset

Koodimalli Code Model

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Arkkitehti?

Ohjelmistoarkkitehtuurit kevät

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

Transkriptio:

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

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, vain lähdekoodi. Mikä on järjestelmän arkkitehtuuri? Arkkitehtuurikuvaus on järjestelmän keskeinen artifakti, joka on verfioitavissa (vasten vaatimuksia) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 2

2.1 Arkkitehtuurin kuvaukseen liittyvät käsitteet (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..* Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 3

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 2009 TTY Ohjelmistotekniikka 4

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

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 2009 TTY Ohjelmistotekniikka 6

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

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

UML:n kaavioiden suhteet ACD SED SCD CLD Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 9

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

2.4 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... Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 11

Arkkitehtuuriviipaleiden kuvaus (esim.) Nimi (esim. "Copy and paste") Laji (esim. piirre ) Tarkoitus Sidosryhmät (esim. ylläpitäjä, sovellusohjelmoija ) Viipaleen osat ja niiden suhteet Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 12

Viipaleen sisäinen esitys Inari: Viipaletyökalu (TTY) concerns Feature A Security Extension point P viipaleen osia class B { void checkid() { } } class C { } <DESCR> <SEC> strict </SEC> <PARA> 1000 </PARA> Team T navigation generation validation mining queries Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 13

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 2009 TTY Ohjelmistotekniikka 14

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 2009 TTY Ohjelmistotekniikka 15

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 2009 TTY Ohjelmistotekniikka 16

Arkkitehtuuridokumentin sisältö Seuraavat asiat (soveltuvin osin) tulisi ilmetä dokumentista: Identifointi: 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: 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 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 17

2.6 UML arkkitehtuurien kuvauskielenä Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 18

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 2009 TTY Ohjelmistotekniikka 19

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 2009 TTY Ohjelmistotekniikka 20

Ilmentymät Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 21

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

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 2009 TTY Ohjelmistotekniikka 23

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 2009 TTY Ohjelmistotekniikka 24

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

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

Esimerkki Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 27

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 2009 TTY Ohjelmistotekniikka 28

Esimerkki: CORBA profiili (OMG) Stereotyyppimäärittelyjä: Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 29

Rajoitteiden määrittelyjä: Esimerkki: CORBA profiili (OMG) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 30

MDA (Model-Driven Architecture) CIM (Computation Independent Model) Mallitransformaatioita PIM (Platform Independent Model) PSM (Platform Specific Model) Koodin generointi Implementation Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 31

2.7 Yhteenvetoa Arkkitehtuurikuvaus jakaantuu näkymiin UML:ää voidaan käyttää laaja-alaisesti arkkitehtuurien kuvaukseen UML perustuu metamallintamiseen UML:ää voidaan tarvittaessa laajentaa stereotyypeillä MDA on OMG:n visio UML:n käytöstä mallipohjaisessa ohjelmistokehityksessä Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 32