Etukäteistehtävää

Samankaltaiset tiedostot
Ohar-ATAM pikaisesti. Ohjelmistoarkkitehtuurit 2009

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurien arviointi

9. Ohjelmistoarkkitehtuurien arviointi

Kevät Ohjelmistoarkkitehtuurit 2014

Kevät 2016 Arkkitehtuurin arviointi, ATAM. Ohjelmistoarkkitehtuurit 2016

9. Ohjelmistoarkkitehtuurien arviointi

7. Ohjelmistoarkkitehtuurien arviointi

Arkkitehtuurin arviointi

Ohjelmistoarkkitehtuurit. Kevät

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

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistoarkkitehtuuri

Esimerkki: Auton toiminnan monitorointijärjestelmä

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

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


Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä

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

Sisällysluettelo. Moi Vastaajan käyttöohje 1/6

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Viestinvälitysarkkitehtuurit

Webinaariin liittyminen Skype for

Ohjelmistoarkkitehtuurit, syksy

Tiedonsiirto- ja rajapintastandardit

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

RECO irtaimiston- ja omaisuuden hallinta

DNA Vastaaja käyttöohje

6. Arkkitehtuurityylit

Ohjelmistojen suunnittelu

Flexi Presentityn Android-sovelluksen käyttöohje

TYÖVALTAINEN OPPIMINEN / TOP-Laaja

Viestinvälitysarkkitehtuurit Lähtökohta:

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

Harjoitustyö 3 - Reittioptimisaatio

Yllättävän, keskustelun aikana puhkeavan ristiriidan käsittely

WhatsApp-ryhmien luominen ja ylläpitäminen Windows Phone -laitteilla

Seudullinen johtoryhmä. Aika: klo 9-12 Paikka: Kokoushuone 321, virastotalo, Mikkeli

Käyttöohje Nokia Musiikki

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Yhteisöllisen toimintatavan jalkauttaminen!

RATKAISU REAALIAIKAISEEN TIEDONSIIRTOON NIINIPLUS PROJEKTIPANKKI INTEGRAATION - PIKAOPAS

Miten Vero voisi Viestit-Appia hyödyntää? Markku Heikura

Ohjelmistoarkkitehtuurit Harjoitustyö 2014

Apple iphone 4 puhelimen käyttöönotto:

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!

Testidatan generointi

PILETTI. Tekninen vaatimusmäärittely. v. 0.2

OMAN VUORON ODOTTAMINEN. Materiaali 2018 Viitottu Rakkaus Kuvat MyCuteGraphics.com Diapohjat SlidesCarnival.

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Hosted.fi Virtuaalikokouspalvelu

CQRS, -ES, PACS, DICOM, WTF?

Miten varmennan ICT:n kriittisessä toimintaympäristössä?

Kansallinen ASPAtietojärjestelmä

Sonera sovelluspalomuurin muutoshallintaohjeistus

Keskustelusivusto. Suunnitteludokumentti

Kuntien yhteentoimivuusseminaari. Tietomallien laatiminen Taina Nurmela projektipäällikkö, Helsingin kaupunki

Vuorekseen liittyvä tutkimusja kehitysprojekti. Langaton Vuores. Kotikatupalvelin

Pilottipalvelun esittely johtopäätökset

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

PariAsiaa luentosarjan teemat

Helsinki Testbedin säätuotteet tänään ja tulevaisuudessa

MTData-autopäätteiden ohjelmistopäivitys

Kun et saa heitä näkemään valoa, saa heidät tuntemaan sen lämpö

Järjestelmäarkkitehtuuri (TK081702)

Palveluperustaiset arkkitehtuurityylit

Graafinen käyttöliittymä, osa 1

Ohjelmistoarkkitehtuurit kevät

AKATEEMISEN OSAAMISEN DOKUMENTOINTI

SecGo. Sähköinen allekirjoitus ja sen käyttö. Ari-Pekka Paananen, SecGo VE Oy Director,technology

VERKOSTOFOORUMI KUOPIO

PERSOONALLISUUSTYYPIT

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Ketterä analytiikka mitä se voisi olla käytännössä? Case Katedata Delta Motor Group

KOLME TÄRKEÄÄ TEHTÄVÄÄ ENNEN DEXCOM G6:N KÄYNNISTÄMISTÄ

Darwin: Tutkimusprojektin esittely

Hatanpään sairaalan ja Tampereen yliopistollisen sairaalan toiminnallinen ja hallinnollinen yhdistäminen. ICMT-teemaryhmä

Miten valitsen sopivan tilitoimiston? suomentilitoimistot.fi

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

Puheentunnistus. Joel Pyykkö 1. 1 DL-AT Consulting

Järjestelmäriippumattomia siivousohjeita

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Auditointiajot, Vaasa

Tervetuloa tutustumaan Seure Keikkanetti -mobiilisovellukseen!

Alkukartoitus Opiskeluvalmiudet

POP- Paremman Oppimisen Puolesta

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Office ohjelmiston asennusohje

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

- Jalkapalloa jokaiselle -

Ajankohtaista Ilmoitin.fi:stä

Katso-tunnistautumisen muutos. Visma Fivaldi

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

ehoks: tiedon tuottaminen

Rajapintapalvelujen INSPIRE-yhteensopivuus

Transkriptio:

ATAM-ohjeistusta

Etukäteistehtävää Valmistautukaa huolella, tutustukaa materiaaliin etukäteen. Miettikää kysymyksiä arkkitehtuurista. Valitkaa roolit, arvioijaporukassa kirjuriksi kaveri, joka keskittyy muistiinpanojen tekemiseen ja osaa keskeyttää tarvittaessa keskustelijat, jotta asiat tulee oikeasti kirjattua Tutustukaa dokumenttipohjiin jne. Miettikää miten/millä aiotte kirjata kunkin työvaiheen asiat Arvioitava porukka, kuka esittelee mitäkin/vastaa mistäkin? Pääarkkitehti, bisnespuolen asiat, palvelinpuoli/asiakaspäätteet, Miettikää aikataulu (älkää pelkästään kopioiko esimerkkiä) 18.3.2014 2

Tapahtumassa toiminta Iloinen avoin mieli Läppärit kiinni, jos ei liity omaan tehtävään (esim. kirjuri). Facebookin, Iltalehden jne. ihmeelliseen maailmaan pääsee tapahtuman jälkeenkin Puhelin kiinni Jokainen puhuu vuorollaan Ei rinnakkaisia sivukeskusteluja, pysytään asiassa, edetään tehtävissä (päästään ajoissa pois) 18.3.2014 3

Esimerkkiaikataulu (4h) klo 1. "ATAM -esitys" 13:00 2. Business-esitys 13:10 3. Arkkitehtuuriesitys 13:25 4. Ratkaisujen tunnistaminen 13:45 Kahvitauko 14:00 5. Laatupuu ja skenaariot 14:15 6. Priorisointi 14:55 7. Analysointi 15:00 jaloittelutauko 15:55 Analysointi jatkuu 16:00 8. Keskustelu / Yhteenveto 16:50

Vaiheista tarkemmin Arkkitehtuurilähestymistavat, arkkitehtuuriratkaisujen löytäminen Mitkä ovat järjestelmän tärkeimmät arkkitehtuuripäätökset, tyylit, suunnittelumallit ja yleiset ratkaisut? Miten em. ratkaisut tukevat järjestelmälle asetettuja tärkeimpiä laatuvaatimuksia? Laatupuun rakentaminen Tarkennetaan laatuvaatimukset järjestelmäkohtaisella ryhmittelyllä. Konkretisoidaan tarkennettu laatuvaatimus skenaariolla. Skenaarioiden priorisointi Skenaarioille annetaan sekä haastavuus että tärkeys, tämän jälkeen skenaariot järjestetään tärkeyden ja vaikeuden perusteella (ensisijaisesti tärkeyden, sitten haastavuuden mukaan). Tai priorisoidaan skenaariot jollakin muulla järkevällä tavalla (potentiaalisesti mielenkiintoisimmat, eniten keskustelua herättävät ) Skenaarioiden analysointi Otetaan tärkein analysoimaton skenaario käsittelyyn. Kysytään, mahdollistaako arkkitehtuuri tämän skenaarion? Miten ja miksi? Mitkä asiat arkkitehtuurissa liittyvät kyseiseen skenaarioon? Pyritään tunnistamaan ainakin riskit ja tasapainokohdat. (toistetaan kunnes aika loppuu/skenaariot on analysoitu/kaikki ovat puuduksissa) 18.3.2014 5

Esimerkkejä arkkitehtuuripäätöksistä MVC: mahdollistetaan käyttöliittymän päivittäminen ja mallinkäsittelyn vaihtaminen Säikeistys: erilliset säikeet kontrolloitavaa sovelluksen pollausta, puhemoottoria, käyttöliittymää varten Kielen ajoaikainen kontekstipohjainen karsinta: tehdään komentojen tarkastuksia vain niille osille joille tarpeellista Jonotus: yksi puhekomento kerrallaan käsittelyssä, muut jonoon Plugin-arkkitehtuuri: Ohjelmaan saadaan liitettyä helposti uusia ohjattavia sovelluksia, toteutusrajapinta & Vokottimen tarjoama rajapinta Geneerinen ToolAPI: muiden sovellusten ohjaaminen voidaan toteuttaa eri kielillä kuin itse core Wräpätty puheentunnistus: Microsoftin kilut eristetty, sisäisesti käytössä omat tietotyypit Serveriluokat kontrollipisteenä: kontrollin ohjaus, komentojen siirto käsittelijöille näiden pisteiden kautta Puheentunnistuksen seuranta tapahtumia kuuntelemalla: erillinen kuuntelija, joka muuttaa puheentunnistukselta saatuja tapahtumia sisäisten komentojen muotoon Puheen käsittely sisäisesti kokonaisina komentoina: puheentunnistukselta järjestelmään otetaan vain kokonaan tunnistettuja laillisia (ja kontekstin mukaisia) komentoja 18.3.2014 6

Laatupuu puumaisena Tilausten käsittely Järjestelmä pystyy käsittelemään 100 tilausta 5 sekunnin aikana, vasteaika jokaisella maksimissaan 0,5s suorituskyky hakukuormitus Järjestelmässä tehdään 5000 tuotehakua 3 sekunnin aikana, jokaiseen vastataan sekunnin kuluessa. laatu muunneltavuus Käyttöliittymän muutokset Weppikäyttöliittymän rinnalle toteutetaan dedikoitu Android käyttöliittymä yhdessä henkilötyökuukaudessa. Tietokannan päivittäminen Siirrytään käyttämään MySQLtietokantaa omalla tietokantapalvelimella. Toteutus yhden henkilötyökuukauden aikana. luotettavuus Turvallisuus Saavutettavuus Käyttäjätietojen varmentaminen Tietojen salaus Pääjärjestelmän vikaantuessa varajärjestelmä on käytössä maksimissaan 10 sekunnin viiveellä. Tietoja ei ole kadotettu. 18.3.2014 7

Vähemmän puumainen laatupuu 18.3.2014 8

Skenaariot Skenaario (scenario): arkkitehtuurin testitapaus, tilanne tai tapahtumasarja, joka liittyy johonkin laatuvaatimukseen. Laatupuu (utility tree): kohdejärjestelmän laatuvaatimusten asteittainen tarkennus skenaarioiksi Herkkyyspiste (sensitivity point):muutokset tämän arkkitehtuuripäätöksen suhteen voivat aiheuttaa merkittäviä muutoksia johonkin laatuominaisuuteen Tasapainopiste (tradeoff): Arkkitehtuuripäätös, joka vaikuttaa useampaan laatuominaisuuteen (eri suuntiin), moninkertainen herkkyyspiste. Riski (risk): Arkkitehtuuripäätös, joka saattaa aiheuttaa ongelmia tulevaisuudessa jonkun laatuattribuutin näkökulmasta. Turvallinen ratkaisu/ei-riski (no-risk): Arkkitehtuuripäätös, joka voi edesauttaa laatuominaisuuden toteutumisessa / jolla on tiedossa vain hyviä laatuseuraamuksia.

Skenaarioista lisää Skenaario konkretisoi laatuvaatimuksen esimerkillä. Tapahtuma sarja, joka liittyy johonkin laatuvaatimukseen. Skenaarion on oltava riittävän on täsmällinen (jotta arkkitehtuuria voidaan arvioida sitä vasten) Kirjaa skenaarioista ainakin tasapainopisteet ja riskit sekä anna koko skenaarion tarkempi selitys. Käytä myös tarkempaa arkkitehtuuripäätöskohtaista kuvausta ja huomioi mahdolliset turvalliset ratkaisut ja herkkyyspisteet. Erilaisia skenaariotyyppejä: Käyttötapausskenaariot: käyttäjä on vuorovaikutuksessa järjestelmän kanssa Kasvuskenaariot: ennakoituja/odotettavissa olevia muutoksia ja tarpeita tutkiva skenaario : odottamattomat muutokset järjestelmässä/järjestelmään, odottamattomat tilanteen järjestelmän käytön aikana 18.3.2014 10

Skenaarion rakenneesimerkki Skenaarion rakenne: Ärsyke - Ympäristö Vaste Käyttötapausskenaario: Etäkäyttäjä hakee tietokantaraportin web-käyttöliittymästä suurimman kuormahuipun aikana ja saa sen 5s kuluessa. Kasvuskenaario: Järjestelmään lisätään uusi datapalvelin latenssin vähentämiseksi 2,5s, työ tehdään 1 henkilötyöviikossa. Tutkiva skenaario: Puolet palvelimista kaatuu normaalissa käyttötilanteessa, tämä ei vaikuta järjestelmän saavutettavuuteen. 18.3.2014 11

Esimerkkiskenaario Skenaario #: 3 Skenaario: Microsoftin puheentunnistusmoottori halutaan vaihtaa Open Source sovellukseen (Sphinx) Laatuominaisuus: Muokattavuus Ympäristö: jatkokehitys Ärsyke: Halutaan lisätä rinnakkainen tai korvaava ilmainen puheentunnistusmoottori Vaste: onnistuu kahdessa henkilötyöviikossa Arkkitehtuuripäätös tasapainopiste herkkyyskohta Riski/ ei-riski Kapselointi wräpätty puheentunnistus T3 R4 Sanaston generointi kerralla R5 MVC - Säikeistys T4 R6 Puheentunnistuksen tapahtumakuuntelija R7 18.3.2014 12

jatkuu Koko skenaarion selitys: Kapseloinnin ansiosta puheentunnistusmoottori on omien rajapintojensa takana ja muualla sovelluksessa käytetään vain sovelluksen omia puheentunnistukseen liittyviä tietotyyppejä. Uuden moottorin käyttöä varten pitää luoda wräppäys/konversiot Vokottimen ja puhemoottorin tietotyyppien välille. Puheentunnistuksen tapahtumakuuntelija pitää toteuttaa Sphinxille. Jos Sphinxin tunnistusmoottorin antamat ilmoitukset poikkeavat paljon MS:n vastaavista, tapahtumankäsittely ei välttämättä toimi samalla tavalla ja myös säikeistykseen saattaa tulla muutoksia. Sanasto generoidaan valmiiksi ja valmista sanastoa poistetaan käytöstä ja otetaan käyttöön tarpeen mukaan. Tämä tarkoittaa sitä, että uudelle puhemoottorille joutuu (joutunee) tekemään oman sanastongenerointimokkulansa. Kahden viikon aikataulu on erittäin optimistinen, vaikka vaihtaminen on huomioitu arkkitehtuurissa, on työmäärä erittäin suuri varattuun aikaan nähden. Ratkaisujen analysointi: kapselointi wräpätty puheentunnistus: Kapselointi eristää puheentunnistusmoottorin muusta järjestelmästä, mutta toisaalta hidastaa suoritusta [T3]. Uusi moottori voi poiketa paljon nykyisestä moottorista, jolloin tarvitaan muutoksia myös säikeistykseen [R4]. Sanaston generointitapa: Sanaston eri osia otetaan käyttöön ja poistetaan käytöstä eri osien tunnisteiden avulla. Jos lause- ja sääntökohtaista aktivointia ja käytöstä poistoa ei ole käytössä, joudutaan koko ohjelman rakenteeseen tekemään muutoksia (tai tyytymään siihen, että koko sanasto on jatkuvasti käytössä kontekstista riippumatta). [R5] Mallin pohjalta tuotettavan sanaston toteutuksessa voinee hyödyntää osin MS:n puheentunnistussanaston tuottotapaa, sillä malli käydään läpi samaan tapaan. Puheentunnistuksen tapahtumankuuntelija: Puheentunnistusmoottorilta kuunnellaan hyväksyttyjä tunnistettuja tapahtumia ja nämä lähetetään eteenpäin tunnistettu komento viesteinä. (myös sanakohtaisesta tunnistusta ja hylättyjen komentojen ja vaihtoehtoisten komentojen tapahtumia voidaan kuunnella). Jos uuden moottorin puheentunnistustapahtumat poikkeavat paljon nykyisestä, voi tapahtumien kuunteluun perustuva lähestyminen olla mahdotonta (toteutettava esimerkiksi oma erillinen pollaukseen perustuva komentojen koostaja). Jos käyttöliittymään haluttaisiin mahdollisuus valita käytössä oleva puheentunnistusmoottori, pitäisi myös tänne tehdä muutoksia ja välittää valintatiedot muihin ohjelman osiin. (viestinvälitys, viestien käsittelijät). 18.3.2014 13