1 Johdanto! Arkkitehti?!

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

1.3 Katsaus ohjelmistotuotannon kehittymiseen

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

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Arkkitehti?

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

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

1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistojen suunnittelu

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Efficiency change over time

Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Kevät

Toimilohkojen turvallisuus tulevaisuudessa

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

ITK130 Ohjelmistojen luonne

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

PROJEKTI- PÄÄLLIKÖSTÄ PRODUCT OWNERIKSI MEERI CEDERSTRÖM

Teknologia-arkkitehtuurit. Valinta ja mallinnus

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Mitä Piilaaksossa & globaalisti tapahtuu ja mitä Tekes voi tarjota yrityksille

Tietojärjestelmän osat

Projektityö

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Capacity Utilization

7.4 Variability management

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

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

7. Product-line architectures

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistoarkkitehtuurit, syksy

16. Allocation Models

Ohjelmistoarkkitehtuurit. Syksy 2010

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

T Software Architecture

IBM Iptorin pilven reunalla

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

EUROOPAN PARLAMENTTI

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

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

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

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

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

LYTH-CONS CONSISTENCY TRANSMITTER

make and make and make ThinkMath 2017

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Ketterä vaatimustenhallinta

VBE2 Työpaketit Jiri Hietanen / TTY

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

9. Ohjelmistoarkkitehtuurien arviointi

Ohjelmistoarkkitehtuurien arviointi

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

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

Ohjelmistoarkkitehtuurit, syksy

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

KMTK lentoestetyöpaja - Osa 2

Standardi IEC Ohjelmisto

Suunnitteluvaihe prosessissa

CALL TO ACTION! Jos aamiaistilaisuudessa esillä olleet aiheet kiinnostavat syvemminkin niin klikkaa alta lisää ja pyydä käymään!

9. Muunneltavuuden hallinta

Kevät Ohjelmistoarkkitehtuurit 2014

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen

Results on the new polydrug use questions in the Finnish TDI data

Ohjelmistotekniikka - Luento 2

Käyttöliittymät II. Käyttöliittymät I Kertaus peruskurssilta. Keskeisin kälikurssilla opittu asia?

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

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

7. Tuoterunkoarkkitehtuurit

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Tutkittua tietoa. Tutkittua tietoa 1

Other approaches to restrict multipliers

Ketterämpi Sonera Matka on alkanut!

6 Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit Kevät Johannes Koskinen Esimerkki: Auton toiminnan monitorointijärjestelmä

anna minun kertoa let me tell you

Ohjelmistojen mallintaminen. Luento 11, 7.12.

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Digitalisoituminen, verkottuminen ja koulutuksen tulevaisuus. Teemu Leinonen Medialaboratorio Taideteollinen korkeakoulu

Avoimen lähdekoodin kehitysmallit

Software engineering

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

1. Liikkuvat määreet

2 Description of Software Architectures

API:Hack Tournee 2014

SOA SIG SOA Tuotetoimittajan näkökulma

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

Olet vastuussa osaamisestasi

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Transkriptio:

1 Johdanto! 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 1 Arkkitehti?! http://www.codingthearchitecture.com 2 1

Onko tämä arkkitehtuuria?! Ohjelmisto toteutetaan siten, että se käyttää P2P-topologiaa Valitaan toteutusteknologiaksi QT Käytetään OpenSource-kirjastoa openssl Softa julkaistaan lisenssillä GPL Ohjelmisto toteutetaan käyttäen ketteriä menetelmiä Ohjelmiston pitää olla valmis tammikuussa 2013! 3 1.1 Mikä on ohjelmistoarkkitehtuuri?! Mitä asioita ohjelmistoarkkitehtuuri sisältää? - Miten toiminnallisuus on jaettu alijärjestelmien kesken? - Miten alijärjestelmät kommunikoivat keskenään? - Miksi näin on tehty? 4 2

Standardien määritelmät! 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) Software architecture: The fundamental conception of a system in its environment embodied in elements, their relationships to each other and to the environment, and the principles guiding its design and evolution. (ISO/IEC 42010) 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) - tietyt kiinnitetyt perusratkaisut - tietyn teknologian käyttö(tapa) - tiettyjen tietorakenteiden käyttö(tapa) - tiettyjen suunnitteluen käyttö(tapa) - käyttösuhteiden säännöt - poikkeusten käsittelysäännöt Arkkitehtuuri = järjestelmän laki 6 3

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! 7 Arkkitehtuuritietämys (Kruchten & co.)! Architectural Knowledge = Design Decisions +Design! 8 4

Bass & Clements! 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.! 9 toisaalta! 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. (Bass & Clements) 10 5

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.! 11 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, laki Arkkitehtuuri on olemassa ennen järjestelmän rakentamista, se ei ole vain olemassa olevan järjestelmän kuvaus 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) Jos oletetaan, että arkkitehtuurikuvaukset ovat todenmukaisia, tietyn järjestelmän arkkitehtuuri on aina hyvin määritelty Arkkitehtuuri voi olla hyvä tai huono monessa mielessä (vrt. laki) 12 6

Kaksi eri arkkitehtuurikäsitystä! Suunniteltu arkkitehtuuri Suunnittelijan tahdonilmaus, järjestelmälle määritelty, spesifikaatio Olemassa olevan järjestelmän arkkitehtuuri Järjestelmän ominaisuus, järjestelmän määrittelemä Ongelmia: Vain ideaalisessa maailmassa nämä ovat sama asia Yleensä ei tarkenneta kummasta puhutaan Suunniteltua arkkitehtuuria ei ole välttämättä dokumentoitu Toteutuksen arkkitehtuuri vaikeasti nähtävissä/määriteltävissä 13 Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Experience: I have had bad experiences using Struts Requirements: The system should have response time under 1 s when there is 10000 users logged in the service. Personal preference: I prefer to use open source components over commercial ones..and many other concerns. Architect Business goals: Company should take technology X in use within two years. Time-to-market: Product should be released next week, I just do this quick-n-dirty solution 14 7

Arkkitehtuurifilosofiat! arkkitehtuuri järjestelmä järjestelmä esitys kuvaa ratkaisut arkkitehtuuri arkkitehtuurin kuvaus Idealistinen arkkitehtuurin kuvaus Pragmaattinen 15 Ohjelmistoarkkitehtuuri ja laatuvaatimukset! Ohjelmiston arkkitehtuuri määräytyy pääasiassa sen laatuvaatimusten, ei toiminnallisten vaatimusten perusteella Arkkitehtuuri on tapa ottaa huomioon järjestelmän laatuvaatimukset ohjelmistokehitysprosessissa Tässä laadulla ei viitata virheettömyyteen vaan siihen millä laadulla järjestelmä tekee loogiset toimintonsa Esimerkiksi Ohjelmiston vasteaika on normaalilla kuormalla 5 ms. Järjestelmän pitää olla toimintavalmis 3 minuutissa käynnistämisestä.! 16 8

Laatuvaatimukset! 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 17 Kysyttävää?! 9

1.3 Katsaus ohjelmistotuotannon kehittymiseen! Ohjelmointi! Vaatimukset Ohjelmointikieli Vaatimusten toteutus ohjelmointikielellä Ohjelma Programming-in-the-small Ongelma: Ohjelmointikielen hallinta Ratkaisu: Ohjelmointiympäristöt 20 10

Järjestelmäkehitys! Vaatimukset Ohjelmointikieli Programming-in-the-large Ongelma: Riippuvuuksien hallinta Ratkaisu: Arkkitehtuuri Komponent Komponent Komponent Komponentti 21 Ohjelmistotuotanto! Vaatimukset Ohjelmointikieli Prosessi Programming-in-the-many Ongelma: Ihmisten hallinta Ratkaisu: Prosessi Komponent Komponent Komponent Komponentti 22 11

Hajautetut järjestelmät! Vaatimukset Ohjelmointikieli Prosessi Ongelma: Järjestelmän hajauttaminen, rinnakkaisuus Ratkaisu: Arkkitehtuuri Komponent Komponent Komponent Komponentti Rinnakkaiset laitealustat 23 Mallipohjainen ohjelmistotuotanto! Vaatimukset Ohjelmointikieli Model-driven development Ongelma: Monimutkaisuuden hallinta Ratkaisu: Abstraktio, ntaminen, arkkitehtuuri Komponent Komponent Komponent Komponentti 24 12

Model-Driven Development (MDD)! Bran Selic 25 Tuoteperheet! Vaatimukset Ohjelmointikieli Ohjelmointialusta Ongelma: Muunneltavuuden hallinta Ratkaisu: Arkkitehtuuri + prosessi Komponent Komponent Komponent Komponentti 26 13

Globaali ohjelmistokehitys! Vaatimukset Ohjelmointikieli Ongelma: Työn hajauttaminen Ratkaisu: Arkkitehtuuri + prosessi Komponent Komponent Komponent Komponentti 27 Liiketoimintapalvelut Palvelut! Vaatimukset Ohjelmointikieli Ohjelmointialusta Ohjelmointialusta Ongelma: Integrointi liiketoimintaan Ratkaisu: Arkkitehtuuri (SOA) Komponent Komponent Komponent Komponentti 28 14

Liiketoimintapalvelut Ohjelmistotuotanto tänään! Vaatimukset Ohjelmointikieli Ohjelmointialusta Komponent Komponent Komponent Komponentti Ohjelmistoarkkitehtuuri on avain - komponentien välisten suhteiden hallintaan - järjestelmien monimutkaisuuden hallintaan - ohjelmistojen muunneltavuuden hallintaan - ohjelmistokehityksen ja laskennan hajauttamiseen - liiketoimintaintegrointiin 29 Taloussanomat 2.9.2005 30 15

Kysyttävää?! 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! 32 16

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! 33 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 - arkkitehdiltä puuttuu kohdealueen tuntemus - muita? 34 17

Kysyttävää?! Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi! 18

Arkkitehtuurin kehittäminen! Laatuvaatimukset Arkkitehtuurin kannalta merkittävät vaatimukset Vaatimusanalyysi Keskeiset toiminnalliset vaatimukset Ympäristövaatimukset Alustava arkkitehtuuri Alustava arkkitehtuurisuunnittelu Laatuvaatimuksen huomiointi Rajoitteet Toissijaiset toiminnalliset vaatimukset Yleisten ratkaisuen soveltaminen Arkkitehtuurimuunnos ei OK OK Kaikki käsitelty Inkrementaalisuus, agile: pienin toteutettavissa oleva arkkitehtuuri -> toteutus Yksityiskohtainen suunnittelu Arkkitehtuurin arviointi Arkkitehtuuri 37 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ö Rajoitteet - Esim. tietyn teknologian sanelemat! Ympäristövaatimukset 38 19

Laatuvaatimusten yhteentörmäys! Piirrerunsaus, nopeasti saatavilla, yhteensopivuus Suorituskyky, luotettavuus, käytettävyys Muunneltavuus, testattavuus Loppukäyttäjä Kustannus, resurssitarve Markkinointi Ylläpitäjä Hinta, stabiilisuus, toimitusvarmuus, Johto Arkkitehti Asiakas 39 Arkkitehtuurin arviointi! 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 40 20

Arkkitehtuurin kehittäminen! 41 Tehdään arkkitehtuuri up-front! Analysis Product Architecture design retrospective review Potentially shippable product increment 2-4 weeks Potentially shippable product increment 2-4 weeks Delivered product 42 21

0! Analysis Product retrospective review 0 Architecture, development environment, etc.. 2-4 weeks Potentially shippable product increment 2-4 weeks Delivered product 43 Arkkitehtuuri sprinteissä! Analysis Product retrospective review Architecture design Potentially shippable product increment 2-4 weeks Architecture design Potentially shippable product increment 2-4 weeks Architecture design Delivered product 44 22

Erillinen arkkitehtuuritiimi! Analysis Product XOR Architecture team retrospective review Potentially shippable product increment 2-4 weeks Potentially shippable product increment 2-4 weeks Delivered product 45 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)! 46 23

Kysyttävää?! Ohjelmistoarkkitehtuuri ja organisaatio! alijärjestelmä liiketoimintayksikkö järjestelmä ryhmä henkilö henkilö komponentti komponentti Conwayn laki: arkkitehtuurin rakenne = organisaation rakenne 48 24

Ohjelmiston osittaminen! Perusteena voi olla: toiminnallisuus yleisyys hajautus muutosherkkyys intressi, huolenaihe (concern)... huolenaihe 49 Läpitunkeva toiminta (cross-cutting concerns)! Koodi Koodi Loki Turvallisuus Sessiot Turvallisuus Loki Loki Turvallisuus Turvallisuus Koodi Koodi Sessiot Sessiot Loki 50 25

Aspektit! Loki Turvallisuus Koodi Koodi Sessiot Koodi Koodi Loki Turvallisuus Sessiot 51 1.8 Toteutusalustan arkkitehtuuri! 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? 52 26

Kehitys kulkee kohti arkkitehtuuritason toteutusvälineitä! Toteutusvälineet: ohjelmointikieli ohjelmistoarkkitehtuuri Muuttujat Aliohjelmat Luokat Komponentit Alustat Ekosysteemit 53 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. sovellusohjelmoijan) kannalta 54 27

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 tukemista Ohjelmistokehityksestä on tullut arkkitehtuurikeskeistä: monet lähestymistavat ja teknologiat perustuvat tai liittyvät läheisesti arkkitehtuuriin 55 Tehtävä! Tietokoneita myyvä yritys TietoMyyrä on laajentamassa toimintaansa verkkoon. Uuden toimintan mukaan asiakkaat voivat tilata TietoMyyrältä valmiita konepaketteja ja noutaa valmiit koneet TietoMyyrän toimistolta. Olette voittaneet tarjouspyynnön ja saaneet tilauksen TietoMyyrän verkkokauppasovelluksesta. Mitkä asiat vaikuttavat järjestelmän arkkitehtuuriin?! 56 28

Kysyttävää?! 29