% .tex-tiedosto projektin dokumenttien latomiseksi.

% Kirjoitelmaluokka, tässä käytetään projektien projdoc-luokkaa.
\documentclass[twoside]{projdoc}

\usepackage{paralist}
\usepackage{alltt}

% Projektin nimi
\project{Paatti}

% Luottamuksellisuus: käytä termiä 'Luottamuksellinen' tai 'Julkinen'
\publicity{Julkinen}

% Versionumero: numerointikäytäntö on projektikohtainen
\version{0.0.3}

% Dokumentin nimi
\title{Projektiraportti}

% Tekijät: huomaa aakkosjärjestys sukunimen mukaan
\author{Tapio Keränen}{Toni Salminen}{Jari Salokangas}{Lauri Satokangas}
% Puhelinnumerot: tekijöitä vastaava järjestys!
\authorphones{040-8464981}{040-5378086}{040-8652014}{040-5735358}
% Sähköpostiosoitteet: tekijöitä vastaava järestys!
\authoremails{t.tapio.keranen@student.jyu.fi}{toni.a.j.salminen@student.jyu.fi}{jari.p.t.salokangas@student.jyu.fi}{lauri.n.satokangas@student.jyu.fi}
% Etu- ja sukunimen alkukirjaimet: tekijöitä vastaava järjestys!
\authorinitials{TK}{TS}{JS}{LS}

% Tiivistelmä dokumentista: tämä ei siis ole tiivistelmä projektista,
% vaan tämän ko. dokumentin tarkoituksesta. 
\docabstract{Paatti-projekti toteutti 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. Projektiraportissa kuvataan projektin läpivientiä käsitellen tavoitteita, resursseja, käytänteitä, tehtävien työnjakoa ja työmääriä, prosessimallia ja aikataulua sekä arvioitujen riskien toteutumista ja hallintaa. Projektiraportti vertaa projektin toteutumaa suunnitelmaan kuvaten erot sekä niiden syyt ja vaikutukset.} 

% Tiivistelmä projektista
\projectabstract{Paatti-projekti suunnitteli ja toteutti 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ä.}

% Avainsanat: dokumentin sisältöön liittyviä olennaisia asiasanoja: aakkosjärjestys, ensimmäinen sana isolla alkukirjaimella ja piste loppuun.
\keywords{Aikataulu, kokemuksia, käytänteet, ohjelmistoprojekti, projektiorganisaatio, prosessimalli, raportti, resurssit, riskien hallinta, tavoitteet, tehtävät, työnjako, työmäärät}

% Varsinainen tulosteessa näkyvä ladonta alkaa
\begin{document}

% Tämä latoo versiohistorialle ympäristön, sen alapuolelle ladotaan
% versiohistoriataulukko. Esimerkin vuoksi tehty. 
\versionhistory

\begin{tabular}{|c|r|p{9.0cm}|p{1.2cm}|}
\hline
\textbf{Versio} & \textbf{Päivämäärä} & \textbf{Muutokset} & \textbf{Tekijät} \\
\hline \hline
0.0.1    & 11.5.2012 & Dokumentin pohja luotu ja kirjoitus aloitettu projektisuunnitelman pohjalta.  & LS\\
\hline
0.0.2    & 14.5.2012 & Kirjoitettu luvuista 1-5.  & LS\\
\hline
0.0.3    & 14.5.2012 & Kirjoitettu prosessimallista.  & LS\\
\hline
0.1.0    & 15.5.2012 & Toimitettu versio ohjaajan tarkastettavaksi.  & LS\\
\hline



\end{tabular}


% \projectinfo latoo ympäristön projektin tiivistelmälle, joka on 
% projektikohtainen.
% Projektin tiivistelmä ja tekijöiden tiedot ladotaan automaattisesti sivun
% alkuun. Eli lisättävä projektiorganisaation tiedot muiden kuin tekijöiden
% osalta sekä tarvittavat yhteystiedot. Alla tämä on tehty esimerkin vuoksi.
\projectinfo

\textbf{Tilaaja:}

\begin{tabular}{p{4.8 cm}p{8cm}p{2.4cm}}
~~~$\bullet$~~Jukka Kaartinen & \texttt{jukka.kaartinen@jyu.fi} & 0400-248148 \\
~~~$\bullet$~~Päivi Lappalainen & \texttt{paivi.k.lappalainen@psyka.jyu.fi} & 040-8054192 \\
~~~$\bullet$~~Raimo Lappalainen & \texttt{raimo.lappalainen@psyka.jyu.fi} & 050-4432349 \\
~~~$\bullet$~~Heikki Lyytinen  & \texttt{heikki.lyytinen@psyka.jyu.fi} & 050-5524892 \\

\end{tabular}

\vspace{1truecm}
\textbf{Ohjaajat:}

\begin{tabular}{p{5.0cm}p{7.8cm}p{2.4cm}}
~~~$\bullet$~~Matti Lehtinen & \texttt{matti.k.lehtinen@jyu.fi} & 041-4564118 \\
~~~$\bullet$~~Jukka-Pekka Santanen & \texttt{santanen@mit.jyu.fi} & 040-8053299 \\
~~~$\bullet$~~Outa Valkama & \texttt{outa.j.valkama@gmail.com} & 045-3490910
\end{tabular}

\vspace{1truecm}
\textbf{Yhteystiedot:}

\begin{tabular}{p{4.5cm}p{13cm}}
~~~$\bullet$~~Sähköpostilistat: & \texttt{paatti@korppi.jyu.fi},\linebreak \texttt{paatti\_opetus@korppi.jyu.fi} \\
~~~$\bullet$~~Sähköpostiarkistot: & \texttt{https://korppi.jyu.fi/list-archive/paatti/}, \texttt{https://korppi.jyu.fi/list-archive/\linebreak paatti\_opetus/} \\ 
~~~$\bullet$~~Työhuone: & Agora C222.2, puh. 040-8053308
\end{tabular}

%----------------------------------------------------------------------------
% \mainmatter latoo automaattisesti sisällysluettelon ym. alkusivut, ja 
%% sen jälkeen alkaa dokumentin sisällysluettelossa näkyvät luvut.
\mainmatter

% \chapter{Pääluvun nimi} aloittaa pääluvun, \section{Alaluvun nimi} alaluvun,
% ja \subsection{Ala-alaluvun nimi} ala-alaluvun.
\chapter{Johdanto}

Paatti-projekti toteutti 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.\linebreak 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ä.

Projektiraportti kuvaa projektin toteutunutta läpivientiä määritellen sen tulokset, osallistujat ja muut resurssit, käytänteet, prosessimallin, aikataulun sekä riskien hallinnan. Jäsenten osalta käsitellään tehtäviä, työmääriä ja tehtäväjakoa projektissa. Projektiraportin laatimisessa  on hyödynnetty Judo-projektin projektiraporttia \cite{judoraportti}, Tabu-projektin projektiraporttia \cite{taburaportti} sekä Sovellusprojektien ohjetta \cite{sovellusprojektienohje}.  Sovellusraportti [6] kuvaa toteutetun sovelluksen käyttöliittymän, toteutusratkaisut, havaitut ongelmat ja jatkokehitysideat. Projektin muut tulokset on esitelty luvussa 3.3

Luvussa 2 kuvataan dokumentissa käytetyt termit ja niiden merkitys. Luvussa 3 esitellään projektin taustoja ja tavoitteiden, tulosten sekä projektiryhmän jäsenten oppimistavoitteiden toteutumista. Luvussa 4 esitellään projektin organisaatio ja resurssit. Luvussa 5 kuvataan projektin käytänteet. Luvussa 6 tarkastellaan projektiryhmän tehtäviä sekä tehtävien työmäärää ja ryhmän työnjakoa. Luvussa 7 kuvataan projektin prosessimalli ja aikataulu. Luvussa 8 kuvataan projektiin liittyneitä riskejä ja käsitellään niiden vaikutusta projektin läpivientiin ja tuloksiin. Luku 9 sisältää ryhmän jäsenten kokemuksia projektista.

\chapter{Termit}

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

\section{Aihealueen termit}
Projektin aihealueen termejä ovat seuraavat:
% Termilistat ladotaan Ventry-ympäristöllä, parametrina pisin termi,
% jolloin sisentyy oikein:
\begin{Ventry}{Sovellusprojekti}
  \item[Fyysinen aktiivisuus] viittaa kuntoutettavan harrastamaan liikunnan määrään.
  \item[Hälytystehtävä] on tehtävätyyppi, joka lähettää järjestelmän kautta viestin toiselle käyttäjälle.
  \item[Interventio] on psykologisen tiedon, menetelmän ja osaamisen avulla tapahtuva vaikuttaminen.
  \item[Kuntoutettava] on tietojärjestelmän käyttäjä, joka suorittaa kuntoutusohjelmia.
  \item[Kuntoutusohjelma] on tutkijan ryhmälle tai käyttäjälle laatima kokonaisuus aikataulutettuja tapahtumia.
  \item[Käyttäjärooli] on käyttäjän käyttöoikeuksia tietojärjestelmässä kuvaava rooli. Niitä ovat mm. kuntoutettava ja tutkija.
  % \item[Kysely] on tapahtumatyyppi, jolla kuntoutettavalta kerätään tietoa.
  % \item[Harjoitusohjelma] muodostuu tapahtumista, jotka tutkija aikatauluttaa ryhmille.
  \item[Mobiililaite] on älypuhelin tai sormitietokone.
  \item[Metatieto] on kuvailevaa tietoa tiedosta, jota hyödynnetään tiedon yksilöinnissä ja haussa.
  \item[Ohje] on tehtävään liittyvä kuvaus teksti-, ääni-, kuva- tai videomuodossa.
  \item[Omainen] on käyttäjä, jolla on oikeus seurata kuntoutettavan edistymistä ja aktiivisuutta.
  % \item[Palaute] on mikä tahansa käyttöliittymän kuntoutettavalle esittämä ilmoitus.
  %\item[Profiiliviesti] on tutkijan lähettämä viesti ryhmälle tai käyttäjälle, jolla voidaan tiedottaa erilaisista asioista.
  \item[Profiiliviesti] on järjestelmän kautta lähetettävä viesti.
  \item[Ryhmä] on käyttäjistä koostuva kokonaisuus, jolle mm. voidaan laatia kuntoutusohjelma.
  % \item[Ryhmäohjelma] on tutkijan laatima, tapahtumista koostuva ohjelma joka laaditaan ryhmälle.
  % \item[Sovellusprojekti] on tietotekniikan laitoksen opintojakso.
  \item[Suorite] on tehtävän suorittamisesta tietokantaan tallennettu data.
  \item[Tapahtuma] on tutkijan laatima tehtävien kokonaisuus, joka liitetään osaksi kuntoutusohjelmaa.
  \item[Tehtävä] on tapahtuman sisällä oleva yksittäinen tehtävä, joka voi sisältää mm. tekstiä, ääntä, kuvan tai videon.
  % \item[Tehtävätyyppi] on tehtävälle asetettu tyyppi, jolla yksittäinen tehtävä voidaan tunnistaa.
  \item[Toimintakyky] on kuntoutettavan kyky tehdä hänelle hyödyllisiä asioita.

  % \item[Tulostiedosto] on tiedosto, johon tallennetaan tietoa harjoitteisiin liittyen sekä kiihtyvyysanturin keräämää dataa.

  % \item[Turvaraja] on tutkittavan liikkumisen raja, jonka ylityttyä liikunta saattaa johtaa fyysisiin vahinkoihin.
  \item[Tutkija] on käyttäjä, joka laatii kuntoutusohjelmia kuntoutettaville ja seuraa niiden toteutumisia.
  \item[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.
  \item[Tutkimus] on samaan tutkimusaiheeseen tai -kohteeseen liittyvien ryhmien kokonaisuus.
\end{Ventry}

\section{Vaatimusmäärittelyn termit}

Vaatimusmäärittelyssä esiintyviä termejä ovat seuraavat:
\begin{Ventry}{Sovellusprojekti} 
  \item[Etenemisvaihtoehto] on monivalintatehtävän yksi valinta. 
  \item[Hälytyskomponentti] on tehtävä, joka lähettää profiiliviestin komponentin asetuksiin määritetyille henkilöille. 
  \item[Kotoistus] on toimi, jolla tietojärjestelmä käännetään vieraalle kielelle.
  \item[Käyttäjäprofiili] on järjestelmässä olevan käyttäjän profiili, joka sisältää tunnistetietoja ja käyttöoikeuksia.
  \item[Mediasisältö] koostuu tietojärjestelmässä olevista multimediatiedostoista, joita voidaan sisällyttää tehtäviin.
  \item[Muistutus] huomauttaa käyttäjää tapahtuneesta asiasta. Muistutus voi olla ääni-, värinä- ja tekstimuodossa. 
  \item[Sisältökomponentti] on tehtävä, joka esittää käyttäjälle informaatiota, kuten tekstiä, ääntä, valokuvan tai videon.
  \item[Syötekomponentti] on tehtävä, joka tallentaa järjestelmään käyttäjän antamaa informaatiota, kuten tekstiä, ääntä, valokuvan tai videon. 
  \item[Tapahtumamuokkain] on työkalu tapahtuman laatimiseen.
  \item[Tapahtumatyyppi] on tapahtumalle asetettu tyyppi, jolla tapahtuman sisältö voidaan tunnistaa. Niitä voivat olla mm. liikunta- tai rentoutustapahtumat.
  \item[Valintakomponentti] on tehtävä, johon käyttäjä vastaa valitsemalla vaihtoehdon.
\end{Ventry}

\section{Tekniikat ja kehitysvälineet}
Dokumentissa esiintyviä tekniikoita ja kehitysvälineitä ovat seuraavat:
\begin{Ventry}{Sovellusprojekti}
  \item[CSS] on WWW-dokumenteille kehitetty tyylikieli.
%  \item[Django] on 
  \item[FreeMind] on ajatuskarttasovellus.
  \item[GanttProject] on ajan- ja resurssienhallintaohjelma projekteille.
  \item[Git] on hajautettu versiohallintajärjestelmä.
  \item[HTML5] on uusi versio WWW-sivujen tekemiseen käytetystä HTML-kuvauskielestä.
  \item[JavaDoc] on ohjelma, jonka avulla Javan lähdekoodista voidaan generoida luokkadokumentaatio.
  \item[JavaScript] on WWW-ympäristössä käytettävä komentosarjakieli, jolla voidaan mm. lisätä WWW-sivuille dynaamista toiminnallisuutta.
  \item[Jetty] on avoimen lähdekoodin Java-pohjainen www-palvelin
  \item[jQuery] on kaikille selaimille tarkoitettu ilmainen ja avoimen lähdekoodin lisenssin alainen JavaScript-kirjasto.
  \item[\LaTeX] on ladontaohjelmisto.
  \item[Lähdekoodi] on tekstimuotoista ohjelmointikielistä listausta.
  \item[NetBeans] on integroitu ohjelmointiympäristö mm. Java- ja JavaScript-ohjelmointikielille.
  \item[OpenOffice.org] on avoimeen lähdekoodiin perustuva toimisto-ohjelmisto.
  \item[PDF] on ohjelmistoriippumaton siirrettävä tiedostomuoto do\-ku\-men\-teil\-le.
  \item[Tomcat] on www-palvelin Java-sovelluksille
  \item[Vaadin] on Java-sovelluskehitysympäristö WWW-sovellusten luomiseen.
  \item[YouSource] on Git-versiohallintaohjelmistoa tukeva lähdekoodien julkistusjärjestelmä, jota käytetään WWW-käyttöliittymällä.
\end{Ventry}


\chapter{Tavoitteiden toteutuminen ja tulokset}

Luvussa käsitellään projektissa toteutuneen tietojärjestelmän ja muiden tulosten sekä ryhmän oppimistavoitteiden toteutumista.


\section{Taustaa ja tarpeita}

Projektin tilaajana on Jyväskylän yliopiston psykologian laitos. Tilaaja kehittää hoitokäytänteitä sekä tutkii iäkkäitä, työuupumuksesta kärsiviä ja mielenterveyspotilaita. Tietojärjestelmän kohderyhmien tarpeet ovat pääosin yhteneväisiä.

Iäkkäitä ihmisiä halutaan auttaa elämään tervettä ja itsenäistä elämää omassa kodissaan pidempään. Iäkkäillä on usein muistihäiriöitä, jotka estävät heitä noudattamasta hoito-ohjeita. Tilaaja haluaa pystyä muistuttamaan kuntoutettavia hoito-ohjeiden noudattamisesta. Useasti varttuneempien ihmisten fyysinen aktiivisuus alenee, ja tämä johtaa toimintakyvyn heikkenemiseen, joka estää heitä elämästä itsenäisesti omassa kodissaan. Tilaaja haluaa motivoida ikäihmisiä liikkumaan enemmän omatoimisesti.

Työuupumuksesta kärsivät eivät useasti muista pitää taukoja elämässään ja työssään. Heitä pitää muistuttaa rentoutusharjoituksista, jotka helpottavat stressiä, auttavat toipumaan ja opettavat keinoja selviytyä uupumuksesta.

Mielenterveyspotilaiden hoito vaatii paljon hoitohenkilökunnan läsnäoloa. Läsnäolo ei kuitenkaan ole aina mahdollista, kun hätä on suurin. Potilaan tilaa tulee voida seurata tapaamisten välillä, sekä potilaan ja tutkijan tulee tarvittaessa saada yhteys toisiinsa tapaamisten välillä.

Tilaaja haluaa joustavan yhteyden kuntoutettavan, omaisen ja tutkijan välille. Tutkijan ja kuntoutettavan välille halutaan yhteys, joka mahdollistaa rutiiniluonteisten tehtävien suorittamisen ilman tutkijan läsnäoloa ajasta ja paikasta riippumattomasti. Yhteys mahdollistaa myös nopeamman viestinnän kuntoutettavan ja tutkijan välillä sekä antaa mahdollisuuden tutkijalle ja omaiselle seurata kuntoutukseen liittyvien tapahtumien suorittamista lähes reaaliajassa.

Tutkijalle ja omaiselle tulee voida lähettää automaattinen ilmoitus havaitusta hätätilanteesta. Hätätilanne voi syntyä esimerkiksi, jos mielenterveyspotilas vastaa kysymyksiin tietyllä tavalla. Hoitoon liittyvistä tapahtumista, kuten lääkkeiden ottamisesta ja liikuntaharjoitteista, tulee voida muistuttaa kuntoutettavaa kehitettävän tietojärjestelmän kautta. Tilaaja haluaa motivoida kuntoutettavaa itsenäiseen elämään ja ottamaan vastuuta omasta paranemisestaan tarjoamalla vapaaehtoisia tapahtumia tutkijan luoman kuntoutusohjelman ohella. Tilaaja haluaa hyödyntää tiedon keräämisessä älypuhelimien erilaisia antureita, kuten esimerkiksi kiihty\-vyys\-anturia liikuntasuoritteiden yhteydessä.

\section{Toteutettu tietojärjestelmä}

Paatti-projektissa toteutettiin tietojärjestelmän prototyyppi, joka oli jatkoa Tabu-projek\-tin kehittämälle ohjelmalle. Tabu-projekti kehitti keväällä 2009 Agora Centerille ja GeroCenterille prototyypin Oljenkorsi-sovelluksesta, jolla vanhusten ohjattua ja aikataulutettua liikkumista voitiin tukea ja seurata ilman tutkijoiden, omaisten tai hoitajien läsnäoloa. Tabu-projektin kehittämä ohjelma oli sidottu tietyn puhelinmallin käyttämiseen.

Paatti-projektin tavoitteet olivat laajemmat kuin Tabu-projektin. Tilaaja halusi, että kuntoutettavan käyttöliittymä toimisi useilla erilaisilla alustoilla, jolloin kuntoutettava voisi käyttää sovellusta miltei millä tahansa mobiililaitteella. Tutkijan käyttöliittymän haluttiin toimivan tietokoneella sekä mahdollisesti sormitietokoneella. Kumpikin käyttöliittymä toteutettiin WWW-sovelluksena. Tilaaja haluaa laajentaa sovelluksen käyttökohdetta vanhusten itsenäisen elämän tukemisen lisäksi myös muun muassa mielenterveyspotilaiden hoidon ja työuupumuksesta kärsivien tukemiseen.

Tilaajan tarpeet ja tarvitun tietojärjestelmän laajuus olivat käytettävissä olevaan aikaan ja muihin resursseihin verrattuna niin suuret, että jo projektin alussa oli selvää, ettei sitä pystytä sellaisenaan toteuttamaan. Paatti-projekti kehitti tavoitteena olevasta tietojärjestelmästä prototyypin, jota jatkokehitetään projektin jälkeen. Paatti-projekti toteutti tietojärjestelmässä käytettävän tietokannan sekä alustavat versiot tutkijan ja kuntoutettavan käyttöliittymistä. Tutkijan käyttöliittymällä voidaan hallita tutkimuksia, ryhmiä, käyttäjiä ja tapahtumia sekä seurata kuntoutettavien edistymistä. Kuntoutettavan käyttöliittymällä voidaan suorittaa tutkijoiden tekemiä hoito-ohjelmia, suorittaa vapaaehtoisia tapahtumia ja tarkastella käyttäjän suorittamia tapahtumia. Tietojärjestelmään kerätyt tiedot tallennetaan tietokantaan, josta tiedot voidaan tarvittaessa siirtää muihin tutkimuksessa hyödennettäviin ohjelmiin. 

Yksi projektin alussa olleista tavoitteista oli, että kuntoutettavan suorittamista tapahtumista voitaisiin kerätä tietoa myös mobiililaitteen kiihtyvyysanturin avulla, mutta ajanpuutteen vuoksi tämä ominaisuus rajattiin projektin ulkopuolelle.

% \pagebreak
\raggedbottom
\newpage
Tutkijan käyttöliittymän toteutuneita toimintoja ovat
 \begin{compactitem}
  \item käyttäjien hallinta,
  \item ryhmien hallinta,
  \item tutkimusten hallinta,
  \item tapahtumien luonti ja muokkaus,
  \item kuntoutusohjelmien luonti ja muokkaus,
 \end{compactitem}
Kuntoutettavan käyttöliittymän toimintoja ovat
 \begin{compactitem}
  \item tapahtumakalenteri,
  \item vapaaehtoiset tapahtumat,
 \end{compactitem}

Tietojärjestelmän käyttäjilleen tarjoamat tiedot ja toiminnot sekä niiden priorisointi on määritelty tarkemmin vaatimusmäärittelyssä \cite{vaatimusmaarittely}. Toteutetun tietokannan ja prototyypin rakenne, heikot toteutusratkaisut ja jatkokehitysideat on kuvattu tarkemmin sovellusraportissa \cite{sovellusraportti}. Sovellusraportti sisältää myös kuvaukset kuntoutettavan ja tutkijan käyttöliittymien toiminnoista.


\section{Projektin tulokset}

Tietojärjestelmän prototyypin ohella  projektiryhmä toteutti seuraavat dokumentit:
\begin{compactenum}
\item[-]\textbf{Ajankäyttöraportti} sisältää ryhmän jäsenten kirjaamat työtunnit sekä niiden jakautumisen eri tehtäville ja tehtäväkokonaisuuksille.
\item[-]\textbf{Esittelymateriaali} sisältää väli- ja loppuesittelyn materiaalit ja pöytäkirjat.
\item[-]\textbf{Itsearvioinnit} sisältävät ryhmän jäsenten arvioinnit omasta toiminnasta, onnistumisesta, kokemuksista ja oppimisesta.
\item[-]\textbf{Kartoitukset} sisältävät projektin määrittelyn ja suunnittelun yhteydessä laaditut dokumentit.
\item[-]\textbf{Luokkadokumentaatio} sisältää lähdekoodista automaattisesti JavaDocilla luodut dokumentit.
\item[-]\textbf{Lähdekoodi} sisältää toteutetun sovelluksen lähdekoodin kommentteineen.
\item[-]\textbf{Kokouksien dokumentit} sisältävät kokouksien esityslistat, pöytäkirjat ja tilakatsaukset.
\item[-]\textbf{Projektiraportti} kuvaa projektin läpivientiä ja asetettujen tavoitteiden saavuttamista.
\item[-]\textbf{Projektisopimus} on sopimus projektin tulosten hyödyntämisestä. Se määrittelee mm. projektin osapuolet sekä heidän oikeutensa ja velvollisuutensa.
\item[-]\textbf{Projektisuunnitelma} kuvaa projektin tavoitteita, resursseja, yleisiä käytänteitä, tehtäviä, aikataulua ja riskien hallintaa.
\item[-]\textbf{Sovellusraportti} kuvaa toteutetun sovelluksen rakenteen ja toiminnot, puutteelliset ja heikot toteutusratkaisut sekä jatkokehitysideat.
\item[-]\textbf{Sähköpostiarkistot} sisältävät kaikki projektin sähköpostilistoilla käydyt keskustelut.
\item[-]\textbf{Vaatimusmäärittely} kuvaa projektin tekniset ja toiminnalliset vaatimukset, sekä tavoitteet ja rajoitteet.
\end{compactenum}


\section{Jäsenten oppimistavoitteet}

Sovellusprojekti-kurssin oppimistavoitteena on projektimuotoisen työskentelyn oppiminen. Projektiryhmän jäsenet saivat kattavan käsityksen ohjelmistoprojektissa työskentelystä sekä sen vaatimuksista ja työtavoista. Olennaisia tehtäväkokonaisuuksia olivat ohjelmiston kehitykseen liittyen määrittely, suunnittelu, toteutus ja testaus. Projektipäällikönä toimivat jäsenet oppivat {\bf ajankäytön suunnittelua ja hallintaa} sekä projektin hallintaa ja ryhmän johtamista.

Keskeistä sovellusprojektissa on käytännön tekemisen kautta oppiminen sekä aikaisemmilla kursseilla opitun teoriatiedon soveltaminen.Optuista tiedoista olikin paljon hyötyä projektissa ilmaantuneiden ongelmien ratkaisemisessa. 

Projektityöskentelyssä vaadittiin taitoja ongelmatilanteiden ratkaisemiseen ja ristiriitojen käsittelyyn. Ryhmän tuli toimia aktiivisesti ja omatoimisesti pitäen projektin ja tilaajan tavoitteet sekä loppukäyttäjien tarpeet mielessä. Tarvittaessa ohjaajilta pyydettiin ohjausta.

Ryhmätyö- ja viestintätaitojen oppiminen oli olennaisessa osassa projektissa. Jäsenet oppivat viestimään sekä ryhmän sisällä että projektiorganisaatioon kuuluville henkilöille ja sidosryhmille. Projektin edetessä jäsenet oppivat myös kirjoittamaan sisällöltään ja kirjoitusasultaan laadukkaita dokumentteja. Väliesittelyt ja loppuesittely kannustivat ryhmää myös kehittämään puheviestinnän taitojaan ja toivat esiintymiskokemusta.

Jäsenet oppivat ohjelmointitaitoja käyttäen miltei kaikille entuudestaan tuntematonta Vaadin-sovelluskehystä. Tietokannan suunnittelusta saatiin myös hyvää kokemusta.

Edellisten tavoitteiden lisäksi jäsenet olivat asettaneet seuraavia henkilökohtaisia tavoitteita:

\begin{compactenum}
\item[-] Tapio Keränen halusi tutustua projektin koko elinkaareen.
\item[-] Toni Salmisen tavoitteena oli oppia projektin hallintaa, projektin ja ohjelmiston suunnittelua, ryhmän johtamista sekä ajanhallintaa.
\item[-] Jari Salokangas halusi käytännön kokemusta ohjelmointityökaluista, ohjelmoinnista ja projektityöskentelystä.
\item[-] Lauri Satokankaan tavoitteena oli oppia WWW- ja mobiilisovellusten suunnittelua ja toteutusta. Satokangas halusi myös oppia projektin hallintaa ja ryhmätyöskentelyä.
\end{compactenum}

Henkilökohtaiset projektin oppimistavoitteet toteutuivat jokaisen ryhmän jäsenen osalta. % Onko näin?


\chapter{Organisaatio ja resurssit}

Luvussa esitellään projektiorganisaatio, käytössä olleet resurssit sekä projektiin liittyvät oheiskurssit ja perehdytykset. Organisaatio ja resurssit toteutuivat suunnitelman mukaisesti. Projektin loppuvaiheessa organisaatioon liittyi tilaajan pääasiallisena koekäyttäjänä toiminut koekäyttäjänä Tero Kallioinen, joka todennäköisesti jatkaa tietojärjestelmän kehitystä projektin jälkeen. Tällä ei ollut vaikutusta projektin suunniteltuun läpivientiin.


\section{Projektiorganisaatio}\label{projektiorganisaatio}

Projektiryhmään kuului neljä tietotekniikan laitoksen opiskelijaa: Tapio Keränen, Toni Salminen, Jari Salokangas ja Lauri Satokangas. Lauri Satokangas ja Tapio Keränen olivat kokeneita ohjelmoijia, joista ensimmäisellä oli kokemusta Vaadin-sovellus\-kehyksestä. Kummatkin olivat myös käyttäneet aikaisemmin Netbeans-sovelluskehi\-tin\-tä. Toni Salmisella oli kokemusta Linux-palvelimen konfiguroinnista. Jari Salokankaan vahvuusalueita olivat visiointi ja suunnittelu. Kaikki jäsenet olivat suorittaneet useita ohjelmointikursseja yliopistossa. Jokainen pääsi hyvin käyttämään omia vahvuusalueitaan hyödyksi projektin läpiviennissä.

Tilaajan edustajana toimivat Jyväskylän yliopiston psykologian laitokselta Heikki Lyytinen, Raimo Lappalainen, Päivi Lappalainen ja Jukka Kaartinen. Jyväskylän yliopiston tietotekniikan laitokselta projektin vastaavana ohjaajana toimii Jukka-Pekka Santanen ja teknisenä ohjaajana Outa Valkama.

Projektin asiantuntijana toimii Matti Lehtinen Agora Centeriltä. Asiantuntijatukea oli mahdollista saada tarvittaessa myös Vesa Lappalaiselta ja Kari Tuurihalmeelta, joista jälkimmäinen oli kehittämässä Oljenkorsi-sovellusta myös Tabu-projektin jälkeen. Tuurihalmeen ja Lappalaisen tukeen ei kuitenkaan ilmennyt tarvetta. Ryhmä sai myös pikaisen perehdytyksen JavaScript-ohjelmointikieleen Juho Vepsäläiseltä ja tietokannan rakenteen suunnittelussa apua saatiin Pauli Kujalalta. Jyväskylän yliopiston ATK-tuki vastasi ryhmän käytössä olevista laitteista ja ohjelmistoista.

Projektiin kuuluvan viestintäkurssin kirjoitusviestinnän opettajana toimi Kaisa Leino ja puheviestinnän opettajana Minna Haapsaari. Projektin aikana järjestettävän käytettävyyspäivän piti Meeri Mäntylä.

\section{Projektin tilat, laitteet ja ohjelmistot}

Tietotekniikan laitos tarjoaa ryhmälle projektin ajaksi käyttöön lukittavan projektihuoneen AgC222.2. Projektin jäsenillä oli projektihuoneessa käytössään kaksi Fedora 14 -käyttöjärjestelmällä ja kaksi Windows 7 -käyttöjärjestelmällä varustettua tietokonetta. 

Projektiryhmä käytti projektikokouksia varten kokoustilaa Ag C226.2. Tilassa oli käytettävissä Windows 7 -tietokone ja videoprojektori esityksiä varten.

Sovellusprojektin aikana ryhmällä oli mahdollisuus käyttää yliopiston monitoimitulostimia veloituksetta. Ryhmällä oli myös oikeus varata käyttöönsä videoprojektori, kannettava PC, digitaalisanelin ja MiniDisc-tallennin. Digitaalisanelinta käytetiin muutamissa ensimmäisissä kokouksissa, jotta sihteerinä toiminut ryhmän jäsen sai tarvittaessa tukea kokouksen nauhoitteesta.

Projektiryhmällä oli käytössään yhteinen verkkolevy ja WWW-sivusto projektin tiedostojen säilytystä varten.

Projektiryhmällä oli käytettävissään virkistystila, jossa oli vedenkeitin ja kahvinkeitin. Tietotekniikan laitos tarjosi ryhmälle kahvit ja teet.

Lisäksi ryhmä sai myöhemmin käyttöönsä virtuaalipalvelimen, johon oli asennettu MySQL-tietokanta ja Apache Tomcat -WWW-palvelin. Sovelluksien kehityksen aikana ryhmä päivitti palvelimelle uusimmat versiot sovelluksista, jotta kaikki projektiorganisaatioon kuuluvat pääsivät testaamaan kehityksessä olevaa tietojärjestelmää. 

Projektin tilat, laitteet ja ohjelmistot toteutuivat suunnitelman mukaisesti. Virtuaalipalvelimen käyttöönotossa oli aluksi vaikeuksia ryhmästä johtumattomista syistä, mutta mitään muita ongelmia ei projektin aikana ilmaantunut.

\section{Dokumentointityökalut}

Projektisuunnitelma, sovellusraportti ja projektiraportti laadittiin \LaTeX -ladontaohjemistolla. Open\-Office.org -toimisto-ohjelmistolla laadittiin esitysgrafiikat, projektisopimus ja pöytäkirjat. Vaatimusmäärittelyn tekemisessä käytettiin FreeMind-aja\-tus\-karttaohjelmaa. Tilakatsaukset laadittiin Microsoft Powerpoint -toimisto-ohjelmistolla. Kaikki edellä mainitut laajemmat dokumentit julkaistiin myös pdf-muodossa. Raakatekstimuodossa laadittiin muut tekstidokumentit, kuten esityslistat.

Projektin aikataulu laadittiin GanttProject-ohjelmalla. Ajankäytönseurantaan ryhmällä oli käytössään Petri Heinosen sovellusprojekteille toteuttama Excel-sovellus \cite{ajanseurantalahde}.

Projektiryhmä käytti YouSource-versiohallintajärjestelmää lähdekoodin ja dokumenttien versioiden hallintaan.

Ohjelmointi- ja dokumentointityökalut toteutuivat suunnitellusti. Luokkadokumentaation muodostamiseen käytettiin JavaDoc-työkalua.


\section{Ohjelmointityökalut}

Tietojärjestelmää kehitettiin Netbeans-sovelluskehittimellä käyttäen apuna Vaadin-sovelluskehystä. Sovellusten kehityksessä käytettiin Jetty-www-palvelinta sen nopeuden vuoksi ja   Tietokannanhallintajärjestelmänä käytettin MySQL-ohjelmistoa. Projektissa käytettiin myös CSS- ja HTML5-tekniikoita. 

Ohjelmointityökalujen valinta projektin alussa oli haastavaa, koska ryhmällä ei ollut riittävästi tietoa kehitettävän tietojärjestelmän vaatimuksista, eikä myöskään tarpeeksi vahvaa kokemusta eri työkalujen soveltuvuudesta projektin toteuttamiseen. Työkalujen valinnan epävarmuus hidasti työskentelyä projektin alussa. Jos ryhmälle olisi ollut selvää mitä työkaluja käytetään, olisi niihin tutustuminen voitu aloittaa aikaisemmin.

Vaadin-sovelluskehys oli kaikille muille paitsi Satokankaalle entuudestaan tuntematon, mutta kaikki ryhmän jäsenet oppivat sen käytön projektin aikana. Vaadinin käyttöä opiskeltiin Internetin keskustelupalstojen ja kirjojen Book of Vaadin \cite{bookofvaadin} ja Learning Vaadin \cite{bookofvaadin} avulla. Myös projektin tekninen ohjaaja, jolla oli kokemusta Vaadin-kehityksestä opasti ryhmää.


\section{Luennot ja perehdytykset}

Projektin rinnalla järjestettiin kaksi oheiskurssia. Kurssiin \textit{Sovellusprojektin hallintaa, viestintää ja työkaluja} sisältyivät seuraavat luennot:

\begin{compactenum}
\item[-]aloitusluento,
\item[-]projektin johtaminen ja hallinta,
\item[-]projektipäälliköiden tapaamisia,
\item[-]käytettävyyspäivä,
\item[-]tekijänoikeus ja sopimukset sekä
\item[-]versiohallinta.
% \item[-]kaksi väliesittelyä.
\end{compactenum}

Kurssiin sisällytettiin myös perehdyttämistä projektin mahdollisiin työkaluihin ja tekniikoihin sekä aihealueeseen. Juho Vepsäläinen perehdytti Django-sovellusalustaan sekä JavaScript-ohjelmointikieleen ja Pauli Kujala opasti tietokannan suunnittelussa. Lisäksi tilaajan toimesta saatiin IPR-juristi Markku Lampola esitelmöimään sopimusjuridiikasta.

Kurssiin \textit{Projektiviestintä IT-alalla} kuuluivat puhe- ja kirjoitusviestinnän luentojen ja ryhmätöiden ohella projektissa laadittujen dokumenttien kirjoitusasun ja rakenteen muokkauksen työtunnit. Projektin aikana järjestetyt kaksi väliesittelyä kuuluivat viestintäkurssiin.

Luennot ja perehdytykset toteutuivat suunnitellusti. Ryhmän jäsenet saivat luennoilta hyödyllistä tietoa projektityöskentelyyn.


\chapter{Käytänteet}
Luvussa kuvataan käytänteitä, joiden avulla projektin tavoitteet saavutettiin laadukkaasti ja aikataulussa.


\section{Kokoukset}
Projektiorganisaatio piti kokouksia projektin puoleen väliin asti miltei viikottain ja tämän jälkeen noin kahden viikon välein. Kokouksiin osallistuivat ryhmän jäsenet, ohjaajat ja tilaajan edustajat. Kokouksissa käsiteltiin projektille ajankohtaisia asioita sekä hyväksyttiin tavoittieta ja toteutusratkaisuja tuoden esille mahdolliset ongelmat, valinnat ja vaihtoehdot. Jokaisessa kokouksessa projektipäällikkö esitteli projektin tilakatsauksen sekä ryhmän käyttämän työajan ja sen jakautumisen eri tehtäväkokonaisuuksille. Edellisen kokouksen pöytäkirjan päätökset ja osallistujien tehtävät käytiin myös läpi.

Puheenjohtajan ja sihteerin tehtäviä kierrätettiin projektiryhmän jäsenten kesken. Sihteeri laati kokouksesta pöytäkirjan, jonka puheenjohtaja tarkasti ennen sen julkistamista projektiorganisaatiolle. Jokaisen jäsenen ensimmäisen pöytäkirjan tarkasti myös kirjoitusviestinnän opettaja Kaisa Leino.  Kokouksissa hyväksyttiin edellisen kokouksen pöytäkirja sellaisenaan tai muutoksin.

Kokoukset toteutuivat suunnitellusti ja ilman suurempia ongelmia.

\section{Tiedotus}

Tiedotusvastuu projektin tilasta oli pääasiassa projektipäälliköllä. Kukin ryhmän jäsenistä huolehti omiin tehtäviinsä, vastuualueisiinsa ja tuloksiinsa liittyvästä tiedotuksesta. Projektiin liittyvistä valinnoista, muutoksista ja niiden vaihtoehdoista keskusteltiin projektikokouksissa.

Projektiorganisaation tiedotusta varten on luotiin kaksi sähköpostilistaa. Listalle \linebreak\texttt{paatti@korppi.jyu.fi} kuului koko projektiorganisaatio (katso luku~\ref{projektiorganisaatio}), sekä listalle \texttt{paatti\_opetus@korppi.jyu.fi} kuuluivat ryhmän jäsenet ja ohjaajat. Listoilla tiedotettiin muun muassa yleisistä asioista, kuten tapaamisista, esityksistä ja kokouksista. Lisäksi listojen avulla jaettiin palaverien esityslistat ja pöytäkirjat. Sähköpostilistojen viestit arkistoitiin suojattuihin arkistoihin. 

\begin{compactenum}
\item[ ]{\texttt{http://korppi.jyu.fi/list-archive/paatti/} ja}
\item[ ]{\texttt{http://korppi.jyu.fi/list-archive/paatti\_opetus/}.}
\end{compactenum}

Projektiryhmän sisäinen tiedotus hoidettiin pääosin suullisesti, sillä ryhmän jäsenet työskentelivät fyysisesti samassa tilassa ja tapasivat viikolla lähes päivittäin. Ryhmän jäsenten omaan käyttöön on luotiin Korppi-opintotietojärjestelmään oma ryhmä ja siihen kuuluva sähköpostilista. Mikään asia ei osoittautunut niin kiireiseksi, että asia olisi tarvinnut hoitaa puhelimella.

Tilaajan tarkasteltaviksi tarkoitetut dokumentit sijoitetaan projektin WWW-sivuille osoitteeseen \texttt{http://sovellusprojektit.it.jyu.fi/paatti}.

Tiedostus toteutui hyvin ryhmän sisäisesti, mutta ryhmä olisi voinut toimia oma-aloitteisemmin organisaatiolle tiedottamisessa. Toisaalta, kokouksia pidettiin niin usein, että tilaajalle saatiin välitettyä hyvin tietoa tietojärjestelmän kehityksestä. Tilaajan puolelta tiedotus oli ajoittain hidasta, mutta siitä ei koitunut mitään ongelmia.

\section{Hakemistorakenne} \label{hakrak}

Hakemistorakenne tulee olemaan projektin WWW-sivuston kansiossa ja CD:llä seuraavanlainen:
%\newpage
\begin{alltt}
        class \textnormal{(luokkadokumentit)}
        dokumentit
            ajankaytto
            esittelyt
            itsearvioinnit
            kartoitukset
            projektiraportti
            projektisuunnitelma
            sopimukset
            sovellusraportti
            sovellussuunnitelmat
            vaatimusmaarittely
        kokoukset
            esityslistat
            poytakirjat
            tilakatsaukset
        sahkopostiarkisto
            paatti
            paatti_opetus
        sources \textnormal{(lähdekoodit)}
\end{alltt}

Hakemistorakenne toteutui suunnitelman mukaisesti.

\section{Tiedostojen nimeäminen}

Kaikki tiedostot nimettiin pienillä kirjaimilla ilman skandinaavisia merkkejä. Dokumenttien nimissä ensimmäisenä on projektin nimi, toisena dokumentin nimi ja kolmantena dokumentin versio. 

Laajempien dokumenttien tiedostot nimettin \texttt{paatti\_do\-ku\-mentinnimi\_ver\-sio\-.pääte}, eli esimerkiksi \texttt{paatti\_projektisuun\-ni\-tel\-ma\_0.0.1.tex}. Tekstimuotoiset kokouksien esityslistat tallennettiin muodossa \texttt{paat\-ti\_esi\-tys\-lis\-ta\_kokouksenjärjestysnumero.txt} ja pöytäkirjat muodossa \texttt{paatti\_poy\-ta\-kir\-ja\_kokouksenjärjestysnumero.pdf}. Verkkosivulle ja CD:lle sijoitetut dokumentit vastaavat edellämainittua käytäntöä.

Lähdekooditiedostojen nimeämisessä käytettiin Java-ohjelmoinnin yleisiä käytänteitä \cite{javakaytanteet}. Lähdekooditiedostojen hakemistorakenne oli valmiiksi määritelty Vaadin-sovelluskehitysympäristössä, eikä rakennetta muutettu. Muiden tiedostojen ja hakemistojen nimet kirjoitettiin pienillä kirjaimilla ja englanniksi.

Tiedostojen nimeäminen toteutui suunnitelman mukaisesti.

\section{Lähdekoodin käytänteet} %\label{koodauskaytanteet}

Lähdekoodi ohjelmoitiin käyttäen Javan yleisiä käytänteitä \cite{javakaytanteet}. Luokkien nimissä ensimmäinen kirjain kirjoitetaan isolla ja sanat kirjoitetaan yhteen isoin alkukirjaimin. Funktioiden ja muuttujien nimissä ensimmäinen kirjain kirjoitetaan pienellä ja sanat kirjoitetaan yhteen isoin alkukirjaimin.

Lähdekoodit kommentoitiin englanniksi. Kommentit aloitetaan yksittäisten rivien tai rivin loppujen tapauksissa merkillä \texttt{//}, mutta useamman rivin tapauksessa kommentti aloitetaan \texttt{/*} ja päätetään \texttt{*/}. Luokkien ja funktioiden kommentit aloitetaan \texttt{/**} ja päätetään \texttt{*/}. Luokkadokumentointi muodostettin JavaDocin avulla, joten sen kommentointiohjeita tuli noudattaa.

%\pagebreak
Lähdekoodin sisennystä ja kommentointia havainnollistaa seuraava esimerkki:
\begin{verbatim}
/**                                                                                                                                                                                 
* Layout for all the mobile views. 
* Has slots for header, footer and the content.                                                                                                                                                                         
*                                                                                                                                                                                  
* @author Lauri Satokangas, lauri.n.satokangas@student.jyu.fi 
* @date 6.3.2012                                                                                                       
*/                                                                                                                                                                                                                                          
public abstract class MobileView extends VerticalLayout {                                                                                                                                                                                    
                                                                                                                                                                                                                                             
    private Panel pageContent;                                                                                                                                                                                                               
    
    // This is the left button in the footer layout.
    public Object FOOTER_BUTTON_LEFT = "leftfooterbutton";

...
\end{verbatim} 

Lähdekoodin ja kommentoinnin käytänteet toteutuivat suunnitelman mukaisesti.

\section{Testauksen käytänteet}

Sovellusia yksikkötestattiin kehittämisen yhteydessä projektiryhmän toimesta. Järjestelmätestaus suoritettiin ennen siirtymistä viimeistelyyn. Ajan puutteen vuoksi tietojärjestelmälle ei laaditu testaussuunnitelmaa, mutta sovellusten ominaisuuksia testattiin kuitenkin kattavasti ja kaikki jäsenet testasivat sovellusten kaikkia osa-alueita. Sovelluksista pidettiin virtuaalipalvelimella uusinta toimivaa ja testattua versiota ja aina kun ryhmä sai valmiiksi jonkin uuden toiminnon sovelluksesta, testattiin sen toimintaa ja toimivuuden varmistamisen jälkeen palvelimella oleva sovellus päivitettiin uudemmalla versiolla.

Tilaajalta saadun testimateriaalin avulla luotiin tietokantaan testidataa, jotta sovellusta pystyttiin testaamaan oikealla sisällöllä. Myös tilaajan edustajat ja ohjaajat testavasivat projektin loppuvaiheessa virtuaalipalvelimella olleita sovelluksia.

Projektin alussa tiedostettiin, että sovellusta ja sen käytettävyyttä ei todennäköisesti ehditä testaamaan laajamittaisesti. Mahdollinen testaus oikeilla loppukäyttäjillä jäi toteutumatta johtuen ajan puutteesta. Testikäyttäjien havaintojen ja palautteen avulla ryhmä sai korjattua monia käyttöliittymien virheitä ja epäloogisuuksia, sekä hiottua käyttöliittymiä parammiksi. Puutteelliset ja kehnot toteutusratkaisut sekä jatkokehitysideat on nähtävissä sovellusraportissa \cite{sovellusraportti}.


\section{Versiohallinta} \label{versionhallinta}

Projektissa käytettiin YouSource-versiohallintajärjestelmää sekä dokumenttien että lähdekoodin versioiden hallintaan. Ryhmän jäsenillä ja ohjaajilla oli oikeudet YouSource-versiohallintaan.

Projektiorganisaatiolle julkistetuissa dokumenteissa ja lähdekoodeissa käytettiin  yhtenäistä versionumerointia. Projektiryhmä kasvatti versionumeroa, kun tulokseen oli lisätty uusia ominaisuuksia tai korjattu virheitä. Projektiryhmän sisäisesti julkistetuissa tuloksissa versionumero oli muotoa 0.0.k, jossa k on kokonaisluku välillä 0-99. Versionumeroa 0.k.0 käytettiin julkaistaessa versio projektiorganisaatiolle. Tilaajan ja ohjaajien hyväksymä ensimmäinen versio merkittiin versionumerolla 1.0.0. Version 1.0.0 jälkeen keskimmäinen numero ilmaisee pienet muutokset ja ensimmäinen numero huomattavat sisällölliset muutokset.

Versiohallinta ja -numerointi toteutui suunnitelman mukaisesti.


\section{Tulosten hyväksyminen ja katselmoinnit} \label{tulostenhyvak}

Projektiorganisaatiolle julkistetut tulokset ovat saatavissa projektiryhmän WWW-sivuilta osoitteesta \texttt{http://sovellusprojektit.it.jyu.fi/paatti}, josta \newline projektiorganisaatioon kuuluvat pystyivät seuraamaan niiden kehitystä. Lisäksi ohjaajat pystyivät seuraamaan projektiryhmän tuloksia versiohallinnan kautta.

Projektikokouksissa tarkastettiin projektiryhmän tuloksia. Projektisuunnitelma ja -raportti, sovellusraportti sekä vaatimusmäärittely hyväksyttiin projektipäällikön, tilaajan edustajan ja projektin vastaavan ohjaajan allekirjoituksilla. Muut projektin dokumentit hyväksyttiin kokouksissa.

Lähdekoodin osalta järjesttiin kaksi katselmointitilaisuutta, joiden havainnot kirjattiin pöytäkirjaksi. Lähdekoodin tarkasti ja hyväksyi tekninen ohjaaja Outa Valkama. Katselmoinneista laadittiin projektiorganisaatiolle muistiot \cite{katselmointi1} ja \cite{katselmointi2}. Vastaava ohjaaja hyväksyi tuloksista projektisuunnitelman ja -raportin ja sovellusraportin.

Tulosten hyväksyminen suoritettiin suunnitelman mukaisesti.

\section{Tulosten koostaminen ja toimittaminen}

Projektin tulokset koottiin projektikansioon ja projektin CD-R-levylle. Projektin CD-R-levy sisältää kaikki projektissa laaditut dokumentit sekä sovelluksen ohjelmakoodit. Projektin CD-R-levy on koostettu luvussa~\ref{hakrak} kuvatulla tavalla. Ryhmä sijoitti tulokset myös YouSource-sivustolle.

Laitokselle ja tilaajalle toimitettiin projektikansio. Laitokselle toimitettiin yksi projektin CD-R-levy ja tilaajalle toimitettiin kolme projektin CD-R-levyä. Laitoksen projektikansio sijoitettiin projektitilan avotilassa sijaitsevaan kirjahyllyyn. Projektiryhmän jäsenet saivat projektin CD-R-levyn. Näiden lisäksi tietotekniikan laitos arkistoi yhden projektin CD-R-levyn.

Tulosten toimittaminen ja koostaminen tehtiin suunnitelman mukaisesti.

\chapter{Tehtävät, työmäärät ja työnjako}

Luvussa määritellään ryhmän jäsenten vastuualueet sekä heidän tehtävänsä. Lisäksi esitellään ryhmän jäsenten eri tehtävien työmäärät ja työnjako.
%%% tähän kirjotusta että miten meni

\section{Vastuualueet tulosten osalta}

Projektin alussa päällikkönä toimi Toni Salminen ja varapäällikkönä Lauri Satokangas. Salminen ja Satokangas vaihtoivat tehtäviä huhtikuun alkupuolella. Varapäällikölle ei projektissa ollut varsinaista tarvetta. Projektipäällikön vastuulle kuuluivat projektin suunnittelu ja hallinta, projektin tilan määritys, ajankäytön seuranta, tiedotus sekä työnjako. Projektipäällikkö vastasi myös projektisuunnitelman ja -raportin laatimisesta. Käytännössä tämä tarkoitti sitä, että Salminen kirjoitti projektisuunnitelman ja Satokangas kirjoitti sitä apunaan käyttäen projektiraportin.

\textbf{Olennaisten dokumenttien} vastuuhenkilöt on esitetty taulukossa \ref{vastuuhenkilot}. Vastuuhenkilö ei ollut vastuussa koko tuloksen toteuttamisesta yksin, mutta vastasi sen valmistumisesta, tarkastettavaksi toimittamisesta ja tarpeellisesta muokkauksesta. Vastuuhenkilö tiedotti projektiorganisaatiota vastuullaan olevien tulosten valmistumisesta. Toteutettavan sovelluksen osalta ei määrätty vastuuhenkilöitä. Ryhmä vastasi tuloksista projektiorganisaatiolle koko ryhmänä.


%\begin{table}
%\begin{center}
%\begin{tabular}{|l|l|}p{6.0cm}|}
%\hline
%\textbf{Tulos} & \textbf{Vastuuhenkilö} & \textbf{Hyväksytty}\\
%\hline
%\hline
%Projektisuunnitelma    &  Toni Salminen    & 23.4.2012\\
%\hline
%Projektiraportti       &  Lauri Satokangas & \\
%\hline
%Vaatimusmäärittely     &  Tapio Keränen    & \\
%\hline
%Sovellusraportti       &  Jari Salokangas  & \\
%\hline
%Tietokanta             &  Tapio Keränen  & \\
%\hline
%\end{tabular}
%\caption{Olennaisten dokumenttien vastuuhenkilöt.} \label{vastuuhenkilot}
%\end{center}
%\end{table}

Ryhmän kesken ei päälliköllä ollut niin suurta roolia, kuin olisi voinut olla. Tämä johtui siitä, että kaikki jäsenet osallistuivat miltei yhtä miltei paljon tietojärjestelmän suunnitteluun ja toteutukseen. Ratkaisu osoittautui hyvin toimivaksi projektin läpiviennin kannalta, mutta ei tuonut projektipäälliköille kovin paljoa kokemusta varsinaisesta projektin johtamisesta.

Kehitettyjen sovellusten osa-alueiden toteutukselle ei nimetty vastuuhenkilöitä, mutta käytännössä joidenkin
kokonaisuuksien kohdalla ryhmän sisälle muodostui vastuualueita. Tapio Keränen vastasi tutkijan käyttöliittymässä olevasta tapahtumien luomiseen käytetystä työkalusta, Lauri Satokankaan vastuulla oli kuntoutettavan käyttöliittymä ja Toni Salminen ja Jari Salokangas kehittivät muita tutkijan käyttöliittymän osia.

\section{Tehtävien työmäärät ja työnjako}
%Projektin ja oheiskurssien työtunnit on arvioitu taulukossa, joka esitetään kuvissa \ref{aikasuunnitelmataulukko1} ja \ref{aikasuunnitelmataulukko2}. Tehtävien, tehtäväkokonaisuuksien ja jäsenten työtunnit on arvioitu ja järkevyys varmistettu ryhmän jäsenten kesken. Tehtäväkokonaisuuksien vähimmäiskesto päivinä on laskettu käyttäen viiden tunnin työpäiviä.

%\begin{figure}[htp]
%\centering
%\scalebox{1.0}{\includegraphics[trim = 0mm 0mm 0mm 0mm, angle=0]{paatti_tyomaarien_arviointi1cut.eps} }
%\caption{Arvioidut työtunnit (jatkuu).} \label{aikasuunnitelmataulukko1}
%\end{figure}

%\begin{figure}[htp]
%\centering
%\scalebox{1.0}{\includegraphics[trim = 0mm 0mm 0mm 0mm, angle=0]{paatti_tyomaarien_arviointi2cut.eps} }
%\caption{Arvioidut työtunnit (jatkoa).} \label{aikasuunnitelmataulukko2}
%\end{figure}

\section {Ryhmän työtunnit tehtäväkokonaisuuksittain}

%kesken

\section {Tapio Keräsen työtunnit tehtäväkokonaisuuksittain}

%kesken

\section {Toni Salmisen työtunnit tehtäväkokonaisuuksittain}

%kesken

\section {Jari Salokankaan työtunnit tehtäväkokonaisuuksittain}

%kesken

\section {Lauri Satokankaan työtunnit tehtäväkokonaisuuksittain}

%kesken


\chapter{Prosessimalli ja aikataulu}

Luvussa kuvataan projektissa käytetty prosessimalli ja suunniteltu aikataulu.


\section{Prosessimalli}
Projekti toteutettiin käyttämällä räätälöityä ketterää prosessimallia. Projekti vietiin läpi useassa vaiheessa. Ensimmäisessä vaiheessa tehtiin vaatimusmäärittely sekä suunniteltiin sovelluksen käyttöliittymää ja rakennetta. Toisessa vaiheessa kehitettiin tietokanta ja tietojärjestelmän runko. Toteutusvaiheissa tietojärjestelmään lisättiin ominaisuuksia. Viimeisessä vaiheessa sovellus, lähdekoodi ja dokumentaatio viimeisteltiin.

%Toteutusvaiheissa sovellusta kehitetään lisäämällä ominaisuuksia viikon tai kahden viikon sykleissä. Projektin aikana ryhmä ehtii tehdä kahdesta neljään toteutusvaihetta. Kunkin toteutusvaiheen alussa ryhmä asettaa tavoitteita, jotka voivat olla uusia ominaisuuksia tai olemassa olevien ominaisuuksien kehittämistä. Kunkin toteutusvaiheen päätyttyä tarkastellaan, onko vaiheen alussa asetetut tavoitteet saavutettu ja kannattaako keskeneräisiä tavoitteita jatkaa seuraavassa toteutusvaiheessa.

Prosessimalli ei täysin toteutunut suunnitelman mukaisesti. Ryhmä keskusteli aina työn alla olevista toiminnoista ja päätti yhdessä, mitä osiota kukin toteuttaa seuraavaksi, mutta alussa suunniteltu erityisten kehityssyklien ja eri toteutusvaiheiden käyttö jäi toteutumatta. Tietojärjestelmän runko saatiin aikaisessa vaiheessa valmiiksi, mutta yksittäiset näkymät ja niiden toteutustapa kokivat suuriakin muutoksia projektin aikana. Tietokannan rakennetta muokattiin vielä projektin loppuvaiheillakin.

\section{Aikataulu}

Projekti alkoi 2.2.2012, ja se päättyi [lisää päivämäärä]. %Koko projektin suunniteltu aikataulu esitetään vaiheineen kuvassa \ref{aikataulu}. Kyseinen Gantt-kaavio ei esitä toteutuksen vaiheita, mutta ne ovat luettavissa tehtäväkokonaisuuksien aikataulullisesta jaksotuksesta. Helmikuu ja maaliskuun alku on varattu ensimmäiselle vaiheelle. Maaliskuu on varattu toiselle vaiheelle. Huhtikuu on varattu toteutusvaiheille. Toukokuu on varattu viimeiselle vaiheelle. Toukokuun loppuun on varattu noin kymmenen päivää pelivaraksi, jota voidaan käyttää aikataulun venyessä. Aikataulun tehtäväkokonaisuuksille varatut aikajänteet vastaavat työmäärille kuvissa \ref{aikasuunnitelmataulukko1} ja \ref{aikasuunnitelmataulukko2} laskettuja vähimmäispäiviä.

%\begin{figure}[htp]
%\centering
%\scalebox{0.50}{\includegraphics[trim = 0mm 0mm 0mm 0mm, angle=-90]{aikataulu.eps} } % kuvatiedoston nimi on kuvaesim.eps
%\caption{Gantt-kaavio suunnitellusta aikataulusta.} \label{aikataulu}
%\end{figure}


\section {Ryhmän työtunnit viikoittain}

%kesken

\section {Tapio Keräsen työtunnit viikoittain}

%kesken

\section {Toni Salmisen työtunnit viikoittain}

%kesken

\section {Jari Salokankaan työtunnit viikoittain}

%kesken

\section {Lauri Satokankaan työtunnit viikoittain}

%kesken

\chapter{Riskit ja niiden hallinta} \label{riskit}

%Luvussa kuvataan projektissa kartoitetut riskit sekä kuvataan niiden ehkäisemistä, ennakointia ja käsittelyä.


\section{Riskien todennäköisyydet ja haitat}

%Riskien todennäköisyydet ja haittavaikutukset on esitetty taulukossa~\ref{riskitaulukko}. Todennäköisyyttä ja haittavaikutusta arvioidaan asteikolla pieni, keskinkertainen ja suuri.

%\begin{center}
%\begin{table}[ht]
%\centering
%\begin{tabular}{| p{7cm} | l | l |}
%\hline
%\textbf{Riski} & \textbf{Todennäköisyys} & \textbf{Haittavaikutus}\\
%\hline \hline
%Kehittäjien tietotaidon puutteet & keskinkertainen & keskinkertainen \\ \hline
%Tavoitteiden rajaaminen ja muuttuminen & keskinkertainen & keskinkertainen \\ \hline
%Jäsenten poissaolot & keskinkertainen & pieni \\ \hline
%Projektihallinnan kokemattomuus & keskinkertainen & pieni \\ \hline
%Tiedotuksen puutteet & pieni & keskinkertainen \\ \hline
%\end{tabular}
%\caption{Arvioidut riskit sekä niiden todennäköisyys ja haittavaikutus.} \label{riskitaulukko}
%\end{table}
%\end{center}


\section{Kehittäjien tietotaidon puutteet}

%Ohjelmiston toteutuksessa käytetään monia työkaluja ja tekniikoita, joista kaikista projektiryhmän jäsenillä ei ole aikaisempaa kokemusta. Näin ollen ryhmä ei aina osaa ennakoida mahdollisia ongelmakohtia. Tietotaidon puute voi vaikeuttaa tavoitteiden toteuttamista ja näin ollen viivästyttää projektin aikataulua.
%
%Ryhmän sisällä on tietoa osasta työkaluista ja tekniikoista, joiden käyttämiseen myös muut ryhmän jäsenet tutustutetaan. Näin olemassa olevaa taitoa pystytään hyödyntämään ryhmän sisällä. Pysymällä tutuissa työkaluissa ja tekniikoissa pystytään myös paremmin ennakoimaan ongelmia. 
%
%Kurssin aikana voidaan myös järjestää perehdytyksiä ryhmän jäsenille vieraampiin työkaluihin ja tekniikoihin. Ongelmatilanteissa projektiryhmällä on käytettävissään tekninen ohjaaja ja asiantuntijoita.


\section{Tavoitteiden rajaaminen ja muuttuminen}

%Tilaajan edustajien tavoitteet poikkeavat toisistaan, ja niissä painotetaan eri asioita. Ryhmän muodostama kuva ohjelmiston tavoitteista voi erota tilaajan toiveista ja tarpeista.
%
%Ennen kuin ohjelmiston toteutus aloitetaan, pitää tekijöillä ja tilaajalla olla selkeä kuva siitä, mitä ohjelmiston osia ja toimintoja toteutetaan projektin aikana valmiiksi. Ryhmä joutuu projektin alussa käyttämään paljon aikaa sovittaakseen tilaajan näkemykset yhtenäiseksi vaatimusmäärittelyksi. Vaatimusmäärittelyyn tulee kirjata projektin aikana toteutettavat vaatimukset ja priorisoida ne.
%
%Ohjelmistoa kehitettäessä on tärkeää kommunikoida tiiviisti ryhmän ja tilaajan välillä, jotta mahdolliset erot tavoitteissa huomattaisiin nopeasti. Käyttöliittymäprototyypeillä voidaan tilaajalle esitellä  projektiryhmän näkemystä kehitettävän ohjelmiston toiminnallisuuksista ja ominaisuuksista jo ennen ohjelmiston toteutusvaihetta. Tilaajan edustajille tulee painottaa, ettei ohjelmisto tule projektin päättyessä sisältämään kaikkia vaatimusmäärittelyssä kuvattuja ominaisuuksia.
%
%Sovittujen tavoitteiden muuttuessa täytyy ryhmän ja tilaajan yhdessä päättää, mitä vaatimusmäärittelyn vaatimuksia voidaan siirtää projektin jälkeiseen jatkokehitykseen, jotta uudet tavoitteet voidaan toteuttaa pysyen aikataulussa. Jos projektin aikana huomataan, että vaatimusmäärittelyn priorisointi on liian optimistinen ja kaikkia luvattuja vaatimuksia ei ehditä toteuttaa, täytyy ryhmän ja tilaajan yhdessä päättää, mitä vaatimusmäärittelyn vaatimuksia voidaan asettaa pienemmälle prioriteetille.


\section{Jäsenten poissaolot}
%
%Ryhmän jäsenillä voi olla suunniteltuja tai ennakoimattomia poissaoloja. Lauri Satokankaalla on suunniteltu kahden viikon poissaolo kesken projektin, jonka aikana hän pystyy osallistumaan projektiin rajoitetusti. 
%
%Suunnitellut poissaolot täytyy huomioida tehtävien jaossa etukäteen, sekä projektiryhmän työtunteja tasata ennen ja jälkeen poissaolon. Lyhyet poissaolot voidaan ratkaista työtuntien tasaamisella poissaolon jälkeen, ja pidemmän poissaolon tapauksessa asiasta keskustellaan projektin ohjaajan kanssa. Jos poissaolo vaikuttaa projektin aikatauluun, täytyy asiasta keskustella tilaajan kanssa ja neuvotella muutoksista toteutettavista vaatimuksista.



\section{Projektihallinnan kokemattomuus}

%Projektipäällikkönä toimivilla jäsenillä ei ole kokemusta projektin läpiviemisestä, joten työmäärien ja aikataulun arvioiminen on vaikeaa. Kokemattomuuden takia työtehtävien tasainen jakaminen ryhmän jäsenille ja ryhmän jäsenten taitojen hyödyntäminen ei ole todennäköisesti ihanteellista. Projektipäällikön vaihtuminen huhtikuun alkupuolella tuo myös omat haasteensa projektin hallintaan.
%
%Projektipäällikön täytyy huolehtia, että kaikki dokumentit ovat koko ajan saatavilla tarkasteluun. Projektipäälliköksi vaihtuvan jäsenen täytyy pitää itsensä ajantasalla nykyisen projektipäällikön toimista.  Projektipäälliköiden täytyy ennen ja jälkeen vaihdon olla tiiviissä vuorovaikutuksessa, jotta vaihto ei aiheuta häiriöitä muiden jäsenten työskentelyyn.
%
%Projektihallinnassa ryhmän jäsenten apu projektipäälliköille on ensiarvoisen tärkeää. Ryhmän jäsenten täytyy muistaa, että projektipäällikkö on oppimassa projektin johtamista. Projektiryhmän jäsenillä on velvollisuus huomauttaa, jos projekti ei etene oikeaan suuntaan. Ryhmän jäsenten täytyy olla oma-aloitteisia ja huomauttaa, jos tehtäviä jää tekemättä. Jos projektin hallinnassa esiintyy ongelmia tai epäselvyyksiä, täytyy niiden ratkaisemisesta keskustella projektin ohjaajan kanssa.


\section{Tiedotuksen puutteet}

%Projektiorganisaatiossa tiedonkulku on tärkeää. Tiedotuksen puute voi vaarantaa koko projektin aikataulussa pysymisen tai jopa projektin onnistumisen. 
%
%Tiedotuksen täytyy olla riittävää ja yksikäsitteistä, jotta jokainen osapuoli pysyy ajantasalla projektin etenemisestä ja omista tehtävistään. Jos projektin tiedotuksessa havaitaan puutteita, projektipäällikön täytyy pystyä korjaamaan havaitut ongelmat ja pyytää asianomaisia parantamaan tiedottamistaan. Projektiryhmän jäsenten täytyy tiedottaa projektipäällikköä valmistuneista tehtävistään sekä mahdollisista ongelmista projektiin liittyen. Jos projektipäällikkö ei ole tavoitettavissa, niin tiedotetaan varapäällikköä tai vastaavaa ohjaajaa.

\chapter{Jäsenten kokemuksia}

\section {Yhteisiä kokemuksia}

\section {Tapio Keräsen kokemuksia}

\section {Toni Salmisen kokemuksia}

\section {Jari Salokankaan kokemuksia}

\section {Lauri Satokankaan kokemuksia}

\chapter{Yhteenveto}

Paatti-projekti suunnitteli ja 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.



%Projektin tulokset luovutetaan tilaajalle toukokuun puolessa välissä. Projektin onnistumisen esteenä olevat suurimmat riskit liittyvät projektiryhmän jäsenten tietotaidon puutteisiin sekä tavoitteiden rajaamiseen ja muuttumiseen.
%
%Sovellusprojektin tarkoituksena on tietojärjestelmän toteutuksen lisäksi antaa projektiryhmän jäsenille kattava käsitys ohjelmistoprojektissa työskentelystä sekä sen vaatimuksista ja työtavoista. Ryhmän jäsenet oppivat asioita käytännön tekemisen kautta sekä soveltavat aikaisemmilla kursseilla opittua teoriatietoa.



%LÄHTEET
\begin{thebibliography}{1}
%Katso kirjoitusohjeen luku 2.3 ja 2.4.
\bibitem{ajanseurantalahde}
  Petri Heinonen, 
  ''Ajankäytönseurantasovellus'',
  saatavilla Excel-muodossa <URL: \texttt{http://appro.mit.jyu.fi/tools/ajankaytto/\\ajankaytonseuranta.xls}>,
  Jyväskylän yliopisto,
  informaatioteknologian tiedekunta, 
  viitattu 8.3.2012.

\bibitem{judoraportti}
  Petri Huttunen, Marko Malinen ja Olli Wirpi,
  ''Judo-projekti, Projektiraportti'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2011.

\bibitem{vaatimusmaarittely}
  Tapio Keränen, Toni Salminen, Jari Salokangas ja Lauri Satokangas,
  ''Paatti-projekti, Vaatimusmäärittely'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2012.

\bibitem{taburaportti}
  Tuomas Kumpulainen, Kari Tuurihalme, Outa Walkama ja Tuomas Virtanen,
  ''Tabu-projekti, Projektiraportti'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2009.

\bibitem{javakaytanteet}
  Oracle,
  ''Code Conventions for the Java Programming Language'',
  saatavilla PDF-muodossa <URL: \texttt{http://www.oracle.com/technetwork/java/\\codeconventions-150003.pdf}>,
  viitattu 25.3.2012.

\bibitem{sovellusprojektienohje}
  Jukka-Pekka Santanen,
  ''Tietotekniikan Sovellusprojektien ohje'',
  saatavilla HTML-muodossa <URL: \texttt{http://www.mit.jyu.fi/opetus/\\sovellusprojektit/projohje.html}>,
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  11.9.2006.

\bibitem{learningvaadin}
  Nicolas Frankel,
  ''Learning Vaadin",
  Packt Publishing,
  2011

\bibitem{bookofvaadin}
  Vaadin Ltd,
  Book of Vaadin - 4th Edition',
  2012

\bibitem{katselmointi1}
  "Paatti-projekti 1. koodikatselmoinnin muistio",
  2012

\bibitem{katselmointi2}
  "Paatti-projekti 2. koodikatselmoinnin muistio",
  2012

  
\end{thebibliography}

% Dokumentin  lopetus
\end{document}
