50
Yleisiä asioita Harkat alkavat ensi viikolla • Vierailuluentoa – Ensi viikon perjantaina, Janne Viitala, Sandvik Slackin #luennot-kanava taas käytössä Ohjelmistoarkkitehtuurit 2016 1

Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Yleisiä asioita

• Harkat alkavat ensi viikolla

• Vierailuluentoa

– Ensi viikon perjantaina, Janne Viitala,

Sandvik

• Slackin #luennot-kanava taas käytössä

Ohjelmistoarkkitehtuurit 2016 1

Page 2: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

1 Johdanto

2

1.1 Mikä on ohjelmistoarkkitehtuuri?

1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

1.3 Katsaus ohjelmistotuotannon kehittymiseen

1.4 Miksi ohjelmistoarkkitehtuuri on tärkeä

1.5 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi

1.6 Ohjelmistoarkkitehtuuri ja organisaatio

1.7 Ohjelmiston osittaminen

1.8 Toteutusalustan arkkitehtuuri

1.9 Yhteenvetoa

Ohjelmistoarkkitehtuurit 2016

Page 3: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

1.3 Katsaus

ohjelmistotuotannon

kehittymiseen

Page 4: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Ohjelmointi

4

Vaatimukset

Ohjelma

Ohjelmointikieli

”Programming-in-the-small”

Ongelma: Ohjelmointikielen

hallinta

Ratkaisu: OhjelmointiympäristötVaatimusten

toteutus

ohjelmointikielellä

Ohjelmistoarkkitehtuurit 2016

Page 5: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Järjestelmäkehitys

5

Vaatimukset Ohjelmointikieli

”Programming-in-the-large”

Ongelma: Riippuvuuksien

hallinta

Ratkaisu: Arkkitehtuuri

KomponentKomponentKomponentKomponentti

Ohjelmistoarkkitehtuurit 2016

Page 6: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Ohjelmistotuotanto

6

Vaatimukset Ohjelmointikieli

”Programming-in-the-many”

Ongelma: Ihmisten hallinta

Ratkaisu: Prosessi

KomponentKomponentKomponentKomponentti

Prosessi

Ohjelmistoarkkitehtuurit 2016

Page 7: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Hajautetut järjestelmät

7

Vaatimukset Ohjelmointikieli

Ongelma: Järjestelmän hajautta-

minen, rinnakkaisuus

Ratkaisu: Arkkitehtuuri

KomponentKomponentKomponentKomponentti

Prosessi

Rinnakkaiset

laitealustat

Ohjelmistoarkkitehtuurit 2016

Page 8: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Mallipohjainen

ohjelmistotuotanto

8

Vaatimukset Ohjelmointikieli

”Model-driven development”

Ongelma: Monimutkaisuuden

hallinta

Ratkaisu: Abstraktio,

mallintaminen, arkkitehtuuri

malli

malli

malli

KomponentKomponentKomponentKomponentti

Ohjelmistoarkkitehtuurit 2016

Page 9: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Model-Driven Development (MDD)

9

Bran Selic

Ohjelmistoarkkitehtuurit 2016

Page 10: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Tuoteperheet

10

Vaatimukset

Ongelma: Muunneltavuuden hallinta

Ratkaisu: Arkkitehtuuri + prosessi

malli

malli

malli

KomponentKomponentKomponentKomponentti

OhjelmointikieliOhjelmointi-

alusta

Vaatimukset

Ohjelmistoarkkitehtuurit 2016

Page 11: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Globaali ohjelmistokehitys

11

Ongelma: Työn hajauttaminen

Ratkaisu: Arkkitehtuuri + prosessi

malli

malli

malli

KomponentKomponentKomponentKomponentti

OhjelmointikieliOhjelmointi-

alusta

VaatimuksetVaatimukset

Ohjelmistoarkkitehtuurit 2016

Page 12: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Palvelut

12

Ongelma: Integrointi liike-

toimintaan

Ratkaisu: Arkkitehtuuri

(palvelupohjainen arkkitehtuuri)

malli

malli

malli

KomponentKomponentKomponentKomponentti

OhjelmointikieliOhjelmointi-

alusta

Liiketoiminta-

palvelut

VaatimuksetVaatimukset

Ohjelmistoarkkitehtuurit 2016

Page 13: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Ohjelmistotuotanto tänään

13

malli

malli

malli

KomponentKomponentKomponentKomponentti

OhjelmointikieliOhjelmointi-

alusta

Ohjelmistoarkkitehtuuri on avain

- komponentien välisten suhteiden

hallintaan

- järjestelmien monimutkaisuuden

hallintaan

- ohjelmistojen muunneltavuuden

hallintaan

- ohjelmistokehityksen ja laskennan

hajauttamiseen

- liiketoimintaintegrointiin

Liiketoiminta-

palvelut

VaatimuksetVaatimukset

Ohjelmistoarkkitehtuurit 2016

Page 14: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Taloussanomat

2.9.2005

14Ohjelmistoarkkitehtuurit 2016

http://www.talouselama.fi/kumppaniblogit/tieto/hyv

at-tulokset-edellyttavat-etta-it-ymmartaa-

liiketoimintaa-3362373

Talouselämä 21.8.2014

Kairos Future of Business -tutkimus

”Ketterä lähestymistapa ei kuitenkaan vähennä

arkkitehtuurin tarvetta ohjelmistokehityksessä.

Laadukkaan ohjelmistoarkkitehtuurin rooli

päinvastoin korostuu yhä enemmän.”

” Kun vähintään 80 prosenttia

arkkitehtuurisuunnitelmista toteutuu ja projektit

pannaan täytäntöön seuraavien 3 – 12 kuukauden

aikana, on tilanne usein hyvä.”

http://pages.tieto.com/Business-and-IT-

transformation.html?utm_source=tieto.com&utm_medium=link&

utm_campaign=transformation%20research

Page 15: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Kysyttävää?

Page 16: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Miksi

ohjelmistoarkkitehtuuri on

tärkeä?

Ohjelmistoarkkitehtuurit 2016 16

Page 17: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Miksi

ohjelmistoarkkitehtuuri on

tärkeä?

•Tarjoaa abstraktiotason, jolla monet keskeiset järjestelmän

kehittämiseen liittyvät ongelmat ratkaistaan

•Keskeinen kommunikoinnin väline ohjelmiston elinkaaren

aikana: määrittelee ja nimeää järjestelmän keskeiset osat,

ratkaisut, käsitteet

•Arkkitehtuuri antaa rajat ja helpottaa (tai tekee

mahdolliseksi) järjestelmän rakentamista, testausta,

ylläpitoa ja uudelleenkäyttöä

•Ensimmäinen analysoitavissa oleva järjestelmän

esitysmuoto: järjestelmää voidaan “testata” ennen

toteutusta

Ohjelmistoarkkitehtuurit 2016 17

Page 18: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product
Page 19: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

AEON Center (Carrara-marmorin korvaaminen

80 000 000 $ refaktorointi)

Page 20: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Mitä seurauksia

epäonnistuuneella

ohjelmistoarkkitehtuurilla on?

Page 21: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Epäonnistuneen

ohjelmistoarkkitehtuurin

seurauksia

• järjestelmää ei pystytä toteuttamaan

• järjestelmä ei valmistu suunnitellussa ajassa

• järjestelmä ei skaalaudu

• järjestelmä on tehoton

• järjestelmää on vaikea testata

• järjestelmää on vaikea ylläpitää

• järjestelmää ei pystytä uudelleenkäyttämään

• järjestelmää ei pystytä siirtämään toiseen ympäristöön

Ohjelmistoarkkitehtuurit 2016 21

Page 22: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Syitä epäonnistuneeseen

arkkitehtuuriin

22

- huono kommunikaatio

- arkkitehtuurin kannalta olennaisia

vaatimuksia ei ole otettu huomioon

- arkkitehti on kokematon tai

heikkotahtoinen

- johdolta tuleva painostus

- kehitysprosessi ei tue

arkkitehtuuria

- arkkitehdiltä puuttuu kohdealueen

tuntemus

- muita?

Ohjelmistoarkkitehtuurit 2016

• Vasa-laivan tapauksessa laivan vakautta testattiin, ja tulos oli katastrofi, mutta

asia peiteltiin ja projektia jatkettiin, koska homma piti saada valmiiksi

• Kuninkaan vaatimus tykkimäärästä ei mahtunut yhteen kanteen, joten laivasta piti

tehdä kiireessä kaksikantinen

• Kiire, painostus

• Ristiriitaiset vaatimukset, nopeus, uusi teknologia, näyttävyys, mahtipontisuus,

näyttävyys vs. käytännöllisyys

• Suunnittelija ei ollut koskaan moisia tehnyt

• Painopiste liian ylhäällä, tykkikannet liian korkealla

• Tukirakenteet liian paksuja ja niitä liikaa

• Kansien korkeus turhan iso painopiste nousi

• Epäsymmetrisyys, eri mittayksikköjen käyttö

Page 23: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Anna esimerkki

ohjelmistoarkkitehtuurin tai

suunnittelun takia

epäonnistuneesta

projektista

Ohjelmistoarkkitehtuurit 2016 23

Page 24: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Kun ohjelmistoarkkitehtuuri

menee pieleen

Ohjelmistoarkkitehtuurit 2016 24

http://www.artechra.com/media/speaking/2008/JAOO20

08-Top10Mistakes.pdf

http://www.cse.psu.edu/~gxt29/bug/softwarebug.html

USS Yorktown - arkkitehtuurissa puutteita, päälle inhimillinen virhe

Ajoneuvoliikenteein rekisteri (PALKO) – aloitettiin 1999 päätökseen 2013 10+ vuotta myöhässä

Greyhound Lines ”Trips” (lippujenvaraus) – lentolippujenvarausjärjestelmän pohjalta kehitelty

epäonnistuminen

http://business.baylor.edu/Charles_Davis/courses/acc5

317/articles/toms1094.htm

Page 25: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Kysyttävää?

Page 26: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Ohjelmistoarkkitehtuuri ja

ohjelmistokehitysprosessi

Page 27: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Arkkitehtuurin kehittäminen

27

Arkkitehtuurin kannalta merkittävät vaatimukset

Alustava

arkkitehtuuriVaatimus-

analyysi

Arkkitehtuurin

arviointi

Alustava

arkkitehtuuri-

suunnittelu

Laatu-

vaatimuksen

huomiointi

Keskeiset

toiminnalliset

vaatimukset

Laatu-

vaatimukset

Arkkitehtuuri

Kaikki

käsitelty

ei

OK

Toissijaiset

toiminnalliset

vaatimukset

Inkrementaalisuus, agile:

pienin toteutettavissa oleva

arkkitehtuuri -> toteutus

Rajoitteet

Yksityiskohtainen

suunnittelu

OK

Yleisten ratkaisu-

mallien

soveltaminen

Arkkitehtuuri-

muunnos

Ympäristö-

vaatimukset

Ohjelmistoarkkitehtuurit 2016

Page 28: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Arkkitehtuurin kannalta merkittävät

vaatimukset

28

• Keskeiset toiminnalliset vaatimukset (mitä järjestelmä tekee)

- Usein lähtökohta arkkitehtuurin suunnittelulle

• Laatuvaatimukset (miten tehdään) vaikuttavat tyypillisesti

olennaisesti arkkitehtuuriin (“ei-toiminnalliset vaatimukset”)

- Esim. suorituskyky, muunneltavuus, skaalautuvuus, hinta, ylläpidettävyys, siirrettävyys, uudelleenkäytettävyys jne.

• Kehitysympäristövaatimukset

- Järjestelmä on pystyttävä järkevästi kehittämään tietyssäorganisaatiossa (esim. hajautettu kehitys)

• Suoritusympäristövaatimukset

- Esim. sulautetun järjestelmän laiteympäristö

• Rajoitteet

- Esim. tietyn teknologian sanelemat

Ympäristö-

vaatimukset

Ohjelmistoarkkitehtuurit 2016

Page 29: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Laatuvaatimusten yhteentörmäys

29

AsiakasJohto

Kustannus,

resurssitarveMarkkinointi

Piirrerunsaus,

nopeasti saatavilla,

yhteensopivuus

Loppukäyttäjä

Suorituskyky, luotettavuus,

käytettävyys

Ylläpitäjä

Muunneltavuus,

testattavuus

Hinta, vakaus,

toimitusvarmuus,

Arkkitehti

Ohjelmistoarkkitehtuurit 2016

Page 30: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Arkkitehtuurin arviointi

30

• Monet ohjelmiston laatuominaisuudet olisivat pääteltävissä

jo arkkitehtuurikuvauksesta(esim. tiukka kerrosarkkitehtuuri -> suorituskykyongelmat)

• Arkkitehtuurin arviointi = laatuvaatimusten tarkennus +

arkkitehtuurin arviointi tarkennettuja laatuvaatimuksia

vasten(esim. ATAM)

• Arkkitehtuurin arviointi on ohjelmiston testaamista sen

ensimmäisen täsmällisen kuvauksen perusteella

Ohjelmistoarkkitehtuurit 2016

Page 31: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Arkkitehtuurin kehittäminen

31Ohjelmistoarkkitehtuurit 2016

Page 32: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Tehdään arkkitehtuuri ensin

up-front

Sprint

Backlog

Product

Backlog

Sprint

Backlog

Potentially

shippable

product

increment

Analysis

Sprint

Backlog

Delivered

product

Potentially

shippable

product

increment

Sprint

Sprint

Sprint

Sprint retrospective

Sprint review

2-4 weeks

2-4 weeks

Architecture

design

Architecture

design

32Ohjelmistoarkkitehtuurit 2016

Page 33: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Sprint 0

Sprint

Backlog

Product

Backlog

Sprint

0

Sprint

0

Architecture,

development

environment,

etc..

Analysis

Sprint

Backlog

Delivered

product

Potentially

shippable

product

increment

Sprint

Sprint

Sprint

Sprint retrospective

Sprint review

2-4 weeks

2-4 weeks

33Ohjelmistoarkkitehtuurit 2016

Page 34: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Arkkitehtuuri sprinteissä

Sprint

Backlog

Product

Backlog

Sprint

Backlog

Potentially

shippable

product

increment

Analysis

Sprint

Backlog

Delivered

product

Potentially

shippable

product

increment

Sprint

Sprint

Architecture

design

Architecture

design

Sprint retrospective

Sprint review

2-4 weeks

2-4 weeks

Sprint

Architecture

design

Architecture

design

Architecture

design

Architecture

design

34Ohjelmistoarkkitehtuurit 2016

Page 35: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Erillinen arkkitehtuuritiimi

Sprint

Backlog

Product

Backlog

Sprint

Backlog

Potentially

shippable

product

increment

Analysis

Sprint

Backlog

Delivered

product

Potentially

shippable

product

increment

Sprint

Sprint

Sprint

Sprint retrospective

Sprint review

2-4 weeks

2-4 weeks

Architecture

team

Architecture

teamXOR

35Ohjelmistoarkkitehtuurit 2016

Page 36: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Kanban ja arkkitehtuuri…

• https://scalingsoftwareagility.wordpress.com/2010/03/05/an-agile-architectural-epic-kanban-system-part-2-%E2%80%93-the-model/

Ohjelmistoarkkitehtuurit 2016 36

Page 37: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Vaatimukset

• Arkkitehtuurin kannalta merkittävätvaatimukset on yleensä priorisoitu- Tyypillisesti yksi tai kaksi laatuvaatimusta dominoi

arkkitehtuuria, vähemmän tärkeiden täytyy mukautua

• Vaatimusten ja arkkitehtuuriratkaisujen yhteyden säilyttäminen olennaista- Kuinka järjestelmä täyttää arkkitehtuurin kannalta merkittävät

vaatimukset, erityisesti laatuvaatimukset

• Vaatimukset muuttuvat järjestelmän elinkaaren aikana- Walking on water and developing software from

specifications are easy tasks – when both are frozen (E. Bevard)

37Ohjelmistoarkkitehtuurit 2016

Page 38: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

• Architecture in Agile World, James Cooper

– http://www.slideshare.net/jamescooper/archite

cture-in-an-agile-world

• Janne Sinivirta – All hand on deck, Intro to

Agile Architechture

– https://vimeo.com/84116089

Ohjelmistoarkkitehtuurit 2016 38

Page 39: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Kysyttävää?

Page 40: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Ohjelmistoarkkitehtuuri ja

organisaatio

40

Conwayn laki: arkkitehtuurin rakenne = organisaation rakenne

ryhmä

henkilö henkilö

ali-

järjestelmä

komponentti komponentti

liiketoiminta-

yksikköjärjestelmä

Ohjelmistoarkkitehtuurit 2016

Page 41: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Ohjelmiston osittaminen

41

Perusteena voi olla:

• toiminnallisuus

• yleisyys

• hajautus

• muutosherkkyys

• intressi, huolenaihe

(concern)

• ...huolenaihe

Ohjelmistoarkkitehtuurit 2016

Page 42: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Koodi

LokiLoki

TurvallisuusTurvallisuus

Sessiot

Läpitunkeva toiminta

(cross-cutting concerns)

42

LokiLoki

TurvallisuusTurvallisuus

Sessiot

Koodi

LokiLoki

TurvallisuusTurvallisuus

Sessiot

LokiLoki

TurvallisuusTurvallisuus

KoodiKoodi

Ohjelmistoarkkitehtuurit 2016

Page 43: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

SessiotKoodi

Aspektit

43

LokiLoki

TurvallisuusTurvallisuus

Sessiot

Koodi TurvallisuusTurvallisuusLokiLoki

KoodiKoodi

Ohjelmistoarkkitehtuurit 2016

Page 44: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

1.8 Toteutusalustan

arkkitehtuuri

44

• Toteutusalusta pakottaa sovellukselle usein tietyn arkkitehtuurin

• Sovellus rakennetaan tämän arkkitehtuurin ehdoilla

• Sovelluskehityksen keskeinen kysymys on miten vaatimukset

saadaan toteutettua alustan tarjoamilla välineillä

Esimerkiksi:

Miten vaatimukset toteutetaan J2EE-alustalla?

Miten vaatimukset toteutetaan .NET-alustalla?

Miten vaatimukset toteutetaan Qt-alustalla?

Ohjelmistoarkkitehtuurit 2016

Page 45: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Kehitys kulkee kohti arkkitehtuuritason

toteutusvälineitä

45

Toteutusvälineet:

Muuttujat

Aliohjelmat

Luokat

Komponentit

Alustat

Ekosysteemit

ohjelmointikieli

ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurit 2016

Page 46: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Arkkitehtuuriperustainen

ohjelmointi, mitä

vaatimuksia tämä asettaa

ohjelmistoarkkitehtuurille?

Ohjelmistoarkkitehtuurit 2016 46

Page 47: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Mitä vaatimuksia tämä asettaa

ohjelmistoarkkitehtuurille?

47

• geneerinen: sopiva monille sovelluksille

• tavallisen ohjelmoijan ymmärrettävissä

• kuvattu täsmällisesti ja kattavasti

• kuvattu käyttäjän (so. sovellusohjelmoijan) kannalta

Kun ohjelmistoarkkitehtuuri on osa toteutusvälineistön

kuvausta, sen tulee olla:

Ohjelmistoarkkitehtuurit 2016

Page 48: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Yhteenvetoa

48

• Ohjelmistoarkkitehtuuri on järjestelmän keskeisiä

ratkaisuja koskeva kuvaus, joka mahdollistaa

järjestelmän hallinnan sen elinkaaren aikana

• Ohjelmistoarkkitehtuurilla ja ohjelmiston laadulla on

kiinteä yhteys: arkkitehtuuri on suuressa määrin

laatuominaisuuksien tukemista

• Ohjelmistokehityksestä on tullut arkkitehtuurikeskeistä:

monet lähestymistavat ja teknologiat perustuvat tai

liittyvät läheisesti arkkitehtuuriin

Ohjelmistoarkkitehtuurit 2016

Page 49: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Tehtävä

Kukkia ja LVI-tekniikka Vammalassa ja

Korpilahdella myyvä yritys Keijon Kukka ja LVI on

laajentamassa toimintaansa verkkoon. Uuden

toimintamallin mukaan asiakkaat voivat tilata

Keijon Kukka ja LVIltä valmiita kukkapaketteja ja

putkiremontteja. Olette voittaneet tarjouspyynnön

ja saaneet tilauksen Keijon Kukka ja LVIn

verkkokauppasovelluksesta.

Mitkä asiat vaikuttavat järjestelmän arkkitehtuuriin?

49Ohjelmistoarkkitehtuurit 2016

Page 50: Harkat alkavat ensi viikolla Vierailuluentoaohar/materiaali2016/luento02_johdanto.pdf · 2016-01-16 · Sprint Backlog Product Backlog Sprint Backlog Potentially shippable product

Kysyttävää?