Ohjelmistoarkkitehtuuri ja kehitysprosessit

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuuri ja kehitysprosessit

Oppimistavoitteet. Ohjelmistoarkkitehtuuri ja kehitysprosessit. Oletusarkkitehtuurit Antti-Pekka Tuovinen HY/Tktl

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistoarkkitehtuurit

1.3 Katsaus ohjelmistotuotannon kehittymiseen

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Yleisiä asioita. Harkat alkavat ensi viikolla Vierailuluentoa. Slackin #luennot-kanava taas käytössä. Ensi viikon perjantaina, Janne Viitala, Sandvik

Ohjelmistoarkkitehtuurit, syksy

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Scrumin käyttö ketterässä sovelluskehityksessä

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

10. Tuoterunkoarkkitehtuurit

Ketterä projektinhallinta

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit, syksy

2. Ohjelmistotuotantoprosessi

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Onnistunut ohjelmistoprojekti

7. Tuoterunkoarkkitehtuurit

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Arkkitehtuuri muutosagenttina

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Arkkitehti?

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

ITK130 Ohjelmistoprosessi

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

1 Johdanto. Pieni motivointikalvo. 1.1 Mikä on ohjelmistoarkkitehtuuri?

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Tapahtuipa Testaajalle...

Koodimalli Code Model

Suunnitteluvaihe prosessissa

Tietojärjestelmän osat

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen suunnittelu

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

Ohjelmistoarkkitehtuurit. Kevät

ohjelman arkkitehtuurista.

Ohjelmistoprojektien hallinta Vaihejakomallit

1 Johdanto! Arkkitehti?!

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistokehykset (software frameworks)

Onnistunut ohjelmistoprojekti

Määrittelyvaihe. Projektinhallinta

Ohjelmistoarkkitehtuurin suunnittelu

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

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

12. Kehysarkkitehtuurit

PROJEKTINHALLINTA. Käyttäjälähtöinen suunnittelu

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

Tekninen suunnitelma - StatbeatMOBILE

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

11. Tuoterunkoarkkitehtuurit

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

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistojen mallintaminen. Luento 11, 7.12.

11. Tuoterunkoarkkitehtuurit

1. Oppimisen ja opettamisen haasteet

Unified Process (UP)

Ohjelmistoarkkitehtuuri

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

<e.g. must, essential, conditional>

Case: Avoimen lähdekoodin ohjelmistojen hyödyntäminen Lahdessa

Tekninen suunnitelma - StatbeatMOBILE

Testaus elinkaaressa

OppiScrum opintojen läpäisyasteen ja oppimisen omistajuuden edistäjänä

Palveluiden strategista ja operatiivista ohjausta nykyaikaisia käytäntöjä ja innovatiivisia esimerkkejä

Edtech kestää aikaa!

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Turvakriittisen projektin menetelmät ja työkalut

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Vain testaamalla voit voittaa! Markku Selin Kehitysjohtaja

Koulutuksen nimi Koulutuksen kuvaus Tavoite Esitiedot Alkaa Päättyy Viim.ilm.päivä

Tuoterunkoarkkitehtuurit. Ohjelmistoarkkitehtuurit kevät Uudelleenkäyttö. Johannes Koskinen.

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistoarkkitehtuurit. Kevät 2014

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

J2EE vs..net Olli Sakari

OpenUP ohjelmistokehitysprosessi

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

Ohjelmistokehykset (software frameworks)

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Ohjelmistoarkkitehtuurit

Transkriptio:

Ohjelmistoarkkitehtuuri ja kehitysprosessit Luento 2 5.9.2013 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Kuinka paljon arkkitehtuuria tarvitaan? Arkkitehtuuri ohjelmistokehitysprosessissa Ohjelmistoarkkitehdin tiedot ja taidot 581358 Ohjelmistoarkkitehtuurit 5.9.2013 2 1

KUINKA PALJON ARKKITEHTUURIA? 5.9.2013 581358 Ohjelmistoarkkitehtuurit 3 Kaikilla ohjelmistoilla on arkkitehtuuri Arkkitehtuuriset suunnittelupäätökset syntyvät jossain ohjelmistokehitysprojektin aikana - tehtiin ne tietoisesti tai ei Arkkitehtuuriratkaisut ovat periaatteessa tärkeitä projektien ja ohjelmistojen onnistumisen kannalta, mutta käytännöissä on paljon vaihtelua Kurssikirjassa Fairbanks tunnistaa kolme eri lähestymistapaa arkkitehtuurin suunnitteluun ja käyttöön 5.9.2013 581358 Ohjelmistoarkkitehtuurit 4 2

1. Arkkitehtuuri on yhdentekevä (indifferent) Monissa projekteissa ei arkkitehtuurityötä juuri tehdä eikä arkkitehtuuria erikseen suunnitella (edes uuskehityksessä) Syitä Tietämättömyys mennään tuurilla Pieni projekti ja/tai pienet riskit - mikä vaan todennäköisesti toimii Oletusarkkitehtuurin käyttö (presumptive architecture) 5.9.2013 581358 Ohjelmistoarkkitehtuurit 5 Oletusarkkitehtuurit Monilla toimialoilla on järjestelmä- ja ohjelmistotoimittajia, jotka ovat vakiinnuttaneet omat teknologiansa ja arkkitehtuuriratkaisunsa alan standardeiksi (de facto) Vanha viidakon sanonta: nobody ever got fired for buying IBM Tarjolla on ohjelmistokehyksiä ja alustoja, jotka Kiinnittävät monet sovellusten laatuominaisuudet Pyrkivät vapauttamaan sovelluskehittäjän keskittymään sovelluskohtaisen toiminnallisuuden toteuttamiseen Toiminnanohjaus, asiakkuuksien hallinta, web-palvelut, mobiiliapplikaatiot jne jne. 5.9.2013 581358 Ohjelmistoarkkitehtuurit 6 3

Oletusarkkitehtuuri Projektin ainoaksi arkkitehtuuriratkaisuksi jää käytettävän ohjelmistokehyksen valinta, missä arkkitehtuuriasioita enemmän saattavat painaa muut seikat Yhteensopivuus, käyttöympäristö, palvelinympäristö, henkilöstön osaaminen, ohjelmointikieli, markkinatilanne, lisenssi- ja tukiehdot, jne. Riskejä Arkkitehtuurin rapautuminen ajan myötä oman arkkitehtuurisuunnittelun ohjaavan vaikutuksen ja yhteisen arkkitehtuurinäkemyksen puuttuessa Monimutkaisuus, joka kehysten ja alustojen (projektille turhien) piirteiden myötä tulee ratkaisuun mukaan 5.9.2013 581358 Ohjelmistoarkkitehtuurit 7 Oletusarkkitehtuuri Referenssiarkkitehtuuri Yleinen ratkaisumalli tietyn tyyppisten järjestelmien (tai sen osien) arkkitehtuureille Kuvaa arkkitehtuuriratkaisun spesifikaation muodossa (vrt. ehdotus standardiksi) Voi olla sovellusaluekohtainen tai yrityskohtainen Referenssiarkkitehtuurin määrittelijä toivoo usein, että siitä tulisi vallitseva oletusarkkitehtuuri 5.9.2013 581358 Ohjelmistoarkkitehtuurit 8 4

2. Arkkitehtuurikeskeinen (focused) Tunnusmerkkeinä ovat tietoinen arkkitehtuurin valinta ja suunnittelu laatuvaatimusten ymmärtämisen pohjalta Arkkitehtuuri ei toisaalta saisi vaikeuttaa toiminnallisten vaatimusten toteuttamista Pyritään aktiivisesti tunnistamaan vaatimukset, jotka vaikuttavat arkkitehtuuriratkaisuihin Vaatimusten kriittinen tarkastelu ja rivien välistä lukeminen (implikaatiot) 5.9.2013 581358 Ohjelmistoarkkitehtuurit 9 Arkkitehtuurikeskeinen (focused) Ongelmanratkaisun ja päätelmien apuna käytetään usein abstraktioita ja arkkitehtuurinäkymiä Järjestelmän komponenttien ja niiden liitäntöjen tarkastelu Moduulinäkymä, suoritusaikaiset näkymät, Ei vaadi lähtökohtaisesti minkään tietyn ohjelmistokehityksen prosessimallin noudattamista eikä täydellistä dokumentointia 5.9.2013 581358 Ohjelmistoarkkitehtuurit 10 5

3. Ominaisuuksien vivutus (hoisting) Arkkitehtuuriratkaisu tuodaan kehittäjien käyttöön suoraan implementaatiotasolla (esim. koodikirjastona tai konkreettisena rajoitteena) Valmiin koodin käyttö takaa halutut ominaisuudet ilman että kehittäjien tarvitsee erikseen tehdä mitään Esim. resurssien, rinnakkaisuuden tai transaktioiden hallinta Suhteellisen pienellä määrällä työtä (uudelleenkäytettävä koodi) saadaan suuri (vipu-) vaikutus järjestelmän laatuominaisuuksiin 5.9.2013 581358 Ohjelmistoarkkitehtuurit 11 Vivutus Vivutuksen käyttöön liittyy usein harkintaa laatuominaisuuksien tasapainottelun kannalta (trade offs) Vivutusta voi olla vaikea kiertää, joten vivutetun ominaisuuden prioriteetin on syytä olla riittävän korkea Vivutus vai kehittäjän hivutus? Jotakuta rajoitukset voivat haitata, mutta toisaalta ne vapauttavat kehittäjän aikaa ja energiaa muihin asioihin kaikki eivät ole experttejä hankalien laatuominaisuuksien alueella 5.9.2013 581358 Ohjelmistoarkkitehtuurit 12 6

Esimerkkejä Tavoiteltu ominaisuus: virran säästö akkukäyttöisessä mobiililaitteessa Arkkitehtuuriratkaisu (Symbian OS): Applikaatioiden ja yleisten palveluiden (esim. tiedosto-operaatiot) toteuttaminen tapahtumankäsittelijöinä Applikaatio- ja palvelusäikeet (thread) toimivat vain reagoidessaan tapahtumiin (kälitapahtuma, palvelupyyntö), muuten ne odottavat passiivisina (wait) Kaikki kommunikointi tapahtuu asynkronista viestinvälitystä käyttäen (palvelupyyntö-vastaus -parit) Käyttöjärjestelmän on helppo todeta milloin kaikki säikeet vain odottavat tapahtumia, jolloin prosessori (CPU) voidaan ajaa virransäästötilaan (sleep mode) 5.9.2013 581358 Ohjelmistoarkkitehtuurit 13 Esimerkkejä Tavoiteltu ominaisuus: älypuhelimessa taustalla olevien sovellusten huomaamaton sulkeminen ja niiden tilan automaattinen palauttaminen käyttäjän tuodessa sovelluksen taas esiin muistin vapautus, akun latauksen säästö, käyttökokemus eli aidon moniajon simulointi Arkkitehtuuriratkaisu (Android/WindowsPhone): sovelluskehys tarjoaa laajennospisteet, joihin sovelluskohtainen tilatiedon käsittely koodataan Kehittäjä koodaa (takaisinkutsumetodina/ tapahtumankäsittelijänä) sovelluksen tilan kirjoittamisen ja lukemisen kehyksen tarjoamaan tietovarastoon Sovelluskehys käynnistää tilan tallennuksen ja lukemisen (kutsuu kehittäjän koodia) automaattisesti tilanteen mukaan 5.9.2013 581358 Ohjelmistoarkkitehtuurit 14 7

Milloin arkkitehtuurityö on tärkeää? Pieni ratkaisuavaruus (solution space) Toimivia ratkaisuja on vähän ja sellaisen löytäminen on vaikeaa Ohjelmistohäiriöiden (failure) vakavat seuraukset Vahingot ihmisille, ympäristölle ja omaisuudelle Vaikeat laatuvaatimukset Skaalautuvuus, ylivertainen käyttökokemus 5.9.2013 581358 Ohjelmistoarkkitehtuurit 15 Milloin arkkitehtuurityö on tärkeää? Uusi sovellusalue (domain) Uudet käsitteet, toiminnot, vaatimukset, teknologiat jne. Tuoteperheet Yhteisen tuoterungon tai komponenttikirjaston luominen monia eri tuotteita varten, joissa on kuitenkin paljon samaa toiminnallisuutta 5.9.2013 581358 Ohjelmistoarkkitehtuurit 16 8

ARKKITEHTUURI JA PROSESSIT 5.9.2013 581358 Ohjelmistoarkkitehtuurit 17 Kaikilla ohjelmistoilla on arkkitehtuuri Kurssin teesit: Paitsi jos projekti on pieni ja rutiininomainen, tulisi noudattaa arkkitehtuurikeskeistä kehitystapaa, ja tehdä juuri oikea määrä arkkitehtuurityötä riskien minimoimiseksi Oletusarkkitehtuureista on usein paljon hyötyä, mutta niiden vaikutus laatuominaisuuksiin ja riskeihin pitää arvioida ja ymmärtää Pitääkö arkkitehtuurisuunnittelu sitten erottaa omaksi muodolliseksi tehtäväkseen, jolla on Syötteet, tulosteet, ohjausvaikutukset, johtamis- ja valvontamekanismit, roolit, jne. 5.9.2013 581358 Ohjelmistoarkkitehtuurit 18 9

Prosessiajattelun kaksi ääripäätä BDUF Suunnitelmat Kontrollointi Riskit emergence Muutos Reagointi Mukautuminen 5.9.2013 581358 Ohjelmistoarkkitehtuurit 19 Vaatimusanalyysi BDUF Big Design Up Front Toiminnalliset perusvaatimukset Alustava arkkitehtuurisuunnittelu Alustava arkkitehtuuri Laatuvaatimukset Laatuominaisuuden arviointi Arkkitehtuurin muutos Käyttöönotto Toissijaiset toiminnalliset vaatimukset - roolit - kontrollipisteet ei OK OK Testaus Toteutus Yksityiskohtainen suunnittelu Perusarkkitehtuuri Koskimies&Mikkonen 2005 5.9.2013 581358 Ohjelmistoarkkitehtuurit 20 10

Agile manifesto 1 Ketterä kehitys Parhaat arkkitehtuurit, vaatimukset ja suunnitelmat syntyvät [emerge] itseorganisoituvissa tiimeissä. 1 http://agilemanifesto.org/iso/fi/ 5.9.2013 581358 Ohjelmistoarkkitehtuurit 21 Kumpi vai kampi? Ennakkosuunnittelun tarpeellisuus riippuu projektin luonteesta: http://en.wikipedia.org/wiki/agile_manifesto#suitability Ketterissäkin projekteissa voidaan tehdä arkkitehtuurityötä Arkkitehtuurikeskeisen ja vivuttavan kehistystavan käyttö ei vaadi (raskasta) formaalia prosessia ja täydellistä dokumentointia Architecture backlog feature backlog:n rinnalla Architecture owner Product owner:n lisäksi Molempi parempi 5.9.2013 581358 Ohjelmistoarkkitehtuurit 22 11

Inkrementaalinen kehitys Jäykkien vesiputousprosessien ja joustavien ketterien menetelmien ohella on kehitetty monia inkrementaalisia, ohjelmiston asteittaista kasvattamista korostavia prosessimalleja Spiral model RUP, Rational Unified Process 5.9.2013 581358 Ohjelmistoarkkitehtuurit 23 Spiraalimalli 1 Metaprosessimalli projektikohtaisen kehitysmenetelmän löytämiseksi Kehitys tapahtuu sykleissä, joissa 1. selvitetään projektin menestymisen kannalta kriittisten sidosryhmien asettamat tavoitteet 2. kehitetään ja evaluoidaan vaihtoehtoisia ratkaisuja 3. tunnistetaan ja ratkaistaan valittuun ratkaisuun liittyvät riskit 4. haetaan sidosryhmien hyväksyntä ja lupa seuraavaan kierroksen käynnistämiseen Projekti voi yhdistellä haluamiaan osia eri kehitysmenetelmistä sillä perusteella, miten ne sopivat projektin riskien voittamiseen 1 http://en.wikipedia.org/wiki/spiral_model 5.9.2013 581358 Ohjelmistoarkkitehtuurit 24 12

Spiraalimalli Life Cycle Architecture kontrollipiste (myöhempi lisäys alkuperäiseen malliin) Onko olemassa riittävän hyvin määritelty ja kaikkien sidosryhmien tavoitteet täyttävä ratkaisu ja onko kaikki riskit eliminoitu tai minimoitu? Hazardous spiral look-alikes that violate this invariant include evolutionary and incremental processes that commit significant resources to implementing a solution with a poorly defined architecture. 1 1 http://en.wikipedia.org/wiki/spiral_model 5.9.2013 581358 Ohjelmistoarkkitehtuurit 25 Rational Unified Process 1 Räätälöitävä prosessikehys iteratiivisten ohjelmistokehitykseen Prosessi koostuu neljästä peräkkäisestä vaiheesta, jotka jakautuvat kiinteän mittaisiin iteraatioihin, jotka tuottavat inkrementaalisesti lisäarvoa (business value) Kussakin vaiheessa ja iteraatiossa voidaan tehdä kaikkia ohjelmistokehityksen aktiviteetteja, mutta eri painolla 1 http://en.wikipedia.org/wiki/rup 5.9.2013 581358 Ohjelmistoarkkitehtuurit 26 13

Rational Unified Process Arkkitehtuurityö tapahtuu pääasiassa Elaboration vaiheessa Tuotoksina mm. arkkitehtuurin kuvaus ja suoritettava arkkitehtuuri -malli (executable architecture) 5.9.2013 581358 Ohjelmistoarkkitehtuurit 27 Fairbanks Risk-driven approach Idea: Arkkitehtuurisuunnittelua tehdään vain sen verran kuin projektiin liittyvien riskien voittaminen vaatii Riskit voivat liittyä ohjelmiston käyttöön ja sen laatuominaisuuksiin (tuoteriski) suorituskyky, turvallisuus, skaalautuvuus, uhka ihmisille ja omaisuudelle, tai sen kehitykseen (projektiriski) teknologiat, henkilöstö, asiakas, aikataulu, vaikeat suunnitteluhaasteet, 5.9.2013 581358 Ohjelmistoarkkitehtuurit 28 14

Risk-driven approch Fairbanks ei esitä yhtä kaiken kattavaa prosessimallia, vaan kokoelman erilaisia tekniikoita ja lähestymistapoja riskien identifiointiin, ratkaisujen suunnitteluun ja ratkaisujen evaluointiin Ei edellytä mitään tiettyä kehitysprosessia, vaan voidaan soveltaa monenlaisissa kehitysprojekteissa 5.9.2013 581358 Ohjelmistoarkkitehtuurit 29 Yhteenveto Arkkitehtuurityötä voidaan tehdä monenlaisia prosesseja seuraavissa projekteissa Käytetty prosessimalli pitäisi valita projektin tarpeista lähtien Tuote- ja projektiriskien pitäisi ohjata arkkitehtuurityötä Vältettävä paralysis by analysis, design until perfect ja modeling for modeling s sake tilanteita, 5.9.2013 581358 Ohjelmistoarkkitehtuurit 30 15

OHJELMISTOARKKITEHDIN TIEDOT JA TAIDOT 5.9.2013 581358 Ohjelmistoarkkitehtuurit 31 Mitä arkkitehdit tekevät? Seuraavat arkkitehdin toimen kuvaukset perustuvat globaalin palvelu- ja konsultointiyrityksen Accenture:n standardirooleihin Yrityksellä on noin pari kymmentä (!) Architect nimikkeen sisältävää standardiroolia 5.9.2013 581358 Ohjelmistoarkkitehtuurit 32 16

Ratkaisuarkkitehti Toimii asiakasrajapinnassa (client-facing role) Tulkitsee asiakasvaatimukset ja muodostaa niiden pohjalta ratkaisusuunnitelman (solution plan), joka voidaan koota tarjolla olevista (standardi-) rakennusosista Osallistuu työmäärien ja kustannusten arvointiin Tavoitteena on globaalien resurssien ja aikaisempien ratkaisujen sekä organisaation osaamisen kustannustehokas käyttö 5.9.2013 581358 Ohjelmistoarkkitehtuurit 33 Tekninen arkkitehti Tekninen asiantuntija, joka vastaa tietyn teknologia-alueen kehityssuunnasta ja arkkitehtuurista Muodostaa teknisiä vaatimuksia ja ohjelmistosuunnitelmia liiketoiminta- ja asiakasvaatimusten perusteella Kehittää arkkitehtuurikomponentteja Osallistuu yksityiskohtien suunnitteluun ja koodikatselmointeihin Analysoi suorituskyky- ja tehokkuusongelmia Ohjaa, valmentaa ja tukee kehittäjiä Määrittelee yleisiä käytäntöjä ja periaatteita (standardeja) sekä valvoo niiden noudattamista Implementoi itsekin 5.9.2013 581358 Ohjelmistoarkkitehtuurit 34 17

Asiakas Ratkaisuarkkitehti Tekninen arkkitehti Resurssit Teknologia 5.9.2013 581358 Ohjelmistoarkkitehtuurit 35 Organisaation tuki - vastuu ja mandaatti Vuorovaikutustaidot ja verkostoituminen Tekninen osaaminen Abstrahointikyky ja sisäiset mallit Artek Sovellusalueen tuntemus 5.9.2013 581358 Ohjelmistoarkkitehtuurit 36 18