Ohjelmistoarkkitehtuurit
|
|
- Anni Karvonen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ohjelmistoarkkitehtuurit Luento 1 1 Oppimistavoitteet Mitä ohjelmistoarkkitehtuuri on? Rakenteita korostava näkökulma Suunnittelupäätöksiä korostava näkökulma Arkkitehtuurin käyttö ja hyödyt Kuinka paljon "arkkitehtuuria" tarvitaan? Riskilähtöinen arkkitehtuurityö 2 1
2 ALUKSI 3 Sovellusten määrä USA:ssa eri vuosikymmeninä (arvio)* Applications Appls. (est.) * ) Capers Jones, The Technical and Social History of Software Engineering. Addison-Wesley Professional,
3 Sovellusten keskim. koko USA:ssa Function Point -kokomittarilla (arvio)* Avg. Function Points Logical stmts per FP * ) Capers Jones, The Technical and Social History of Software Engineering. Addison-Wesley Professional, Ohjelmistotekniikan kehityksestä 2010 Websovellusalustat, HTML5, pilvipalvelut, mobiili, Bigdata, IoT, Continuous X, kontit, mikropalvelut Tuoteperhearkkitehtuurit, MDA, väliohjelmistot, 2000 ohjelmistoalustat, aspektit, dynaamiset (skripti-) kielet, virtualisointi, palveluarkkitehtuurit (SOA) CASE-välineet: uudelleenkäyttö, testaus, mittaus Patterns (ratkaisumallit), sovelluskehykset, ohjelmistoarkkitehtuurit, arkkitehtuurityylit, arkkitehtuurien kuvauskielet, UML CASE-välineet: käyttöliittymien piirtäminen CASE-välineet: kaaviotyökalut (oliotekniikat) CASE-välineet: koodingenerointi (5GL) Oliot, uudelleenkäyttö, oliosuunnittelu, tietokone- ja järjestelmäarkkitehtuuri, relaatiotietokannat (4GL) Suunnittelumenetelmät: tietovirtakaaviot, ER-malli Modulaarisuus, tiedon kätkeminen, (2GL, 3GL) Aliohjelmat (1GL) Lean, ekosysteemit, startupit, experimentointi Ketterät menetelmät (agile methods) Liiketoiminta, organisaatio, Unified Process & inkrementaalinen kehitys Graafiset käyttöliittymät, käytettävyys Prosessit: CMM, spiraalimalli & riskien hallinta Prosessit: vesiputous 6 3
4 Ohjelmistojen merkityksestä 2010-luvun tietoyhteiskunta: lukematon määrä palveluita toteutetaan tietojärjestelminä, joista monet ovat kooltaan ja käyttäjämääriltään maailmanlaajuisia Tietokonelaitteistot kehittyneet huimasti: laskentateho, nopea tiedonsiirto, valtavien tietomäärien hajautettu tallennus ja rinnakkainen käsittely, esineiden Internet Virtualisoinnin ja pilvestä saatavan laskenta- ja tallennuskapasiteetin ansiosta kokonaisia järjestelmiä voidaan toteuttaa nyt puhtaasti ohjelmistoratkaisuina (ei omia kiinteitä laiteja infrastruktuuri-investointeja) Laadultaan hyvien ohjelmistojen kustannustehokas toteuttaminen on entistäkin tärkeämpää Tarkoituksenmukaisuus, tehokkuus, luotettavuus, saatavuus, käyttökokemus, muunneltavuus, skaalautuvuus, turvallisuus,. Kilpailu on kovaa ja markkinat avoimet, time-to-market Ohjelmistoarkkitehtuuri on tärkeässä roolissa halutun laadun ja tuottavuuden saavuttamisessa 7 OHJELMISTOARKKITEHTUURI 8 4
5 Määritelmiä Ohjelmistotyyppien kirjo on hyvin suuri Sulautetut ohjelmistot pienlaitteissa gigaapplikaatiot webissä miljoonine yhtäaikaisine käyttäjineen Myös ohjelmistoarkkitehtuuri on osoittautunut monitahoiseksi asiaksi, jota voidaan perustellusti tarkastella eri näkökulmista ja eri tavoittein Johtaa hieman erilaisiin määritelmiin ja painotuksiin Kaksi koulukuntaa (1990 s 2010 s) Rakenteita korostava koulukunta Suunnittelupäätösten merkitystä korostava koulukunta 9 Rakenteet <> Suunnittelupäätökset Rakenteet Kattavuus Dokumentaatio Suunnitelmallisuus - Hallinta Http server App Application Logger Browser Client REST, JSON, HTML5 Data store Server Client- Server, 3-Tier Rabbit MQ Suunnittelupäätökset Ominaisuudet Ymmärrys Inkrementaalisuus 10 5
6 I - Rakenteita korostava määritelmä Software Engineering Institute / Carnegie Mellon University: The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. Järjestelmän ohjelmistoarkkitehtuuri tarkoittaa rakenteita, joita tarvitaan päätelmien tekemiseksi järjestelmästä ja sen ominaisuuksista. Rakenteet koostuvat ohjelmistoelementeistä, niiden välisistä suhteista, ja näiden molempien piirteistä. (Katso myös esimerkiksi ISO/IEC standardin arkkitehtuuurin määritelmä ja IEEEXplore) 11 Mitä rakenteet ovat? Määritelmä jättää tämän avoimeksi Ei yksi vaan joukko rakenteita Mikä tahansa tarkoituksenmukainen kokoelma elementtejä ja niiden välisiä suhteita voi muodostaa rakenteen Ohjelmistoja on monenlaisia ja monenkokoisia! Kurssilla opimme, minkälaisia rakenteita yleensä kannattaa tarkastella (arkkitehtuurin mallinnus) Rakenteiden valinta riippuu sovelluksesta, sovellusalueesta ja toteutusteknologioista, one size does not fit all 12 6
7 Tyypillisiä elementtejä ja rakenteita Ohjelmistolla on kolme olomuotoa, joissa esiintyy merkittäviä rakenteita Staattinen, dynaaminen, operatiivinen Staattinen olomuoto Ohjelmiston koodi tiedostoissa ja tiedostojärjestelmän kansioissa - muodostaen toisistaan erillisiä kokonaisuuksia eli moduuleja konfiguraatio- ynnä muut alustus- ja datatiedostot ja resurssit Moduulien väliset sisältyvyys ja viittaussuhteet (tiedosto- ja kooditasolla) eli riippuvuudet (dependency) 13 Tyypillisiä elementtejä ja rakenteita Dynaaminen olomuoto Ohjelmiston suoritusaikana (tietokoneen muistiin ja käyttöjärjestelmään) luomat aktiiviset ja passiiviset oliot, prosessit ja säikeet, data-entiteetit sekä näiden kommunikaatiorajapinnat ja yhteydet Olioiden (ja prosessien) jakamat muistialueet ja k.järj. -resurssit, muut viestintä- ja yhteistoimintamekanismit Virtuaalikoneet, muut suoritusympäristöt (esim. kontit) Usean olion muodostamat, roolinsa ja toimintansa perusteella selkeästi erottuvat, rajapinnoin toisistaan eristetyt kokonaisuudet (alijärjestelmä, komponentti) ja niiden väliset yhteydet Application, Server, Load Balancer, Business Process, Container, Bean Palvelu Olio- ja prosessijoukko Huomaa: ei välttämättä yksi-yhteen vastaavuutta staattisten rakenteiden kanssa 14 7
8 Tyypillisiä elementtejä ja rakenteita Operatiivinen olomuoto (sijoittelu, allokaatio) Dynaamisten olioiden ja palveluiden sijoittelu ja suoritus laitteistossa osana tiettyä järjestelmää (Virtuaali-) palvelimet, tallennusvälineet, tietoliikennekanavat Palveluiden ylös- ja alasajo, päivitykset, monitorointi, skaalautuvuuden ja saatavuuden hallinta, pääsynvalvonta, transaktiot Ohjelmiston paketointi (packaging), konfigurointi ja piirteiden (features) valinta tiettyä käyttökontekstia (asiakasta) ja jakelua varten (komponentit) 15 Pohdittavaksi Mitä elementtejä ja rakenteita voisi olla Javasovelluksessa? Staattinen, dynaaminen, operatiivinen olomuoto 16 8
9 Abstraktit rakennekuvaukset Jonkin rakenteen dokumentoitu kuvaus (arkkitehtuurinäkymä, view) on usein abstrakti Tarkasteltavan asian kannalta epäoleelliset yksityiskohdat jätetään pois Jos kyse on suunnitelmasta, ei toteutuksen yksityiskohtia vielä voida tai edes haluta kiinnittää Tarkastelu tapahtuu yleensä järjestelmätasolla, jossa rakenneosat ovat vastuiltaan (toiminnot, tietosisältö) suhteellisen suuria (esim. asiakas palvelin - tietovarasto) Näkymät muodostavat usein hierarkian, jossa alemman tason näkymä tarkentaa jotain osaa ylemmän tason näkymästä 17 Abstraktit rakennekuvaukset Http server App Browser Application Data store Logger Client Server 18 9
10 Rakenteet ja ohjelmiston ominaisuudet Oleellista on, että rakenteiden ja niiden kuvausten perusteella voidaan tehdä päätelmiä jollekin sidosryhmälle tärkeistä ohjelmiston makrotason ominaisuuksista Tarkoituksenmukaisuus, luotettavuus, tehokkuus, helppokäyttöisyys, turvallisuus, muutettavuus, ulkoiset riippuvuudet, skaalautuvuus, Asiakas, loppukäyttäjä, kehittäjä, ylläpitäjä, liiketoiminnan johto, viranomainen, Ohjelmiston halutut ominaisuudet vaikuttavat siis siihen, mitä rakenteita arkkitehtuurissa tarkastellaan Ja kuinka tarkkoja tai yksityiskohtaisia kuvauksia tarvitaan Joskus yksityiskohdatkin voivat olla tärkeitä tiettyyn ominaisuuteen vaikuttavien suunnittelupäätösten ketjussa Arkkitehtuuri ei siis ole itsetarkoitus vaan väline 19 Arkkitehtuuri ja ohjelmiston elinkaari Robert C. Martin ( Uncle Bob ) 1 The architecture of a software system is the shape given to that system by those who build it. The form of that shape is in the division of that system into components, the arrangement of those components, and the ways in which those components communicate with each other. The purpose of that shape is to facilitate the development, deployment, operation, and maintenance of the software system contained within it. The ultimate goal is to minimize the lifetime cost of the system; and maximize programmer productivity. [1] Robert C. Martin.: Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall,
11 II - Suunnittelupäätöksiä korostava määritelmä We propose to view a software architecture as a set of explicit architectural design decisions. In this perspective, the software architecture is the result of the architectural design decisions made over time 2 Ohjelmistoarkkitehtuuri koostuu joukosta eksplisiittisiä suunnittelupäätöksiä. Arkkitehtuuri on ajan myötä tehtyjen suunnittelupäätösten tulos. [2] Jansen, A., & Bosch, J. (2005). Software architecture as a set of architectural design decisions. In Software Architecture, WICSA th Working IEEE/IFIP Conference on (pp ). IEEE. 21 Arkkitehtuuritason suunnittelupäätös? All architecture is design, but not all design is architecture 3 The low level details and the high level structure are all part of the same whole. They form a continuous fabric that defines the shape of the system. 1 Tunnusmerkkejä Päätös koskee järjestelmätason asioita ja vaikuttaa pääasiassa muiden vaatimusten kuin järjestelmän tarjoamia palveluja tai toimintoja koskevien vaatimusten toteutumiseen Voi osoittautua kalliiksi, jos menee pieleen Tasapainottelee eri suuntiin vetävien voimien välillä Ohjaa ja/tai rajoittaa muita suunnittelupäätöksiä [3] Grady Booch,
12 Esimerkki - Rackspace Hosted service provider Log.txt! 23 Tutkittava järjestelmä Sähköpostipalvelimien tuottamien lokitietojen tallennus ja käsittely asiakastukea varten Tehtävä (missio) Asiakkaan sähköpostin toimintaa koskevien ongelmien selvittämisen tukeminen sähköpostipalvelimien tuottamien lokitietojen perusteella Tarjottava ajantasaista tietoa riittävän pitkältä ajanjaksolta Kolme järjestelmäversiota, kolme erilaista arkkitehtuuria 24 12
13 V. 1 S-postipalvelinten paikalliset lokitiedostot Teknisen tuen pitää pyytää operaattoria ottamaan yhteys asiakkaan postipalvelimeen ja tutkimaan sen paikallista lokia ongelmien selvittämiseksi Rackspace toteutti skriptin, joka automaattisesti ottaa yhteyden joukkoon palvelimia ja suorittaa haun (grep) halutuntyyppisen palvelimen lokista; operaattorit voivat muokata hakuehtoja Ongelmia: Palvelinten, asiakkaiden ja tukipyyntöjen määrän kasvaessa yhä useammin suoritettavat haut alkoivat vaikuttaa haitallisesti palvelinten suorituskykyyn Hakujen tekemiseen tarvittiin aina operaattoria, mikä vei jatkuvasti kasvavan osan heidän työajastaan 25 V. 2 Lokitietojen keskittäminen yhteen tietokantaan S-postipalvelimet lähettävät muutaman minuutin väliajoin lokitietonsa ladattavaksi samaan relaatiotietokantaan tk-palvelimelle Teknikoilla on suora web-yhteys tietokantapalvelimelle ennalta ohjelmoitujen hakujen suorittamista varten Yksittäisten palvelimien lähettämät päivitykset kootaan yhteen säännöllisesti suoritettavaksi massapäivitykseksi (suoritetaan 10 min. välein) tietokantapalvelimen suorituskyvyn ylläpitämiseksi Ongelmia: Datan ja kyselyiden määrän jatkuvasti kasvaessa tietokantapalvelimen suorituskyky ja kapasiteetti muodostuivat pullonkaulaksi, häiriöt lisääntyivät Haut hidastuivat ja dataa hävisi välillä, vain muutaman päivän edestä lokitietoja kyettiin säilyttämään, varmuuskopioita ei ollut 26 13
14 V. 3 Lokitiedostojen rinnakkainen indeksointi hajautetussa tiedostojärjestelmässä S-postipavelimet syöttävät lokitiedostonsa usealle yksinkertaiselle palvelimelle (cluster) hajautettuun tiedostojärjestelmään (Hadoop DFS) Hadoop map-reduce operaatio indeksoi lokitiedostot ja muodostaa kaiken kattavan indeksin 15 min. välein Teknikoilla on web-liittymä hakujen tekemiseen kuten ennenkin Hakujen suoritus indeksistä on nopeaa, uudenlaisen haun ohjelmointi ja suoritus kestää kuitenkin joitain tunteja Täydellinen varmuuskopiointi, lokitietojen säilytys 6 kk:n ajalta 27 Ratkaisujen vertailua minaisuus V. 1 V. 2 V. 3 Toiminnallisuus Skaalautuvuus datan ja hakujen määrä Viive lokitietojen saanti s-palvelimilta Joustavuus uudet haut heikko välttävä hyvä välitön 10 min. 15 min. hyvä hyvä tyydyttävä 28 14
15 Huomioita 1 Järjestelmän tekniselle tuelle näkyvät toiminnot ovat käytännössä samat kaikissa versioissa Tukihenkilö sai kaikissa tapauksissa tarvitsemansa (samat) tiedot lokeihin kirjautuneista tapahtumista Järjestelmän toiminnallisuus (mitä järjestelmä tekee) ei siis ohjannut teknisiä ratkaisuja 1. versioonkin olisi voinut toteuttaa web-liittymän hakujen pyytämiseen operaattoreilta 29 Huomioita 2 Esimerkkijärjestelmän arkkitehtuuriin vaikuttavat eniten vaaditut laatuominaisuudet (quality attributes, -ilities, non-functional requirements ) Skaalautuvuus, tiedonsaannin viive, joustavuus uusien hakujen määrittelyssä Ylivoimaisesti tärkein järjestelmän ominaisuus on skaalautuvuus datan ja hakujen määrän suhteen Huonosti skaalautuva järjestelmä ei lainkaan kykene täyttämään tehtäväänsä toiminnan laajentuessa 30 15
16 Huomioita 3 minaisuus V. 1 V. 2 V. 3 Toiminnallisuus Skaalautuvuus datan ja hakujen määrä Viive lokitietojen saanti s-palvelimilta Joustavuus uudet haut heikko välttävä hyvä välitön 10 min. 15 min. hyvä hyvä tyydyttävä 31 Huomioita 3 Skaalautuvuuden parantuessa versiosta toiseen muut ominaisuudet hieman kärsivät Viive kasvaa (lokidatan tilannekuvan ikä) -> 15 min Joustavuus vähenee, koska uusien hakujen lisääminen vaatii enemmän työtä Joistakin vaadituista ominaisuuksista täytyy tinkiä toisten, tärkeämpien, hyväksi (trade off) Laatuominaisuuksien priorisointi esimerkissä: Skaalautuvuus > Viive > Joustavuus 32 16
17 entäs se arkkitehtuuri? Esimerkin järjestelmäversioiden kuvausten yhteydessä mainitut tekniset ratkaisut, eli suunnittelupäätökset, määrittävät järjestelmän arkkitehtuurin Ohjelmistoarkkitehtuuriin kuuluvat siis ne ohjelmiston suunnittelupäätökset, jotka merkittävästi vaikuttavat ohjelmiston laadullisten ominaisuuksien saavuttamiseen Suunnittelupäätösten pohjalta voidaan rakentaa järjestelmä, jolla on halutut ominaisuudet Sovellusalue ja kunkin sovelluksen/järjestelmän vaatimukset vaikuttavat siihen, mitkä tekniset seikat milloinkin nousevat arkkitehtuuriasioiksi ja mitä rakenteita on syytä tarkastella 33 Tyypillisiä arkkitehtuuripäätöksiä Järjestelmän jakaminen osiin (moduulit, komponentit) ja niiden roolien, toimintojen ja keskinäisten riippuvuuksien määrittely J:n rajapintojen (käyttöliittymät, ohjelmalliset ulkoiset rajapinnat, sisäiset rajapinnat) tunnistaminen ja erottaminen niiden kautta käytettävien toimintojen sisäisestä toteutuksesta J:n kehitystä ja ylläpitoa tukevat ratkaisut Eri syistä ja eri tahtiin muuttuvien osien erottaminen toisistaan Järjestelmällinen uudelleenkäyttö, tuoterungon käyttö, komponenttien vaihdettavuus ja siirrettävyys, diagnostiikka, testattavuus J:n ajoaikaiseen suorituskykyyn, skaalautuvuuteen, saatavuuteen, resurssien käyttöön ja turvallisuuteen vaikuttavat ratkaisut Palvelimet, prosessit ja säikeet, tieto- ja tapahtumavirrat, etäyhteydet, valvonta, tunnistaminen, sijoittelu laitteistoon, osien välinen viestintä J:n käsittelemän ja säilyttämän datan tallennus- ja saantiratkaisut * Jonkin teknologia-alustan tai framework:n (kehyksen) käyttö * (*) Uncle Bobin mielestä nämä ovat detaljeja, eivät arkkitehtuuria 34 17
18 Ohjelmistoarkkitehtuuri vs. Arkkitehtuuri? Suomen arkkitehtiliiton puheenjohtaja Huippuarkkitehtuuri on taidemuoto, jossa Erkki Rautio Tietoviikon haastattelussa rakennusten käyttäjien tarpeet usein : Ei se herätä suuttumusta, jäävät vähemmälle huomiolle kuin vaan ehkä enemmänkin sääliä, kun itammattilaisilla ei ole omia taiteelliset näkökohdat ammattinimikkeitä. Venustas (!), Firmitas(?), Utilitas (??)
19 OHJELMISTOARKKITEHTUURIN HYÖDYT JA KÄYTTÖ 37 Arkkitehtuurin ilmeneminen Arkkitehtuuri on siis (1) valikoitu joukko ohjelmistoelementtien ja niiden välisten suhteiden muodostamia rakenteita tai (2) joukko näitä koskevia suunnittelupäätöksiä Konkreettisesti nämä rakenteet / päätökset voivat ilmetä Ideoina ja periaatteina (kehittäjien mielessä) Konkreettisina rajoitteina (suunnittelulle ja toteutukselle) Dokumentteina (muodollisina tai vapaamuotoisina) Malleina (UML, formaalit mallinnuskielet) Koodina (kirjastot, kehykset, alustat, esimerkit ja prototyypit, lähdekoodin struktuuri ja riippuvuudet, paketointi ja nimentä) ja suoritusaikaisina objekteina Implementaation ilmentämä arkkitehtuuri on tietysti lopullinen totuus (ei välttämättä vastaa dokumentoituja suunnitelmia!) 38 19
20 Arkkitehtuurin käyttö Arkkitehtuurin käyttötavat ohjelmistokehityksessä voidaan jakaa karkeasti kahteen kategoriaan Preskriptiivinen eli ohjaava käyttö Deskriptiivinen eli kuvaileva käyttö 39 Ohjaava käyttö Arkkitehtuuri määrittää järjestelmän perusrakenteen Analogiana eläimen luuranko Arkkitehtuurin lähtökohdaksi voidaan valita tyyli (architectural style) tai patterni (architectural pattern), joka kiinnittää elementtien typpit/vastuut/roolit ja niiden välisten liitosten ja yhteyksien ominaisuudet Ei voida sanoa, onko jokin tyyli absoluuttisesti parempi kuin toinen, vaan täytyy arvioida tyylin sopivuutta kehitettävän ohjelmiston tarpeisiin nähden 40 20
21 Ohjaava käyttö Arkkitehtuuri vaikuttaa laatuominaisuuksiin Arkkitehtuuri mahdollistaa haluttujen ominaisuuksien saavuttamisen Sopimaton arkkitehtuuri voi myös estää sen Arkkitehtuuri on (enimmäkseen) riippumaton toiminnallisuudesta Saman toiminnallisuuden voi toteuttaa melkein minkälaisella arkkitehtuurilla tahansa Mutta: huonosti valittu arkkitehtuuri voi tehdä toiminnallisuuden toteuttamisen vaikeaksi ja kalliiksi (joskus jopa mahdottomaksi)!! 41 Ohjaava käyttö Arkkitehtuuri ohjaa toteutusta rajoitteiden avulla (guide rails) Esimerkiksi halutaan suoraan kieltää käytettävyyden tai tietoturvallisuuden vuoksi huonoiksi tiedetyt ratkaisut Annetaan malli, jonka mukaan toteutetaan tietyt asiat (tai tarjotaan laatuvipu, kts. seuraava osio) Rajoitteet auttavat kehittäjiä monin tavoin Kokemuksen siirto tiivistetyssä muodossa asiantuntijoilta, jotka ovat perustelluista syistä asettaneet rajoitteet Käsitteellisen eheyden (conceptual integrity * ) vahvistaminen ja kompleksisuuden vähentäminen tarpeetonta luovuutta rajoittamalla Koodin ajonaikaisen käyttäytymisen helpompi ymmärtäminen (*) A single good idea consistently applied is better than several brilliant ideas scattered across a system (Fred Brooks) 42 21
22 Kuvaileva käyttö Ohjelmiston ja suunnitteluratkaisujen ymmärtäminen Abstrahointi yksityiskohtia pois suodattamalla Sopivasti valitut rakenteet ja niitä tietystä näkökulmasta esittävät näkymät (view) ovat erinomaisia ymmärryksen lähteitä Uudet kehittäjät, johto, asiakkaat, alihankkijat, jne.! Liiketoiminnallisten tavoitteiden toteutumisen seuraaminen Tuoteperheet, COTS-komponenttien käyttö, integrointi ulkoisiin palveluihin, standardointi, lisensointi jne. 43 Kuvaileva käyttö Rajoitteiden noudattamisen valvonta Esimerkiksi näkymän muodostaminen rakenneosien (komponenttien, kerrosten) välisistä riippuvuuksista, jolloin voidaan havaita arkkitehtuurin rajoitteiden kieltämät riippuvuudet Esim. kerrosarkkitehtuurissa alemman kerroksen komponentti kutsuu ylemmän kerroksen palvelua muuten kuin palvelun asettaman! takaisinkutsurajapinnan kautta, riippuvuussyklien kieltäminen Organisaation kehittäminen Vahvasti toisiinsa kytkeytyvien elementtien kehittämisvastuun jako kannattaa miettiä tarkkaan kommunikaatio-ongelmien välttämiseksi Conwayn laki organisaatio kehittää rakenteeltaan itsensä näköisiä arkkitehtuureja 44 22
23 Muita hyötyjä Riskien hallinta Arkkitehtuurityö kannattaa keskittää tunnistettujen riskien eliminoimiseen tai lieventämiseen Kiinnitetään jatkuvaa huomiota tärkeimpiin teknisiin uhkiin Vaatimusten täsmentäminen Vaadittujen laatuominaisuuksien analysointi ja arkkitehtuurin suunnittelu niiden saavuttamiseksi auttaa huomaamaan ristiriitaisuuksia ja epätäsmällisyyksiä vaatimuksissa ja määrittelyissä Arkkitehtuurin suunnitteluun liittyvä laatuominaisuuksien tasapainottelu (trade off) pakottaa priorisoimaan laatuvaatimukset 45 KUINKA PALJON ARKKITEHTUURIA? 46 23
24 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 George Fairbanks tunnistaa kolme eri lähestymistapaa arkkitehtuurin suunnitteluun ja käyttöön 47 Tapa 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) 48 24
25 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ä 4 ja alustoja, jotka Tarjoavat perusoiminnallisuuden valmiina uudelleenkäytettävinä komponentteina/kehyksinä/kirjastoina Kiinnittävät monet laatuominaisuudet (tai asettavat rajoituksia) Turvallisuus, suorituskyky, ylläpidettävyys, Pyrkivät vapauttamaan sovelluskehittäjän keskittymään sovelluskohtaisen toiminnallisuuden toteuttamiseen Toiminnanohjaus, asiakkuuksien hallinta, web-palvelut, e-commerce, mobiiliapplikaatiot jne jne. [4] 49 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 (projektin kannalta turhien) piirteiden myötä tulee ratkaisuun mukaan 50 25
26 Oletusarkkitehtuuri Referenssiarkkitehtuuri Esimerkinomainen ratkaisu tietyn tyyppisten järjestelmien (tai niiden osien) arkkitehtuurille Kuvaa arkkitehtuuriratkaisun spesifikaation muodossa (vrt. ehdotus standardiksi) Voi olla sovellusaluekohtainen tai yrityskohtainen Referenssiarkkitehtuurin määrittelijä toivoo usein, että siitä tulisi vallitseva oletusarkkitehtuuri 51 Tapa 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) 52 26
27 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 Moduulien väliset riippuvuudet, kommunikoivat prosessit, pääkäyttötapausten kulku, Ei vaadi lähtökohtaisesti minkään tietyn ohjelmistokehityksen prosessimallin noudattamista eikä täydellistä dokumentointia 53 Tapa 3: Arkkitehtuuri laatuvipuna (hoisting * ) Tehdään tietoinen arkkitehtuuripäätös jonkin tietyn ominaisuuden halutun tason (laatuvaatimuksen) saavuttamiseksi (suorituskyky, siirrettävyys, testattavuus ) Kehittäjien ei tarvitse eivätkä he saa keksiä omia ratkaisujaan Ratkaisu voidaan esimerkiksi implementoida koodiksi ja tuoda suoraan kehittäjien käyttöön Koodikirjastona, komponentteina, tai konkreettisena automaattisesti valvottuna rajoitteena Yleistä ohjelmistokehyksissä (framework) 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 vipuvaikutus järjestelmän laatuominaisuuksiin (leverage, hoisting) (*) hoist: (v) nostaa, (s) nostolaite, talja 54 27
28 Laatuvipu Vivun käyttöön liittyy usein harkintaa laatuominaisuuksien tasapainottelun kannalta (trade offs) Vipua on yleensä pakko käyttää, joten vivutetun ominaisuuden on syytä olla riittävän tärkeä 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 eksperttejä hankalien laatuominaisuuksien alueella (esim. transaktioiden ja rinnakkaisuuden hallinta) 55 Esimerkkejä Java EE Application Model w002.htm#bnaax 56 28
29 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): KJ:n sovellusarkkitehtuuri tarjoaa laajennospisteet, joihin sovelluskohtainen tilatiedon tallennus- ja palautuslogiikka (save/restore) koodataan Kehittäjä koodaa (takaisinkutsumetodina/ tapahtumankäsittelijänä) sovelluksen tilan kirjoittamisen ja lukemisen KJ:n tarjoamaan tietovarastoon KJ (sovellusarkkitehtuuri) käynnistää tilan tallennuksen ja lukemisen (eli kutsuu kehittäjän koodia) automaattisesti tilanteen mukaan Käyttäjälle sovellus näyttäytyy jatkuvasti päällä olevana, mutta sen käyttämät järjestelmäresurssit voidaan kuitenkin välillä vapauttaa muuhun käyttöön Monimutkaistaa hieman sovelluskehitystä 57 Esimerkkejä Tavoiteltu ominaisuus: ladatun energian säästö akkukäyttöisessä mobiililaitteessa Arkkitehtuuriratkaisu (Symbian OS): Applikaatioiden ja yleisten palveluiden (esim. tiedosto-operaatiot) toteuttaminen tapahtumankäsittelijöinä (asiakas-palvelin tyyli) 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) Kaikki keskeiset KJ:n palvelut on toteutettu palvelinsäikeinä 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) -> energiansäästö, parempi akun kesto 58 29
30 Millaisissa projekteissa arkkitehtuurityö on erityisen tärkeää? Pieni ratkaisuavaruus (solution space) Toimivia ratkaisuja on vähän ja sellaisen löytäminen on vaikeaa Todennäköisyys, että mikä vain arkkitehtuuri toimii, on siis pieni Ohjelmistohäiriöiden (failure) vakavat seuraukset Vahingot ihmisille, ympäristölle ja omaisuudelle Vaikeat laatuvaatimukset Skaalautuvuus, ylivertainen käyttökokemus 59 Millaisissa projekteissa arkkitehtuurityö on erityisen tärkeää? Uusi sovellusalue (domain) Uudet käsitteet, toiminnot, vaatimukset, teknologiat jne. Ei ole tuttua kaavaa tai rakennetta (conceptual model), jonka pohjalta lähteä rakentamaan ratkaisuja Tuoteperheet (tavoitteellinen uudelleenkäyttö) Yhteisen tuoterungon tai komponenttikirjaston luominen monia eri tuotteita varten, joissa on kuitenkin paljon samaa toiminnallisuutta Pyritään tunnistamaan yhteiset, eri tuotteissa tarvittavat komponentit ja implementoimaan ne vain kerran Pyritään uudelleenkäyttämään mahdollisimman pitkälle myös samaa arkkitehtuuria eri tuotteissa (suunnittelutyön uudelleenkäyttö) 60 30
31 Millaisissa projekteissa arkkitehtuurityö on erityisen tärkeää? Tee ajatuskoe - mieti, mitä seurauksia väärillä arkkitehtuuriratkaisuilla voisi olla: mikä voi mennä vikaan? Jos merkittäviä riskejä ei ole, arkkitehtuurin miettimiseen ei kannata käyttää paljonkaan aikaa 61 G. Fairbanks: Risk-driven approach Idea: Arkkitehtuurisuunnittelua tehdään vain sen verran kuin projektiin liittyvien riskien hallitseminen vaatii Riskit voivat liittyä ohjelmiston käyttöön ja sen laatuominaisuuksiin (tuoteriski) Korkea suorituskyky, turvallisuus, skaalautuvuus, uhka ihmisille ja omaisuudelle, tai sen kehitykseen (projektiriski) teknologiat, henkilöstön määrä ja osaaminen, asiakas, aikataulu, työkalut, Kysytään: Mikä voi mennä pieleen ohjelmistoa käytettäessä ja kehitettäessä? Ja mietitään, voiko arkkitehtuuriratkaisuilla pieleen menon todennäköisyyttä pienentää tai sen seurauksia lieventää minkä jälkeen voidaan suunnata arkkitehtuurityö asioihin, jotka ovat oikeasti tärkeitä 62 31
32 LOPUKSI 63 Kuningas näkee pelin toisin
33 Kurssin pääoppimistavoitteet Tietää mitä ohjelmistoarkkitehtuuri on ja mihin sitä käytetään Tuntee ja osaa käyttää joitakin keskeisiä suunnitteluperiaatteita sekä arkkitehtuurityylejä ja patterneja ohjelmiston arkkitehtuurin suunnitteluun Tietää miksi ja milloin arkkitehtuurimalleja laaditaan ja osaa muodostaa kanonisen rakenteen mukaisia näkymiä arkkitehtuuriin Ymmärtää arkkitehtuurin arvioinnin ja ohjelmistokehysten (framework) suunnittelun perusideat (syvennetään harjoitustyössä) 65 The Road goes ever on and on Sten Porse, license: CC-BY
Ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Luento 1 1 Oppimistavoitteet Mitä ohjelmistoarkkitehtuuri on? Mitä hyötyä siitä on? Miten aihetta kurssilla käsitellään? 2 1 ALUKSI 3 2010 2000 Ohjelmistotekniikan kehityksestä
LisätiedotOhjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Luento 1 1 Oppimistavoitteet Mitä ohjelmistoarkkitehtuuri on? Mitä hyötyä siitä on? Miten aihetta kurssilla käsitellään? 2 1 ALUKSI 3 Sovellusten määrä USA:ssa eri vuosikymmeninä
LisätiedotOppimistavoitteet. Ohjelmistoarkkitehtuurit. Ohjelmistojen merkityksestä. Ohjelmistoarkkitehtuurit S2015 Antti-Pekka Tuovinen / HY 1.9.
Oppimistavoitteet Ohjelmistoarkkitehtuurit Mitä ohjelmistoarkkitehtuuri on? Mitä hyötyä siitä on? Miten aihetta kurssilla käsitellään? Luento 1 1 2 Sovellusten määrä USA:ssa eri vuosikymmeninä (arvio)*
LisätiedotOhjelmistoarkkitehtuuri ja kehitysprosessit
Ohjelmistoarkkitehtuuri ja kehitysprosessit Luento 2 5.9.2013 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Kuinka paljon arkkitehtuuria tarvitaan? Arkkitehtuuri ohjelmistokehitysprosessissa Ohjelmistoarkkitehdin
LisätiedotOhjelmistoarkkitehtuuri ja kehitysprosessit
Ohjelmistoarkkitehtuuri ja kehitysprosessit Luento 2 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Kuinka paljon arkkitehtuuria tarvitaan? Arkkitehtuuri ohjelmistokehitysprosessissa Ohjelmistoarkkitehdin
LisätiedotOppimistavoitteet. Ohjelmistoarkkitehtuuri ja kehitysprosessit. Oletusarkkitehtuurit Antti-Pekka Tuovinen HY/Tktl
Oppimistavoitteet Ohjelmistoarkkitehtuuri ja kehitysprosessit Kuinka paljon arkkitehtuuria tarvitaan? Arkkitehtuuri ohjelmistokehitysprosessissa Ohjelmistoarkkitehdin tiedot ja taidot Luento 2 Ohjelmistoarkkitehtuurit
Lisätiedot1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008
1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Katsaus ohjelmistotuotannon kehittymiseen 1.3 Epäonnistuneen ohjelmistoarkkitehtuurin seurauksia 1.4 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi
Lisätiedot1.3 Katsaus ohjelmistotuotannon kehittymiseen
Yleisiä asioita Oliokirja:http://www.cs.tut.fi/~kk/Ohjelmistoarkkitehtuuri.pdf Tenttipäivä 7.5. Tallennukset, jospas tänään onnistaisi Viikkoharkat löytyvät IDLEstä (TTY), kurssin kotisivuilta/paikallisilta
Lisätiedot1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007
1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Katsaus ohjelmistotuotannon kehittymiseen 1.3 Epäonnistuneen ohjelmistoarkkitehtuurin seurauksia 1.4 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi
Lisätiedot1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1
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
LisätiedotKoodimalli Code Model
Koodimalli Code Model Luento 6 10.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Koodimalli Arkkitehtuurisuunnittelun ja implementaation välinen kuilu ja sen hallitseminen Arkkitehtuuria
LisätiedotTietojärjestelmän osat
Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto
LisätiedotOsittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
Lisätiedot13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
LisätiedotHieman lisää malleista ja niiden hyödyntämisestä
Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
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
LisätiedotOhjelmistoarkkitehtuurit Kevät 2016 Johdantoa
Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset 1.3
LisätiedotOhjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista
582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)
LisätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
LisätiedotUudelleenkäytön jako kahteen
Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta
LisätiedotITK130 Ohjelmistojen luonne
ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys
LisätiedotOhjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
Lisätiedot1 Johdanto. Pieni motivointikalvo. 1.1 Mikä on ohjelmistoarkkitehtuuri?
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
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,
LisätiedotOhjelmistoarkkitehtuurit, syksy 2012 4.9.2010
Ohjelmistotutkimuksen painopisteitä Ohjelmistoarkkitehtuurit Johdanto ja peruskäsitteitä 2000 1995 1990 1985 1980 1970 Tuoteperhearkkitehtuurit, MDA, väliohjelmistot, aspektit CASE-välineet: uudelleenkäyttö,
LisätiedotOhjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
LisätiedotCopyright by Haikala. Ohjelmistotuotannon osa-alueet
Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary
LisätiedotOhjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus
Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2008
Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen
LisätiedotUML:n yleiskatsaus. UML:n osat:
UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän
LisätiedotTekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
LisätiedotTekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
LisätiedotOhjelmistoarkkitehtuurin suunnittelu
Ohjelmistoarkkitehtuurin suunnittelu Luento 3 10.9.2014 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Arkkitehtuuritietämyksen lähteet Yleisiä suunnitteluperiaatteita Kaunis arkkitehtuuri 10.9.2014
LisätiedotSuunnitteluvaihe prosessissa
Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet
LisätiedotJärjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä
Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri
LisätiedotOhjelmistoarkkitehtuurit. Kevät
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet
LisätiedotMiten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?
Se edullisempi tietokanta Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä? Rasmus Johansson rasmus.johansson@microsoft.com Ratkaisumyyntipäällikkö (Sovellusalusta) Microsoft Oy Miten
Lisätiedot2 Ohjelmistoarkkitehtuurien kuvaus
2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit
Lisätiedot5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi
5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden
LisätiedotOleelliset vaikeudet OT:ssa 1/2
Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet
LisätiedotOhjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurin kuvaaminen on arkkitehtuuritason suunnitteluratkaisujen kuvaamista Arkkitehtuuritasoisuus Aihe, ongelma tai ohjelmistoelementti on arkkitehtuuritasolla,
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2010
Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin
LisätiedotJärjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
LisätiedotSisäänrakennettu tietosuoja ja ohjelmistokehitys
Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology
LisätiedotOnnistunut ohjelmistoprojekti
Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt
LisätiedotSisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.
Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001
LisätiedotOhjelmistotekniikka - Luento 2
Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit
LisätiedotOhjelmistoarkkitehtuuri
Ohjelmistoarkkitehtuurien ylläpito Arkkitehtuurityylejä ja laatuvaatimuksia Arkkitehtuurin uudistaminen Arkkitehtuurin uudistamisen malleja Arkkitehtuurin arviointi TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuuri
LisätiedotTIETOKANNAN SUUNNITTELU
TIETOKANNAN SUUNNITTELU HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 2 JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS TIETOJEN MALLINNUKSESTA TIETOKANTAAN Käsiteanalyysin
LisätiedotIBM Iptorin pilven reunalla
IBM Iptorin pilven reunalla Teppo Seesto Arkkitehti Pilvilinnat seesto@fi.ibm.com Cloud Computing Pilvipalvelut IT:n teollistaminen Itsepalvelu Maksu käytön mukaan Nopea toimitus IT-palvelujen webbikauppa
LisätiedotOnnistunut ohjelmistoprojekti
Onnistunut ohjelmistoprojekti 2.12.2008 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt ja työkalut Tulevaisuuden
LisätiedotKäytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy
Käytännön haasteita ja ratkaisuja integraation toteutuksessa Jukka Jääheimo Teknologiajohtaja Solita Oy 13.03.2008 Sisältö 2 Alustus Integraation haasteet Integraatioarkkitehtuuri Hyvän integraatioarkkitehtuurin
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
LisätiedotJärjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia
Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut Pilvipalvelut Nouseva toteutustekniikka ja trendi Kuluttajat edellä, yritykset perässä Paino sanalla Palvelu Yhtenäisyyksiä vuosikymmenten taakse, sovelletaan
LisätiedotTenttikysymykset. + UML- kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotKäyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä
www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite
Lisätiedot7. Tuoterunkoarkkitehtuurit
7. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen Kerrostyyli tuoterunkoarkkitehtuureille Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö opportunistinen:
LisätiedotYlläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito
Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective) testausvaiheessa
Lisätiedot6. Arkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit - Kerrosarkkitehtuurit - Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit - Asiakas-palvelin arkkitehtuurit - Viestinvälitysarkkitehtuurit
LisätiedotTeliaSonera Identity and Access Management
TeliaSonera Identity and Access Management 22.10.2009 EMC Forum Juha Arjoranta 1 TeliaSonera Identity and Access Management Alustus käyttövaltuushallintaan IAM kokonaisratkaisun elementit Nykytilaa ja
LisätiedotJohdatus rakenteisiin dokumentteihin
-RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista
LisätiedotToimilohkojen turvallisuus tulevaisuudessa
Toimilohkojen turvallisuus tulevaisuudessa Turvallisuusseminaari ASAF 30.10-1.11.2006 Mika Strömman Teknillinen korkeakoulu 1 Sisältö Luotettavuuden lisääminen hyvillä tavoilla Toimilohkokirjastot Turvatoimilohkot
LisätiedotArkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14
Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2
LisätiedotLaatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia
Laatu tietojärjestelmähankkeissa Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia 5.10.2010 Pohdintaa tietojärjestelmien laadusta Mitä on laatu Miten laatua tavoitellaan tietojärjestelmäprojekteissa
LisätiedotOhjelmistojen mallintaminen, kesä 2009
582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
LisätiedotMalliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki
Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,
LisätiedotLuento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Luento 8 Ohjelmistokehykset Tuoteperheet 19.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 OHJELMISTOKEHYKSET 19.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 2 Ohjelmistokehykset (software
LisätiedotHelsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto
Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään
LisätiedotOhjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
LisätiedotOhjelmistotekniikan menetelmät, kesä 2008
582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön
LisätiedotArkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä
Arkkitehtuuritietoisku eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä Esikysymys Kuinka moni aikoo suunnitella projektityönsä arkkitehtuurin? Onko tämä arkkitehtuuria?
LisätiedotJärjestelmäarkkitehtuuri (TK081702) Web Services. Web Services
Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden
LisätiedotRajattomat tietoverkot ja niiden rooli pilvipalveluissa. Jukka Nurmi Teknologiajohtaja Cisco Finland
Rajattomat tietoverkot ja niiden rooli pilvipalveluissa Jukka Nurmi Teknologiajohtaja Cisco Finland Verkon avulla voidaan kehittää monia toimintoja Kauppa Urheilu / Viihde Käyttäjä Energiankulutus Koulutus
LisätiedotOhjelmiston toteutussuunnitelma
Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,
LisätiedotTkK-tutkielmat
TkK-tutkielmat 2014-2016 Ohjelmistotuotanto Luokittelu Sivuavat kehitysmenetelmät ohjelmistoliiketoiminta Ohjelmistotekniikka rinnakkaisohjelmointi testaus metriikat Ohjelmistoturvallisuus pedagogiikka
LisätiedotCase TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000
Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->
LisätiedotOhjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2016 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 13.1.2016 1 Tervetuloa Tampereen teknillinen yliopisto, Oulun yliopisto, Turun yliopisto 13.1.2016 2 Tiedonvälitys
Lisätiedot10. Tuoterunkoarkkitehtuurit
10. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen: liiketoiminta, organisaatio, prosessi, tekninen Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö
LisätiedotKuinka helpottaa suurten projektien tuskaa pilvipalveluilla?
Kuinka helpottaa suurten projektien tuskaa pilvipalveluilla? Sytyke-risteily 2013 Otso Kivekäs 4.9.2013 Codento Suomalainen ohjelmistotoimittaja Hansel-sopimustoimittaja AWS Solution Provider Eucalyptus
LisätiedotYleisiä asioita. Harkat alkavat ensi viikolla Vierailuluentoa. Slackin #luennot-kanava taas käytössä. Ensi viikon perjantaina, Janne Viitala, Sandvik
Yleisiä asioita Harkat alkavat ensi viikolla Vierailuluentoa Ensi viikon perjantaina, Janne Viitala, Sandvik Slackin #luennot-kanava taas käytössä 1 1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2
LisätiedotOhjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko
Ohjelmistokehykset Määritelmä & tavoitteet, taustaa & peruskäsitteitä, kehykset vs. suunnittelumallit, erikoistamisrajapinnat & kontrollinkulku, kehystyypit, kehysten rakenne ja evoluutio, esimerkki: JHotDraw,
Lisätiedot12. Kehysarkkitehtuurit
12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto
LisätiedotOhjelmistotekniikka - Luento 2 Jouni Lappalainen
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento
LisätiedotKurssin hallinta -työväline
Kurssin hallinta -työväline Kurssin hallinta -työvälineellä muokataan kursseja A&Ooppimisympäristöalustalla Kurssi koostuu - ohjelmasta (linkit työkaluihin& muihin resursseihin), - materiaaleista, - keskusteluryhmästä,
LisätiedotYlläpito. Ylläpidon lajeja
Ylläpito Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective)
LisätiedotArkkitehtuuri. Ylätason sovellusarkkitehtuuri
Arkkitehtuuri Termieditorin käyttö vaatii kirjautumisen. Peruskäyttäjälle myönnetään erikseen aineistokohtaisia luku- ja muokkausoikeuksia. Järjestelmän ylläpitäjä (admin) saa ylläpitää kaikkia aineistoja.
LisätiedotUutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3
Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2
Lisätiedot6. Arkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit (rakenteen ositus) Tietovuoarkkitehtuurit (toiminnan ositus) Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit
LisätiedotAgenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi
1. Luento: Sulautetut Järjestelmät Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu
LisätiedotOhjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
LisätiedotTietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen
Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen
LisätiedotTOIMINNALLINEN MÄÄRITTELY MS
TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa
LisätiedotOhjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit Tuoteperheet Tuoterunkoarkkitehtuurit Perinteisessä ohjelmistotuotannossa on keskitytty uusien ohjelmistojen laadukkaaseen tuottamiseen Erikoistuneista ainutlaatuisista vaatimuksista
LisätiedotTapahtuipa Testaajalle...
Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman
LisätiedotKehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!
Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! eli... Hyvä kaava sanoo enemmän kuin,... tuhat riviä koodia!... sata riviä tekstiä!... kymmenen diagrammia! YLEISTÄ FORMAALEISTA
LisätiedotOhjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
LisätiedotOhjelmistokehykset (software frameworks)
Ohjelmistoarkkitehtuurit 1 (software frameworks) Osittain abstraktiksi jätettyjä ohjelmistorunkoja, joita eri tavoin täydentämällä saadaan rakennettua kokonaisia uusia sovelluksia tai sovelluksen osia
LisätiedotVirtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).
1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.
LisätiedotYhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?
Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö
LisätiedotTaltioni teknisen alustan arviointi
Taltioni teknisen alustan arviointi Taltioni sidosryhmätilaisuus, 10.1.2012 Jaakko Lähteenmäki, Niilo Saranummi 1/11/2012 2 Selvitystyön kohde Selvitystyö: VTT & Fujitsu Keskeiset vaatimukset Taltioni-palvelulle?
Lisätiedot