Harjoitustehtävät ja ratkaisut viikolle 48



Samankaltaiset tiedostot
Harjoitustehtävät viikolle 42

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

11. Kehysarkkitehtuurit

1 Kannat ja kannanvaihto

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

8. Kehysarkkitehtuurit

Toinen harjoitustyö. ASCII-grafiikkaa

Toisessa kyselyssä alueella on 1 ruudussa A ja 3 ruudussa B, joten suosituin ehdokas on B.

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

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Kerro kuvin 3:n uudet ominaisuudet

TIEDEPOSTERI. - Viestinnän välineenä. Marisa Rakennuskoski

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

12. Kehysarkkitehtuurit

Mitä on periytyminen?

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Hakemistojen sisällöt säilötään linkitetyille listalle.

15. Ohjelmoinnin tekniikkaa 15.1

lehtipajaan! Oppilaan aineisto

Tietotekniikan valintakoe

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

7.4 Sormenjälkitekniikka

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Ohjelmistokehykset (software frameworks)

Luento 1 Tietokonejärjestelmän rakenne

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Luento 1 Tietokonejärjestelmän rakenne

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

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

Luokka- ja oliokaaviot

Ohjelmistoarkkitehtuurit, syksy

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

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

PORTFOLIO-OHJEET. 1. Periodi. Lukuvuosi FyKeMaTT -aineet

Java-kielen perusteet

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen suunnittelu

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

OHJ-7400 Graafisen käyttöliittymän ohjelmointi, Harjoitustyö

Java-kielen perusteet

Ohjeita informaation saavutettavuuteen

TornaMarket-Metsät metsätilamarkkinointisovelluksen käyttöohje (ohje tehty PC käytölle)

Kuva 1. Jokaisen tavallisen kuvan tasotyökalussa näkyy vain yksi taso, tässä nimellä tausta.

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Ohjelmoinnin perusteet Y Python

Flash ActionScript osa 4

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

LEHDISTÖTIEDOTE. Nikon tuo markkinoille uuden sukupolven. kuvankäsittelyohjelmiston. Capture NX2: entistä tehokkaampi ja helppokäyttöisempi

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

9. Periytyminen Javassa 9.1

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

HARJOITUKSIA ios-ohjelmointiin LIITTYEN

UML-kielen formalisointi Object-Z:lla

Ohjelmistoarkkitehtuurit. Kevät

Kertausta 1. kurssikokeeseen

Harjoitustyö: virtuaalikone

Esimerkki 1: Kahviautomaatti.

ASTERI KIRJANPITO KIELIVERSION OHJE

Oulun murteessa on käytössä myös nää-pronomini, joka tarkoittaa sinä. Sää on kuitenkin enemmän käytetty.

Mainostaminen Facebookissa

Graafinen käyttöliittymä, osa 1

7. Näytölle tulostaminen 7.1

ARVO - verkkomateriaalien arviointiin

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmistokehykset (software frameworks)

Tiedotuspalvelu. Tietuekuvaus lähiosoite komponentteina (pilkottuna) Tietuekuvaus 1 (7) Tiedotuspalvelu. Julkinen - Public

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Toinen harjoitustyö. ASCII-grafiikkaa 2017

UCOT-Sovellusprojekti. Testausraportti

Harjoitustyön testaus. Juha Taina

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Uudelleenkäytön jako kahteen

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Office 365 palvelujen käyttöohje Sisällys

Johdatus ohjelmointiin

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

VERSTASTUUTTI. Tule mukaan tekemään yhdessä viestintää! O SALLISTAVAN SOSIAALITURVAN PILOTTI VIESTINTÄVERSTAS

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

ALAKOULUT 1 2lk. Lukekaa Katri Kirkkopellon Molli (Lastenkeskus 2000) ja tutkikaa tarkkaan myös teoksen kuvia.

Urapalvelut. CHEM & ENG Susanna Saarinen, koordinaattori career-tech@aalto.fi. into.aalto.fi/careerweb

Osio 4: Graafinen käyttöliittymä

11.4. Context-free kielet 1 / 17

ohjelman arkkitehtuurista.

GeoGebra-harjoituksia malu-opettajille

AGORA OLARIN KOULU ÄIDINKIELI. Euroopan Unionin Kotouttamisrahasto osallistuu hankkeen rahoittamiseen.

OULUN KAUPUNGIN KIRJALLISUUSDIPLOMI. Alakoulun tehtävät

Aasian kieliä ja kulttuureita tutkimassa. Paja

Transkriptio:

Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin tehtävä liittyy TTY:n tutkimusprojektiin. Halutessasi voit tarkistaa yksityiskohtia (esim. ratkaisujen esitystavasta) viikon 42 tehtäväpaperista, mutta tehtävä on ajateltu ratkaistavan tässä annetun informaation perusteella. Järjestelmän vaatimukset oli kuvattu seuraavasti: Älykotijärjestelmä hallinnoi viittä erilaista kotiin liittyvää järjestelmää: kahvikonetta, käyttäjärekisteriä, verhoja, lämpötilan säätelyä ja musiikkijärjestelmää. Yleisesti järjestelmän halutaan olevan muunneltava, suorituskykyinen sekä arkkitehtuuriltaan yksinkertainen. Lisäksi 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. Alla on annettu neljä arkkitehtuurimallia (merkitty A, B, C, D), joiden kaikkien oletetaan täyttävän toiminnalliset vaatimukset mutta eroavan mahdollisesti laadullisten vaatimusten osalta. Tehtävänä on asettaa nämä oman käsityksesi mukaan paremmuusjärjestykseen, ensin paras, sitten toiseksi paras jne. Perustele vastauksesi lyhyesti.

A

B

C

D 2. Oletetaan, että on olemassa Java-sovelluskehys, jonka avulla voidaan toteuttaa ekosysteemien simulointiohjelmia, missä tutkitaan erilaisten eläinpopulaatioiden käyttäytymistä. Maailma ja siinä olevat eläimet visualisoidaan sopivalla tavalla näytölle. Simulaatiossa eläimet liikkuvat, syövät toisiaan ja maailmassa olevaa muuta ravintoa, tappelevat, lisääntyvät ja kuolevat. Kehyksen käyttämisen helpottamiseksi sille päätetään tehdä DSL-tuki, so. oma sovellussuuntaunut kieli, jolla kirjoitetusta kuvauksesta voidaan generoida kehyksen päälle tarvittava sovelluskohtainen koodi. Mieti millainen tämä kieli voisi olla, ja anna sillä kirjoitettu mahdollinen esimerkkikuvaus. Kielellä on pystyttävä mm. kuvaamaan, mitä eläimet syövät, mitä tapahtuu eläimen painolle ja energiatasolle, kun se ruokailee, millaisia vuorovaikutustapoja sillä on jne. Kielen koko määrittelyä ei tarvitse täsmällisesti antaa. Millaisia laillisuustarkistuksia generaattori voisi tehdä kuvaukselle? Mitä etuja/haittoja tällaisen kuvauskielen käytöstä on verrattuna siihen, että sovelluskohtainen koodi annettaisiin suoraan Javalla. Ko. kehyksen mahdollinen (yksinkertaistettu) malli löytyy luentokalvoista (Kehykset).

3. Aktiivinen teksti tarkoittaa tekstiä, joka sisältää paitsi merkkijonoja myös erilaisia aktiivisia komponentteja; so. komponentteja, jotka reagoivat hiiren klikkaukseen erilaisin tavoin ja joilla on oma ulkoasunsa näytöllä. Aktiivista tekstiä voidaan käyttää esimerkiksi kehittyneiden tekstikäyttöliittymien ja hypertekstijärjestelmien toteutukseen. Aktiivisen tekstin komponentit (mm. merkkijonot ja aktiiviset tekstialkiot) sijaitsevat teksti-ikkunan näytöllä riveillä, joiden keskinäinen etäisyys on sama kuin rivin korkein alkio (aktiiviset tekstialkiot voivat olla eri korkuisia). Suunnittele pieni kehys, joka toteuttaa aktiivisen tekstin käsitteen antamalla käyttöön luokan, joka edustaa aktiivista tekstiä. Erikoista kehys määrittelemällä merkkijonokomponentin lisäksi painonappikomponentti, so. komponentti, jonka ulkoasu on painonappi ja joka reagoi hiiren klikkaukseen näyttämällä uudessa ikkunassa painonappia edeltävään sanaan liittyvän selityksen. Sanojen selitykset on talletettu edeltä käsin sopivaan sanakirjaan. Esitä kehyksen ja sen yllä kuvatun erikoistuksen arkkitehtuuri UML:n luokkakaaviona. Mitä luennolla esitettyä kehystyyppiä (muunneltava, koottava jne.) kehys on? 4-5. Anna Javalla sovellus (toimiva ja testattu koodi), joka tunnistaa eläimien ääniä: kun sovellukselle annetaan esimerkiksi merkkijono "hauhau", se vastaa ilmoittamalla eläimen nimen ("koira"). Oletetaan, että kukin eläinlaji kuvataan omalla aliluokallaan, joka ilmaisee eläimen käyttäytymisen, mukaan lukien sen ääntä kuvaavan merkkijonon, jonka palauttaa operaatio getsound(). Eläinaliluokalla (ja sen yliluokalla) voi tämän lisäksi olla muita operaatioita, joilla ei ole tässä merkitystä. Pyri sellaiseen arkkitehtuuriin, jossa sovelluksessa tarvittavat muutokset ovat mahdollisimman pieniä, kun uusi eläinaliluokka lisätään siihen. Onko mahdollista tehdä ratkaisua, jossa uusia eläinaliluokkia voidaan lisätä tulevaisuudessa ilman, että olemassa olevaan sovelluskoodiin tarvitsee lainkaan kajota?