Paatti-sovellusprojekti

Tapio KerÃnen Toni Salminen Jari Salokangas Lauri Satokangas

Sovellusraportti

Julkinen Versio 0.0.4 14.5.2012

Jyväskylän yliopisto

Tietotekniikan laitos

Jyväskylä

Hyväksyjä  Päivämäärä Allekirjoitus  Nimenselvennys

Projektipäällikkö __.__.2012
Tilaaja  __.__.2012
Ohjaaja  __.__.2012

Paatti-projekti  Sovellusraportti 0.0.4  Julkinen

Tietoa dokumentista

Tekijät:

  • Tapio KerÃnen (TK) t.tapio.keranen@student.jyu.fi  040-8464981
  • Toni Salminen (TS) toni.a.j.salminen@student.jyu.fi  040-5378086
  • Jari Salokangas (JS) jari.p.t.salokangas@student.jyu.fi  040-8652014
  • Lauri Satokangas (LS) lauri.n.satokangas@student.jyu.fi  040-5735358

Dokumentin nimi: Paatti-projekti, Sovellusraportti Sivumäärä: ??

Tiedosto: paatti_sovellusraportti_0.1.0.tex

Tiivistelmä: Paatti-projekti toteuttaa JyvÃskylÃn yliopiston psykologian laitokselle prototyypin tietojÃrjestelmÃstÃ, jolla kuntoutetaan iÃkkÃitÃ, mielenterveyspotilaita ja tyÃ¶uupumuksesta kÃrsiviÃ sekÃ tuetaan kyseisiin aihealueisiin liittyvÃÃ tutkimusta. TietojÃrjestelmÃssÃ on kaksi kÃyttÃ¶liittymÃÃ, joista tutkijan kÃyttÃ¶liittymÃllÃ hallitaan kuntoutettavien kuntoutusohjelmia sekÃ kuntoutettavan kÃyttÃ¶liittymÃllÃ kuntoutettava suorittaa tutkijan laatimaa kuntoutusohjelmaa. Sovellusraportissa kuvataan projektissa toteutettu tietojÃrjestelmÃn prototyyppi niin kÃyttÃ¶liittymÃn, rakenteen, ohjelmointikÃytÃnteiden sekÃ tavoitteiden toteutumisen osalta. Avainsanat: Arkkitehtuuri, jatkokehitys, komponentit, kÃytÃnteet, kÃyttÃ¶liittymÃ, kÃyttÃ¶ohje, olioluokat, rajapinnat, rakenne, sovellus, sovellusprojekti, tavoitteet, testaus, tietokanta

Muutoshistoria

Versio PÃivÃmÃÃrÃ Muutokset  TekijÃt

0.0.1 11.5.2012 Dokumentti luotu ja pohjaksi otettu projektisuunnitelman pohja.

JS

0.0.2 12.5.2012 Muokattu avainsanoja, lukuja ”Johdanto” ja ”OhjelmointikÃytÃnteet” sekÃ kirjoitettu luvut ”KÃyttÃ¶liittymÃ (tutkija)”, ”KÃyttÃ¶liittymÃ (kuntoutettava)”, ”Sovelluksen rakenne” (osittain), ”Tavoitteiden toteutuminen” (osittain) sekÃ ”Yhteenveto”.

JS

0.0.3 13.5.2012 LisÃtty kuvat lukuihin 3.1, 4.1, 5.1 ja 5.4, kirjoitettu lukuja ”Sovelluksen tietokanta”, ”Tunnetut puutteet ja virheet” ja ”Jatkokehitysideat” sekÃ muokattu lukua ”Toteutusratkaisujen kehittyminen”.

JS

0.0.4 14.5.2012 LisÃtty kuvat lukuihin 4.3 ja 4.4 sekÃ muokattu lukuja ”Sovelluksen tietokanta”, ”Tunnetut puutteet ja virheet” ja ”Jatkokehitysideat”.

JS

0.1.0 1?.5.2012 Toimitettu versio ohjaajan tarkastettavaksi.

JS

Tietoa projektista

Paatti-projekti suunnittelee ja toteuttaa JyvÃskylÃn yliopiston psykologian laitokselle prototyypin tietojÃrjestelmÃstÃ, jolla tuetaan vanhusten, mielenterveyspotilaiden ja tyÃ¶uupumuksesta kÃrsivien itsenÃistÃ elÃmÃÃ ja kuntoutumista, sekÃ tuetaan kyseisiin aihealueisiin liittyvÃn tutkimuksen tekemistÃ.

Tekijät:

• Tapio KerÃnen (TK) t.tapio.keranen@student.jyu.fi  040-8464981
• Toni Salminen (TS) toni.a.j.salminen@student.jyu.fi  040-5378086
• Jari Salokangas (JS) jari.p.t.salokangas@student.jyu.fi  040-8652014
• Lauri Satokangas (LS) lauri.n.satokangas@student.jyu.fi  040-5735358

Tilaaja:

• Jukka Kaartinen  jukka.kaartinen@jyu.fi  0400-248148

• PÃivi Lappalainen  paivi.k.lappalainen@psyka.jyu.fi  040-8054192
• Raimo Lappalainen  raimo.lappalainen@psyka.jyu.fi  050-4432349
• Heikki Lyytinen  heikki.lyytinen@psyka.jyu.fi  050-5524892

Ohjaajat:

• Matti Lehtinen matti.k.lehtinen@jyu.fi 041-4564118
• Jukka-Pekka Santanen santanen@mit.jyu.fi  040-8053299

• Outa Valkama  outa.j.valkama@gmail.com  045-3490910

Yhteystiedot:

• SÃhkÃ¶postilistat:

                     paatti@korppi.jyu.fi,
                     paatti_opetus@korppi.jyu.fi

• SÃhkÃ¶postiarkistot:

                     https://korppi.jyu.fi/list-archive/paatti/,
                     https://korppi.jyu.fi/list-archive/
                     paatti_opetus/

• TyÃ¶huone:  Agora C222.2, puh. 040-8053308

iv

Paatti-projekti  Sovellusraportti 0.0.4  Julkinen

Sisältö

vi

1 Johdanto

Paatti-projekti toteuttaa Sovellusprojekti-kurssilla kevÃÃllÃ 2012 JyvÃskylÃn yliopiston psykologian laitokselle prototyypin tietojÃrjestelmÃstÃ, jolla tuetaan kuntoutettavien itsenÃistÃ elÃmÃÃ ja kuntoutumista sekÃ tutkijoiden tekemÃÃ tutkimusta. Kuntoutettaviin kuuluu muun muassa iÃkkÃitÃ, tyÃ¶uupumuksesta kÃrsiviÃ ja mielenterveyspotilaita. TietojÃrjestelmÃllÃ voidaan tukea tutkimusta ja parantaa kuntoutettavien hyvinvointia monin eri tavoin.

TietojÃrjestelmÃssÃ tutkija luo tutkimuksiin kuntoutettavista ryhmiÃ, joille mÃÃritetÃÃn omat kuntoutusohjelmat. Kuntoutusohjelmat sisÃltÃvÃt aikataulutettuja tapahtumia, jotka sisÃltÃvÃt tehtÃviÃ. YksittÃinen tehtÃvÃ voi sisÃltÃÃ tekstiÃ, kuvan, videon tai ÃÃnitallenteen. TehtÃvÃt voivat olla joko kysymyksen tai ohjeen muodossa. Tutkija voi sisÃllyttÃÃ tapahtumaan myÃ¶s hÃlytystehtÃvÃn, joka ilmoittaa jÃrjestelmÃn kautta, jos kuntoutettava vastaa tietyllÃ tavalla. HÃlytystehtÃvÃÃ voi kÃyttÃÃ esimerkiksi kysymyksissÃ, jotka koskevat potilaan itsetuhoisuutta. Kuntoutettavia siirretÃÃn ryhmÃstÃ toiseen edistymisen mukaan joko automaattisesti tai tutkijan toimesta. Kuntoutettava voi olla monessa ryhmÃssÃ, jolloin hÃn suorittaa useampaa kuntoutusohjelmaa samanaikaisesti. Tutkija pystyy seuraamaan kuntoutettavan tai ryhmÃn edistymistÃ omasta kÃyttÃ¶liittymÃstÃÃn ja antamaan heille palautetta jÃrjestelmÃn kautta. TietojÃrjestelmÃn tietokantaan kerÃÃmÃÃ tietoa saa myÃ¶s siirrettyÃ toisiin jÃrjestelmiin.

Kuntoutettava saa muistutuksia mobiililaitteessa kÃyttÃmÃÃnsÃ WWW-sovellukseen kuntoutusohjelmaan liittyvistÃ tapahtumista. Tapahtumat voivat olla esimerkiksi liikuntaharjoitteita, rentoutusharjoitteita tai lÃÃkkeiden ottamisen muistutuksia. WWW-sovelluksella voidaan myÃ¶s tallentaa tapahtuman aikana anturidataa, kuten kiihtyvyysanturin tai kameran dataa. Kuntoutettavat voivat myÃ¶s kÃyttÃÃ jÃrjestelmÃÃ pÃivÃkirjana, johon he voivat tehdÃ merkintÃ¶jÃ kirjoittamalla, ottamalla valokuvia, ÃÃnittÃmÃllÃ tallenteita tai kuvaamalla videoita. JÃrjestelmÃn kautta kuntoutettava voi myÃ¶s lÃhettÃÃ tutkijoille viestejÃ.

Sovellusraportissa kuvataan, kuinka vaatimusmÃÃrittelyn [?] toiminnalliset vaatimukset toteutettiin ohjelmallisesti. LisÃksi tÃssÃ raportissa kuvataan sovelluksen kÃyttÃ¶liittymiÃ, toteutuksen sisÃistÃ rakennetta ja yhteyksiÃ tiedostoihin, puutteellisia toteutusratkaisuja, suoritettuja testauksia sekÃ jatkokehitysideoita. Projektin tuloksia, kÃytÃnteitÃ, tehtÃvien tyÃ¶mÃÃriÃ, tyÃ¶njakoa, aikataulutusta, sekÃ riskejÃ ja muita projektin lÃpivientiin liittyviÃ asioita kÃsitellÃÃn projektiraportissa [6].

Luvussa 2 kuvataan aihealueeseen ja sovellukseen liittyvÃt termit ja niiden merkitys. Luvuissa 3 ja 4 kuvataan tutkijan ja kuntoutettavan kÃyttÃmien sovellusten kÃyttÃ¶liittymien nÃkymÃt ja toiminnot. Luvussa 5 kuvataan jÃrjestelmÃn rakenne ja toteutusratkaisuja. Luvussa 6 kuvataan projektin ohjelmointikÃytÃnteet. Luvussa 6.5 kuvataan projektin testauskÃytÃnteet ja testauksen tulokset. Luvussa 7 kuvataan projektin tavoitteiden toteutumista, jÃrjestelmÃn tunnettuja virheitÃ ja puutteita sekÃ projektin aikana esiintulleita jatkokehitysideoita. Luvussa 8 sisÃltÃÃ kÃyttÃ¶ohjeita sovelluksen yllÃpitÃjille.

Paatti-projekti  Sovellusraportti 0.0.4  Julkinen

2 Termit

Luvussa kuvataan projektissa kÃytettÃviÃ aihealueen termejÃ sekÃ tekniikoita ja kehitysvÃlineitÃ.

2.1 Aihealueen termit

Projektin aihealueen termejÃ ovat seuraavat:

Fyysinen aktiivisuus viittaa kuntoutettavan harrastamaan liikunnan mÃÃrÃÃn. HÃlytystehtÃvÃ on tehtÃvÃtyyppi, joka lÃhettÃÃ jÃrjestelmÃn kautta vies-

tin toiselle kÃyttÃjÃlle.

Interventio on psykologisen tiedon, menetelmÃn ja osaamisen avulla ta-

pahtuva vaikuttaminen.

Kuntoutettava on tietojÃrjestelmÃn kÃyttÃjÃ, joka suorittaa kuntoutusoh-

jelmia.

Kuntoutusohjelma on tutkijan ryhmÃlle tai kÃyttÃjÃlle laatima kokonaisuus

aikataulutettuja tapahtumia.

KÃyttÃjÃrooli on kÃyttÃjÃn kÃyttÃ¶oikeuksia tietojÃrjestelmÃssÃ kuvaa-

va rooli. NiitÃ ovat mm. kuntoutettava ja tutkija. 1

Mobiililaite on Ãlypuhelin tai sormitietokone. Metatieto on kuvailevaa tietoa tiedosta, jota hyÃ¶dynnetÃÃn tiedon

yksilÃ¶innissÃ ja haussa.

Ohje on tehtÃvÃÃn liittyvÃ kuvaus teksti-, ÃÃni-, kuva- tai vi-

deomuodossa.

Omainen on kÃyttÃjÃ, jolla on oikeus seurata kuntoutettavan edisty-

mistÃ ja aktiivisuutta.

Profiiliviesti on jÃrjestelmÃn kautta lÃhetettÃvÃ viesti. RyhmÃ on kÃyttÃjistÃ koostuva kokonaisuus, jolle mm. voidaan laa-

tia kuntoutusohjelma.

3(??)

Paatti-projekti  Sovellusraportti 0.0.4  Julkinen

Suorite on tehtÃvÃn suorittamisesta tietokantaan tallennettu data. Tapahtuma on tutkijan laatima tehtÃvien kokonaisuus, joka liitetÃÃn osak-

si kuntoutusohjelmaa.

TehtÃvÃ on tapahtuman sisÃllÃ oleva yksittÃinen tehtÃvÃ, joka voi

sisÃltÃÃ mm. tekstiÃ, ÃÃntÃ, kuvan tai videon.

Toimintakyky on kuntoutettavan kyky tehdÃ hÃnelle hyÃ¶dyllisiÃ asioita. Tutkija on kÃyttÃjÃ, joka laatii kuntoutusohjelmia kuntoutettaville

ja seuraa niiden toteutumisia.

Tutkijan kÃyttÃ¶liittymÃ on kÃyttÃ¶liittymÃ, jolla tutkija luo tapahtumia, aikatauluttaa tapahtumia, hallitsee kÃyttÃjien ja ryhmien tietoja sekÃ muodostaa suoritteista erilaisia raportteja.

Tutkimus on samaan tutkimusaiheeseen tai -kohteeseen liittyvien ryhmien kokonaisuus.

2.2 VaatimusmÃÃrittelyn termit

VaatimusmÃÃrittelyssÃ esiintyviÃ termejÃ ovat seuraavat:

Etenemisvaihtoehto on monivalintatehtÃvÃn yksi valinta. HÃlytyskomponentti on tehtÃvÃ, joka lÃhettÃÃ profiiliviestin komponentin

asetuksiin mÃÃritetyille henkilÃ¶ille.

Kotoistus on toimi, jolla tietojÃrjestelmÃ kÃÃnnetÃÃn vieraalle kie-

lelle.

KÃyttÃjÃprofiili on jÃrjestelmÃssÃ olevan kÃyttÃjÃn profiili, joka sisÃltÃÃ

tunnistetietoja ja kÃyttÃ¶oikeuksia.

MediasisÃltÃ¶ koostuu tietojÃrjestelmÃssÃ olevista multimediatiedostois-

ta, joita voidaan sisÃllyttÃÃ tehtÃviin.

Muistutus huomauttaa kÃyttÃjÃÃ tapahtuneesta asiasta. Muistutus voi

olla ÃÃni-, vÃrinÃ- ja tekstimuodossa. 4(??)

SisÃltÃ¶komponentti on tehtÃvÃ, joka esittÃÃ kÃyttÃjÃlle informaatiota, kuten tekstiÃ, ÃÃntÃ, valokuvan tai videon.

SyÃ¶tekomponentti on tehtÃvÃ, joka tallentaa jÃrjestelmÃÃn kÃyttÃjÃn antamaa informaatiota, kuten tekstiÃ, ÃÃntÃ, valokuvan tai videon.

Tapahtumamuokkain on tyÃ¶kalu tapahtuman laatimiseen.

Tapahtumatyyppi on tapahtumalle asetettu tyyppi, jolla tapahtuman sisÃltÃ¶ voidaan tunnistaa. NiitÃ voivat olla mm. liikunta- tai rentoutustapahtumat.

Valintakomponentti on tehtÃvÃ, johon kÃyttÃjÃ vastaa valitsemalla vaihtoehdon.

2.3 Tekniikat ja kehitysvÃlineet

Dokumentissa esiintyviÃ tekniikoita ja kehitysvÃlineitÃ ovat seuraavat:

CSS on WWW-dokumenteille kehitetty tyylikieli.

FreeMind on ajatuskarttasovellus.

GanttProject on ajan- ja resurssienhallintaohjelma projekteille.

Git on hajautettu versiohallintajÃrjestelmÃ.

HTML5 on uusi versio WWW-sivujen tekemiseen kÃytetystÃ HTMLkuvauskielestÃ.

JavaDoc on ohjelma, jonka avulla Javan lÃhdekoodista voidaan generoida luokkadokumentaatio.

JavaScript on WWW-ympÃristÃ¶ssÃ kÃytettÃvÃ komentosarjakieli, jolla voidaan mm. lisÃtÃ WWW-sivuille dynaamista toiminnallisuutta.

jQuery on kaikille selaimille tarkoitettu ilmainen ja avoimen lÃhdekoodin lisenssin alainen JavaScript-kirjasto.

Paatti-projekti  Sovellusraportti 0.0.4  Julkinen

L^{A}TEX on ladontaohjelmisto. LÃhdekoodi on tekstimuotoista ohjelmointikielistÃ listausta. NetBeans on integroitu ohjelmointiympÃristÃ¶ mm. Java- ja JavaScript-

ohjelmointikielille.

OpenOffice.org on avoimeen lÃhdekoodiin perustuva toimisto-ohjelmisto. PDF on ohjelmistoriippumaton siirrettÃvÃ tiedostomuoto doku-

menteille.

Vaadin on Java-sovelluskehitysympÃristÃ¶ WWW-sovellusten luo-

miseen.

YouSource on Git-versiohallintaohjelmistoa tukeva lÃhdekoodien julkistusjÃrjestelmÃ, jota kÃytetÃÃn WWW-kÃyttÃ¶liittymÃllÃ.

3 KÃyttÃ¶liittymÃ (tutkija)

Luvussa esitellÃÃn pÃÃosin tutkijan kÃytettÃvÃksi toteutetun sovelluksen kÃyttÃ¶liittymÃn eri nÃkymÃt sekÃ niihin liittyvÃt toiminnot ja niiden vÃliset suhteet.

3.1 Sovelluksen nÃkymÃkartta

Kuvassa ??havainnollistetaan sovelluksen nÃkymien vÃliset suhteet nÃkymÃkarttana. Kappaleen muissa alaluvuissa kuvataan kunkin nÃkymÃn toiminnallisuus ja yhteydet muihin nÃkymiin.

Kuva 3.1: Sovelluksen nÃkymÃkartta.

Tutkijan kÃyttÃ¶liittymÃn nÃkymÃt ovat

• Oma sivu -nÃkymÃ (pÃÃnÃkymÃ),

• kÃyttÃjien hallinta,

• ryhmien hallinta,

• tutkimusten hallinta,

• kuntoutusohjelmien luonti ja muokkaus,

• tapahtumien luonti ja muokkaus,

• multimediatiedostojen lataus ja esikatselu (toteuttamatta),

• raporttien luonti (toteuttamatta) sekÃ

• ohjenÃkymÃ (toteuttamatta).

3.2 Sovelluksen nÃkymien rakenne

Sovelluksen toiminnallisuus on sijoitettu vÃlilehtien sisÃÃn. TÃmÃ vÃlilehtiratkaisu mahdollistaa sulavan siirtymisen nÃkymÃstÃ toiseen. VÃlilehtien vÃlillÃ siirtyminen tapahtuu pÃÃosin ylÃreunan vÃlilehtikuvakkeiden kautta, mikÃ nÃkyy jokaisessa nÃkymÃssÃ ylÃreunassa. Muista navigointimahdollisuuksista nÃkymien vÃlillÃ on mainintoja seuraavissa kappaleissa.

Sovelluksen pÃÃnÃkymÃn rakenne eroaa ulkoasultaan muista nÃkymistÃ, sillÃ pÃÃnÃkymÃssÃ ei luoda tai muokata jÃrjestelmÃn tietokannan tietoja, vaan pÃÃnÃkymÃ toimii ensisijaisena informaatiovirtana sovelluksen kÃyttÃjÃlle. Muiden nÃkymien rakenne on ulkoasultaan samanlainen. Vasemmalla puolella ruutua on hakukomponentti, joka hakee tiettyyn nÃkymÃÃn liittyviÃ tietoja. Esimerkiksi kÃyttÃjien hallintanÃkymÃssÃ kyseinen hakukomponentti hakee tietokannasta jÃrjestelmÃssÃ olevia kÃyttÃjiÃ. NÃkymien oikealla puolella on vÃlilehti, jossa nÃytetÃÃn haettuun tietokokonaisuuteen liittyviÃ tietoja ja jossa voidaan muokata kyseiseen tietokokonaisuuteen liittyviÃ tietoja.

3.3 Sovelluksen pÃÃnÃkymÃ

Sovelluksen pÃÃnÃkymÃnÃ toimii Oma sivu -nÃkymÃ, jonka tarkoituksena on nÃyttÃÃ tutkijalle ensiarvoista tietoa kuntoutettavista. NÃkymÃ myÃ¶s huomauttaa tutkijalle, jos hÃnellÃ on jokin asia jÃÃnyt kesken hÃnen kirjautuessaan ulos jÃrjestelmÃstÃ. Kyseinen nÃkymÃ avautuu aina ensimmÃisenÃ, kun sovellukseen kirjaudutaan sisÃÃn. TÃmÃn nÃkymÃn kautta kirjaudutaan myÃ¶s ulos jÃrjestelmÃstÃ.

Kyseiseen nÃkymÃÃn liittyviÃ toiminnallisuuksia ei toteutettu projektin aikana. Uloskirjautumisen sijainnin muuttamisesta ja muista jatkokehitysideoista on mainintoja kappaleessa 8.4.

3.4 KÃyttÃjien hallinta

KÃyttÃjien hallintanÃkymÃssÃ tutkija voi luoda uusia kÃyttÃjiÃ jÃrjestelmÃÃn, hakea ja muokata olemassa olevia kÃyttÃjiÃ, hallinnoida kÃyttÃjien ryhmiÃ sekÃ tarkastella kÃyttÃjÃn suorittamien tapahtumien suoritedataa.

Tutkijalla on kaksi pÃÃtoimintakokonaisuutta, jotka hÃn voi suorittaa tÃssÃ nÃkymÃssÃ. NÃmÃ toimintakokonaisuudet ovat uuden kÃyttÃjÃn luonti sekÃ haetun kÃyttÃjÃn tietojen muokkaaminen. Tietojen muokkaamisen osatoimintakokonaisuudet ovat kÃyttÃjÃn perustietojen muokkaaminen, kÃyttÃjÃn ryhmien jÃsenyyden tarkasteleminen, lisÃÃminen ja poistaminen sekÃ tapahtumasuoritushistoria tarkastelu ja ulosotto.

Tutkijan luodessa uutta kÃyttÃjÃÃ tutkija painaa vasemmalla puolella olevan hakukomponentin Luo uusi -painiketta, jolloin oikealla oleva vÃlilehti aktivoituu muokattavaksi. TÃmÃn jÃlkeen tutkija syÃ¶ttÃÃ pakollisiin syÃ¶tekenttiin tarvittavat kÃyttÃjÃn perustiedot, jonka jÃlkeen hÃn voi tallentaa kÃyttÃjÃn jÃrjestelmÃn tietokantaan. Tutkija voi tallentamisen jÃlkeen jatkaa juuri tallennetun kÃyttÃjÃn muokkausta tai valita toisen kÃyttÃjÃn muokattavaksi.

KÃyttÃjÃn tietoja muokattaessa tutkija voi muokata kÃyttÃjÃn perustietoja KÃyttÃjÃn tiedot -vÃlilehdessÃ, joka avautuu ensimmÃisenÃ tutkijalle, kun hÃn joko luo tai muokkaa kÃyttÃjÃÃ. Muokattaviin kÃyttÃjÃn perustietoihin kuuluu mm. nimi, sukunimi, kÃyttÃjÃtunnus sekÃ kÃyttÃjÃn kuvaus. TÃssÃ vÃlilehdessÃ voidaan myÃ¶s tallentaa tai poistaa kyseinen muokattavaksi valittu kÃyttÃjÃ. KÃyttÃjÃn ryhmÃt -vÃlilehdessÃ tutkija voi nÃhdÃ, missÃ ryhmissÃ kÃyttÃjÃ on jÃsenenÃ ja voi halutessaan joko lisÃtÃ kÃyttÃjÃn uuteen ryhmÃÃn tai poistaa kÃyttÃjÃn valitusta ryhmÃstÃ. NÃkymÃstÃ voi myÃ¶s pÃÃstÃ suoraan tarkastelemaan valitun kÃyttÃjÃn ryhmÃn tietoja painikkeen avulla. Tapahtumasuoritushisto-ria-vÃlilehdessÃ tutkija voi tarkastella kÃyttÃjÃn tapahtumista lÃhettÃmÃÃ suoritedataa ja viedÃ kyseisen datan xls-tiedostomuodossa Excel-taulukkolaskentaohjelmaan.

3.5 Ryhmien hallinta

Ryhmien hallintanÃkymÃssÃ tutkija voi luoda uusia ryhmiÃ jÃrjestelmÃÃn, hakea ja muokata olemassa olevia ryhmiÃ, hallinnoida ryhmÃÃn kuuluvia kÃyttÃjiÃ sekÃ hallinnoida ryhmien kuntoutusohjelmia.

Tutkijalla on kaksi pÃÃtoimintakokonaisuutta, jotka hÃn voi suorittaa tÃssÃ nÃkymÃssÃ. NÃmÃ toimintakokonaisuudet ovat uuden ryhmÃn luonti sekÃ haetun ryhmÃn tietojen muokkaaminen. Tietojen muokkaamisen osatoimintakokonaisuudet ovat ryhmÃn perustietojen muokkaaminen, ryhmÃn kÃyttÃjien jÃsenyyksien tarkasteleminen, lisÃÃminen ja poistaminen sekÃ ryhmÃn kuntoutusohjelmien tarkasteleminen, lisÃÃminen ja poistaminen.

Tutkijan luodessa uutta ryhmÃÃ tutkija painaa vasemmalla puolella olevan hakukomponentin Luo uusi -painiketta, jolloin oikealla oleva vÃlilehti aktivoituu muokattavaksi. TÃmÃn jÃlkeen tutkija syÃ¶ttÃÃ pakollisiin syÃ¶tekenttiin tarvittavat ryhmÃn perustiedot, jonka jÃlkeen hÃn voi tallentaa ryhmÃn jÃrjestelmÃn tietokantaan. Tutkija voi tallentamisen jÃlkeen jatkaa juuri tallennetun ryhmÃn muokkausta tai valita toisen ryhmÃn muokattavaksi.

RyhmÃn tietoja muokattaessa tutkija voi muokata ryhmÃn perustietoja RyhmÃn tiedot -vÃlilehdessÃ, joka avautuu ensimmÃisenÃ tutkijalle, kun hÃn joko luo tai muokkaa ryhmÃÃ. Muokattaviin ryhmÃn perustietoihin kuuluu mm. nimi, ryhmÃn rooli, ryhmÃÃn liitetty tutkimus sekÃ ryhmÃn kuvaus. TÃssÃ vÃlilehdessÃ voidaan myÃ¶s tallentaa tai poistaa kyseinen muokattavaksi valittu ryhmÃ. RyhmÃn jÃsenet -vÃlileh-dessÃ tutkija voi nÃhdÃ, ketÃ kÃyttÃjiÃ kuuluu ryhmÃÃn ja voi halutessaan joko lisÃtÃ ryhmÃÃn uuden kÃyttÃjÃn tai poistaa ryhmÃstÃ valitun kÃyttÃjÃn. NÃkymÃstÃ voi myÃ¶s pÃÃstÃ suoraan tarkastelemaan valitun ryhmÃn jÃsenenÃ olevan kÃyttÃjÃn tietoja painikkeen avulla. RyhmÃn aikataulut -vÃlilehdessÃ tutkija voi tarkastella ryhmÃn sisÃltÃmiÃ kuntoutusohjelmia, lisÃtÃ uusia kuntoutusohjelmia ryhmÃlle sekÃ poistaa ryhmÃltÃ kuntoutusohjelmia. TÃstÃ nÃkymÃstÃ voi hypÃtÃ myÃ¶s tarkastelemaan ryhmÃllÃ olevian kuntoutusohjelman tietoja painikkeen avulla.

3.6 Tutkimusten hallinta

Tutkimusten hallintanÃkymÃssÃ tutkija voi luoda uusia tutkimuksia jÃrjestelmÃÃn sekÃ hakea ja muokata olemassa olevia tutkimuksia.

Tutkijalla on kaksi pÃÃtoimintakokonaisuutta, jotka hÃn voi suorittaa tÃssÃ nÃkymÃssÃ. NÃmÃ toimintakokonaisuudet ovat uuden tutkimuksen luonti sekÃ haetun tutkimuksen tietojen muokkaaminen.

Tutkijan luodessa uutta tutkimusta tutkija painaa vasemmalla puolella olevan hakukomponentin Luo uusi -painiketta, jolloin oikealla oleva vÃlilehti aktivoituu muokattavaksi. TÃmÃn jÃlkeen tutkija syÃ¶ttÃÃ pakollisiin syÃ¶tekenttiin tarvittavat tutkimuksen perustiedot, jonka jÃlkeen hÃn voi tallentaa ryhmÃn jÃrjestelmÃn tietokantaan. Tutkija voi tallentamisen jÃlkeen jatkaa juuri tallennetun tutkimuksen muokkausta tai valita toisen tutkimuksen muokattavaksi.

Tutkimuksen tietoja muokattaessa tutkija voi muokata tutkimuksen perustietoja Tutkimuksen tiedot -vÃlilehdessÃ, joka avautuu ensimmÃisenÃ tutkijalle, kun hÃn joko luo tai muokkaa ryhmÃÃ ja joka on nÃkymÃn ainoa vÃlilehti. Muokattaviin tutkimuksen perustietoihin kuuluu mm. nimi ja tutkimuksen kuvaus. TÃssÃ vÃlilehdessÃ voidaan myÃ¶s tallentaa tai poistaa kyseinen muokattavaksi valittu tutkimus. TÃssÃ vÃlilehdessÃ nÃytetÃÃn myÃ¶s tutkimukseen kuuluvat ryhmÃt, joita voi hypÃtÃ tarkastelemaan painikkeen avulla.

3.7 Kuntoutusohjelmien luonti ja muokkaus

Kuntoutusohjelmien luonti- ja muokkausnÃkymÃssÃ tutkija voi luoda uusia kuntoutusohjelmia jÃrjestelmÃÃn sekÃ hakea ja muokata olemassa olevia kuntoutusohjelmia.

Tutkijalla on kaksi pÃÃtoimintakokonaisuutta, jotka hÃn voi suorittaa tÃssÃ nÃkymÃssÃ. NÃmÃ toimintakokonaisuudet ovat uuden kuntoutusohjelman luonti sekÃ haetun kuntoutusohjelman tietojen muokkaaminen. Tietojen muokkaamisen osatoimintakokonaisuudet ovat kuntoutusohjelman perustietojen muokkaaminen sekÃ kuntoutusohjelmassa olevien tapahtumien tarkasteleminen, lisÃÃminen, poistaminen ja aikatauluttaminen.

Tutkijan luodessa uutta kuntoutusohjelmaa tutkija painaa vasemmalla puolella olevan hakukomponentin Luo uusi -painiketta, jolloin oikealla oleva vÃlilehti aktivoituu muokattavaksi. TÃmÃn jÃlkeen tutkija syÃ¶ttÃÃ pakollisiin syÃ¶tekenttiin tarvittavat kuntoutusohjelman perustiedot, jonka jÃlkeen hÃnen tÃytyy lisÃtÃ tapahtumia kuntoutusohjelmaan Aikataulun muokkaaminen -vÃlilehdessÃ. TÃssÃ vÃlilehdessÃ tutkija voi lisÃtÃ jÃrjestelmÃssÃ olevia tapahtumia kuntoutusohjelmaan, poistaa kuntoutusohjelmasta tapahtumia sekÃ aikatauluttaa kuntoutusohjelmaan lisÃÃmiÃÃn tapahtumia. Tutkija voi tallentamisen jÃlkeen jatkaa juuri tallennetun kuntoutusohjelman muokkausta tai valita toisen kuntoutusohjelman muokattavaksi.

Kuntoutusohjelman tietoja muokattaessa tutkija voi muokata kuntoutusohjelman perustietoja Aikataulun tiedot -vÃlilehdessÃ, joka avautuu ensimmÃisenÃ tutkijalle, kun hÃn luo uutta kuntoutusohjelmaa. Muokattaviin kuntoutusohjelman perustietoihin kuuluu kuntoutusohjelman kuvaus. TÃssÃ vÃlilehdessÃ voidaan myÃ¶s tallentaa tai poistaa kyseinen muokattavaksi valittu kuntoutusohjelma. Aikataulun muokkaus -vÃlilehdessÃ tutkija voi tarkastella kuntoutusohjelman sisÃltÃmiÃ tapahtumia ja niiden ajoitusta, lisÃtÃ uusia tapahtumia kuntoutusohjelmaan ja aikatauluttaa ne sekÃ poistaa tapahtumia kuntoutusohjelmasta.

3.8 Tapahtumien luonti ja muokkaus

Tapahtumien luonti- ja muokkausnÃkymÃssÃ tutkija voi luoda uusia tapahtumia jÃrjestelmÃÃn sekÃ hakea ja muokata olemassa olevia tapahtumia.

Tutkijalla on kaksi pÃÃtoimintakokonaisuutta, jotka hÃn voi suorittaa tÃssÃ nÃkymÃssÃ. NÃmÃ toimintakokonaisuudet ovat uuden tapahtuman luonti sekÃ haetun tapahtuman muokkaaminen. Tapahtuman muokkaamisen osatoimintakokonaisuudet ovat tapahtuman perustietojen muokkaaminen sekÃ tapahtuman rakenteen ja sisÃllÃ¶n muokkaaminen.

Tutkijan luodessa uutta tapahtumaa tutkija painaa vasemmalla puolella olevan hakukomponentin Luo uusi -painiketta, jolloin oikealla oleva vÃlilehti aktivoituu muokattavaksi. TÃmÃn jÃlkeen tutkija syÃ¶ttÃÃ pakollisiin syÃ¶tekenttiin tarvittavat tapahtuman perustiedot, jonka jÃlkeen hÃn voi muokata tapahtuman rakennetta ja sisÃltÃ¶Ã tapahtumamuokkaimella, joka sijaitsee Tapahtuman sisÃltÃ¶- vÃlilehdessÃ. TÃmÃn jÃlkeen tutkija voi tallentaa tapahtuman jÃrjestelmÃn tietokantaan. Tutkija voi tallentamisen jÃlkeen jatkaa juuri tallennetun tapahtuman muokkausta tai valita toisen tapahtuman muokattavaksi.

Tapahtuman tietoja muokattaessa tutkija voi muokata tapahtuman perustietoja Tapahtuman tiedot -vÃlilehdessÃ, joka avautuu ensimmÃisenÃ tutkijalle, kun hÃn luo uutta tapahtumaa. Muokattaviin tapahtuman perustietoihin kuuluu mm. otsikko, kuvaus ja tyyppi. TÃssÃ vÃlilehdessÃ voidaan myÃ¶s tallentaa tai poistaa kyseinen muokattavaksi valittu ryhmÃ. Tapahtuman sisÃltÃ¶ -vÃlilehdessÃ tutkija muokata tapahtuman rakennetta ja sisÃltÃ¶Ã tapahtumamuokkaimella.

Tapahtumamuokkaimen vasemmalla puolella on piirtoalue, jossa nÃytetÃÃn tapahtuman rakenne ja johon tutkija lisÃÃ uusia tehtÃvÃkomponentteja. Uusia tehtÃvÃkomponentteja lisÃtÃÃn piirtoalustaan painalla hiiren oikeaa painiketta piirtoalustan tyhjÃssÃ tilassa. TÃmÃn jÃlkeen tutkija valitsee luodusta menuvalikosta lisÃttÃvÃksi halutun tehtÃvÃkomponenttityypin. TehtÃvÃnkomponentin sisÃltÃ¶Ã voidaan muokata tapahtumamuokkaimen oikean puolen nÃkymÃssÃ, jossa nÃytetÃÃn valittuun tehtÃvÃkomponenttiin liittyviÃ tietoja. Painamalla hiiren vasenta painiketta tehtÃvÃkomponentin sisÃllÃ avautuu edellÃ mainittuun kohtaan tehtÃvÃkomponenttiin liittyviÃ tietoja. Kun tutkija painaa hiiren oikeaa painiketta tehtÃvÃkomponentin sisÃllÃ, voi tutkija tÃllÃ¶in siirtÃÃ tai poistaa valitun tehtÃvÃkomponentin tai luoda polun kahden komponentin vÃlille. TÃmÃ polku kertoo, mihin tehtÃvÃÃn edetÃÃn, kun halutaan siirtyÃ tapahtumaa suoritettaessa tehtÃvÃstÃ toiseen.

Tutkija voi lisÃtÃ tapahtumaan erilaisia tehtÃvÃkomponenttityyppejÃ, joita ovat tekstikomponentti, monivalintakomponentti, liukusÃÃdin-komponentti, sensorikomponentti, mediakomponentti sekÃ hÃlytyskomponentti. KyseisistÃ tehtÃvÃkomponenteista toteutettiin teksti- ja monivalintakomponentti. Tekstikomponentin muokattaviin ominaisuuksiin kuuluu otsikko ja tekstisisÃltÃ¶, kun taas monivalintakomponentin muokattaviin ominaisuuksiin kuuluu otsikko sekÃ polkujen lisÃÃminen, polun suunnanjohtamisen valitseminen, polun arvon valitseminen sekÃ polun tekstin lisÃÃminen.

3.9 Toteuttamatta jÃÃneet nÃkymÃt

TÃssÃ kohdassa kuvaillaan toteuttamatta jÃÃneiden nÃkymien toiminnallisuuksia. NÃmÃ toteuttamatta jÃÃneet nÃkymÃt ovat mediatiedostojen lataamis- ja tarkastelunÃkymÃ, raporttinÃkymÃ sekÃ ohjenÃkymÃ.

Mediatiedostojen lataamis- ja tarkastelunÃkymÃssÃ tutkija voi lisÃtÃ mediatiedostoja jÃrjestelmÃÃn tai esikatsella jÃrjestelmÃssÃ olevia mediatiedostoja. Mediatiedostoja voi jÃrjestelmÃÃn lisÃÃmisen jÃlkeen kÃyttÃÃ mediakomponentin nÃytettÃvÃnÃ sisÃltÃ¶nÃ.

RaporttinÃkymÃssÃ tutkija voi tarkastella jÃrjestelmÃÃn tallentunutta suoritedataa laajemmin sekÃ luoda erilaisia raportteja eri tiedostoformaatteihin, esimerkiksi pdf-muotoon.

OhjenÃkymÃssÃ tutkija voi lukea sovelluksen kÃyttÃ¶ohjeita, kun tutkijalle tulee tarve saada ohjeistusta sovelluksen kÃyttÃ¶Ã¶n. Mahdollisesti kyseinen ohjenÃkymÃ avautuisi omaan selainikkunaan, eikÃ tÃten vÃlttÃmÃttÃ tarvitsisi sijaita itse sovelluksessa vÃlilehtenÃ.

4 KÃyttÃ¶liittymÃ (kuntoutettava)

Luvussa esitellÃÃn pÃÃosin kuntoutettavan kÃytettÃvÃksi toteutetun sovelluksen kÃyttÃ¶liittymÃn eri nÃkymÃt sekÃ niihin liittyvÃt toiminnot ja niiden vÃliset suhteet.

4.1 Sovelluksen nÃkymÃkartta

Kuvassa ??havainnollistetaan sovelluksen nÃkymien vÃliset suhteet nÃkymÃkarttana. Kappaleen muissa alaluvuissa kuvataan kunkin nÃkymÃn toiminnallisuus ja yhteydet muihin nÃkymiin.

Kuva 4.1: Sovelluksen nÃkymÃkartta.

Kuntoutettavan kÃyttÃ¶liittymÃn nÃkymÃt ovat

• tapahtumakalenteri,

• vapaaehtoiset tapahtumat,

• oma edistyminen,

• pÃivÃkirja sekÃ

• viestit.

4.2 Sovelluksen nÃkymien rakenne

Sovelluksen nÃkymien rakenne noudattaa samaa tyyliÃ koko sovelluksessa. Jokainen nÃkymÃ noudattaa nÃkymÃmallia, joka on jaettu kolmeen osaan: ylhÃÃllÃ on kaistale otsikkotiedolle, jossa nÃytetÃÃn esimerkiksi menuvalikoissa valikon nimi sekÃ tapahtumaa suoritettaessa tapahtuman nimi. NÃkymÃmallin keskelle on asetettu sisÃltÃ¶tila, jossa nÃytetÃÃn kuhunkin nÃkymÃÃn liittyvÃ sisÃltÃ¶: menuvalikoissa menunavigointipainikkeet, alavalikoissa valikon sisÃltÃ¶ ja tapahtumaa suoritettaessa tapahtuman tehtÃvÃn sisÃltÃ¶. NÃkymÃmallin alhaalle on varattu tila toimintopainikkeille.

Vasen toimintopainike toimii aina takaisin-, peruutus- tai kieltopainikkeena, kun taas keski- ja oikea painike toimivat eri tavalla eri nÃkymissÃ. Esimerkiksi tapahtumaa suoritettaessa keski- ja oikea painike toimivat tapahtuman tehtÃvien etenemisja paluupainikkeina. Oikeaa painiketta kÃytetÃÃn myÃ¶s OK-painikkeena tietyissÃ tilanteissa, kuten esimerkiksi tapahtuman keskeyttÃmisessÃ.

4.3 Sovelluksen pÃÃnÃkymÃ

Sovelluksen pÃÃnÃkymÃstÃ pÃÃsee Oma profiili -, Tapahtumat- sekÃ HarjoitteetnÃ-kymÃÃn. PÃÃvalikon vasemmalla painikkeella kuntoutettava voi kirjautua ulos sovelluksesta, keskipainikkeella kuntoutettavalle avautuu nÃkymÃ, jossa nÃytetÃÃn sovellukseen liittyviÃ tietoja ja oikealla painikkeella kuntoutettavalle avautuu ohjenÃkymÃ, jossa on kÃyttÃ¶ohjeet sovelluksen kÃyttÃ¶Ã¶n.

Kuva 4.2: Sovelluksen pÃÃvalikko.

4.4 Oma profiili -nÃkymÃ

Oma profiili -nÃkymÃn kautta pÃÃsee Edistyminen-, PÃivÃkirja- sekÃ ViestitnÃkymÃÃn. PÃÃvalikon vasemmalla painikkeella kuntoutettava voi palata takaisin pÃÃnÃkymÃÃn. Muilla alareunan painikkeilla ei ole toiminnallisuutta.

Kuva 4.3: Oma profiili -alavalikko.

Edistyminen-nÃkymÃssÃ kuntoutettava voi tarkastella tapahtumasuoritushistoriaansa. PÃivÃkirja- ja Viestit-nÃkymiÃ ei toteutettu tÃmÃn projektin aikana.

4.5 Tapahtumat-nÃkymÃ

Kuntoutettava pÃÃsee Tapahtumat-nÃkymÃÃn pÃÃvalikon kautta. NÃkymÃn keskiÃ¶ssÃ nÃytetÃÃn kuntoutettavalle hÃnen suorittamattomien tapahtumien lista. Kuntoutettava voi vasemman alareunan painikkeella palata takaisin pÃÃvalikkoon, muilla alareunan painikkeilla voidaan erotella nÃkymÃÃn nÃytettÃvÃksi joko tulevia tai rÃstiin jÃÃneitÃ tapahtumia. Kuntoutettava voi valita tapahtumalistasta suoritettavaksi haluamansa tapahtuman, jos se on suoritettavissa sillÃ hetkellÃ. Tapahtuman suorittamiseen siirrytÃÃn painamalla lista-alkion oikealla puolella olevaa Aloita-painiketta.

4.6 Harjoitteet-nÃkymÃ

Kuntoutettava pÃÃsee Harjoitteet-nÃkymÃÃn Tapahtumat-nÃkymÃn tapaan pÃÃvalikon kautta. EdellÃ mainitut nÃkymÃt ovat ulkoasultaan ja toiminnallisuuksiltaan lÃhes samanlaisia. Ainoa ero niiden vÃlillÃ on se, ettÃ Harjoitteet-nÃkymÃssÃ nÃkyy kuntoutettavalle suunnattuja vapaaehtoisia tapahtumia, joita hÃn voi suorittaa useamman kerran tai niitÃ ei ole vÃlttÃmÃtÃ¶ntÃ suorittaa ollenkaan. HarjoitteetnÃkymÃn alareunojen painikkeet toimivat samalla tavoin kuin Tapahtumat-nÃkymÃs-sÃ, ainostaan tapahtumien erottelu tapahtuu tapahtuman tyypin mukaan. Tapahtuman suorittamiseen siirrytÃÃn samalla tavalla kuin Tapahtumat-nÃkymÃssÃ.

4.7 Tapahtumien suorittaminen

Tapahtuman suorittaminen aloitetaan Tapahtumat- tai Harjoitteet nÃkymÃn kautta. Tapahtuma sisÃltÃÃ yhden tai useamman tehtÃvÃn, jonka kuntoutettavan toivotaan suorittavan. Tapahtumassa pÃÃsee eteen- ja taaksepÃin alareunan keskija oikealla painikkeella. Alareunan vasemmalla painikkeella kuntoutettava voi peruuttaa tapahtuman tekemisen. TÃllÃ¶in kuntoutettavalta varmistetaan vielÃ, ettÃ hÃn haluaa varmasti poistua tapahtumasta. Jotkin tehtÃvÃtyyppien nÃytettÃvistÃ sisÃllÃ¶istÃ kaipaavat kuntoutettavan kosketussyÃ¶tettÃ. Esimerkiksi monivalintatehtÃvÃssÃ kuntoutettavan on valittava vaihtoehdoista sopivin, ennen kuin hÃn voi edetÃ tapahtumassa eteenpÃin.

4.8 Toteuttamatta jÃÃneet nÃkymÃt

TÃssÃ kohdassa kuvaillaan toteuttamatta jÃÃneiden nÃkymien toiminnallisuuksia. NÃmÃ toteuttamatta jÃÃneet nÃkymÃt ovat PÃivÃkirja- sekÃ Viestit-nÃkymÃ.

PÃivÃkirja-nÃkymÃssÃ kuntoutettava voi kirjoittaa pÃivÃkirjamerkintÃ¶jÃ joko teksti-, ÃÃni- tai kuvamuodossa. Kukin pÃivÃkirjan merkintÃ tallentuu jÃrjestelmÃn tietokantaan.

Viestit-nÃkymÃssÃ kuntoutettava voi tarkastella hÃnelle tulleita ryhmÃkohtaisia viestejÃ, joita tutkija on lÃhettÃnyt oman kÃyttÃ¶liittymÃnsÃ kautta. Viestit-nÃkymÃn olennaisin merkitys on toimia palautekanavan tutkijan ja kuntoutettavan vÃlillÃ.

5 Sovelluksen rakenne

Luvussa kuvataan sovelluksen rakenne ja sen toteutustapa. Sovellus koostuu kahdesta selainsovelluksesta, jotka ovat yhteydessÃ palvelimella olevaan projektissa toteutettuun tietokantaan. Sovellus kÃyttÃÃ Vaadin-sovelluskehitysympÃristÃ¶n kÃyttÃ¶liittymÃkirjastoja ja komponentteja. Prototyypin kÃyttÃ¶liittymistÃ kuntoutettavan mobiilisovellus noudattaa enemmÃn MVC-mallia kun taas tutkijapuolen sovellus ei noudata varsinaisesti mitÃÃn arkkitehtuuria.

5.1 TietojÃrjestelmÃn asiakas-palvelinarkkitehtuuri

Kuvassa ?? esitetÃÃn tietojÃrjestelmÃn yleinen rakenne sekÃ ulkopuoliset ohjelmistot, joita jÃrjestelmÃ kÃyttÃÃ. Palvelimella suoritetaan MySQL-tietokannanhallintajÃr-jestelmÃÃ, jonne tallennetaan tietojÃrjestelmÃn tiedot. Tomcat-palvelin suorittaa tutkijan ja kuntoutettavan kÃyttÃ¶liittymiÃ, joita kÃytetÃÃn WWW-selainten kautta mobiililaitteilla ja tietokoneilla.

Kuva 5.1: TietojÃrjestelmÃn asiakas-palvelinarkkitehtuuri.

Kuntoutettavan kÃyttÃ¶liittymÃ on suunniteltu kÃytettÃvÃksi mobiililaitteella. Kuntoutettavan kÃyttÃ¶liittymÃ olisi tarkoitus kÃyttÃÃ PhoneGap-laajennusta kÃsittelemÃÃn mobiililaitteiden erilaisia antureita, kuten kiihtyvyysanturia, kameraa ja vÃrinÃtoimintoa.

Tutkijan ja omaisen kÃyttÃ¶liittymÃ on suunniteltu kÃytettÃvÃksi tietokoneella. Tutkijan kÃyttÃ¶liittymÃssÃ on toiminnallisuuksia, jotka vaativat suuren nÃytÃ¶n ja hiiren kÃyttÃ¶Ã. Tutkijan kÃyttÃ¶liittymÃÃ voi kuitenkin joiltakin osin kÃyttÃÃ myÃ¶s sormitietokoneella.

5.2 Sovelluksen rakenne ja rajapinnat

TODO

5.3 Sovelluksen komponentit

TODO

5.4 Sovelluksen tietokanta

Projektin aikana toteutettiin oma tietokanta jÃrjestelmÃlle. Tietokantaan tallennetaan tutkijan luomia kÃyttÃjiÃ, ryhmiÃ, tutkimuksia, kuntoutusohjelmia sekÃ tapahtumia ja kuntoutettavan tapahtumien suorittamisesta tulevaa suoritedataa. Seuraavassa kerrotaan kaikkien tietokannassa olevien taulujen merkitys ja niiden suhteet toisiin tietokannan tauluihin.

Kuva 5.2: JÃrjestelmÃn tietokanta. 23(??)

Tietokannan taulut ja niiden merkitys:

• USER-tauluun tallennetaan kaikki jÃrjestelmÃn kÃyttÃjÃt.

• USERGROUP-tauluun tallennetaan kaikki jÃrjestelmÃn ryhmÃt.

• ROLE-tauluun tallennetaan jÃrjestelmÃn ryhmien roolityypit.

• RESEARCH-tauluun tallennetaan kaikki jÃrjestelmÃn tutkimukset.

• SCHEDULE-tauluun tallennetaan kaikki jÃrjestelmÃn kuntoutusohjelmat.

• EVENT-tauluun tallennetaan kaikki jÃrjestelmÃn tapahtumat.

• EVENTTIME-tauluun tallennetaan kaikkien aikataulutettujen tapahtumien ajoitus kuntoutusohjelmassa.

• EVENTTYPE-tauluun tallennetaan tapahtumatyypit (kysely, liikunta jne.).

• TASK-tauluun tallennetaan kaikki tapahtumiin liittyvÃt tehtÃvÃt.

• TASKTYPE-tauluun tallennetaan tehtÃvÃtyypit (teksti, monivalinta jne.).

• CHOICE-tauluun tallennetaan kaikki tehtÃvien sisÃllÃ olevat valinnat.

• TASKDATA-tauluun tallennetaan kaikki tapahtumien suoritedataan liittyvÃt tiedot.

• BINARYDATA-tauluun tallennetaan kaikki binÃÃrimuotoinen suoritedata (kuva, ÃÃni jne.).

• TASKDATA-tauluun tallennetaan kaikki tekstimuotoinen suoritedata.

TÃmÃn lisÃksi jokaiseen taululla on rowStatus-rivi, johon tallennetaan taulukossa olevan sarakkeen tila (esim. ACTIVE, DELETED).

5.5 Toteutusratkaisujen kehittyminen

RyhmÃlle jaettiin hyvissÃ ajoin ennen toteutuksen aloitusta erilaisia mobiililaitteita ja sormitietokoneita. Niiden avulla ryhmÃ sai arvokasta tietoa liittyen sovelluksen toimivuuteen eri mobiililaitteissa sekÃ pystyi paremmin hahmottamaan sovelluksen koon eri mobiililaitteissa. Mobiililaitteiden nÃyttÃ¶jen pienyyden hahmottamisen takia ryhmÃ pystyi ottamaan ajoissa huomioon kuntoutettavan kÃyttÃ¶liittymÃn ulkoasua ja toiminnallisuutta suunniteltaessa.

Ennen toteutuksen aloittamista projektiryhmÃ suunnitteli kunkin projektissa toteutettavan sovelluksen rakenteen ja kÃyttÃ¶liittymÃn. Suunnitelmien valmistumisen jÃlkeen projektin yksi jÃsen aloitti kuntoutettavan sovelluksen toteuttamisen muiden keskittyessÃ vielÃ muihin projektin tehtÃviin. Toinen projektin jÃsen aloitti tutkijapuolen sovelluksen toteutuksen hahmottelun muutamaa viikkoa myÃ¶hemmin. ProjektiryhmÃ suunnitteli toteutukseen kuuluvalla ajanjaksolla yhdessÃ tietokantahahmotelmaa ja sai apua tietokannan suunnittelussa tietokantakonsultilta. Tietokantahahmotelman valmistuttua projektiryhmÃ loi sovellukselle tietokannan ja alkoi toteuttamaan tietokantaa tarvitsevia ominaisuuksia kuhunkin sovellukseen.

Sovellusten toteutus lÃhti kÃyntiin varsin vaivattomasti, sillÃ Vaadin sisÃlsi itsessÃÃn paljon hyÃ¶dyllisiÃ ominaisuuksia ja komponentteja. TÃten ryhmÃn oli helpohko lÃhteÃ toteuttamaan sovelluksia valmiiden kirjastojen ja komponenttien avulla. Toteutuksen edistymiseen auttoi myÃ¶s se, ettÃ yhdellÃ projektin jÃsenistÃ oli aiempaa kokemusta Vaadin-sovelluskehitysalustasta. Kyseinen jÃsen toteutti myÃ¶s muutaman prototyypin aikaisessa vaiheessa, millÃ varmistettiin alustassa olevien tarvittavien komponenttien toimivuus.

Sovelluksen mobiilipuolen toteutuksesta vastasi pÃÃosin yksi ryhmÃn jÃsen muiden jÃsenten keskittyessÃ tutkijan sovellukseen. Tutkijan sovelluksen toteutus jaettiin osiin, jotta jokainen kolmesta jÃsenestÃ pÃÃsisi toteuttamaan jotain sovelluksen osaa. Projektin toteutukseen suunnatun ajan lÃhestyessÃÃn loppuaan ryhmÃ pÃÃtti pitÃÃ sovellusten toteutukseen mÃÃrÃtyt roolit projektin loppuun saakka sellaisenaan. Projektin loppuesityksen jÃlkeen tutkijan sovellus koki vielÃ isoja rakennemuutoksia, joita tarvittiin tehdÃ yhden tietokantaongelman ratkaisemiseksi.

6 OhjelmointikÃytÃnteet

Luvussa kuvataan projektin ohjelmointikÃytÃnteet. Projektissa noudatettiin suunnitteluvaiheessa mÃÃriteltyjÃ ohjelmointikÃytÃnteitÃ.

6.1 LÃhdekoodin muotoilu ja tiedostojen nimeÃminen

LÃhdekoodi ohjelmoitiin projektisuunnitelmassa [?] sovittujen kÃytÃnteiden mukaisesti kÃyttÃen mallina Javan yleisiÃ kÃytÃnteitÃ [?]. Luokkien nimissÃ ensimmÃinen kirjain kirjoitettiin isolla ja sanat kirjoitettiin yhteen isoin alkukirjaimin. Funktioiden ja muuttujien nimissÃ ensimmÃinen kirjain kirjoitettiin pienellÃ ja sanat kirjoitettiin yhteen isoin alkukirjaimin.

6.2 LÃhdekoodin kommentointi

LÃhdekoodit kommentointiin englanniksi. Kommentit aloitettiin yksittÃisten rivien tai rivin loppujen tapauksissa merkillÃ //. Useamman rivin tapauksessa kommentti aloitettiin merkillÃ /* ja pÃÃtettiin merkillÃ */. Luokkien ja funktioiden kommentit aloitettiin /** ja pÃÃtettiin */. Luokkadokumentointi muodostettiin JavaDocin avulla, jonka kommentointiohjeita noudatettiin projektin aikana.

6.3 LÃhdekoodiesimerkki

Sovelluksessa toteutettua lÃhdekoodin sisennystÃ ja kommentointia havainnollistaa seuraava esimerkki:

/**
* Layout for all the mobile views has slots for header,
* footer and the content.
*
* @author Lauri Satokangas, lauri.n.satokangas@student.jyu.fi
* @date 13.5.2012
*/

public abstract class MobileView extends VerticalLayout {
     private Panel pageContent;
     private final HashMap<Object, Component> footerComponents;
     // This is the left button in the footer layout.
     public Object FOOTER_BUTTON_LEFT = "leftfooterbutton";
     /**
      * Get the component in the footer.
      * @return footerComponent
      */
     public HashMap<Object, Component> getFooterComponents() {
         return footerComponents;
     }
...

6.4 KehitysympÃristÃ¶

Sovelluksen kehitystyÃ¶kaluna kÃytettiin NetBeans IDE:n versiota 7.1, lisÃosina Maven-automatisointityÃ¶kalu lÃhdekoodin kÃÃntÃmiselle ja Vaadin-sovelluskehitysalustan kÃyttÃ¶liittymÃkirjastoja ja komponentteja sovelluksen toteutukseen.

6.5 Testauksen kÃytÃnteet

Sovellusten toteutusvaiheessa jokainen ryhmÃn jÃsen toteutti kÃytÃnnÃ¶n testausta heti koodiin tekemiensÃ muutoksen jÃlkeen omatoimisesti hyvien ohjelmointikÃytÃnteiden mukaisesti. Ajan puutteen vuoksi tietojÃrjestelmÃlle ei laadittu testaussuunnitelmaa eikÃ ryhmÃ myÃ¶skÃÃn ehtinyt luoda yksikkÃ¶testejÃ sovelluksille. Muutama testitiedosto saatiin luotua tietokantaa kÃsitteleville tiedostoille. JÃrjestelmÃtestausta ryhmÃ suoritti projektissa jonkin verran.

RyhmÃlle jaettiin ajoissa ennen toteutuksen alussa erilaisia mobiililaitteita ja sormitietokoneita. Niiden avulla ryhmÃ testaili kuntoutettavan sovellusta tietyn vÃliajoin ja sai nÃin arvokasta tietoa liittyen sovelluksen toimivuuteen eri mobiililaitteissa.

Sovelluksella oli vain muutama ulkopuolinen testaaja projektin aikana. Laajimman palautteen sovellusten toimivuudesta projektiryhmÃ sai vastaavalta ohjaajalta Jukka-Pekka Santaselta. Sovelluksen testaukseen osallistui myÃ¶s projektin jatkokehityksestÃ kiinnostunut Tero Kallioinen. Projektin tilaajien kiireellisen aikataulun vuoksi tilaajilta saatiin vain vÃhÃn palautetta liittyen sovellusten kÃyttÃ¶liittymien toimivuuteen. Tilaajien ainoat kÃyttÃ¶testaukset tapahtuivat projektin kahdessa viimeisessÃ kokouksessa. Projektin tilaajilta saatiin kuitenkin testidataa testiaineiston luomiselle ja sitÃ hyÃ¶dynnettiin projektissa jonkin verran.

RyhmÃn jÃsenet harjoittivat myÃ¶s omatoimista kÃyttÃjÃtestausta havaitakseen sovellusten toiminnallisuuksiin liittyviÃ puutteita ja bugeja. RyhmÃ testasi sovellusten toiminnallisuuksien toimivuutta tasaisin vÃliajoin, varsinkin ennen projektin loppuesitystÃ.

ProjektiryhmÃ ei ajan puutteen vuoksi ehtinyt testaamaan sovelluksia niiden loppukÃyttÃjillÃ. TÃmÃ asia on otettava huomioon jatkokehityksessÃ sekÃ jÃrjestettÃvÃ kuntoon mahdollisesti jatkokehityksen alkuvaiheessa.

7 Tavoitteiden toteutuminen

Luvussa kuvataan projektin vaatimusten toteutuminen, tunnetut virheet ja puutteelliset toteutusratkaisut sekÃ jatkokehitysideat. Projektissa saatiin toteutettua lÃhes kaikki pakollisiksi tai tÃrkeiksi asetetut toiminnalliset vaatimukset. RyhmÃ siirsi osia toteutuksesta jo aikaisessa vaiheessa jatkokehitykseen rajallisen ajan vuoksi.

7.1 Vaatimusten toteutuminen

Luvussa kuvataan pÃÃpiirteittÃin sovellukselle asetettujen vaatimusten toteutuminen. VaatimusmÃÃrittely [?] kÃsittelee tarkemmin vaatimuksia ja niiden toteutumista.

Tutkijan kÃyttÃ¶liittymÃn vaatimuksista toteutettiin kaikki pakollisiksi tai tÃrkeiksi asetetut vaatimukset. Oma sivu -, media-, raportti- ja ohjenÃkymÃÃ ei toteutettu projektissa ja ne siirrettiin jatkokehitykseen.

Kuntoutettavan kÃyttÃ¶liittymÃn vaatimuksista toteutettiin kaikki pakollisiksi tai tÃrkeiksi asetetut vaatimukset kahta vaatimusta lukuunottamatta. Vaatimus yksinkertaisten kuvakkeiden lisÃÃmisestÃ nÃkymiin vieviin painikkeisiin ja tapahtuman tyyppien ilmaisuun ryhmÃ pÃÃtti jÃttÃÃ toteuttamatta projektin aikana. PÃivÃkirja-, Viestit- ja ohjenÃkymiin liittyvÃt vaatimukset siirrettiin jatkokehitykseen.

Tapahtumaan suorittamiseen asetetuista vaatimuksista toteutettiin kaikki pakollisiksi tai tÃrkeiksi asetetut vaatimukset. Kuntoutettava voi suorittaa tapahtumia ja keskeyttÃÃ suoritettavan tapahtuman.

SisÃÃnkirjautumiseen liittyvÃt vaatimukset toteutettiin projektissa. SisÃÃnkirjautuminen tallentaa kirjautumistiedot keksiin, jolloin esimerkiksi kuntoutettavan tarvitsee kirjautua sovellukseena vain yhden kerran, ellei hÃn poista keksitietoja oman mobiililaitteen selaimesta.

Tapahtumien tehtÃvÃkomponentteihin liittyvistÃ vaatimuksista toteutettiin kaikki pakollisiksi tai tÃrkeiksi asetetut vaatimukset. Media-, sensori-, syÃ¶te-, liukusÃÃdinja hÃlytystehtÃvÃkomponentteja ei toteutettu projektissa ja ne siirrettiin jatkokehitykseen.

Suoritedatan ulosviemiseen eri tiedostomuodoissa asetetuista vaatimuksista projektiryhmÃ suoritti vain xls-muotoiseen dataan liittyvÃn vaatimuksen. Muissa tiedostomuodoissa vietyÃ dataa ei ehditty projektin aikana edes harkitsemaan.

Kiihtyvyysanturindatan ja muiden sensoridatan kerÃÃmiseen asetettuja vaatimuksia ei toteutettu projektin aikana. Kuntoutettavan kÃyttÃ¶liittymÃÃ ei asetettu projektissa hyÃ¶dyntÃmÃÃn PhoneGap-rajapintaa. Kyseiset vaatimukset on siirretty jatkokehitykseen.

Viestitykseen asetettuja vaatimuksia ei toteutettu projektissa. RyhmÃkohtaisilla viesteillÃ tutkija voisi tiedoittaa haluamiaan ryhmiÃ jostain tarpeellisista asioista. Viestien tarkoitus on luoda eri kÃyttÃjÃkuntien vÃlille vuorovaikutus- ja palautekanavia.

7.2 Tunnetut puutteet ja virheet

Tutkijapuolen sovelluksessa kuntoutusohjelmien aikatauluttamisnÃkymÃssÃ tutkijan ei ole mahdollista valita kaikkia ajoitukseen liittyviÃ ominaisuuksia. TÃllaisia ovat mm. absoluuttisen ajan asettaminen, ja aikavÃli, jolloin tapahtuman voi suorittaa. Tutkijan tulisi myÃ¶s pystyÃ asettamaan kuntoutusohjelmassa oleva tapahtuma vapaaehtoiseksi, jolloin tapahtuma nÃkyisi kuntoutettavalle hÃnen omassa sovelluksessaan Harjoitteet-nÃkymÃssÃ.

Tutkijapuolen sovelluksessa kuntoutusohjelmien aikatauluttamisessa kÃytettÃvÃÃn ajanasetuskomponenttiin ei ole ohjelmoitu tarkistinta, jos tutkija syÃ¶ttÃÃ ajanasetuskomponentin syÃ¶teriville virheellisen aikatiedon. Ongelmaa ei tule, jos tutkija asettaa ajan vieressÃ olevan painikkeen painalluksen kautta tulevasta pÃivÃmÃÃrÃn ja ajanasetusikkunasta.

Uuden kuntoutusohjelman tallentaminen luo tapahtumista uudet kopiot tietokantaan suoritedatan tunnistamista varten. NÃin kÃy myÃ¶s, jos tutkija muokkaa ja tallentaa jo olemassa olevan kuntoutusohjelman. Jos esimerkiksi tutkija luo kymmenen tapahtumaa sisÃltÃvÃn kuntoutusohjelman ja yhdellÃ tapahtumalla on kymmenen monivalintatehtÃvÃÃ ja jokaisella niistÃ on kymmenen valintaa, tulee uuden kuntoutusohjelman tallennuksessa luotua kokonaisuudessaan 1001 uutta taulualkiota tietokantaan. TÃstÃ kopioimisesta voi syntyÃ ongelmia, jos jÃrjestelmÃÃ kÃyttÃÃ suurempi ihmismÃÃrÃ.

JÃrjestelmÃn kÃyttÃjien roolit mÃÃrÃytyvÃt kÃyttÃjÃn ryhmien jÃsenyyksien mukaan. TÃmÃ tarkoittaa sitÃ, ettÃ yksi kÃyttÃjÃ voi olla eri rooleissa eri ryhmissÃ. JÃrjestelmÃn rooleja on ajateltu kÃytettÃvÃn sovellusten kÃyttÃ¶oikeuksien jakamiseen, eli esimerkiksi tutkijalla voisi olla tÃydet kÃyttÃ¶oikeudet tutkijan sovelluksessa ja omaisella tai opiskelijalla voisi olla rajoitetut tutkijan oikeudet sovelluksen kÃyttÃ¶Ã¶n. KÃyttÃ¶oikeuksien mÃÃrÃÃmisessÃ voi syntyÃ ongelmia silloin, kun yksi kÃyttÃjÃ on jÃsenenÃ useassa ryhmissÃ, joille on mÃÃritelty eri roolit.

Kuntoutettavan sovelluksen tapahtuman suorittamisessa on pieni bugi. Kun kuntoutettava on monivalintatehtÃvÃssÃ, valitsee hÃn yhden vaihtoehdon ja menee tapahtumassa eteenpÃin. Jos kuntoutettava palaa takaisin edelliseen tehtÃvÃÃn ja ei valitse vaihtoehtoa ja yrittÃÃ mennÃ tapahtumassa eteenpÃin, niin tapahtuman teko pÃÃttyy siihen.

7.3 Jatkokehitysideat

Tutkijan kÃyttÃ¶liittymÃn ylÃreunaan vÃlilehden ylÃpuolelle tulisi asettaa kaistale, jossa nÃkyisi sovelluksen tai kÃyttÃjÃn nimi ja jossa olisi oikeassa ylÃreunassa uloskirjautumispainike. TÃllÃ¶in sovelluksesta uloskirjautuminen voisi tapahtua mistÃ vÃlilehden nÃkymÃstÃ tahansa.

NÃkymien vÃlilehtien ylÃpuolelle tulisi asettaa kaistale, missÃ olisi nimitieto siitÃ, minkÃ tai kenen tietoja tutkija on muokkaamassa sillÃ hetkellÃ.

Tutkijan kÃyttÃ¶liittymÃ kaipaa vihjetekstejÃ useisiin paikkoihin. Ulkopuolisten kÃyttÃ¶testauksen palautteessa ilmeni, ettÃ tapahtumamuokkaimen kÃyttÃmisen oppiminen ei vÃlttÃmÃttÃ ole aloittejijalle kaikista helpoin tehtÃvÃ.

MillÃ tavalla meidÃn mielestÃ kiihtyvyysanturi + muut ominaisuudet olisi mielekÃstÃ toteuttaa?

CONTINUE

Paatti-projekti  Sovellusraportti 0.0.4  Julkinen

8 KÃyttÃ¶ohjeita tutkijalle

Luvussa kuvataan lyhyesti, kuinka jÃrjestelmÃn voi asettaa kuntoon pyÃ¶rimÃÃn palvelimelle.

8.1 Sovelluksen asennus palvelimelle

TODO

9 Yhteenveto

Paatti-projekti toteutti Sovellusprojekti-kurssilla kevÃÃllÃ 2012 JyvÃskylÃn yliopiston psykologian laitokselle prototyypin tietojÃrjestelmÃstÃ, jolla tuetaan muun muassa iÃkkÃiden, tyÃ¶uupumuksesta kÃrsivien ja mielenterveyspotilaiden itsenÃistÃ elÃmÃÃ ja kuntoutumista sekÃ tuetaan tutkijoiden tekemÃÃ tutkimusta.

Projektissa onnistuttiin toteuttamaan prototyypit vaadituista kahdesta sovelluksesta: toinen kuntoutusohjelmien luomiseen ja niiden aikatauluttamisen ryhmille sekÃ toinen kuntoutusohjelmien seuraamiseen ja tekemiseen. Toteutettu jÃrjestelmÃkokonaisuus toimii asetettujen pÃÃtoiminnallisuuksien mukaisesti ja on siten periaatteessa myÃ¶s valmis kÃytettÃvÃksi.

Projektin rajallinen aikataulu ei mahdollistanut kaikkien tilaajien vaatimusten toteuttamista ja siksi toteutettu jÃrjestelmÃprototyyppi kaipaa joiltain osin jatkokehitystÃ. Toteutunut jÃrjestelmÃprototyyppi viedÃÃn jatkokehitykseen, jossa tehdÃÃn projektin aikana jÃÃneet toiminnallisuudet sekÃ korjataan sovelluksissa esiintyvÃt puutteet ja ongelmat.

10 Lähteet

[1] Petri Huttunen, Marko Malinen ja Olli Wirpi, ”Judo-projekti, Projektisuunnitelma”, JyvÃskylÃn yliopisto, tietotekniikan laitos, 2011.

[2] Tapio KerÃnen, Toni Salminen, Jari Salokangas ja Lauri Satokangas, ”Paattiprojekti, VaatimusmÃÃrittely”, JyvÃskylÃn yliopisto, tietotekniikan laitos, 2012.

[3] Tuomas Kumpulainen, Kari Tuurihalme, Outa Walkama ja Tuomas Virtanen, ”Tabu-projekti, Sovellusraportti”, JyvÃskylÃn yliopisto, tietotekniikan laitos, 2009.

[4] Oracle, ”Code Conventions for the Java Programming Language”, saatavilla

PDF-muodossa <URL: http://www.oracle.com/technetwork/java/
codeconventions-150003.pdf>, viitattu 25.3.2012.

[5] Jukka-Pekka Santanen, ”Tietotekniikan Sovellusprojektien ohje”, saatavilla

HTML-muodossa <URL: http://www.mit.jyu.fi/opetus/

sovellusprojektit/projohje.html>, JyvÃskylÃn yliopisto, tietotekniikan laitos, 11.9.2006.

[6] Tapio KerÃnen, Toni Salminen, Jari Salokangas ja Lauri Satokangas, ”Paattiprojekti, Projektiraportti”, JyvÃskylÃn yliopisto, tietotekniikan laitos, 2012.

[7] Tapio KerÃnen, Toni Salminen, Jari Salokangas ja Lauri Satokangas, ”Paattiprojekti, Projektissuunnitelma”, JyvÃskylÃn yliopisto, tietotekniikan laitos, 2012.