Harjoitustehtävät viikolle 42

Samankaltaiset tiedostot
Harjoitustehtävät ja ratkaisut viikolle 48

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

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö 2011

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

UML- mallinnus: Tilakaavio

Viestinvälitysarkkitehtuurit

Viestinvälitysarkkitehtuurit Lähtökohta:

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

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

Tekstinkäsittely ja opinnäytetyö I sisällysluettelo ja sivunumerointi. Word 2007

Ohjelmistoarkkitehtuurit kevät

Harjoitustyö Ohjaaja: Outi Räihä TE213. OHJ-3100 Ohjelmien ylläpito ja evoluutio. Yleiskatsaus.

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Ohjelmistoarkkitehtuurit. Syksy 2008

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Hirviö. Design Patterns

SiMAP - lämmityksen ohjauskeskus. Contents

Analyysi on tulkkaamista

Ohjelmistoarkkitehtuurit

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

Ohjelmistojen mallintaminen, kesä 2010

ohjelman arkkitehtuurista.

Ohjelmistoarkkitehtuuri

1. Tarkastellaan seuraavaa kaaviota

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit. Syksy 2010

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

Darwin: Tutkimusprojektin esittely

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

LUMECOM. Jyrsinsovellus. 1. Asennusohje 2. Käyttöohje

Ohjelmistoarkkitehtuurit. Kevät

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät

Ohjelmistojen mallintaminen, kesä 2009

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Olio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä

LUMECOM. Jyrsinsovellus. 1. Asennusohje 2. Käyttöohje 3. Käyttöönottokortti

Käyttöliittymän muokkaus

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

STATUSTEN JA HOITOJAKSOJEN KORJAUS

VH5, JOTU, MagicDraw:n käyttö

Ohjelmistotekniikan menetelmät, kesä 2008

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi

Hallintaliittymän käyttöohje

Riikka Marttinen, Helsingin Tikoteekki, Windows 7:n helppokäyttötoiminnot

UML:n yleiskatsaus. UML:n osat:

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

2 Ohjelmistoarkkitehtuurien kuvaus

Tieliikenteen tilannekuva Valtakunnalliset tiesääpäivät Michaela Koistinen

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö. Ohjaaja: Outi Sievi-Korte TE213 Päivystys ti klo 14-16

FORMATIIVINEN ARVIOINTI

6. Arkkitehtuurityylit

9. Muunneltavuuden hallinta

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Palveluperustaiset arkkitehtuurityylit

Revu Kurssi: Merkkausten tallennus työkalulaatikkoon

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Arkkitehtuuri- ja suunnittelumalli

S11-09 Control System for an. Autonomous Household Robot Platform

Tulosta yrityksesi tuloslaskelma ja tase myöhempää tarkastusta varten. Ota varmuuskopio tilanteesta ennen tilimuunnosta.

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

TOIMINNALLINEN MÄÄRITTELY MS

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Fixcom Webmail ohje. Allekirjoitus. Voit lisätä yhden tai useamman allekirjoituksen.

Ohjelmistoarkkitehtuurit. Syksy 2007

Tietokannan luominen:

KÄYTTÖOHJE BONECO P340

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Ohjelmistoarkkitehtuurit kevät

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

Tilastokeskuksen rajapintapalveluiden käyttöönotto ArcGISohjelmistossa

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

Autentikoivan lähtevän postin palvelimen asetukset

erasmartcard-kortinlukijaohjelmiston käyttöohje

PR SARJA ASENNUS JA KYTKENTÄ

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

Octave-opas. Mikä on Octave ja miksi? Asennus

Sport In The Box Käyttöohje

Päivitysohje Opus Dental

Harjoitustyö Case - HelpDesk

CipherLab CPT-8001L -tiedonkeruupäätteen käyttö Ecomin kanssa

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Tietojen haku ja raportit

Reolink WiFi valvontakameran käyttöohje

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2

Webforum. Version 15.3 uudet ominaisuudet. Päivitetty:

Uudelleenkäytön jako kahteen

Luokka- ja oliokaaviot

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

6. Arkkitehtuurityylit

Käyttöohje Teknocalor MagiCAD - liitosohjelma

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

Transkriptio:

Harjoitustehtävät viikolle 42 1. Suunnittele pieni työkaluohjelma, joka laskee keskiarvon lukujoukosta. Käyttöliittymä koostuu perusikkunan lisäksi yhdestä valikosta, jossa on kaksi komentoa: Start (aloita lukusekvenssi) tuottaa dialogi-ikkunan, jossa käyttäjä voi antaa uusia lukuja (OK ja Cancel napeilla), ja Stop, joka tyhjää luvut ja asettaa työkalun alkutilaan. Toistaiseksi annettujen lukujen keskiarvo näkyy aina tekstikentässä ikkunan yläpalkissa. Suunnittele ohjelma MVC-arkkitehtuurityylin mukaisesti, ja anna sille luokkakaavio (luokat + rajapinnat operaatioineen). Merkkaa kaavioon, mitkä osat vastaavat mallia (Model), mitkä näkymää (View), ja mitkä ohjainta (Controller). Anna myös sekvenssikaavio, joka kuvaa tyypillistä käyttötilannetta. 2. Tarkastellaan tulevaisuuden kotirobotin ohjausjärjestelmää. Robotti on ihmisen näköinen laite, joka pystyy suorittamaan fyysisesti vaativia tehtäviä. Robottiin kuuluu keskuskontrolli sekä useita erityistarkoituksiin olevia ohjausyksiköitä, kuten tasapainon ylläpito, raajojen ohjaus, audiovisuaalinen havainnointi. Lisäksi järjestelmään kuuluu lukuisia sensoreita (lämpötila, kosketus, haju ym.) sekä motoriikan ajureita. Robotille on esiohjelmoituna useita erilaisia työtehtäviä, jotka aktivoidaan sopivilla komennoilla. Mitä luennolla esitettyjä sulautettujen ohjausjärjestelmien suunnittelumalleja soveltaisit tämän järjestelmän ohjelmistoarkkitehtuurin suunnittelussa, mihin tarkoitukseen ja miksi? 3. Tämä tehtävä liittyy TTY:llä käynnissä olevaan tutkimusprojektiin, jossa verrataan käsin tehtyjä ja automaattisesti tuotettuja arkkitehtuurikuvauksia. Tehtävän asetus on tästä syystä pitkähkö, mutta itse tehtävä ei ole välttämättä vaikea. Tehtävä katsotaan kolmen tehtävän arvoiseksi viikkoharjoituspisteytyksessä. TTY:n opiskelijoiden toivotaan tekevän tehtävän MagicDrawlla, joka on TTY:n opiskelijoiden saatavilla oleva piirtotyökalu, täydentämällä tehtävänannossa olevaa kaaviota annetun ohjeen mukaisesti. Kaaviotiedosto löytyy kurssin viikkoharjoitussivuilta. Jos MD:tä ei ole mahdollista käyttää, voi tehtävän tehdä jollakin muulla työkalulla tai käsin, mutta tällöin joutuu vastaukseen kopioimaan annettua oliomallia. Tehtävän määrittely Älykotijärjestelmä hallinnoi viittä erilaista kotiin liittyvää järjestelmää: kahvikonetta, käyttäjärekisteriä, verhoja, lämpötilan säätelyä ja musiikkijärjestelmää. Olioanalyysin avulla on saatu järjestelmälle kuvassa 1 annettu oliomalli luokkakaaviona. Tätä oliomallia on tarkoitus käyttää varsinaisen arkkitehtuurisuunnittelun lähtökohtana. Operaatioista tiedetään niiden tarvitsemien parametrien arvioitu koko sekä niiden arvioitu käyttöfrekvenssi. Operaatiot on kummankin ominaisuuden osalta jaettu kolmeen luokkaan: Low (L), Medium (M), High(H). Mikäli vähintään toinen operaatioon liittyvistä arvioista kuuluu luokkaan High, on arvoluokat merkattu oliomalliin operaation perään (parametrin koko, käyttöfrekvenssi). Esimerkiksi vastuulla registryadmin (M, H) on keskimääräinen parametrien koko, mutta käyttöfrekvenssi on huomattavan suuri. Lisäksi Taulukko 1 esittää yksittäisten operaatioiden väliset riippuvuudet. Operaatiot on jaoteltu luokittain, ja notaatio a -> b tarkoittaa, että operaatio a käyttää operaatiota b. Mikäli b on eri luokassa kuin a, on b:n luokka merkitty erikseen: b(c) tarkoittaa, että b kuuluu luokkaan C. Taulukko voi antaa joissakin tapauksissa informaatiota arkkitehtuuriratkaisujen tueksi. Erityisiä laatuvaatimuksia Erityisten muunneltavuusvaatimusten selvittämiseksi eri osapuolia on haastateltu. Kyseisen sovellusalan asiantuntijoiden mukaan on erittäin todennäköistä, että tapa, jolla verhojen sijainti lasketaan, halutaan vaihtaa. Myös vaihtoehtoisen esitystavan lisääminen musiikkilistan näyttämiseen on todennäköisesti edessä. On myös hyvin mahdollista, että halutaan lisätä toinen tapa mitata auringonvaloa. Kahvikoneen tilan näyttäminen halutaan melko varmasti toteuttaa toisin; toinen, mutta hieman epätodennäköisempi vaihtoehto on, että kaksi eri toteutusta ovat rinnakkain. Pieni mahdollisuus on, että kaiuttimen valinta halutaan toteuttaa toisin. Melko

epätodennäköistä, mutta kuitenkin mahdollista on myös, että käyttäjärekisterin asettaminen, sekä vedenkulkuun liittyvät toiminnot korvataan täysin toisilla operaatioilla. Käyttäjät puolestaan haluavat ennen kaikkea, että musiikkilistan esitystapa ja verhonsijainnin laskenta ovat vaihdettavissa. Lähes yhtä tärkeää on, että huoneen lämpötilan laskentaan ja musiikkilistan hallinnointiin voidaan vaikuttaa. Mahdollisuus vaikuttaa kahvin laadun ja määrän valintatapaan olisi hienoa, mutta todennäköisesti näille muutoksille ei ole suurta tarvetta. Tehtävä Tehtävänä on näiden esitietojen perusteella suunnitella arkkitehtuuri annetulle älykotijärjestelmälle täydentämällä oliomallia tietyillä arkkitehtuuriratkaisuilla. Ratkaisuina on kuitenkin käytettävissä ainoastaan seuraavat: viestinvälitystyyli, asiakas-palvelintyyli, Strategia, Sovitin (Adapter), Metodirunko (Template Method), Fasaadi (Facade) ja Välittäjä (Mediator). Mitä hyvänsä näistä voi olla käyttämättä tai käyttää yhden tai useamman kerran. Rajapintojen suunnittelua ei tarvitse huomioida; oletetaan, että se tehdään erikseen jollakin järkevällä tavalla. Arkkitehtuurin laatua arvioitaessa tulee kiinnittää yleisesti huomiota muunneltavuuteen, suorituskykyyn sekä yksinkertaisuuteen (ts. arkkitehtuurista ei saisi tulla kovin monimutkainen). Ratkaisun antamistapa on kuvattu tarkemmin alla. Alla on annettu oliomalli luokkakaaviona.

Taulukko 1. Operaatioiden käyttöriippuvuudet UserInterface provideui -> activateuserinregistry (UserRegistry) provideui -> changepassword(userregistry) provideui -> removeuserfromregistry (User Registry) provideui -> setuserregistry (User Registry) provideui -> changetemperaturetocelsius (TemperatureRegulation) provideui -> setroomtemperature (TemperatureRegulation) provideui -> playchosenmusic (MusicFiles) provideui -> stopmusicplay (MusicFiles) provideui -> rundrapemotor (DrapeDriver) provideui -> stopdrapemotor (DrapeDriver) provideui -> choosecoffeequality (CoffeeMachine) provideui -> choosecoffeeamount (CoffeeMachine) provideui -> startcoffeemachine (CoffeeMachine) provideui -> stopcoffeemachine (CoffeeMachine) UserManagement registryadmin -> passwordcheck registryadmin -> userdb changepassword -> passwordcheck changepassword -> userdb activateuserinregistry -> registryadmin activateuserinregistry -> addusertoregistry activateuserinregistry -> userdb addusertoregistry -> registryadmin addusertoregistry -> userdb setuserregistry -> registryadmin setuserregistry -> userdb removeuserfromregistry -> registryadmin removeuserfromregistry -> userdb passwordcheck -> userdb CoffeeMachine showcoffeemachinestatus -> coffeestate choosecoffeequality -> calculatecoffeewateramount choosecoffeequality -> coffeestate choosecoffeeamount -> calculatecoffeewateramount choosecoffeeamount ->coffeestate calculatecoffeewateramount -> setcoffee calculatecoffeewateramount -> setwater setcoffee -> addcoffeeportion setcoffee -> showcoffeemachinestatus setcoffee -> coffeestate setwater -> measurewateramount (WaterControl) setwater -> showcoffeemachinestatus setwater -> coffeestate addcoffeeportion -> coffeestate startcoffeemachine -> setcoffeemachinewarm startcoffeemachine -> showcoffeemachinestatus setcoffeemachinewarm -> coffeestate stopcoffeemachin -> ringbuzzer stopcoffeemachine -> coffeestate ringbuzzer -> coffeestate

WaterControl measurewateramount -> openwater measurewateramout -> closewater openwater -> waterstate closewater -> waterstate Drape Driver rundrapemotor -> calculateoptimaldrape (DrapeRegulation) rundrapemotor -> drapemotorstate stopdrapemotor -> calculateoptimaldrape (Drape Regulation) stopdrapemotor -> drapemotorstate Drape Regulation calculateoptimaldrape -> measuresun calculateoptimaldrape -> measuredrapeposition measuresun -> drapestate measuredrapeposition -> drapestate showdrapeposition -> measuredrapeposition showdrapeposition -> drapestate Temperature Regulation setroomtemperature -> measureroomtemperature setroomtemperature -> setheateron (HeaterDriver) setroomtemperature -> setheateroff (HeaterDriver) setroomtemperature -> temperaturestate measuretemperature -> temperaturestate changetemperaturetocelsius -> measureroomtemperature HeaterDriver setheateron -> heaterstate setheateroff -> heaterstate Music System adminmusiclist -> adminmusicfile (MusicFiles) adminmusiclist -> musicinfo showmusiclist -> adminmusiclist showmusiclist -> musicinfo pickmusic -> showmusiclist pickmusic -> musicinfo musictospeakers -> choosespeaker (SpeakerDriver) musictospeakers -> musicinfo MusicFiles adminmusicfiles -> musicdb playchosenmusic -> adminmusicfile playchosenmusic -> musictospeakers (MusicSystem) playchosenmusic -> pickmusic (MusicSystem) playchosenmusic -> musicdb stopmusicplay -> adminmusicfile SpeakerDriver choosespeaker -> speakerstate MainController

controller -> registryadmin (UserRegistry) controller -> setroomtemperature (TemperatureRegulation) controller -> adminmusiclist (MusicSystem) controller -> showdrapeposition (DrapeRegulation) controller -> showcoffeemachinestatus (CoffeeMachine) Tehtävän ratkaisun antaminen Tehtävän ratkaisu annetaan muuttamalla alkuperäistä annettua luokkakaaviota lisäämällä siihen arkkitehtuuriratkaisut alla ohjeistetussa muodossa. Jos mahdollista, käytä MagicDrawta. Lisää lopuksi kaavioon sopivalla tavalla (esim. kommenttilaatikko) tieto siitä, kuinka paljon aikaa likimain (n. 10min tarkkuudella) käytit tehtävään. Tämän esitystavan tarkoituksena on ilmaista ko. ratkaisu ja mihin se kohdistuu, mutta ei ratkaisun yksityiskohtia. Sovitin Viestinvälitysarkkitehtuuri

Fasaadi Välittäjä

Asiakas-palvelin arkkitehtuuri Strategia Template Method