SUD SUD. Haasteet. Haasteet Esimerkki riskilähtöisestä arkkitehtuurityöstä ja mallinnuksesta. Esimerkkitapauksen rajaukset ja oletukset

Samankaltaiset tiedostot
Oppimistavoitteet. Suunnittelumalli Design Model. Suunnittelumalli. Suunnittelumalli. Suunnittelumalli SUUNNITTELUMALLI.

OA:n kanoninen malli II

Koodimalli Code Model

Tietojärjestelmän osat

1. ASIAKKAAN OHJEET Varauksen tekeminen Käyttäjätunnuksen luominen Varauksen peruminen... 4

1 Turnitin-tehtävä 1 ja 2 Moodlessa Opettajan näkymä Turnitin-tehtävässä Opettajan näkymä Turnitin-tehtävä 2:ssa...

OA:n kanoninen malli III

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Versionhallintaa. Versionhallinnan käyttöönotto SAS ympäristössä

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU011 Sweex 1-portin rinnakkainen PCI Express -kortti

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

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

Tekninen suunnitelma - StatbeatMOBILE

Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi.

Oppimistavoitteet. Koodimalli Code Model. Näkymätyypit. Näkymätyypit Yksi arkkitehtuuri monta näkymää NÄKYMÄTYYPIT

Testaaminen ohjelmiston kehitysprosessin aikana

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

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti

2 Ohjelmistoarkkitehtuurien kuvaus

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

Sovellusalue- ja suunnittelumallit Domain Model, Design Model

Luento 1 Tietokonejärjestelmän rakenne

KADA (Drupal 7) migraatio uuteen (versioon) webiin

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Tekninen suunnitelma - StatbeatMOBILE

ohjelman arkkitehtuurista.

Langattoman kotiverkon mahdollisuudet

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Avid Pro Tools Äänityksen perusteet. Petri Myllys 2013 / Taideyliopisto, Sibelius-Akatemia tp48 Äänitekniikan perusteet

Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen

KODAK EIM & RIM VIParchive Ratkaisut

OHJEET SUOMI MEDIA PLAYER KOTELO CMP-MOBPLAY10 CMP-MOBPLAY30. Vaihe 2: Nosta levyä varovasti ja irrota se siirtämällä sitä taaksepäin.

Ohjelmistojen mallintaminen, kesä 2009

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

SAS ja Sharepoint. Yhteiselon ihanuus ja kurjuus

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Harjoitustehtävät viikolle 42

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Kevät

Standardi IEC Ohjelmisto

COLLABORATE - OPISKELIJAN OPAS

Ylläpito. Ylläpidon lajeja

Ohjelmistojen suunnittelu

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

ELOKUVAKASVATUS SODANKYLÄSSÄ VIDEON SIIRTÄMINEN DVD-LEVYLLE

Echo360 - luentovideot

PlanMan Project projektihallintaohjelmiston perustoimintojen ohjeistus

UML:n yleiskatsaus. UML:n osat:

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

Used with permission of Microsoft. Kulttuurihistoria Syyskuu 2015

13/20: Kierrätys kannattaa koodaamisessakin

POP-UP -IKKUNOIDEN SALLIMINEN

VHS-kasetin digitointi Adobe Premiere Elements -ohjelmalla

Viva-16. Käyttöohje Veikko Nokkala Suomen Videovalvonta.com

Asiakas ja tavoite. Tekninen toteutus

KÄYTTÖOHJE DENVER MPG-4054 NR Mediasoitin

K-Lite Codec Pack v2.48 Asennusohje (toimii myös uusissa versioissa)

Tietohallinto Projektipäällikkö Matti Sairanen. Fujitsu Myyntijohtaja Markku Örn

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

JYVÄSKYLÄN SEUDUN. 1. Sisältö * * Tähdellä merkityt kohdat ovat pakollisia. Sivun oikeassa yläkulmasta löytyy Lisää oma tapahtumasi.

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistoarkkitehtuurit. Kevät

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

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

Ohjelmistoarkkitehtuurit. Syksy 2008

Webforum. Version 14.3 uudet ominaisuudet. Viimeisin päivitys:

Pitkäaikaistallennus. CSC - Tieteen tietotekniikan keskus IT2008 Ari Lukkarinen

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Tikon Ostolaskujenkäsittely versio SP1

LoCCaM. LoCCaM Cam laitteiston ohjaaminen. Dimag Ky dimag.fi

Ohjelmistoarkkitehtuurit

Telkkari tulee kännykkään. PacketVideo Finland Jarno Kallio

Second Lifen ääniohjeet (sounds, Voice Chat, Music )

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

TOIMINNALLINEN MÄÄRITTELY MS

LAUNCH. Tuote-esittely X-431 PRO. We innovate your business. Ammattilaisen monimerkkidiagnostiikkatyökalu

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat & Niina Järvinen (muokattu )

Arkkitehtuurin mallintaminen

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Viestinvälitysarkkitehtuurit

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

Dynaaminen analyysi II

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Projektityö

Uudelleenkäytön jako kahteen

H5P-työkalut Moodlessa

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Luokka näytön käyttäminen opetuksessa.

KiMeWebin käyttöohjeet

Esimerkki: Auton toiminnan monitorointijärjestelmä

Microsoft PhotoStory 3 pikaopas

Transkriptio:

SUD Esimerkki riskilähtöisestä arkkitehtuurityöstä ja mallinnuksesta Luento 11 (osa 1) 6.10.2015 581385 Ohjelmistoarkkitehtuurit 1 The Home Player is a computer that plays media (like music, videos, and pictures) on a television and stereo. It is a normal computer like a laptop with a single audio and video output that is hooked up to a television and optionally to a stereo. This Home Player is able to play media in multiple formats from its local hard disk or streamed from the internet. It can simultaneously play music and display a slideshow of pictures, or show a video and browse information about that video. Third parties can build extensions to enable the system to play streaming media or collect metadata (e.g. song lyrics or actor biographies) from internet sites. Fairbanks, 4. Luku 6.10.2015 581385 Ohjelmistoarkkitehtuurit 2 SUD Esimerkin taustalla samantapainen todellinen järjestelmä Esimerkissä yhdistyvät tyypilliset systeemi ja IT asiat Suorituskyky ja luotettavuus Monimutkaisen datan käsittely Lähtötilanne: tiimi on tehnyt järjestelmästä prototyypin, ja nyt on tarkoitus rakentaa oikea tuote Haasteet 1. Suunnittelun kommunikointi Projektiin on tulossa mukaan uusia kehittäjiä toisessa toimipisteessä. Pelätään, että uudet kehittäjät eivät ehkä ymmärrä suunniteltua arkkitehtuuria eivätkä pysty osallistumaan täysipainoisesti tai voivat vahingossa rikkoa arkkitehtuurin. 2. COTS-komponenttien integrointi Prototyyppi rakennettiin vain yhtä käyttöjärjestelmää ajatellen, mutta nyt halutaan käyttää myös (kaupallisia) valmiskomponentteja, jotta järjestelmä saataisiin toimimaan useammassa ympäristössä 3. Metadatan esityksen yhtäpitävyys Metadatan sisäisen esityksen epäyhteensopivuus internetissä käytettyjen metadatamuotojen kanssa voi estää kolmansien osapuolten laajennosten toteuttamisen. 6.10.2015 581385 Ohjelmistoarkkitehtuurit 3 6.10.2015 581385 Ohjelmistoarkkitehtuurit 4 Haasteet Huom - vain 1. haaste eli suunnittelun kommunikointi käydään läpi luennolla, lue loput itse kurssikirjasta Esimerkkitapauksen rajaukset ja oletukset Oletetaan vaatimukset tunnetuiksi Ei kiinnitetä huomiota kehitystiimin eri rooleihin Ei ota kantaa kehitysprosessin luonteeseen Kaikki osapuolet ovat yhtä mieltä laatuattribuuttien priorisoinnista Tapauksen kuvauksen fokus on suunnittelussa 6.10.2015 581385 Ohjelmistoarkkitehtuurit 5 6.10.2015 581385 Ohjelmistoarkkitehtuurit 6 1

Prototyypistä tuotteeksi Haaste 1 SUUNNITTELUN KOMMUNIKOINTI soittimen prototyyppi kehitettiin start-up tyyliin Tiivis ryhmä teki pitkiä päiviä yhteisessä työtilassa Kaikki osallistuivat suunnittelupäätöksiin ja arkkitehtuuri on jokaisella nahkakansissa (omassa päässään) Prototyyppi on päätetty tuotteistaa, ja yritys on palkkaamassa lisää työntekijöitä projektiin Uudet kehittäjät eivät tule olemaan samoissa tiloissa eivätkä tunne sovellusaluetta entuudestaan 6.10.2015 581385 Ohjelmistoarkkitehtuurit 7 6.10.2015 581385 Ohjelmistoarkkitehtuurit 8 Prototyypistä tuotteeksi Miten estetään arkkitehtuurin eroosio (architectural drift), jota helposti tapahtuu, jos ja kun tuotekehitysprojektin paineessa uudet kehittäjät (tarkoittamattaan) kirjoittavatkin suunnittelupäätösten kanssa ristiriitaista koodia? Täytyy siis jotenkin kommunikoida arkkitehtuuri ja tehdyt suunnittelupäätökset koko laajennetulle tiimille Staattinen, dynaaminen, operatiivinen olomuoto Riskilähtöinen kommunikointistrategia Aloitetaan yksinkertaisista ja suhteellisen halvoista keinoista Otetaan monimutkaisempia keinoja käyttöön, vain jos yksinkertaisilla ei näytä saatavan riskiä tarpeeksi vähennettyä Subjektiivinen arvio Lopetetaan, kun ei saada enää riittävää lisäarvoa suhteessa mallien/dokumentoinnin vaatimaan työmäärään 6.10.2015 581385 Ohjelmistoarkkitehtuurit 9 6.10.2015 581385 Ohjelmistoarkkitehtuurit 10 Entä jos vain luetaan koodia? Prototyyppi ei ole kovin iso, joten voisi tietysti vain pyytää uusia kehittäjiä lukemaan sen koodia Ei vaadi mitään ylimääräistä vaivaa tiimin vanhoilta jäseniltä Application External_libs Esimerkiksi koodin nykyinen Audio_codecs Audio_player hakemistorakenne vastaa Video_codecs Video_player jossain määrin moduulijakoa Remote_controls Gui _player Util 6.10.2015 581385 Ohjelmistoarkkitehtuurit 11 Ongelmia Hakemistorakenteesta ei näe moduulien välisiä riippuvuuksia Prototyypin koodi ei kaikilta osin ole kovin hyvää, eivätkä arkkitehtuuriratkaisut oikein näy siitä (modelcode gap) Koodin lukemiseen menee myös paljon aikaa, jonka uudet kehittäjät voisivat käyttää paremminkin Tärkeimpien asioiden dokumentointi vie kuitenkin todennäköisesti vähemmän henkilötyötunteja Erityisesti ajonaikaisten rakenteiden päättely koodista on hyvin hankalaa 6.10.2015 581385 Ohjelmistoarkkitehtuurit 12 2

Moduulimalli Moduulimalli Päätetään laatia ainakin moduulimalli Aloitetaan siis yksinkertaisesta, lähellä koodia olevasta näkymästä (staattinen olomuoto, moduulinäkymätyyppi) Moduulit, riippuvuudet, mahdolliset rajoitteet Kattaa koko ohjelmiston (komponentit), ei vain systeemitason rajapinnat Kaavion lisäksi (seuraavalla dialla) lisätään linkit tärkeimpien käytettyjen teknologioiden kotisivuille 6.10.2015 581385 Ohjelmistoarkkitehtuurit 13 6.10.2015 581385 Ohjelmistoarkkitehtuurit 14 Jäljellä olevan riskin arviointi Moduulimalli auttaa nyt hahmottamaan perustavanlaatuisen järjestelmän osituksen staattisessa olomuodossa Hyvin valitut nimet ja riippuvuudet voivat auttaa arvaamaan oikein perusskenaarioiden kulun Se ei kuitenkaan kerro kovin paljon Suoritusaikaisista rakenteista ja järjestelmän käyttäytymisestä (dyamiikka) Laatuvaatimuksista ja niiden priorisoinnista sekä näihin liittyvistä suunnittelupäätöksistä Laatuattribuutit Tiimi on kokemuksensa perusteella päätynyt laatuattribuuttien seuraavaan priorisointiin KL:n responsiivisuus > Audion/videon toiston sulavuus (ajoitus) > luotettavuus > muunneltavuus > toiston absoluuttinen suorituskyky (framerate) > siirrettävyys Responsiivisuus ja toiston sulavuus ovat erittäin tärkeitä kilpailutekijöitä Siirrettävyys on vähemmän tärkeää, koska ohjelmisto ja laitteisto paketoidaan yhdeksi integroiduksi tuotteeksi 6.10.2015 581385 Ohjelmistoarkkitehtuurit 15 6.10.2015 581385 Ohjelmistoarkkitehtuurit 16 Tasapainottelua Siirrettävyys ja Toiston sulavuus Aidosti siirrettävä ratkaisu vaatisi yleensä eri käyttöjärjestelmien ja laitteistojen erot piilottavan ylimääräisen API-kerroksen (fasaadi, adapteri patterni) käyttöä arkkitehtuurissa Tämä ylimääräinen kerros lisäisi suoritusaikaista viivettä ja voisi ajoittain vaikuttaa huonontavasti äänen toiston laatuun Siksi päätettiin käyttää suoraan alustakohtaisia (natiivi-) API:ja, mikä heikentää vastaavasti siirrettävyyttä Taspainottelua Toiston suorituskyky ja Muunneltavuus n toiston suorituskykyä voi yleensä parantaa koodekki- tai mediadatakohtaisilla optimoinneilla Toisaalta suorituskyky tuntui olevan riittävä valitulla laitteistolla ilmankin optimointeja, jotka olisivat monimutkaistaneet uusien koodekkien ja dataformaattien lisäämistä, mikä haluttiin pitää mahdollisimman yksinkertaisena muunneltavuuden vuoksi 6.10.2015 581385 Ohjelmistoarkkitehtuurit 17 6.10.2015 581385 Ohjelmistoarkkitehtuurit 18 3

Arkkitehtuuriajurit Alkuperäinen tiimi ei ollut dokumentoinut yhtään laatuattribuuttiskenaariota, mutta tiimi käytti toistuvasti kahta skenaariota suunnittelun ja testauksen mittatikkuina Nämä kaksi skenaarioita olivat siis prototyypin arkkitehtuuriajureita (architectural driver), ja ne päätettiin nyt kirjoittaa auki Arkkitehtuuriajurit 1. Järjestelmän pitää tuottaa vaste käyttäjän KL:n kautta antamiin komentoihin 50ms:n kuluessa komennon antamisesta. Tilanteissa joissa aikarajaa ei voida millään saavuttaa (kuten aloitettaessa videotiedoston toistoa), järjestelmän pitää kuitenkin antaa palaute, joka osoittaa arvion jäljellä olevasta odotusajasta 2. Referenssinä käytetyn H.264/MPEG-4 AVC videon pitäisi toistua sujuvasti paikalliselta kovalevyltä luettuna 6.10.2015 581385 Ohjelmistoarkkitehtuurit 19 6.10.2015 581385 Ohjelmistoarkkitehtuurit 20 Tärkeimmät suunnittelupäätökset Laatuattribuuttien priorisoinnin ja arkkitehtuuriajureiden dokumentoinnin lisäksi katsottiin aiheelliseksi vielä kirjoittaa esiin tärkeimmät laatuvaatimuksien toteutumiseen vaikuttavat suunnittelupäätökset joita on vaikea nähdä pelkästään koodista # Kuvaus Suunnittelupäätökset 1 Luotettavuuden lisäämiseksi jokaista päätason komponenttia suoritetaan omassa prosessissaan 2 Rendering (toisto) kommuninkoi Buffer:n (puskurin) kanssa jaettua muistia käyttäen viiveen minimoimiseksi 3 Sulavan toistontakaamiseksi mediadata luetaan levyltä tai streamista ensin RAM-muistissa olevaan puskuriin, ennen kuin sitä aletaan toistaa 4 Kaikki toistettavan median metadata talletetaan järjestelmän Metadata Repository:yn, vaikka sama data sisältyisikin itse mediaan 5 Vain Player Core komponentti saa päivittää metadataa Metadata Repository:ssä 6.10.2015 581385 Ohjelmistoarkkitehtuurit 21 6.10.2015 581385 Ohjelmistoarkkitehtuurit 22 Riskin uudelleenarviointi Tähän mennessä on siis laadittu moduulimalli sekä kirjattu keskeiset laatunäkökohdatja niitä suoraan koskevat suunnittelupäätökset, mikä pienentää riskiä jo selvästi Ohjelmiston dynaamisen olomuodon kuvaus kuitenkin käytännössä puuttuu, mikä kasvattaa virhetulkintojen mahdollisuutta Jäljellä olevan riskin pienentämiseksi katsotaan tarpeelliseksi mallintaa vielä järjestelmän toimintaa Ajonaikaiset mallit Eniten lisäarvoa vähimmällä vaivalla tuottava keino suoritusaikaisten rakenteiden ymmärtämiseksi on luetella arkkitehtuurin komponentit ja konnektorit sekä selostaa niiden vastuut 6.10.2015 581385 Ohjelmistoarkkitehtuurit 23 6.10.2015 581385 Ohjelmistoarkkitehtuurit 24 4

Elementti Rendering Player Core Buffer Messaging Connector Komponentit ja konnektorit Vastuut Komponentti joka toistaa mediatiedostoja audio-ja videoulostulojen kautta. Vastaa myös käyttöliittymäelementtien kuten valikkojen näyttämisestä. soittimen keskeiset sovellustoiminnot, käyttöliittymätoiminnot, sekä koko toiminnallisuuden koordinointi Puskuroi mediatiedostojen sisältöä muistiin toiston ajoitushäiriöiden välttämiseksi. Tarjoaa pääsyn dataan jaetun muistin kautta. Asynkroninen kaksisuuntainen viestinvälityspalvelu Muut ajoaikaiset näkymät Vastuiden kuvauksen perusteella saa jo melko hyvän kuvan järjestelmän dynamiikasta Kuvaa voidaan vielä täydentää Komponenttikokoonpanolla, joka näyttää pääkomponentit, niiden portit sekä konnektorit Tarkennetulla toiminnallisella skenaariolla, joka kuvaa komponenttien toiminnot tärkeimmissä käyttötapauksissa (Kaavio ja skenaario löytyvät kurssikirjasta) 6.10.2015 581385 Ohjelmistoarkkitehtuurit 25 6.10.2015 581385 Ohjelmistoarkkitehtuurit 26 Reflektio Edellä kuvatut tekstuaaliset ja graafiset mallit on laadittu vaiheittain aloittaen yksinkertaisista mutta paljon lisäarvoa tuovista esityksistä Kattavat sekä staattisen että dynaamisen olomuodon (operatiivinen ei kovin tärkeä tälle järjestelmälle) Jokaisen mallin laatimisen jälkeen arvioitiin uudestaan jäljellä olevaa riskiä ja harkittiin mutkikkaampien kuvausten tarvetta Mallintaminen lopetettiin, kun arkkitehtuurin kommunikointiin liittyvän riskin arvioitiin käyneen riittävän pieneksi mallien/dokumenttien laatimiseen kuluu aina jonkun työaikaa, ja dokumentaatiota täytyy myös pitää ajan tasalla Katso kahden muun haasteen analyysi ja laaditut mallit/kuvaukset kurssikirjasta 6.10.2015 581385 Ohjelmistoarkkitehtuurit 27 5