Ohjelmistoarkkitehtuurit kevät

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit kevät

2 Ohjelmistoarkkitehtuurien kuvaaminen

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

2 Ohjelmistoarkkitehtuurien kuvaus

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

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Ohjelmistoarkkitehtuurit. Kevät Johannes Koskinen.

2 Description of Software Architectures

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

Ohjelmistoarkkitehtuurit, syksy

UML-kielen formalisointi Object-Z:lla

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Kevät

UML:n yleiskatsaus. UML:n osat:

Unified Modeling Language

käyttötapaukset mod. testaus

Ohjelmistoarkkitehtuurit. Syksy 2010

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistoarkkitehtuurit. Syksy 2008

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Analyysi on tulkkaamista

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

UML - unified modeling language

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

Harjoitustehtävät ja ratkaisut viikolle 48

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit. Syksy 2007

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

9. Muunneltavuuden hallinta

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

3. Komponentit ja rajapinnat

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

UML- mallinnus: Tilakaavio

Viestinvälitysarkkitehtuurit Lähtökohta:

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistoarkkitehtuurit kevät

6 Ohjelmistoarkkitehtuurit

Moniulotteisten ohjelmistojen hallinta

Ohjelmistojen mallintaminen

Viestinvälitysarkkitehtuurit

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

Ohjelmistojen mallintaminen, kesä 2009

10. Muunneltavuuden hallinta: variaatiopisteet

UML työvälineenä ja tutkimuskohteena

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Olioperustaisuus (object oriented)

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmiston toteutussuunnitelma

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

Harjoitustehtävät viikolle 42

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistoarkkitehtuurit kevät

Komponentit ja rajapinnat

Ohjelmistoarkkitehtuurit kevät

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

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Mallinnus UML-yleiskatsaus

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

TIE = JOTU. VH5 - MagicDraw

10. Tuoterunkoarkkitehtuurit

Integrointi. Ohjelmistotekniikka kevät 2003

10. Muunneltavuuden hallinta: variaatiopisteet

HOJ J2EE & EJB & SOAP &...

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

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

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

Käyttötapausanalyysi ja testaus tsoft

7. Tuoterunkoarkkitehtuurit

UML työvälineenä ja tutkimuskohteena

5. Järjestelmämallit. Mallinnus

Ohjelmistoarkkitehtuurit kevät

Ohjelmistotekniikan menetelmät, kesä 2008

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Muunneltavuuden hallinta (Variability management):

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

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


Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

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

UML OHJELMISTOPROSESSIEN TUKENA

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

Ohjelmistoarkkitehtuurit Muunneltavuuden hallintaa, Ylläpidosta kevyesti, Vähän rääppeitä aiemmilta kerroilta

Transkriptio:

Ohjelmistoarkkitehtuurit Kevät 2011-2012 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 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 2 Arkkitehtuurien kuvaaminen 3 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, 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) 4 2.1 Arkkitehtuurin kuvaukseen liittyvät käsitteet (IEEE 1471-2000) Environment Mission fulfills 1.. System has an identifies Architecture 1 described by Architectural description provides selects Rationale has 1.. 1.. 1.. organized by Stakeholder 1.. View 1.. has 1.. is addressed to conforms to Concern Viewpoint 1.. 5 Lisäys (ISO/IEC 42010) 6 2

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) 7 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ä 8 2.2 Arkkitehtuurikuvaukset eri tasoilla perustuu yleistys Konkreettinen arkkitehtuuri Tuotearkkitehtuuri Yksityiskohtainen suunnittelu Tuoterunkoarkkitehtuuri Referenssiarkkitehtuuri Metaarkkitehtuuri Lähdekoodi 9 3

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 10 Kysyttävää? 11 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 12 4

Arkkitehtuurikuvauksen tyypit Rakenne - Käyttäytyminen Staattinen - Dynaaminen Esimerkki Määrittelevä Toisistaan riippuvia! 13 2.4 UML arkkitehtuurien kuvauskielenä Kaaviotyypit 14 Esimerkki: Autonvuokrausjärjestelmä 17 5

Skenaarionäkymä: käyttötapauskaavio CarRentalSystem Reserve vehicle Deliver vehicle Client Return vehicle Clerk <<include>> Service Service 18 Tarkennettu skenaarionäkymä: aktiviteettikaavio Client Car request Clerk :Bill [open] Make reservation Make bill :Bill [paid] Pay Prepare car Take car Registrate renting 19 Looginen näkymä (rakenne): luokkakaavio Transaction kind info setkind setinfo 1 TransactionManager handletransaction 1 1 Database Store service information creates uses RentManager reserve(car,client) release(car) engage(car) return(car) update() 1 manages RentableItem setreturned setreserved setactive setid Car regnumber setreturned RentableStorage PrivateClient rents id name address getpos(car) creditcard 1 0..1 ItemManager controller Feature code description Client creates <<interface>> LocationControl setcar(car) start() stop() reserve() release() engage() return() lost() recover() Garage GPSService 20 6

Looginen näkymä (käyttäytyminen): sekvenssikaavio UI : RentManager acar: Car : Garage return(acar) setreturned store(acar) update 21 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 22 Prosessinäkymä: tilakaavio For a ItemManager 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 23 7

Fyysinen näkymä: sijoittelukaavio SiteWorkStation: Client : GUI : Rent Manager : Item Manager <<Corba>> VehicleServer: Server : Transaction Manager : Database 24 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 25 Muunneltavuusnäkymä: luokkakaavio Feature code description seticon(featureicon) price(): Integer 1 FeatureIcon draw feature iconinterface Adding new item feature initializer palette initcode FeaturePalette add(feature) NewFeature price(): Integer myfeature myicon NewFeatureIcon draw initialize() Main... f = new NewFeature(...); fi = new FeatureIcon(...); f.seticon(fi); featurepalette.add(f);... 26 8

Harjoitus: UML ja kuvaustyypit Rakenne Käyttäytyminen Staattinen Dynaaminen Esimerkki Määrittelevä Sekvenssi kaavio Luokka kaavio Tila kaavio 27 UML-kaavioilla kuvataan osittain päällekkäisiä asioita Luokkakaaviot Aktiviteettikaaviot Tilakaaviot Sekvenssikaaviot 29 SCED: Sekvenssikaavio -> tilakaavio - työkalu päättelee joukosta sekvenssikaavioita millainen on tietyn osallistujan tilakaavio 30 9

Kysyttävää? 31 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ä 32 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 33 10

UML:n kieliarkkitehtuuri Meta-metamalli (MOF) Meta-Object Facility Yksinkertaistaen: Class Association UML:n metamalli <<stereotype>> bean Operation ClassUML AssociationUML Järjestelmän malli <<bean>> Account has holder(): Person Person mycar(): Car owns Car owner(): Person Järjestelmä - ei semantiikkaa - vrt. BNF 34 UML:n kieliarkkitehtuuri 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 ilmentymä 35 MOF oikeasti (pieni otos) (tämä osa on yhteistä UML:n metamallin kanssa) 36 11

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)? 37 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 P:n ilmentymä noudattaa (ilmentymä) MySystem: Subsystem B: Subsystem A: Subsystem visualisointi A MySystem B 38 Yksinkertainen konkreettinen tulkinta metamallille Kuvittele, että olet toteuttamassa jonkin graafisen esitystavan (laatikoita ja nuolia ym.) editoria. Millaisen sisäisen olioesityksen suunnittelisit tämän esitystavan mukaisille kuville? Metamalli = tämän olioesityksen luokkakaavio, malli = yksittäinen kuva. 39 12

Yleinen Tyyppiolio (Type Object) suunnittelumalli Tunnetaan myös nimellä Meta Object tai Reflection pattern 40 Esimerkki 41 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.) 42 13

Esimerkki: CORBA profiili (OMG) Stereotyyppimäärittelyjä: 43 Esimerkki: CORBA profiili (OMG) Rajoitteiden määrittelyjä: Rajoitteiden kuvauskieli: OCL (Object Constraint Language) 44 Kysyttävää? 45 14

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 46 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 47 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 48 15

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 Analyysi: arkkitehtuurin arvioinnin tulokset 49 2.6 Yhteenvetoa Arkkitehtuurikuvaus jakaantuu näkymiin UML:ää voidaan käyttää eri näkymien esittämiseen UML perustuu metamallintamiseen UML:ää voidaan tarvittaessa laajentaa stereotyypeillä 50 Kysyttävää? 51 16