Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Samankaltaiset tiedostot
1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

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

1.3 Katsaus ohjelmistotuotannon kehittymiseen

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Arkkitehti?

1 Johdanto! Arkkitehti?!

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

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

1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2008

2 Ohjelmistoarkkitehtuurien kuvaus

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Tietojärjestelmän osat

Ohjelmistoarkkitehtuurit. Syksy 2007

Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä

Ohjelmistoarkkitehtuurit. Syksy 2010

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Kevät

ITK130 Ohjelmistojen luonne

Toimilohkojen turvallisuus tulevaisuudessa

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen, kesä 2010

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

Ohjelmistoarkkitehtuuri

9. Ohjelmistoarkkitehtuurien arviointi

Ohjelmistotekniikka - Luento 2

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Teknologia-arkkitehtuurit. Valinta ja mallinnus

6 Ohjelmistoarkkitehtuurit

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ohjelmistoarkkitehtuurit, syksy

7. Tuoterunkoarkkitehtuurit

9. Muunneltavuuden hallinta

Ohjelmistojen mallintaminen, mallintaminen ja UML

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

Johdantoluento. Ohjelmien ylläpito

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

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

Ohjelmistoarkkitehtuurien arviointi

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

Ohjelmistojen mallintaminen, kesä 2009

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

Kevät Ohjelmistoarkkitehtuurit 2014

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

ohjelman arkkitehtuurista.

Viestinvälitysarkkitehtuurit

Ohjelmistojen mallintaminen. Luento 11, 7.12.

10. Tuoterunkoarkkitehtuurit

Software engineering

Uudelleenkäytön jako kahteen

Suunnitteluvaihe prosessissa

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

6. Arkkitehtuurityylit

Standardi IEC Ohjelmisto

Ohjelmistoarkkitehtuurit, syksy

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

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

10. Muunneltavuuden hallinta: variaatiopisteet

3. Komponentit ja rajapinnat

Testaaminen ohjelmiston kehitysprosessin aikana

Tarjolla tänään: Sanastoa Koneenohjausjärjestelmien suunnittelumallit. Pattern Architecture Style. GoF. Design pattern

7. Product-line architectures

Ohjelmistoarkkitehtuurit. Kevät

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

6. Arkkitehtuurityylit

Ohjelmistojen mallintaminen Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistoarkkitehtuurit, syksy

Millainen on onnistunut ICT-projekti?

Ohjelmiston toteutussuunnitelma

Ohjelmistoarkkitehtuurit, syksy

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

Capacity Utilization

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Kevät 2016 Arkkitehtuurin arviointi, ATAM. Ohjelmistoarkkitehtuurit 2016

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Ohjelmistoarkkitehtuurit

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Esimerkki: Auton toiminnan monitorointijärjestelmä

Projektin suunnittelu

Bosch-malli. Kolme vaihetta. Termistöä. Ohjelm!toarkkitehtuu"n

TOIMINNALLINEN MÄÄRITTELY MS

Transkriptio:

1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Katsaus ohjelmistotuotannon kehittymiseen 1.3 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi 1.4 Toteutusalustan arkkitehtuurin rooli 1.5 Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

1.1 Mikä on ohjelmistoarkkitehtuuri? Mitä asioita ohjelmistoarkkitehtuuri sisältää? - suunnittelumallit - rajapinnat - komponentit - ohjelmiston tietosisältö ja tietovirrat Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 2

Ohjelmistoarkkitehtuurin määritelmä Jokseenkin kaikilla on tästä hieman erilainen käsitys, Ks. http://www.sei.cmu.edu/architecture/definitions.html Kaksi eri arkkitehtuurikäsitystä: Suunniteltu arkkitehtuuri Suunnittelijan tahdonilmaus Olemassa olevan järjestelmän arkkitehtuuri Järjestelmän ominaisuus Ongelmia: Vain ideaalisessa maailmassa nämä ovat sama asia Yleensä ei tarkenneta kummasta puhutaan Toteutuksen arkkitehtuuri vaikeasti nähtävissä/määriteltävissä (milloin arkkitehtuurikuvaus on täydellinen?) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 3

Arkkitehtuurifilosofiat Idealistinen: Pragmaattinen: järjestelmä järjestelmä kuvaa ratkaisut esitys arkkitehtuuri arkkitehtuuri arkkitehtuurin kuvaus arkkitehtuurin kuvaus Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 4

IEEE:n määritelmä Software architecture: The fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution. (IEEE Standard 1471-2000) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 5

Arkkitehtuuri järjestelmän kehitysperiaatteena "Architecture is the set of design decisions about any system that keeps its implementors and maintainers from exercising needless creativity." (D'Souza & Wills) - tietyn teknologian käyttö(tapa) - tiettyjen tietorakenteiden käyttö(tapa) - tiettyjen suunnittelumallien käyttö(tapa) - alustan käyttöön liittyvät säännöt - käyttösuhteiden säännöt - poikkeusten käsittelysäännöt Arkkitehtuuri = järjestelmän perustuslaki Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 6

Boehmin määritelmä: yhteys vaatimuksiin A software system architecture comprises A collection of software and system components, connections, and constraints A collection of system requirements A rationale which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system requirements Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 7

Bass & Clements in rajatumpi määritelmä The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 8

Pragmaattinen määritelmä: Kuvausperustainen arkkitehtuurikäsite Järjestelmän arkkitehtuuri on niiden (olemassaolevien) kuvausten joukko, jotka antavat järjestelmän keskeisistä suunnitteluratkaisuista ja niiden perusteista todenmukaista tietoa. Jos arkkitehtuuri on riittävä informaatio järjestelmän suunnitteluratkaisuista sen toteuttajille ja ylläpitäjille koko sen elinkaaren ajan, sanomme että arkkitehtuuri on riittävä. Jos arkkitehtuurin mukainen järjestelmä on mahdollista rakentaa, sanomme että arkkitehtuuri on kelvollinen. Kelvollinen arkkitehtuuri ei esimerkiksi sisällä keskenään ristiriitaisia kuvauksia. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 9

Kuvausperustainen arkkitehtuurikäsite Seurauksia: Arkkitehtuuri ei ole järjestelmän sisäinen ominaisuus, vaan ulkopuolista tietoa järjestelmästä: arkkitehtuuri on suunnittelijan tahdonilmaus, järjestelmää koskeva sopimus Järjestelmästä voi päätellä joitakin arkkitehtuurikuvauksia, mutta ei yleensä riittävää arkkitehtuuria Järjestelmä ja sen arkkitehtuuri ovat erillisiä, informaatioltaan osittain päällekkäisiä artifakteja Kaikilla on yhtenevä käsitys arkkitehtuurista ( = olemassa olevien arkkitehtuurikuvausten joukko) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 10

Kuvausperustainen arkkitehtuurikäsite Kaikki eivät ole samaa mieltä: Esim. Bass&Clements: Even though every system has an architecture, it does not necessarily follow that the architecture is known to any one.. This reveals the difference between the architecture and the representation of that architecture. Unfortunately, an architecture can exist independently of its description or specification, which raises the importance of architecture documentation and architecture reconstruction. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 11

Synteesi: tämän kurssin määritelmä IEEE:n määritelmää mukaillen: The description of the fundamental organization of a system embodied in its components, the rationale behind this organization, and the principles guiding its design and evolution. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 12

Arkkitehtuuri ja laatu Ohjelmiston arkkitehtuuri määräytyy pääasiassa sen laatuvaatimusten, ei toiminnallisten vaatimusten perusteella Arkkitehtuuri on tapa ottaa huomioon järjestelmän laatuvaatimukset ohjelmistokehitysprosessissa Mikä tahansa järjestelmä voidaan toiminnallisuuden puolesta toteuttaa millä tahansa arkkitehtuurilla, joka koostuu toisiinsa liittyvistä komponenteista (ts., toiminnallisuus voidaan sijoitella miten hyvänsä järjestelmän osiin, jos mikään osa ei ole irrallinen muusta järjestelmästä). Pelkän loogisen toiminnallisuuden kannalta arkkitehtuuri ei ole kovin merkittävä. Toiminta A Toiminta B A tarvitsee B:tä? Kuinka usein? Millainen yhteys? => Suorituskyky Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 13

1.2 Katsaus ohjelmistotuotannon kehittymiseen Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 14

Ohjelmointi Vaatimukset Ohjelmointikieli Vaatimusten toteutus ohjelmointikielellä Ohjelma Programming-in-the-small Ongelma: Ohjelmointikielen hallinta Ratkaisu: Ohjelmointiympäristöt Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 15

Järjestelmäkehitys Vaatimukset Ohjelmointikieli Programming-in-the-large Ongelma: Riippuvuuksien hallinta Ratkaisu: Arkkitehtuuri Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 16

Ohjelmistotuotanto Vaatimukset Ohjelmointikieli Prosessi Programming-in-the-many Ongelma: Ihmisten hallinta Ratkaisu: Prosessi Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 17

Hajautetut järjestelmät Vaatimukset Ohjelmointikieli Prosessi Ongelma: Järjestelmän hajauttaminen, rinnakkaisuus Ratkaisu: Arkkitehtuuri Komponent Komponent Komponent Komponentti Rinnakkaiset laitealustat Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 18

Mallipohjainen ohjelmistotuotanto Vaatimukset Ohjelmointikieli malli malli malli Model-driven development Ongelma: Monimutkaisuuden hallinta Ratkaisu: Abstraktio, mallintaminen, arkkitehtuuri Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 19

Model-Driven Development (MDD) Bran Selic Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 20

Tuoteperheet Vaatimukset malli Ohjelmointikieli Ohjelmointialusta malli Ongelma: Varioitavuuden hallinta Ratkaisu: Arkkitehtuuri + prosessi malli Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 21

Globaali ohjelmistokehitys Vaatimukset malli Ohjelmointikieli Ohjelmointialusta malli Ongelma: Työn hajauttaminen Ratkaisu: Arkkitehtuuri + prosessi malli Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka22

Liiketoimintapalvelut Palvelut Vaatimukset malli Ohjelmointikieli Ohjelmointialusta malli malli Ongelma: Integrointi liiketoimintaan Ratkaisu: Arkkitehtuuri (SOA) Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 23

Ohjelmointialusta Liiketoimintapalvelut Ohjelmistotuotanto tänään Vaatimukset malli Ohjelmointikieli malli malli Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuuri on avain - komponentien välisten suhteiden hallintaan - järjestelmien monimutkaisuuden hallintaan - ohjelmistojen varioitavuuden hallintaan - ohjelmistokehityksen ja laskennan hajauttamiseen - liiketoimintaintegrointiin Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 24

Taloussanomat 2.9.2005 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 25

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 Järjestelmän perustuslaki, kartta, ja opas: 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 Syksy 2009 TTY Ohjelmistotekniikka 26

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 Syksy 2009 TTY Ohjelmistotekniikka 27

Syitä epäonnistuneeseen arkkitehtuuriin: - huono kommunikaatio - arkkitehtuurin kannalta olennaisia vaatimuksia ei ole otettu huomioon - arkkitehti on kokematon tai heikkotahtoinen - johdolta tuleva painostus - kehitysprosessi ei tue arkkitehtuuria - muita? Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 28

1.3 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 29

Arkkitehtuurin kehittäminen Laatuvaatimukset Arkkitehtuurin kannalta merkittävät vaatimukset Vaatimusanalyysi Keskeiset toiminnalliset vaatimukset Ympäristövaatimukset Alustava arkkitehtuuri Alustava arkkitehtuurisuunnittelu Laatuvaatimuksen huomiointi Rajoitteet Yleisten ratkaisumallien soveltaminen Arkkitehtuurimuunnos ei OK OK Toissijaiset toiminnalliset vaatimukset Kaikki käsitelty Inkrementaalisuus, agile: pienin toteutettavissa oleva arkkitehtuuri -> toteutus Yksityiskohtainen suunnittelu Arkkitehtuurin arviointi Arkkitehtuuri Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 30

Ohjelmiston jako komponentteihin Perusteena voi olla: toiminnallisuus yleisyys hajautus muutosherkkyys intressi, huolenaihe (concern)... huolenaihe Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 31

Arkkitehtuurin kannalta merkittävät vaatimukset 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ö Ympäristövaatimukset Rajoitteet - Esim. tietyn teknologian sanelemat Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 32

Vaatimukset Arkkitehtuurin kannalta merkittävät vaatimukset 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) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 33

Laatuvaatimusten yhteentörmäys Piirrerunsaus, nopeasti saatavilla, yhteensopivuus Suorituskyky, luotettavuus, käytettävyys Muunneltavuus, testattavuus Kustannus, resurssitarve Markkinointi Loppukäyttäjä Ylläpitäjä Hinta, stabiilisuus, toimitusvarmuus, Johto Arkkitehti Asiakas Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 34

Arkkitehtuuriratkaisujen valinta Ratkaisu 2 Ratkaisu 1 Ratkaisu 3 Jo tehdyt ratkaisut rajoittavat Mahdollisten uusien ratkaisujen joukkoa Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 35

Ohjelmistoarkkitehtuuri ja organisaatio alijärjestelmä liiketoimintayksikkö järjestelmä ryhmä henkilö henkilö komponentti komponentti komponentti henkilö => Conway n laki arkkitehtuurin rakenne = organisaation rakenne Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 36

Arkkitehtuurin arviointi Monet ohjelmiston laatuominaisuudet olisivat pääteltävissä jo arkkitehtuurikuvauksesta (esim. tiukka kerrosarkkitehtuuri -> suorituskykyongelmat) Arkkitehtuurin arviointi = laatuvaatimusten tarkennus + arkkitehtuurin arviointi laatuvaatimuksia vasten (esim. ATAM) Arkkitehtuurin arviointi on ohjelmiston testaamista sen ensimmäisen täsmällisen kuvauksen perusteella Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 37

1.4 Toteutusalustan arkkitehtuurin rooli Ohjelmistoalusta 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 JavaBeans-arkkitehtuurissa? Miten vaatimukset toteutetaan Symbian OS -arkkitehtuurissa? Miten vaatimukset toteutetaan tietyssä GUI-arkkitehtuurissa? Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 38

Kehitys kulkee kohti arkkitehtuuritason toteutusvälineitä Toteutusvälineet: ohjelmointikieli ohjelmistoarkkitehtuuri Muuttujat Aliohjelmat Luokat Komponentit Alustat Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 39

Mitä vaatimuksia tämä asettaa ohjelmistoarkkitehtuurille? Kun ohjelmistoarkkitehtuuri on osa toteutusvälineistön kuvausta, sen tulee olla: geneerinen: sopiva monille sovelluksille tavallisen ohjelmoijan ymmärrettävissä kuvattu täsmällisesti ja kattavasti kuvattu käyttäjän (so. sovellusohjemoijan) kannalta Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 40

1.5 Yhteenvetoa 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 varmistamista Ohjelmistokehityksestä on tullut arkkitehtuurikeskeistä: monet lähestymistavat ja teknologiat perustuvat tai liittyvät läheisesti arkkitehtuuriin Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 41