66
Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin kuvaus (mallinnus) Samuel Lahtinen http://www.cs.tut.fi/~ohar/

Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Ohjelmistoarkkitehtuurit

Kevät 2016, luento 3

Arkkitehtuurin kuvaus

(mallinnus)

Samuel Lahtinen

http://www.cs.tut.fi/~ohar/

Page 2: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Ajankohtaisuuksia

2

• Perjantaina ensimmäinen vierailuluento, Janne Viitala,

Sandvik

• Tulevia, Veli-Pekka Eloranta, lääketieteellisen ohjelmiston

erikoisvaatimuksia

• Ensi viikon viikkoharjoitukset keskittyvät mallintamiseen,

piirtelyyn

• Oma läppäri mukaan, jos haluaa tehdä paikanpäällä

TTY, UTU, Oulussa tietokoneluokassa

• Muistakaa ilmoittautua harjoitustyöhön

Page 3: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Piirtely/mallinnusohjemia

• TTY:llä Magic Draw:

– http://www.cs.tut.fi/software/win32/MagicDraw/

– https://www.cs.tut.fi/~otupk/harjoitukset/MagicDrawOhjeOpiskelijoille.p

df

– TC217 salissa & virtuaalikoneen kautta ohjsuun.cs.tut.fi

• Microsoft Visio

– Office 365-paketissa mukana

– Luokissa pitäis olla asennettuna ainakin TTY:llä

• Dia http://sourceforge.net/projects/dia-installer/

• ArgoUML: http://argouml.tigris.org/

• WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

• Online-piirtelyä: Drawi.io : https://www.draw.io/

3

Page 4: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurien kuvaaminen

4

Page 5: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurikuvauksen

merkityksestä

5

• 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)

Page 6: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurin kuvaamisesta

• Wanha vitsi(?) Mies lentää kuumailmapallolla ja huomaa, että on eksyksissä. Hän pudottaa korkeutta ja huomaa alapuolellaan olevalla pellolla miehen

ja huutaa:

"Anteeksi, voisitteko auttaa? Lupasin eräälle ystävälleni, että tapaisin hänet tunti sitten, mutta en tiedä missä olen."

Mies alapuolella vastaa: "Tottakai voin, olet kuumailmapallossa, leijuen noin 10m tämän pellon yläpuolella. Sijaintisi on 40 ja 41:n

asteen välillä pohjoista pituutta, 59 ja 60:n asteen välillä itäistä pituutta."

"Sinun täytyy olla insinööri", sanoo kuumailmapalloilija.

"Niin olen" vastaa mies "mutta mistä tiesit?"

"No, kaikki mitä kerroit, on kyllä teknisesti totta. Mutta minulla ei ole aavistustakaan mitä tehdä informaatiollasi ja totuus on, että olen

edelleen eksyksissä."

Mies alapuolella vastaa: "Sinun täytyy olla johtaja."

"Niin olen", palloilija vastaa, "mutta mistä tiesit?"

"No, et tiedä missä olet ja minne olet menossa. Olet tehnyt lupauksen josta sinulla ei ole minkäänlaista käsitystä miten sen voisit pitää

ja odotat että minä ratkaisen ongelmasi. Totuus on, että olet täsmälleen samassa tilanteessa kuin ennen tapaamistamme, mutta nyt se

on jostain syystä minun vikani."

6

Page 7: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Oikea abstraktiotaso, tyyli,

oikeellisuus• Eri näkökulmat, turisti, suunnistaja, keskustelu,

paikantaminen (vs. koodari, pomoporras, järjestelmän

ylläpitäjä, alijärjestelmän suunnittelija)

• Missä on Amarante?

– ~Portugalissa tai 60km Portosta itään tai Cepelosista 2 km pohjoiseen

Lufrein lähistöllä

• Entä Oravanpolku Tampereella?

– Kalevassa, Sorsapuiston kentän vieressä vs.Nyyrikintiestä seuraava

samansuuntainen tie

• Miten pääsen täältä Tamppi Areenalle?

7

Page 8: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

8

Ajo-ohje Tamppi Areenalle viime vuonna

(ongelmat väärä abstraktio kevyen liikenteen väylä & autotieVanhentunutta tietoa, epätarkkuus)

Page 9: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Tämän vuotinen versio

(edelleen virheellinen sijainti)

9

Page 10: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Kuvan lähde: http://www.interrailnet.com/interrail-railway-great-britain

Eri abstraktiot samaan asiaan

Page 11: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

http://www.tfl.gov.uk/gettingaround/14091.aspx

Eri abstraktiot samaan asiaan

Page 12: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

12

Eri abstraktiot samaan asiaan

Page 13: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

13

Eri abstraktiot samaan asiaan

Page 14: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuuridokumentit

• 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

14

Page 15: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuuridokumentit

• 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

15

Page 16: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

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

• Esim. MVC:n eri osat, weppikäyttöliittymäpuoli/

palvelimen toteutus, hyttiyksikkö harvesterissa…16

Page 17: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuuridokumentit

(jatkuu)

• Rajapintadokumentti (dokumentit)• järjestelmän rajapinnan kuvaus, tyypillisesti API

• täydentää muita arkkitehtuuridokumentteja

• käytetään komponenttien suunnittelun ja

toteutuksen perustana

• Toinen vaihtoehto, kuvataan muille miten oman

järjestelmän kanssa kommunikointi onnistuu tai

miten omaa järjestelmää voidaan laajentaa/käyttää

osana muissa projekteissa

• Esimerkki: https://docs.mopidy.com/en/latest/api/17

Page 18: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuuridokumentit

(jatkuu)

• Tuoterunkoarkkitehtuuridokumentti• alustan arkkitehtuuri + säännöt, joiden mukaan

sovelluksia rakennetaan

• käytetään alustan yksityiskohtaiseen suunnitteluun

ja ohjaamaan tuotekehitystä

• konkreettinen + meta-arkkitehtuuri

18

Page 19: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuuridokumentit

(jatkuu)

• Tuotearkkitehtuuridokumentti• alustan käyttö + tuotekohtaiset

arkkitehtuuriratkaisut

• käytetään tuotteen yksityiskohtaiseen

suunnitteluun, testaukseen ja ylläpitoon

• konkreettinen arkkitehtuuri

19

Page 20: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuuridokumentit

(jatkuu)

• Referenssiarkkitehtuurit• Miten meidän järjestelmällä kannattaa lähteä

tekemään asioita?

• Mitä pitää huomioida, jos teet jotain vastaavaa?http://www.microsoft.com/en-us/sqlserver/solutions-technologies/data-warehousing/reference-architecture.aspx

20

Page 21: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

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

21

Page 22: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Tarjolla tänään:

Ohjelmistoarkkitehtuurien

kuvaaminen

22

• Arkkitehtuurin kuvaukseen liittyvät käsitteet

• Arkkitehtuurikuvaukset eri tasoilla

• Arkkitehtuurinäkökulmat ja kuvaustyypit

• UML arkkitehtuurien kuvauskielenä

• Arkkitehtuuridokumentit

• Yhteenvetoa

Page 23: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurikuvauksen

merkityksestä

23

• 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)

Page 24: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurin kuvaukseen liittyvät

käsitteet (IEEE 1471-2000)

24

Mission

SystemEnvironment

Stakeholder

Architecture

Concern

View

Architectural

description

Rationalehas an

described byprovides

has

fulfills

has organized by

identifies

1..*

1..*

1..*

1..*

1..*

1..*

1

Viewpoint

1..*

conforms tois addressed to

1..*

selects

Page 25: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Lisäys (ISO/IEC 42010)

25

Page 26: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuuripäätökset

26

• 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)

Page 27: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurinäkymät

27

Arkkitehtuurikuvaus

Toimiva järjestelmä

Näkymä kuvaa

tietyn arkkitehtuuriin

liittyvän asian tietyllä

abstraktiotasolla

Näkymien kuvaamat

asiat ovat osittain

päällekkäisiä

järjestelmän kannalta

Näkymä

Näkymä

Näkymä

Page 28: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurikuvaukset eri tasoilla

28

Referenssi-

arkkitehtuuri

Meta-

arkkitehtuuri

Tuoterunko-

arkkitehtuuri

Tuote-

arkkitehtuuri

Konkreettinen

arkkitehtuuri

Yksityiskohtai-

nen suunnittelu

Lähdekoodi

perustuu

yleistys

Page 29: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

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

29

Page 30: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Kysyttävää?

30

Page 31: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurinäkökulmat ja kuvaustyypit

31

• Skenaarionäkymät

Vuorovaikutus ulkomaailman kanssa

(use case view)

• Loogiset näkymät

Ohjelmistoyksiköiden vastuut

• Prosessinäkymät

Prosessit ja niiden vuorovaikutus

• Kehitysnäkymät

Järjestelmän jakaminen eri kehittäjille

• Fyysiset näkymät

Ohjelmiston jako eri laiteyksiköille, verkko

• Muuntelunäkymät

Ohjelmiston laajentaminen ja muuntelu

Näkökulmat:

"4+1" (Kruchten)

UML

Page 32: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Arkkitehtuurikuvauksen tyypit

32

• Rakenne - Käyttäytyminen

• Staattinen - Dynaaminen

• Esimerkki – Määrittelevä

Toisistaan riippuvia!

Page 33: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

UML

33

•Mitä hyvää?

•Mitä huonoa?

•Mikä on tuttua?

Page 34: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

kaaviokysely

34

Kysymys 1:

Kysymys 2:

Kysymys 3:

Kysymys 5:

Kysymys 4:

Kysymys 6:

Kysymys 7:

Page 35: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

35

Page 36: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

UML arkkitehtuurien kuvauskielenä

36

Kaaviotyypit

Page 37: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Esimerkki:

Autonvuokrausjärjestelmä

37

Page 38: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Deliver vehicle

Return vehicle

Service

ClientClerk

<<include>>

CarRentalSystem

Service

Reserve vehicle

Skenaarionäkymä: käyttötapauskaavio

38

Page 39: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Aktiviteettikaavio, elementtityypit

39

Page 40: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Car

request

Make

reservation

Make bill

PayPrepare

car

Registrate

renting

Client Clerk

Take car

:Bill

[open]

:Bill

[paid]

Tarkennettu skenaarionäkymä: aktiviteettikaavio

40

Page 41: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Syntaksista

41

Page 42: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

RentableItem

Car

RentableStorage

regnumber

RentManager

+reserve(Car,Client)

+release(Car)

+engage(Car)

+return(Car)

+update()

+return()

+reserve()

+setActive()

+setId()

PrivateClient

id

name

address

creditcard

Transaction

+kind

+info

TransactionManager

+handleTransaction()

*

1

1

1

creates

uses

*

manages

*

1

rents

+return()

Database Feature

code

description

*

<<interface>>

LocationControl

+getPos(Car)

ItemManager1 0..1

+setCar(Car)

+start()

+stop()

+reserve()

+release()

+engage()

+return()

+lost()

+recover()

*

creates

Garage

GPSService

controller

Client

Store service

information

Looginen näkymä (rakenne): luokkakaavio

42

Page 43: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Suhteellista…

43

Page 44: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Metamalli ja

luokkakaaviomääritelmä

44

Page 45: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

45

asynkroninen

luontiviesti

Looginen näkymä (käyttäytyminen):

sekvenssikaavio

Page 46: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

aCar: Car

: Garage

UI : RentManager1: return(aCar)

1.2: store(aCar)

1.1: return

1.3: update()

Looginen näkymä (käyttäytyminen):

yhteistoimintakaavio/…

46

Communications diagram, UML 2.0, yksinkertaistettu Collaboration diagram (UML 1.x)

Oliokaaviota, sekvenssikaaviota yhdisteltynä, linkeille numerointia kertomassa

kutsujärjestyksestä

Page 47: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Piirrä tilakaavio

opiskelijaruokalassa

asioinnista (jonotus, ruuan

valinta & annostelu,

maksaminen, mahdollinen

ruuan myrkyttäminen

chilikastikkeella, syöminen,

jne.)

47

Page 48: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Available

Service

Reserved

Activereturn /

stopTiming

reserve

engage/startTiming

For a ItemManager object:

do/makeReport

release

Vulnerable

[suspect location]

Lost

LocCheck

do/warning

recover

do/check location

recover

after(1 day)do/announcement

lost

after(1 hour)

Prosessinäkymä: tilakaavio

48

Page 49: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

SiteWorkStation: Client

VehicleServer: Server

: Transaction

Manager

: Database

: GUI

: Rent

Manager<<Corba>>

: Item

Manager

Fyysinen näkymä:

sijoittelukaavio

49

Page 50: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

50

“Communication path”

Page 51: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Kehitysnäkymä: pakkauskaavio

(package diagram)

(ajoaikainen composite structure diag)

51

Page 52: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Items

Storage

+Garage+Car

+Feature <<import>>

DB

+Transaction

+TransactionManager

-Database

Core

+RentManager

+CarManager

+Rentable

+RentableStorage

+LocationControl

+Client

Clients

+PrivateClient

+Company

<<import>>

<<import>>

GPS

+GPSService

<<import>>

<<import>>

Kehitysnäkymä: pakkauskaavio

(package diagram)

(ajoaikainen composite structure diag)

52

+julkinen näkyvyys

-privaatti

http://www.uml-diagrams.org/package-diagrams.html

http://www.uml-diagrams.org/package-diagrams-overview.html

Page 53: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

53http://www.uml-diagrams.org/examples/java-servlet-25-api-package-diagram-example.html?context=pkg-

examples

Java Servlet 2.5 API

Tärkeimmät rajapinnat

ja luokat

Page 54: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Luokkakaavio & collaboration-

elementti…

54

Page 55: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Muunneltavuusnäkymä:

luokkakaavio

55

NewFeature

Feature

code

description

setIcon(FeatureIcon)

price(): Integer

price(): Integer

FeatureIcon

draw

NewFeatureIcon

draw

FeaturePalette

add(Feature)

1

*

Main

initialize()

...

f = new NewFeature(...);

fi = new FeatureIcon(...);

f.setIcon(fi);

featurePalette.add(f);

...

Adding new

item feature palette

initCode

initializer

myIcon

iconInterface

feature

myFeature

Page 56: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Harjoitus: UML ja kuvaustyypit

56

Rakenne Käyttäy-

tyminen

Staat-

tinen

Dynaa-

minen

Esimerkki Määrittelevä

Sekvenssi-

kaavio

Luokka-

kaavio

Tila-

kaavio

Page 57: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

UML-kaavioilla kuvataan osittain

päällekkäisiä asioita

60

Sekvenssi-

kaaviot

Luokka-

kaaviotTilakaaviot

Aktiviteetti-

kaaviot

Page 58: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Kysyttävää?

62

Page 59: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Stereotyypit ja profiilit UML:ssä

63

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

Page 60: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Stereotyypit

64

Class

ClassUML AssociationUMLOperation

Person

myCar(): Car

Car

owner(): Person

owns

ilmentymä

ilmentymä

Meta-metamalli

(MOF)

UML:n

metamalli

Järjestelmän

malli

Järjestelmäilmentymä

Association

<<stereotype>>

bean

<<bean>>

Account

holder(): Person

has

- ei semantiikkaa

- vrt. BNF

Yksinkertaistaen:

Page 61: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Stereotyypit

Page 62: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Esimerkki: CORBA profiili

(OMG)

66

Stereotyyppimäärittelyjä:

Page 63: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Esimerkki: CORBA profiili (OMG)

67

Rajoitteiden määrittelyjä:

Rajoitteiden kuvauskieli: OCL (Object Constraint Language)

Page 64: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Yhteenveto

68

Page 65: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

2.6 Yhteenvetoa

69

• Arkkitehtuurikuvaus jakaantuu näkymiin (4+1)

• UML:ää voidaan käyttää eri näkymien esittämiseen

• UML perustuu metamallintamiseen

• UML:ää voidaan tarvittaessa laajentaa stereotyypeillä

• Mallit, kaaviot: mahdollisuus tarkistaa koodia (vastaako

toteutus suunniteltua?)

• Mutta…mutta, aina

arkkitehtuuridokumentaatiossa/kuvauksessa ei aina

tarvita/käytetä UML-malleja, kaavioita jne.

Page 66: Ohjelmistoarkkitehtuurit Kevät 2016, luento 3 Arkkitehtuurin …ohar/materiaali2016/luento03_kuvaus.pdf · 2016-01-20 · Arkkitehtuurin kuvaamisesta • Wanha vitsi(?) Mies lentää

Kysyttävää?

70