tarkvarasüsteemi arhitektuuri kavandamisest

26
Tarkvarasüsteemi arhitektuuri kavandamisest IDK0071. Praktiku seminar Andres Kütt RIA, arhitekt 02.11.2015

Upload: andres-kuett

Post on 13-Jan-2017

1.494 views

Category:

Education


5 download

TRANSCRIPT

Page 1: Tarkvarasüsteemi arhitektuuri kavandamisest

Tarkvarasüsteemiarhitektuuri kavandamisestIDK0071. Praktiku seminar

Andres KüttRIA, arhitekt

02.11.2015

Page 2: Tarkvarasüsteemi arhitektuuri kavandamisest

Sissejuhatus

Page 3: Tarkvarasüsteemi arhitektuuri kavandamisest

Andres Kütt

• Raha eest programme tegemas alates 1993

• Viimased kümmekond aastat arhitekt

• ≈MSc (UT, Statistika), MBA (EBS), MSc (MIT)

• Hetkel Riigi Infosüsteemi arhitekt

• Minevikus Skype, Hansapank, EMTA jne. +natuke konsultatsiooni

• Palju eri loenguid ja kursusi eri koolides

[email protected]

Page 4: Tarkvarasüsteemi arhitektuuri kavandamisest

Täna kavas

• Ekskurss ajalukku• Kuidas on varem arhitektuurist mõeldud• Moodsa süsteemiarhitektuuri mõtte juured

• Arhitektuuri olemus• Arhitekti roll• Mis on arhitektuur?

• Keerukus• Mis see on• Ja miks see oluline on

• Riigi kui sellise arhitektuur• Riigi infosüsteem riigi kui terviku konteskstis• Miks see oluline on

Page 5: Tarkvarasüsteemi arhitektuuri kavandamisest

Ekskurss ajalukku

Page 6: Tarkvarasüsteemi arhitektuuri kavandamisest

Miks rääkida ajaloost

• Me kõik seisame hiiglaste õlgadel• Kust tuleb teile varasemalt räägitud jutt tarkvara arhitektuurist?• Maja ehitades on mõistlik vundamendist hästi aru saada• Mul ei ole palju mõtet üle korrata asju, mida teile juba räägiti ningmille relevantsus teie karjääri jooksul pigem küsitav on

• Vaatame asju, mis on pildil juba kaua• 2000 aastaga jääb ebaoluline kõrvale• Inimesed on asju ehitanud juba kaua

Täna katsun räägida asjadest, mis tõenäoliselt kehtivad kaua

Page 7: Tarkvarasüsteemi arhitektuuri kavandamisest

Vitruvius Pollio

…all these must be built with duereference to durability, convenienceand beauty

Marcus Vitruvius Pollio, 80-70 eKr.- 15 pKr

Page 8: Tarkvarasüsteemi arhitektuuri kavandamisest

Minge kõndige vanalinnasMida mõtlesid neid maju ja seda linna kavandanud arhitektid?

• Väga kasulik mõtteharjutus• Mis kehtib jätkuvalt• Mis enam ei kehti?• Miks?

• Seda linna on sadu aastaid “arendatud“!• Jällegi sama printsiip: asjad, kui miski jääb, on ta kasulikum, kuisee, mis kaob

• Riias vanalinna ei ole, sest seal oli ühel hetkel inimestel raha uusimaju ehitada

• Kas tulemus on parem või halvem, kui meie oma?

Tallinna vanalinnas kehtiv kehtib ka tarkvarale,ainult et palju lühemal ajaksaalal

Page 9: Tarkvarasüsteemi arhitektuuri kavandamisest

Süsteemid ja nende dünaamika

Viiekümnendatel hakati mõtlema keerulistest süsteemidest• Asjade keskmes oli MIT

• Forrester ja system dynamics• Wiener ja küberneetika

• Peamine probleem: kuidas juhtida keerulisi süsteeme soovitudsuunas?

• Ükski mõju ei levi koheselt• Kuidas muuta sisendit soovitud väljundi saamiseks?

• Järeldused on suhteliselt lihtsad• Kuid viivad kiiresti keerulise matemaatikani

Keeruliste süsteemide käitumises on kindlad, universaalsed,seaduspärasused

Page 10: Tarkvarasüsteemi arhitektuuri kavandamisest

ICBM ja nende ohutusKoos massiivse tuumaarsenaliga sündis ka vajadus neid kuidagiohutuna hoida

• Vastupidiselt sellele, mida räägiti omal ajal telekas• Süsteem on väga keeruline

• Igal sammul on inimene kaasatud• Aga inimene üksi ei tee midagi• Globaalne haare: radarijaamad, komandopunktid, raketibaasid

• Et kõike ohutuna hoida, tuli mõelda süsteemist kui tervikust• Masinad, inimesed, tarkvara ja nendevahelised suhted• Sündis süsteemiohutus kui teadus• USA tuumalaevastikus pole olnud ühtegi reaktoriga seotudintsidenti rohkem kui 60 aasta jooksul

Süsteemides mõtlemine on praktiliselt kasulik

Page 11: Tarkvarasüsteemi arhitektuuri kavandamisest

Tänapäevased keerulised süsteemid

Süsteemid lihtsamaks kohe kindlasti ei lähe• Me mitte ei kasuta enam tarkvara vaid elame koos tarkvaraga

• Tarkvara moodustab loomuliku, lahutamatu ja sageli nähtamatu osameie igapäevaelust

• Teile vast loomulik, minu põlvkonnale tuleb üle rõhutada

• Järelikult tuleb tarkvarast rääkida koos inimesega• Targa tolmu puhul ületab paigalduse hind kübeme hinna:majanduslik mõte on osa süsteemist

• Facebooki tarkvara peegeldab ja mõjutab teie sotsiaalsetvõrgustikku

• Kuidas toimus Tesla autopiloodi lansseerimine?

Süsteemides mõtlemine on tänapäeval vältimatu

Page 12: Tarkvarasüsteemi arhitektuuri kavandamisest

Süsteemimõtlemine

Page 13: Tarkvarasüsteemi arhitektuuri kavandamisest

Süsteemi definitsioon

Süsteem on hulk olemeid ja nende seoseid milledefunktsionaalsus on suurem kui üksikute olemitefunktsionaalsuse summa

Süsteemimõtlemine on viis mõelda küsimusest, olukorrast võiprobleemist eksplitsiitselt kui süsteemist

[Crawley 2015]

Page 14: Tarkvarasüsteemi arhitektuuri kavandamisest

Mida see tähendab• Süsteemimõttelemine on üks viis asjadest mõelda

• nagu loovmõtlemine või loogiline arutelu• sellisena ei ole ta formaalne teadus

• Temast võib mõelda kui süsteemidünaamika pehmest versioonist• Süsteemidünaamika kirjeldab süsteemi osade interaktsiooni läbimatemaatika

• Süsteemimõtlemine kirjeldab samu interaktsioone kuid verbaalselt

• Vahel ei ole modelleerimiseks piisavalt andmeid või onkommunikatsioon täpsusest olulisem

• Süsteemi definitsiooni on sisse ehitatud emergents: uutefunktsioonide esilekerkimine

Süsteemimõtlemine on just insenerivaldkondades sobiv viisprobleemidest mõelda

Page 15: Tarkvarasüsteemi arhitektuuri kavandamisest

Arhitektuur süsteemimõtlemise kontekstis

Arhitektuur on süsteemi osade ja nende omavaheliste seosteabstraktne kirjeldus

• Nii lihtne ongi• Veel üldisemat määratlust on keeruline leida• Samas on ka kõik ära öeldud• Nii võib kirjeldada kõike: organisatsiooni, inimest, tarkvara jne.

• Kuid lihtsus on petlik• Süsteemi osad võivad olla organisatsioon, inimene, tarkvara jne.• Seosed võivad olla nii füüsilised kui mõju avaldavad• Kirjeldada võib neid kõiki väga mitmel viisil

Page 16: Tarkvarasüsteemi arhitektuuri kavandamisest

Vorm, funktsioon ja kontseptsioon

• Süsteemi definitsioonis on juttu funktsioonist

• Arhitektuuri definitsioonis on juttu vormist• Kuidas ühest teiseni jõuda?

• Kuidas valida funktsiooni täitmiseks sobiv vorm?• Seda tavaliselt peetaksegi arhitekti tööks

• Appi tuleb kontseptsioon• Hulk mõttemalle süsteemi funktsiooni vormiga sidumiseks• Kuidas me süsteemist mõtleme?• Põhjus, miks Brooksi arvates tarkvara on põhimõtteliselt keeruline

Vorm ja funktsioon on süsteemi omadused, kontseptsioon mõttelineviis ühest teise jõudmiseks

Page 17: Tarkvarasüsteemi arhitektuuri kavandamisest

Vormi, funktsiooni ja kontseptsiooni kokkuvõte

• Vorm on see, mis süsteem on

• Funktsioon on see, mida süsteem teeb

• Kontseptsioon on see, kuidas neistmõelda

Funktsioon

Vorm

Kontseptsioon

Arhitekti töö seisneb töös vormi, funktsiooni jakontseptsiooni kui tervikuga

Page 18: Tarkvarasüsteemi arhitektuuri kavandamisest

Keerukus

Page 19: Tarkvarasüsteemi arhitektuuri kavandamisest

Keerukuse definitsioon• Süsteemi elementide, nende liikide, nende omavaheliste seoste jaseoste liikide kaudu

• Levinud, intuitiivne ja paljude variatsioonidega• Keerukus vs. keerulisus

• Keerulisuse omadus on süsteemi omadus näida keeruline

• Dünaamiline keerukus ilmneb läbi süsteemi osade omavaheliseinteraktsiooni ajas

• Keerukus kui entroopia määr• Keerukus kui pakitavuse määr• Keerukus kui loogiline või termodünaamiline sügavus• Keerukus kui sisendi ja väljundi seos• Keerukus kui fraktaaldimensioon• Keerukus kui alamsüsteemide hulk

Keerukusest rääkides on oluline kokku leppidaparasjagu kasutatavas definitsioonis

Page 20: Tarkvarasüsteemi arhitektuuri kavandamisest

Keer

ukus

Elementide hulk / Aeg

Võimete piir

Page 21: Tarkvarasüsteemi arhitektuuri kavandamisest

Arhitekti roll

• Arhitekti üks olulisi rolle on keerukuse juhtimine• Arhitektuur on vaadeldav rea otsustena

• Arhitekt, võttes arvesse• kontsepsiooni,• sisendprotsesse ja nende ebamäärasust,• projekti kolmnurka (aeg, raha, funktsionaalsus),• ja muid teadaolevaid piiranguid,

• teeb otsuseid, mis võimaldavad keerukuse kasvust võimalikultpalju kasu saada

Keerukuse juhtimine on väga oluline ja väga keeruline arhitekti roll

Page 22: Tarkvarasüsteemi arhitektuuri kavandamisest

Riigi arhitektuurist

Page 23: Tarkvarasüsteemi arhitektuuri kavandamisest

Kui aega jääb, siis eraldi slaidipakk “Architecting Estonia“

Page 24: Tarkvarasüsteemi arhitektuuri kavandamisest

Addendum

Page 25: Tarkvarasüsteemi arhitektuuri kavandamisest

Kasutatud ja viidatud kirjandus

• Frederick P Brooks. No silver bullet. In The mythical man-month,1995. Addison-Wesley Reading, MA, 1975

• Edward Crawley, Bruce Cameron, and Daniel Selva. SystemsArchitecture: Strategy and Product Development for ComplexSystems. Prentice Hall, 2015

• Melanie Mitchell. Complexity: A guided tour. Oxford UniversityPress, 2009

• Vitruvius Pollio. Vitruvius: The Ten Books on Architecture. Harvarduniversity press, 1914

• Rich, Ben R., and Leo Janos. Skunk works: A personal memoir ofmy years of Lockheed. Little, Brown, 2013.

Page 26: Tarkvarasüsteemi arhitektuuri kavandamisest

Aitäh!Andres Kü[email protected]