Changes between Version 7 and Version 8 of Halyri/Projektisuunitelma


Ignore:
Timestamp:
2014-05-03 17:52:14 (5 years ago)
Author:
nimajomo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Halyri/Projektisuunitelma

    v7 v8  
     1 
     2Hälyri-Sovellusprojekti 
     3Niko Mononen 
     4Veli-Mikko Puupponen 
     5Ilkka Rautiainen 
     6Atte Söderlund 
     7Projektisuunnitelma 
     8Versio: 0.5.0 
     9Julkinen 
     103. toukokuuta 2014 
     11Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä PäivämääräAllekirjoitus Nimenselvennys 
     12Projektipäällikkö __.__.2014 
     13 
     14Tilaaja __.__.2014 
     15 
     16Ohjaaja __.__.2014 
     17 
     18 
     19Tietoa dokumentista 
     20Tekijät: 
     21   ∙  Niko Mononen (NM)                 niko.m.mononen@student.jyu.fi 
     22   ∙  Veli-Mikko Puupponen (VMP)                veli-mikko.a.puupponen@student.jyu.fi 
     23   ∙  Ilkka Rautiainen (IR)             ilkka.t.rautiainen@student.jyu.fi 
     24   ∙  Atte Söderlund (AS)               atte.a.soderlund@student.jyu.fi 
     25Dokumentin nimi: Hälyri-projekti, Projektisuunnitelma Sivumäärä: 41 Tiedosto: Halyri_projektisuunnitelma.tex Tiivistelmä: Projektisuunnitelmassa kuvataan Hälyri-projektin suunniteltua läpivientiä. Suunnitelmassa esitellään projektin taustoja, tavoitteita, käytettävissä olevat resurssit ja käytänteet. Suunnitelmassa kuvataan myös projektin tehtävien työmääriä ja jakautumista jäsenten kesken, sekä projektin prosessia ja läpiviennin aikataulua. Suunnitelmassa kartoitetaan projektiin liittyviä riskejä, arvioidaan niiden todennäköisyyttä ja toteutumisen haittavaikutuksia sekä kuvataan riskien hallintaa. Avainsanat: Aikataulu, EKG, hätäkeskus, hätäpuhelu, käytänteet, matkapuhelin, ohjelmistoprojekti, projektisuunitelma, prosessi, resurssit, riskien hallinta, sovellus, tavoitteet, taustaa, tehtävät, työmäärät, vastuualueet, videopuhelu, Windows Phone 8. 
     26Muutoshistoria 
     27                         
     28Versio  Päivämäärä       
     29 
     30Muutokset 
     31         
     32 
     33Tekijät 
     34                         
     350.0.1   11.2.2014        
     36 
     37Projektisuunitelman laatiminen on aloitettu. 
     38         
     39 
     40NM 
     41                         
     420.0.2   15.2.2014        
     43 
     44Suunitelmaa on täydennetty. 
     45         
     46 
     47NM 
     48                         
     490.0.3   18.2.2014        
     50 
     51Projektin hallinta -luku on kirjoitettu. 
     52         
     53 
     54NM 
     55                         
     560.0.4   23.2.2014        
     57 
     58Prosessi ja riskit on kuvattu. 
     59         
     60 
     61NM 
     62                         
     630.0.5   25.2.2014        
     64 
     65Johdanto ja yhteenveto on kirjoitettu, sekä dokumenttia on viimeistelty. 
     66         
     67 
     68NM 
     69                         
     700.1.0   27.2.2014        
     71 
     72Aikataulut ja työnjako on päivitetty, sekä dokumnettia on viimeistelty. 
     73         
     74 
     75NM 
     76                         
     770.1.1   9.3.2014         
     78 
     79Ulkoasua on korjattu. 
     80         
     81 
     82NM 
     83                         
     840.1.2   12.3.2014        
     85 
     86Sisältöä on korjattu. 
     87         
     88 
     89NM 
     90                         
     910.1.3   13.3.2014        
     92 
     93Tavoitteet, tulokset ja resurssit on päivitetty. 
     94         
     95 
     96NM 
     97                         
     980.1.4   13.3.2014        
     99 
     100Projektiorganisaatiolukua on päivitetty. 
     101         
     102 
     103NM 
     104                         
     1050.1.5   18.3.2014        
     106 
     107Termejä, vastuualueita ja aikataulua kuvaavia lukuja on päivitetty, sekä niiden järjestystä on muutettu. 
     108         
     109 
     110NM 
     111                         
     1120.2.0   19.3.2014        
     113 
     114Työmäärät ja riskiarviot on päivitetty, sekä dokumenttia on viimeistelyä. 
     115         
     116 
     117NM 
     118                         
     1190.2.1   28.3.2014        
     120 
     121Dokumenttia on korjattu saadun palautteen mukaisesti. 
     122         
     123 
     124NM 
     125                         
     1260.2.2   5.4.2014         
     127 
     128Työmäärät ja Gantt-kaavio on päivitetty. 
     129         
     130 
     131NM 
     132                         
     1330.3.0   6.4.2014         
     134 
     135Dokumentin ulkoasua on päivitetty. 
     136         
     137 
     138NM 
     139                         
     1400.3.1   9.4.2014         
     141 
     142Dokumenttia on korjattu saadun palautteen mukaisesti. 
     143         
     144 
     145NM 
     146                         
     1470.3.2   18.4.2014        
     148 
     149Sisältöä on korjattu. 
     150         
     151 
     152NM 
     153                         
     1540.4.0   19.4.2014        
     155 
     156Työmäärät ja Gantt-kaavio on päivitetty. 
     157         
     158 
     159NM 
     160                         
     1610.5.0   23.4.2014        
     162 
     163Dokumenttia on korjattu saadun palautteen mukaisesti. 
     164         
     165 
     166NM 
     167                         
     168Tietoa projektista 
     169Projekti kehittää prototyypin uudenlaisesta tietojärjestelmästä, joka mahdollistaa yhteyden hädässä olevien ihmisten ja hätäkeskusten välillä. Keskeinen ajatus on hyödyntää matkapuhelinten merkittävästi lisääntynyttä datan lähetys- ja vastaanottokykyä osana auttamisprosessia. Tavoitteena kehitettävällä tietojärjestelmällä on luoda aikaisempaa tarkempi kuva entistä lyhyemmässä ajassa. Tämä auttaa pelastamaan ihmishenkiä, parantamaan palvelun laatua ja tehostamaan resurssien käyttöä. Projektissa kehitettävän hätätietojärjestelmän prototyypin avulla pyritään osoittamaan teknologiset mahdollisuudet ja haasteet sekä havainnollistamaan käyttöliittymillä avuntarvitsijan ja hätäkeskuksen vuorovaikutusta. 
     170 
     171Tekijät: 
     172 
     173   ∙  Niko Mononen (NM) 
     174         
     175 
     176         
     177 
     178niko.m.mononen@student.jyu.fi 
     179 
     180   ∙  Veli-Mikko Puupponen (VMP) 
     181         
     182 
     183         
     184 
     185veli-mikko.a.puupponen@student.jyu.fi 
     186 
     187   ∙  Ilkka Rautiainen (IR) 
     188         
     189 
     190         
     191 
     192ilkka.t.rautiainen@student.jyu.fi 
     193 
     194   ∙  Atte Söderlund (AS) 
     195         
     196 
     197         
     198 
     199atte.a.soderlund@student.jyu.fi 
     200 
     201Tilaaja: 
     202 
     203   ∙  Vesa Lappalainen 
     204         
     205 
     206vesa.t.lappalainen@jyu.fi 
     207 
     208   ∙  Tero Tuovinen 
     209         
     210 
     211tero.tuovinen@jyu.fi 
     212 
     213Ohjaajat: 
     214 
     215   ∙  Jaakko Kosonen 
     216         
     217 
     218jaakko.j.kosonen@gmail.com 
     219 
     220   ∙  Olli Kauppinen 
     221         
     222 
     223olli.p.kauppinen@student.jyu.fi 
     224 
     225   ∙  Jukka-Pekka Santanen 
     226         
     227 
     228santanen@mit.jyu.fi 
     229 
     230Asiantuntijat: 
     231 
     232   ∙  Helena Jäntti 
     233         
     234 
     235helena.jantti@kuh.fi 
     236 
     237Yhteystiedot: 
     238 
     239   ∙  Sähköpostilistat: 
     240         
     241 
     242halyri@korppi.jyu.fi, 
     243 
     244halyri_opetus@korppi.jyu.fi 
     245 
     246   ∙  Sähköpostiarkistot: 
     247         
     248 
     249https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri/, https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri\_opetus/ 
     250 
     251   ∙  Projektitila: 
     252         
     253 
     254AgC 223.2, puh. 040-3573796 
     255 
     256  
     257Sisältö 
     2581 Johdanto 
     2592 Termit 
     2603 Taustaa ja tavoitteet 
     261 3.1 Taustaa 
     262 3.2 Prototyypille asetetut tavoitteet 
     263 3.3 Tulokset 
     264 3.4 Oppimistavoitteet 
     2654 Organisaatio ja resurssit 
     266 4.1 Projektiorganisaatio 
     267 4.2 Projektin tilat ja laitteet 
     268 4.3 Dokumentointityökalut 
     269 4.4 Ohjelmointityökalut 
     270 4.5 Luennot ja perehdytykset 
     2715 Projektin käytänteet 
     272 5.1 Tiedotus 
     273 5.2 Palaverit 
     274 5.3 Tiedostojen nimeäminen 
     275 5.4 Hakemistorakenne 
     276 5.5 Lähdekoodi 
     277 5.6 Versiointi ja versiohallinta 
     278 5.7 Testaus 
     279 5.8 Tulosten katselmoinnit ja hyväksyminen 
     280 5.9 Tulosten koostaminen ja toimittaminen 
     2816 Tehtävät, työmäärät ja työnjako 
     282 6.1 Vastuualueet 
     283 6.2 Työnositus ja työmäärä 
     2847 Prosessi ja aikataulu 
     285 7.1 Prosessi 
     286 7.2 Aikataulu 
     2878 Riskit ja riskien hallinta 
     288 8.1 Riskien todennäköisyydet ja haitat 
     289 8.2 Alustan rajoitukset 
     290 8.3 Kehittäjien tietotaidon puutteet 
     291 8.4 Tavoitteiden rajaaminen 
     292 8.5 Tiedotuksen puutteet 
     293 8.6 Jäsenten poissaolot 
     294 8.7 Kokemattomuus projektihallinnassa 
     2959 Yhteenveto 
     29610 Lähteet 
     297Luku 1 
     298Johdanto 
     299 
     300Projekti suoritta Sovellusprojekti-kurssilla keväällä 2014 alustavan tarvekartoituksen ja kehittää prototyypin uudenlaisesta tietojärjestelmästä, joka mahdollistaa yhteyden hädässä olevien ihmisten ja hätäkeskusten välillä. Keskeinen ajatus on hyödyntää matkapuhelinten merkittävästi lisääntynyttä datan lähetys- ja vastaanottokykyä osana auttamisprosessia. Tavoitteena kehitettävällä tietojärjestelmällä on luoda aikaisempaa tarkempi kuva hätätilanteesta entistä lyhyemmässä ajassa. Tämä auttaa pelastamaan ihmishenkiä, parantamaan palvelun laatua ja tehostamaan resurssien mbockäyttöä. Projektissa kehitettävän hätätietojärjestelmän prototyypin avulla pyritään osoittamaan teknologiset mahdollisuudet ja haasteet sekä havainnollistamaan käyttöliittymillä avuntarvitsijan ja hätäkeskuksen vuorovaikutusta. 
     301 
     302Projektisuunnitelma kuvaa Hälyri-projektin suunniteltua läpivientiä. Projektisuunnitelman laatimisessa on hyödynnetty Paatti-projektin projektisuunnitelmaa [2] ja Sovellusprojektien ohjetta [7] sekä projektiryhmän laatimaa vaatimusmäärittelyä [6]. 
     303 
     304Luvussa 2 esitellään dokumentissa käytetyt termit ja niiden merkitys. Luvussa 3 käsitellään projektin taustoja sekä tavoitteita ja projektiryhmän jäsenten oppimistavoitteita. Luvussa 4 esitellään projektin organisaatio ja resurssit. Luvussa 5 kuvataan projektin käytänteitä. Luvussa 6 hahmotellaan projektin oleellisimpien tulosten vastuuhenkilöt, keskeisimmät tehtävät, sekä arvioidaan tehtävien työmääriä. Luvussa 7 kuvataan projektissa noudatettavaa prosessia ja projektin aikataulua. Luvussa 8 kuvataan projektin ennakoituja riskejä ja niiden hallintaa. 
     305Luku 2 
     306Termit 
     307 
     308Dokumentin aihealueen termejä ovat seuraavat: 
     309 
     310   EKG 
     311 
     312    on elektrokardiogrammi eli sydänsähkökäyrä.  
     313   Hätäkeskus 
     314 
     315    vastaanottaa ja käsittelee yleiseurooppalaiseen hätänumeroon 112 soitetut hätäpuhelut.  
     316   Käyttöliittymä 
     317 
     318    on se ohjelmiston, laitteen tai minkä tahansa muun tuotteen osa, jonka kautta käyttäjä käyttää tuotetta.  
     319   Mobiilisovellus 
     320 
     321    on sovellus, joka on suunniteltu mobiilipäätelaitteisiin eli matkapuhelimiin, älypuhelimiin, kämmentietokoneisiin ja ammattikäyttöön tarkoitettuihin mobiilipäätelaitteisiin.  
     322   Palvelin 
     323 
     324    on palvelinsovellusta suorittava tietokone.  
     325   Palvelinsovellus 
     326 
     327    on ohjelma, joka tarjoaa erilaisia palveluja muille ohjelmille joko tietokoneverkon välityksellä tai paikallisesti samassa tietokoneessa.  
     328   Prototyyppi 
     329 
     330    tarkoittaa sovelluksen tai tietojärjestelmän versiota, jolla on tarkoitus varmistaa konseptin tekninen toimivuus ja/tai kartoittaa käyttäjien tarpeet.  
     331   Tietojärjestelmä 
     332 
     333    on ihmisistä, tietojenkäsittelylaitteista, tiedonsiirtolaitteista ja ohjelmistoista koostuva järjestelmä, jolla tehostetaan tai helpotetaan jotain tietojen käsittelyn toimintaa tai tehdään se ylipäätään mahdolliseksi.  
     334   Tietokanta 
     335 
     336    on tietotekniikassa käytetty termi tietovarastolle. Se on kokoelma tietoja, joilla on yhteys toisiinsa. 
     337 
     338Dokumentissa esiintyviä teknisiä termejä ovat seuraavat: 
     339 
     340   Alusta 
     341 
     342    koostuu käyttöjärjestelmästä ja muista tietojärjestelmän käyttämistä varusohjelmistoista.  
     343   FreeMind 
     344 
     345    on ajatuskarttasovellus.  
     346   GanttProject 
     347 
     348    on ajan- ja resurssienhallintaohjelma projekteille.  
     349   Git 
     350 
     351    on hajautettu versiohallintajärjestelmä.  
     352   LaTeX 
     353 
     354    on ladontaohjelmisto.  
     355   Lähdekoodi 
     356 
     357    on tekstimuotoista ohjelmointikielistä listausta.  
     358   Trac 
     359 
     360    on hyvin yksinkertainen WWW-pohjainen alun perin ohjelmistoprojektien tehtävien hallintaan tarkoitettu järjestelmä  
     361   WP8 
     362 
     363    on lyhenne sanasta Windows Phone 8.  
     364   YouSource 
     365 
     366    on Git-versiohallintaohjelmistoa tukeva lähdekoodien julkistusjärjestelmä. 
     367 
     368Luku 3 
     369Taustaa ja tavoitteet 
     370 
     371Luvussa käsitellään projektin taustatietoja, tavoitteita projektissa toteutettavalle tietojärjestelmän prototyypille ja muille tuloksille sekä ryhmän jäsenille asetettuja oppimistavoitteita. 
     3723.1 Taustaa 
     373 
     374Matkapuhelinteknologia on kehittynyt huimasti kuluneen vuosikymmenen aikana. Nykyisin Suomessa jokaiseen puhelinliittymään kytketään automaattisesti mahdollisuus tietoliikennedatan siirtämiseen, ja käytännössä suurin osa tänä päivänä myytävistä matkapuhelimista on varustettu "älyominaisuuksilla". Älypuhelimien laaja kattavuus tarjoaa luonnollisen ja tehokkaan tavan kehittää perinteistä hätäpuhelua nykyaikaan. 
     375 
     376Hätäkeskuslaitos on avun ja turvan ensimmäinen viranomaislenkki auttamisen ketjussa. Hätäkeskuksen tehtävänä on puhelun aikana luoda vakioidulla menettelyllä riskiarvio tilanteesta ja välittää tehtävä asianomaiselle viranomaiselle. Tänä päivänä hätäpuhelu on rajoittunut puheyhteyteen hätäkeskuksen päivystäjän kanssa. Pelkän puheyhteyden avulla kokonaisarvion tekeminen tilanteesta voi olla joskus erittäin haastavaa, joten virhearvioita ja niiden seurauksia voidaan lukea päivälehdistä aika-ajoin. 
     377 
     378Virhearviot voivat aiheuttaa seuraavanlaisia ongelmia: 
     379 
     380    Tilannetta tai riskiä ei tunnisteta, jolloin viranomaisapu viivästyy tai jää saapumatta, ja pahimmillaan menehtyy ihmishenkiä. 
     381    Tilanne tai riski yliarvioidaan, josta seuraa viranomaisresurssien epätarkoituksen mukainen käyttö johtaen mm. seuraaviin ongelmiin: 
     382        Vaste on liian suuri tehtävän todelliseen riskiin nähden. 
     383        Hälytysajojen lisääntyminen lisää liikenneriskiä. 
     384 
     385Hälyri-projektina aloitettavan hankkeen tavoitteena on osoittaa uudenmallisten datayhteyksien laaja ja innovatiivinen hyödynnettävyys hätätilanteiden arvioinnissa ja hallinnassa. Hätäpuhelun aikana älypuhelimesta voitaisiin lähettää hätäkeskukseen ääni- ja videokuvaa, paikkatietoja sekä EKG- ja muuta anturidataa tukemaan riskiarvion tekemistä. Hätäkeskus voisi lähettää toimintaohjeita esimerkiksi videona tai kuvina hädässä olevalle. Hätäkeskus voisi myös siirtää yhteyden suoraan auttajille. 
     386 
     387Jyväskylän yliopiston tietotekniikan laitoksella on Sapporo-projektin kautta laaja kokemus julkisen hätäviestijärjestelmän kehittämisestä ja pilotoinnista. Siitä saadun tiedon perusteella vastaava pilotointi voitaisiin luotettavasti suorittaa yliopiston hankkeena. Hankkeessa kehitettävä tietojärjestelmä voisi toimia hätätilanteessa lisäapuna perinteisen 112-hätäpuhelun rinnalla. 
     388 
     389Hankkeessa kehitettävän tietojärjestelmän valmistuttua jokainen kansalainen voisi ilmaiseksi ladata siihen sisältyvän mobiilisovelluksen omalle puhelimelleen niin halutessaan. Toiminta perustuu siis keskeisesti vapaaehtoisuuteen, eikä ensimmäisessä vaiheessaan tule vaikuttamaan perinteisen 112-hätäpuhelun toimintaan ja siihen liittyviin säädöksiin. 
     390 
     3913.2 Prototyypille asetetut tavoitteet 
     392 
     393Hälyri-projektin tavoitteena on kehittää hätäilmoitusjärjestelmän prototyyppi, jolla voidaan demonstroida älypuhelimeen asennettavan hätäilmoitussovelluksen toimintaa. Hätäilmoitusjärjestelmän kokonaisrakenne on esitetty kuvassa 3.1. Projektin tavoitteisiin kuuluu myös kohderyhmien ja käyttäjien sekä sovelluksen teknisten vaatimusten alustava kartoittaminen laatimalla vaatimusmäärittely [6] hätäilmoitusjärjestelmän prototyypille. 
     394 
     395Älypuhelimeen asennettava sovellus ei korvaa perinteistä hätäpuhelua, vaan sovellus tukee nykyistä hätäkeskusjärjestelmää siten, että hätäpuhelun aikana tilanteesta tehtävän riskiarvion tekeminen helpottuisi ja tehostuisi. Ottaessa puhelimella hätäyhteys uuden sovelluksen kautta 
     396 
     397    sovellus lähettää automaattisesti paikka- ja henkilötietoja 
     398    sovellus avaa kaiuttimen sekä video- tai kuvayhteyden hätäkeskukseen 
     399    sovellus välittää hätäkeskukseen riskin arvioinnin tueksi potilaiden tilanteesta fysiologista mittausdataa, kuten esimerkiksi älypuhelimella mitattua EKG-dataa. 
     400 
     401Mobiilisovellus huolehtii tarvittavasta kaistastaan siten, että huonoilla yhteyksillä toimittaessa rakennetaan perinteinen hätäpuhelu automaattisesti. Lisäksi äärimmäisen hankalissa olosuhteissa puhelin lähettää olennaisen tiedon suoraan tekstiviestillä hätäkeskukseen. 
     402 
     403Hätäkeskuksen henkilökunnan käyttöön kehitetään hätätietosovellus, jolla he voivat ottaa hätäilmoituksia käsiteltäväksi. Sovelluksen käyttöliittymässä esitetään älypuhelimesta lähetetyt tiedot. Hätätietosovelluksella voidaan pyytää mobiilisovelluksesta tietoja, kuten esimerkiksi fysiologista mittausdataa. Sovelluksesta voidaan myös lähettää toimintaohjeita, kuvia ja videokuvaa mobiilisovellukselle. Tietojärjestelmän palvelinsovellus huolehtii hätäpuheluiden käsittelystä, välittämisestä ja tallentamisesta. 
     404 
     405PIC 
     406Kuva 3.1: Projektissa kehitettävän hätäilmoitusjärjestelmän prototyyppi. 
     407 
     4083.3 Tulokset 
     409 
     410Tietojärjestelmän ohella projektiryhmä toteuttaa seuraavat dokumentit: 
     411 
     412    Ajankäyttöraportti sisältää ryhmän jäsenten kirjaamat työtunnit sekä niiden jakautumisen eri tehtäväkokonaisuuksille ja tehtäville. 
     413    Asennusohjeet sisältää tietojärjestelmän eri sovellusten asennusohjeet. 
     414    Esittelymateriaali sisältää väli- ja loppuesittelyn materiaalit ja muistiot. 
     415    Itsearvioinnit sisältävät ryhmän jäsenten arvioinnit omasta toiminnasta, onnistumisesta, kokemuksista ja oppimisesta. 
     416    Lisenssisitoumuksella ryhmän jäsenet vahvistavat sitoutuvansa sijoittamaan toteuttamansa lähdekoodin valitun avoimen lähdekoodin lisenssin alaisuuteen. 
     417    Luokkadokumentaatio sisältää lähdekoodista automaattisesti generoidut luokkia kuvaavat dokumentit. 
     418    Lähdekoodi sisältää lähdekoodin kommentteineen. 
     419    Palaverien dokumentit sisältävät kokouksien esityslistat, pöytäkirjat ja tilakatsaukset. 
     420    Projektiraportti kuvaa projektin toteutunutta läpivientiä ja asetettujen tavoitteiden saavuttamista. 
     421    Projektisuunnitelma kuvaa projektin suunniteltuja tavoitteita, resursseja, käytänteitä, tehtävien työmääriä ja työnjakoa, aikataulua sekä riskien hallintaa. 
     422    Sovellusraportti kuvaa toteutetun sovelluksen kokonaisrakenteen ja toiminnot, puutteelliset ja heikot toteutusratkaisut sekä jatkokehitysideat. 
     423    Sähköpostiarkistot sisältävät kaikki projektin sähköpostilistoilla käydyt keskustelut. 
     424    Vaatimusmäärittely kuvaa projektin toiminnalliset ja tekniset vaatimukset.  
     425 
     4263.4 Oppimistavoitteet 
     427 
     428Tietotekniikan Sovellusprojekti-opintojakson oppimistavoitteena on projektimuotoisen työskentelyn oppiminen. Projektin kuluessa jäsenet saavat käsityksen siitä, millaista ohjelmistoalan projektimuotoinen ryhmätyö oikeasti on. Opiskelijat pääsevät myös tutustumaan uusiin ohjelmointitekniikoihin asiantuntevassa ympäristössä. Sovellusprojektin keskeinen asia on käytännön tekemisen kautta oppiminen sekä aikaisemmilla kursseilla opitun teoriatiedon soveltaminen. Jäsenet tulevat arvioimaan omaa työskentelyään projektin lopussa. 
     429 
     430Ryhmän jäsenet ovat asettaneet seuraavia henkilökohtaisia oppimistavoitteita: 
     431 
     432    Niko Mononen haluaa oppia ohjelmistoprojektin johtamista. 
     433    Veli-Mikko Puupponen haluaa kokemusta projektimuotoisesta työtavasta ja ryhmätyöskentelystä. 
     434    Ilkka Rautiainen haluaa kehittää ohjelmointiosaamistaan. 
     435    Atte Söderlund haluan oppia projektimuotoista työtapaa kokonaisuudessaan. 
     436 
     437Luku 4 
     438Organisaatio ja resurssit 
     439 
     440Luvussa esitellään projektiorganisaatio, käytössä olevat resurssit sekä projektiin liittyvät oheiskurssit ja perehdytykset. 
     4414.1 Projektiorganisaatio 
     442 
     443Projektiryhmän muodostavat Niko Mononen, Veli-Mikko Puupponen, Ilkka Rautiainen ja Atte Söderlund. Niko Monosella on aiempaa ohjelmointikokemusta työelämästä ja omien ohjelmistoprojektien kautta. Veli-Mikko Puupposella on myös ohjelmointikokemusta yliopiston ohjelmointikurssien ja omien ohjelmistoprojektien kautta. Hänellä on myös paljon tietämystä erilaisista tietojärjestelmistä, mistä on hyötyä sovelluksen suunnittelu- ja toteutusvaiheessa. Ilkka Rautiaisella on ohjelmointitaitoja yliopiston ohjelmointikursseilta. Atte Söderlundilla on aiempaa kokemusta mobiiliohjelmoinnista. 
     444 
     445Tilaajan edustajina toimivat Tero Tuovinen ja Vesa Lappalainen tietotekniikan laitokselta. Jukka-Pekka Santanen on projektin vastaava ohjaaja. Teknisiä ohjaajia ovat Olli Kauppinen ja Jaakko Kosonen. Kosonen toimii ensisijaisena ohjaajana tietojärjestelmän toteutusratkaisuihin liittyvissä asioissa. Kauppisella on tietämystä kohdealueesta ja älypuhelinsovellusten kehittämiseen liittyvää aiempaa kokemusta. 
     446Projektin sidosryhmiin kuuluu myös hätäkeskusten, pelastusalan ja ensihoidon asiantuntijoita, joita ovat mm. Helena Jäntti Kuopion yliopistollisesta sairaalasta. 
     447 
     448Jyväskylän yliopiston ATK-lähituki vastaa ryhmän käytössä olevista laitteista ja ohjelmistoista. Projektiin kuuluvan viestintäkurssin kirjoitusviestinnän opettajana toimii Timo Nurmi ja puheviestinnän opettajana Hanna Kivimäki. 
     449 
     4504.2 Projektin tilat ja laitteet 
     451 
     452Projektiryhmä sai käyttöönsä tietotekniikan laitokselta Agorasta huoneen C223.2, jossa on asennettuina neljä Windows 8 -työasemaa. Projektiryhmällä on käytössä myös palvelin ja Lappalaisen projektiryhmälle lainaama Windows Phone 8 -puhelin. 
     453 
     454Sovellusprojektien avotilassa on ryhmän käytössä monitoimitulostin. Ryhmän jäsenet pystyvät tulostamaan projektiin liittyvät dokumentit ilman maksuja. Ryhmällä on mahdollisuus varata käyttöönsä videoprojektori, kannettava PC ja digitaalisanelin. Projektiryhmällä on käytettävissä virkistystila, jossa on vedenkeitin ja kahvinkeitin. Tietotekniikan laitos tarjoaa ryhmälle kahvit, teet ja mehut. 
     455 
     456Projektilla on käytössään yhteinen verkkolevy ja WWW-sivusto projektin tiedostojen säilytystä varten. Verkkolevy on hakemistossa \\sovpa7.cc.jyu.fi\halyri ja sivusto osoitteessa http://sovellusprojektit.it.jyu.fi/halyri. 
     457 
     458Projektin julkistetut dokumentit sijoitetaan trac-wikiin URL-osoitteeseen 
     459https://trac.cc.jyu.fi/projects/sovproj/wiki/Halyri. 
     460 
     461Trac on hyvin yksinkertainen WWW-pohjainen, alun perin ohjelmistoprojektien tehtävien hallintaan tarkoitettu järjestelmä. 
     462 
     463Projektissa toteutettava lähdekoodi sijoitetaan git-pohjaiseen YouSource-julkistusjärjestelmään osoitteeseen https://yousource.it.jyu.fi/halyri/ 
     464 
     465Projektilla on käytössä sähköpostilistat halyri@korppi.jyu.fi ja 
     466halyri_opetus@korppi.jyu.fi. Sähköpostilistojen arkistoista 
     467https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri/ ja 
     468https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri\_opetus/  keskustelua voi lukea WWW-selaimella kirjautumalla Korppi-opintotietojärjestelmään. 
     469 
     4704.3 Dokumentointityökalut 
     471 
     472Projektisuunnitelma ja projektiraportti laaditaan LATEX-ladontaohjelmistolla. Microsoft Office -toimisto-ohjelmistolla laaditaan palaverien esitysgrafiikat ja lisenssisitoumus. Vaatimusmäärittelyn tekemisessä käytetään freemind-ajatuskarttaohjelmaa. Palaverien pöytäkirjat laaditaan joko Microsoft Word-ohjelmistolla tai LATEX-ladontaohjelmistolla. Projektin aikataulu laaditaan GanttProject-ohjelmalla ja tehtävien työtunnit Excel-taulukkolaskentaohjelmalla. Kaikki em. dokumentit pyritään julkistamaan myös pdf-muodossa. Raakatekstimuodossa laaditaan muut tekstidokumentit, kuten esityslistat. Luokkadokumentit generoidaan lähdekoodista Doxygen-työkalulla. 
     473 
     474Ajankäytön kirjaamiseen ja seurantaan ryhmällä on käytössään Petri Heinosen sovellusprojekteille toteuttama Excel-sovellus [1]. Lisäksi kyseisestä sovelluksesta laaditaan tilakatsauksissa vaadittavat graafit. 
     475 
     4764.4 Ohjelmointityökalut 
     477 
     478Sovellukset toteutetaan Microsoftin Visual Studio 2013 -ohjelmalla ja Windows Phone SDK-kehitystyökaluilla [4]. Projektiryhmä voi kuitenkin toteuttaa osia sovelluksista eri tekniikoilla, jos se on tarpeellista. Käytettyjä kirjastoja ovat SignalR sekä Microsoftin ASP.NET Framework ja Entity Framework. Tietokantaohjelmisto on Microsoft SQL Server, ja ohjelmointikielenä käytetään Microsoftin C#:a. 
     479 
     4804.5 Luennot ja perehdytykset 
     481 
     482Projektin rinnalla järjestetään kaksi oheiskurssia: Sovellusprojektin hallintaa, viestintää ja työkaluja sekä Projektiviestintä IT-alalla. Oheiskurssien työtunnit kirjataan omalle tehtäväkokonaisuudelle työajanseurantasovelluksessa. 
     483 
     484Kurssiin Sovellusprojektin hallintaa, viestintää ja työkaluja sisältyvät seuraavat luennot: 
     485 
     486    aloitusluento, 
     487    vaatimusmäärittely, 
     488    projektin johtaminen ja hallinta, 
     489    käytettävyyspäivä, 
     490    tekijänoikeus ja sopimukset sekä 
     491    versiohallinta. 
     492 
     493Kurssiin Projektiviestintä IT-alalla kuuluvat puhe- ja kirjoitusviestinnän luentojen ja ryhmätöiden ohella projektissa laadittujen dokumenttien kirjoitusasun ja rakenteen muokkauksen työtunnit. Projektin aikana järjestettävät kaksi väliesittelyä kuuluvat myös viestintäkurssiin. 
     494 
     495Tarvittaessa sovellusprojektiin sisällytetään perehdyttämistä projektiin liittyvistä työkaluista ja tekniikoista sekä aihealueesta. 
     496Luku 5 
     497Projektin käytänteet 
     498 
     499Luvussa kuvataan projektissa noudatettavia käytänteitä. Nämä käytänteet edesauttavat projektin läpivientiä, asetettujen tavoitteiden saavuttamista ja tulosten toteuttamista. Käytänteiden tarkoitus on varmistaa, että projekti etenee aikataulussa, ja projektin aikana toteutetut tulokset ovat korkealaatuisia ja keskenään yhteneviä. 
     5005.1 Tiedotus 
     501 
     502Projektin tiedotuksesta projektiorganisaation sisällä vastaa ensisijaisesti projektipäällikkö. Ryhmän jäsenet kommunikoivat ensisijaisesti projektipäällikön kanssa, mutta voivat kuitenkin vastuualueillaan välittää oleelliset asiat eteenpäin koko projektiorganisaatiolle. Projektiorganisaatiolle tiedotetaan vähintään projektissa kohdatuista haasteista ja vaihtoehdoista sekä tehdyistä valinnoista, ratkaisuista ja päätöksistä. 
     503 
     504Projektiorganisaation sisäinen sähköpostilista halyri@korppi.jyu.fi on tarkoitettu tilaajien edustajille ja ohjaajille suunnattuun tiedotukseen. Sähköpostilistalle kuuluvat kaikki projektiorganisaation jäsenet. Postilistalle lähetetyt viestit tallentuvat sähköpostiarkistoon, joka löytyy osoitteesta https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri. 
     505 
     506Projektiryhmän jäsenten ja ohjaajien käytössä on myös sähköpostilista 
     507halyri_opetus@korppi.jyu.fi. Sen sähköpostiarkisto sijaitsee osoitteessa 
     508https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri\_opetus/. 
     509Sähköpostilistalla käsitellään sellaisia asioita, jotka eivät ole merkityksellisiä tilaajalle. Tällaisia asioita ovat esimerkiksi projektiryhmän sisäiset palaverit sekä erilaiset opetukseen ja koulutukseen liittyvät asiat. 
     510 
     511Ryhmän sisäinen tiedotus tapahtuu pääosin suullisesti, sillä ryhmän jäsenet työskentelevät samassa tilassa ja ovat yhteydessä toisiinsa. Tarvittaessa tiedotus ja keskustelu voidaan ryhmän sisällä hoitaa sähköpostitse. 
     512 
     5135.2 Palaverit 
     514 
     515Projektiorganisaatio pyrkii pitämään yhteisen palaverin kerran kahdessa viikossa. Seuraavan palaverin ajankohta päätetään aina edellisessä palaverissa. 
     516 
     517Palavereissa käsitellään edellisen palaverin jälkeen tapahtuneita projektin etenemiseen vaikuttaneita asioita sekä tulevia toimenpiteitä ja tarvittavia päätöksiä. Jokaisessa palaverissa käydään läpi edellisen palaverin pöytäkirjaan merkityt päätökset sekä osallistujille osoitetut toimenpiteet ja niiden tila. Palavereissa projektipäällikkö esittää tilakatsauksen, jossa esitetään projektiryhmän viikoittainen ajankäyttö eri tehtäväkonaisuuksittain. 
     518 
     519Palavereissa käsitellään myös toteutettavan sovelluksen ominaisuuksia ja vaatimuksia, sekä niiden toteutusratkaisuja. Palavereissa käsiteltävät asiat pyritään käymään läpi niin perusteellisesti, että asiakkaan edustajat ja projektiryhmän jäsenet ymmärtävät asiat samalla tavalla, eikä väärinymmärryksiä pääse syntymään. Jos projektiryhmällä on esittää sovelluksesta konkreettisia käyttöliittymään liittyviä demoja tai prototyyppejä, ne esitellään palavereissa. Palavereissa sovitaan myös projektiin liittyvistä käytänteistä. 
     520 
     521Ryhmän jäsenet toimivat vuorollaan palavereissa sihteerinä tai puheenjohtajana siten, että kyseiset tehtävät kiertävät ryhmän keskenään sopimassa järjestyksessä. Puheenjohtaja johtaa keskustelua ja pitää huolen siitä, että palaveri etenee esityslistan osoittamalla tavalla. Sihteeri laatii palaverista pöytäkirjan, jonka hän toimittaa myöhemmin palaverin puheenjohtajalle tarkastettavaksi. Kun pöytäkirja on puheenjohtajan osalta hyväksytty, puheenjohtaja tai sihteeri toimittaa sen koko projektiorganisaatiolle. Tämän lisäksi jokaisen ryhmän jäsenen laatima ensimmäinen pöytäkirja toimitetaan myös vastaavan ohjaajan ja kirjoitusviestinnän opettajan esitarkastettavaksi. Pöytäkirja hyväksytetään seuraavassa palaverissa, ja siihen voidaan tällöin esittää muutoksia. 
     522 
     5235.3 Tiedostojen nimeäminen 
     524 
     525Lähdekooditiedostojen nimeämisessä käytetään C#-kielen yleisiä käytänteitä. Tiedostojen ja hakemistojen nimet kirjoitetaan englanniksi. Lisäksi tiedostonimet kirjoitetaan aina pienillä kirjaimilla ja välilyönnit korvataan alaviivoilla (_). Lähdekoodissa ja dokumentoinnissa käytettyjen tekstitiedostojen tallennusmerkistönä käytetään ensisijaisesti UTF-8-koodausta. 
     526 
     527Dokumenttitiedostot nimetään projektin nimen ohella niiden sisältöä kuvaavilla nimillä. Julkistettaessa nimiin lisätään versionumero luvussa 5.6 esitettyjen käytänteiden mukaisesti. Esimerkiksi projektisuunnitelman pdf-tiedosto nimettäisiin 
     528halyri_projektisuunitelma_[numero].[numero].[numero].pdf 
     529 
     5305.4 Hakemistorakenne 
     531 
     532Projektin tulokset tallennetaan CD-levylle ja projektin WWW-hakemistoon päähakemiston alle seuraavan hakemistorakenteen mukaisesti: 
     533     dokumentit   
     534          ajankaytto   
     535          esittelyt   
     536          itsearvioinnit   
     537          projektiraportti   
     538          projektisuunnitelma   
     539          sovellusraportti   
     540          vaatimusmaarittely   
     541          lisenssisitoumus   
     542     palaverit   
     543          esityslistat   
     544          materiaalit   
     545          poytakirjat   
     546          tilakatsaukset   
     547          katselmoinnit   
     548     testaus   
     549          testausraportit   
     550          testaussuunnitelmat   
     551     sahkopostiarkistot   
     552          halyri   
     553          halyri_opetus   
     554     software   
     555        class_documentation   
     556        installation_documents   
     557        installation_files   
     558        source_code 
     559 
     5605.5 Lähdekoodi 
     561 
     562Projektissa toteutettava lähdekoodi sijoitetaan YouSource-julkistusjärjestelmään. Sovelluksen lähdekoodi kirjoitetaan noudattaen yleisiä C# -koodin käytänteitä [5]. Lähdekoodin kommentoinnissa käytetään C#:n XML-tyylistä käytäntöä. Kommentoinnissa käytetään XML-tyyliä, jotta lähdekoodista voidaan generoida luokkadokumentaatio Doxygen-ohjelmalla. Lähdekoodissa käytetyt aliohjelmat, luokat ja muuttujat nimetään mahdollisimman kuvaavilla englanninkielisillä nimillä. Myös koko lähdekoodin kommentointi toteutetaan englanniksi. Usean sanan nimet kirjoitetaan CamelCasena ja lähdekoodiin sallitaan enintään 80 merkkiä riviä kohden. 
     563 
     564Seuraavassa on esimerkki edellä esitettyjen käytänteiden mukaisesta C# -koodista. 
     565/// The MIT License (MIT)   
     566/// Copyright (C) 2014 Veli-Mikko Puupponen, Ilkka Rautiainen   
     567///   
     568/// Permission is hereby granted, free of charge, to any person obtaining a copy   
     569/// of this software and associated documentation files (the ~Software~), to   
     570/// deal in the Software without restriction, including without limitation the   
     571/// rights to use, copy, modify, merge, publish, distribute, sublicense,   
     572/// and/or sell copies of the Software, and to permit persons to whom the   
     573/// Software is furnished to do so, subject to the following conditions:   
     574///   
     575/// The above copyright notice and this permission notice shall be included in   
     576/// all copies or substantial portions of the Software.   
     577///   
     578/// THE SOFTWARE IS PROVIDED ~AS IS~, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR   
     579/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   
     580/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE   
     581/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER   
     582/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING   
     583/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS   
     584/// IN THE SOFTWARE.   
     585  
     586using System;   
     587using HalyriServer.Model.Transfer;   
     588using HalyriServer.Services.Exceptions;   
     589  
     590namespace HalyriServer.Controllers   
     591 
     592    /// <author>Veli-Mikko Puupponen, Ilkka Rautiainen</author>   
     593    /// <summary>   
     594    /// The singleton class manages active emergency connections (Connection).   
     595    /// It contains a dictionary for active connections and their   
     596    /// identifying GUIDs. All emergency connection states and life cycle methods   
     597    /// are handled by the class. It functions as a broker  between the mobile   
     598    ///  emergency connection client and the call center client.   
     599    /// </summary>   
     600    public class ConnectionController   
     601    {   
     602        private static readonly Lazy<ConnectionController> instance =   
     603            new Lazy<ConnectionController>(() => new ConnectionController());   
     604        private DatabaseController databaseController;   
     605  
     606        /// <summary>   
     607        /// Returns the ConnectionController instance.   
     608        /// </summary>   
     609        public static ConnectionController Instance   
     610        {   
     611            get { return instance.Value; }   
     612        }   
     613  
     614        /// <summary>   
     615        /// The method generates a new GUID. It currently uses  Guid.NewGuid() of   
     616        /// .NET framework. No collision checking is performed. All-zero GUIDs are   
     617        /// not returned.   
     618        /// </summary>   
     619        /// <returns>A new GUID formatted as a string.</returns>   
     620        /// <example>   
     621        /// <pre name=~test~>   
     622        /// GetNewGuidStrig().length() > 0 === true;   
     623        /// GetNewGuidStrig().length() < 25 === true;   
     624        /// GetNewGuidStrig().length() == 25 === false;   
     625        /// </pre>   
     626        /// </example>   
     627        public string GetNewGuidStrig()   
     628        {   
     629            Guid guid;   
     630            do   
     631                guid = Guid.NewGuid();   
     632            while (guid == Guid.Empty);   
     633            return guid.ToString();   
     634        }   
     635  
     636    }   
     637} 
     638 
     6395.6 Versiointi ja versiohallinta 
     640 
     641Sovelluksen lähdekoodi sijoitetaan Git-pohjaiseen YouSource-julkistusjärjestelmään, josta se on myös tilaajan edustajien ja ohjaajien saatavilla. Kaikki sovellukseen ja projektiin liittyvä julkistettu dokumentaatio säilytetään trac-wikissä. 
     642 
     643Dokumenttien versioissa tullaan käyttämään kolmiportaista versionumerointia. 
     644Ryhmän sisäiset versiot aloitetaan versionumerosta 0.0.1, ja kunkin uuden version osalta kasvatetaan vähiten merkitsevää numeroa yhdellä. Tällöin toinen versio on versionumeroltaan 0.0.2. Projektiorganisaatiolle julkistettavien versioiden numerointi aloitetaan versionumerosta 0.1.0. Seuraavat versiot numeroidaan kasvattamalla toisen tason numeroa yhdellä. Ensimmäisen hyväksytyn version numero on 1.0.0, ja sitä seuraavissa hyväksytyissä versioissa kasvatetaan toisen tason numeroa yhdellä. 
     645 
     6465.7 Testaus 
     647 
     648Toteutetun sovelluksen toiminnan verifiointi tapahtuu yksikkö- ja järjestelmätestauksella. Yksikkötestaus toteutetaan testaamalla yksittäiset aliohjelmat ja metodit ComTestin C#-versiolla [3], mikäli se on mahdollista. Yksikkötestit laatii ja suorittaa aliohjelman tekijä. 
     649 
     650Järjestelmätestaukseen osallistuvat kaikki projektiryhmän jäsenet.Testausdokumenttien vastuuhenkilö laatii järjestelmän testaussuunnitelmat vaatimusmäärittelyn pohjalta, ja suoritettavista testauskerroista laaditaan testausraportit. Testaussuunnitelma sisältää eri testauskerroilla suoritettavat testitapaukset. Testausraportissa kuvataan yksittäisellä testauskerralla suoritettujen testitapausten tulokset, virheet ja mahdolliset puutteet. 
     651 
     6525.8 Tulosten katselmoinnit ja hyväksyminen 
     653 
     654Ryhmän projektissa kirjoittama lähdekoodi tullaan katselmoimaan vähintään kaksi kertaa projektin aikana. Katselmointiin osallistuu teknisen ohjaajan lisäksi koko projektiryhmä, ja projektiryhmä kirjaa katselmoinnin havainnot muistioksi. Katselmoinnissa tekninen ohjaaja kommentoi lähdekoodia antaen vinkkejä ja parannusehdotuksia. Tekninen ohjaaja myös hyväksyy lähdekoodin joko viimeisessä katselmoinnissa tai sähköpostitse. 
     655 
     656Projektin lopussa tulokset kokonaisuutena hyväksytetään projektin ohjaajilla ja tilaajan edustajilla. Yksittäisistä tuloksista tilaajan edustajan hyväksyntä tarvitaan vähintään toteutetuille sovelluksille, sovellusraportille ja vaatimusmäärittelylle. Tekninen ohjaaja hyväksyy lähdekoodin yhdessä tilaajan edustajan kanssa. Vastaava ohjaaja hyväksyy projektin keskeisimmät dokumentit, joita ovat projektisuunnitelma, projektiraportti, sovellusraportti ja vaatimusmäärittely. Projektisuunnitelma ja projektiraportti, sovellusraportti sekä vaatimusmäärittely hyväksytään projektipäällikön, tilaajan edustajan ja projektin vastaavan ohjaajan allekirjoituksilla. 
     657 
     6585.9 Tulosten koostaminen ja toimittaminen 
     659 
     660Projektiryhmä kokoaa projektin tulokset projektikansioon ja CD-levylle. Projektikansioon kerätään kaikki projektissa laaditut dokumentit ja lähdekoodi. Lisäksi sähköpostiarkistot, tiivistetty projektin kuvaus ja jäsenten itsearvioinnit liitetään projektikansioon ja CD-levylle. CD-levylle tallennetaan edellisten lisäksi myös kehitetty ajettava sovellus ml. asennuspaketti ja asennusohjeet. 
     661 
     662CD-levy koostetaan vasta, kun kaikki projektin tulokset on hyväksytty. Tulokset toimitetaan tilaajalle CD-levyllä. Laitokselle toimitetaan projektikansio, joka sisältää projekti-CD:n. Kolmas CD-levy toimitetaan laitoksen arkistoon. Projektikansio sijoitetaan projektitilan kokoushuoneessa olevaan kirjahyllyyn. 
     663 
     664Projektissa käytetty palvelin siirretään projektin päätyttyä tilaajan haltuun. Tietojärjestelmän viimeisimmät versiot ovat saatavilla YouSourcesta osoitteesta 
     665https://yousource.it.jyu.fi/halyri/ 
     666Luku 6 
     667Tehtävät, työmäärät ja työnjako 
     668 
     669Luvussa määritellään projektiryhmän jäsenten vastuualueet sekä eri tehtävien työmäärät ja työnjako. 
     6706.1 Vastuualueet 
     671 
     672Projektipäällikkönä toimii Niko Mononen ja varapäällikkönä Atte Söderlund. Projektipäällikön vastuulle kuuluvat projektin suunnittelu ja hallinta sekä ajankäytön seuranta. Projektipäällikkö vastaa myös projektisuunnitelman ja projektiraportin laatimisesta. Projektipäällikön tehtäviin kuuluu lisäksi projektin tilan seuranta ja poikkeamiin reagoiminen. Jos projektipäällikkö ei jostain syystä pysty hoitamaan jotain edellä mainituista tehtävistä, vastuu siirtyy varapäällikölle. 
     673 
     674Ryhmä jakaa tehtäviä monipuolisesti siten, että kaikki tekevät ainakin jossain vaiheessa projektia suunnittelua, toteutusta ja testausta. Tällöin kukin projektiryhmän jäsen saa kokemusta em. kehitysprosessin tehtäväkokonaisuuksista. Tuloksille on alustavasti nimetty vastuuhenkilöt taulukossa 6.1. 
     675 
     676         
     677 
     678Tulos 
     679         
     680 
     681Vastuuhenkilö 
     682         
     683 
     684Hätäkeskussovellus 
     685         
     686 
     687Ilkka Rautiainen 
     688         
     689 
     690Käyttöliittymät 
     691         
     692 
     693Atte Söderlund 
     694         
     695 
     696Mobiilisovellus 
     697         
     698 
     699Atte Söderlund 
     700         
     701 
     702Palvelinsovellus 
     703         
     704 
     705Veli-Mikko Puupponen 
     706         
     707 
     708Projektisuunnitelma 
     709         
     710 
     711Niko Mononen 
     712         
     713 
     714Projektiraportti 
     715         
     716 
     717Niko Mononen 
     718         
     719 
     720Sovellusraportti 
     721         
     722 
     723Atte Söderlund 
     724         
     725 
     726Testausdokumentit 
     727         
     728 
     729Ilkka Rautiainen 
     730         
     731 
     732Tietokanta 
     733         
     734 
     735Veli-Mikko Puupponen 
     736         
     737 
     738Vaatimusmäärittely 
     739         
     740 
     741Veli-Mikko Puupponen 
     742         
     743 
     744Taulukko 6.1: Olennaisten tulosten vastuuhenkilöt 
     745 
     746Vastuuhenkilö vastaa kyseisen tuloksen etenemisestä ja laadusta. Dokumentointia toteutetaan koko projektin ajan tasaisesti, jotta kaikki oleellinen saadaan kirjattua. Dokumentit laaditaan koko projektiryhmän voimin siten, että kukin laatii vähintään yhtä dokumenttia. 
     747 
     7486.2 Työnositus ja työmäärä 
     749 
     750Projektiryhmä käyttää projektiin 250 tuntia kutakin jäsentä kohden, joten koko ryhmän työtunnit ovat yhteensä 1000 tuntia. Työmäärä vastaa kymmentä opintopistetta ja noin 14 tuntia viikossa jäsentä kohden. Lisäksi kukin projektiryhmän jäsen käyttää yhteensä 70 tuntia oheiskursseihin. Projektin työmäärä jakautuu tehtävittäin ja jäsenten kesken kuvien 6.1 ja 6.2 mukaisesti. Suunnittelun ja toteutuksen työnositus perustuu kehitettävän tietojärjestelmän kokonaisrakenteeseen. Tehtävien jaossa on otettu huomioon jokaisen projektin jäsenen vastuualue. 
     751 
     752Työmäärien suunittelussa on huomioitu kehitettävän tietojärjestelmän rakenne, projektin jäsenten taidot ja aikataulut sekä projektin aikataulu. Työmäärien järkevyyttä on pohdittu vertailemalla Paatti-projektin [2] suuniteltuja- ja toteutuneita työmääriä. 
     753 
     754PIC 
     755Kuva 6.1: Työajankäyttösuunnitelma tehtäväkokonaisuuksittain 1/2. 
     756 
     757PICPICPIC 
     758Kuva 6.2: Työajankäyttösuunnitelma tehtäväkokonaisuuksittain 2/2. 
     759 
     760Luku 7 
     761Prosessi ja aikataulu 
     762 
     763Luvussa kuvataan projektissa noudatettavaa prosessia ja suunniteltua aikataulua. 
     7647.1 Prosessi 
     765 
     766Projektin alussa on määrittelyn ja suunnittelun vaihe. Siinä suunnitellaan projektin läpivienti, kartoitetaan järjestelmän vaatimukset ja laaditaan vaatimusmäärittely sekä hahmotellaan sovelluksen käyttöliittymää, rakennetta ja arkkitehtuuria. 
     767 
     768Ensimmäisessä kehitysvaiheessa toteutetaan mobiilisovelluksen, palvelimen ja hätäkeskuksen käyttöliittymän runko hyvin pienellä määrällä toivotuista toiminnoista. Kun runko on kasassa ja todettu toimivaksi, aletaan siihen toteuttamaan lisää ominaisuuksia vaatimusmäärittelyn pohjalta kahden viikon vaiheissa. Ohjelmistokehitysvaiheita on yhteensä viisi. Vaiheen aloittavassa palaverissa esitellään tämän hetkistä sovellusta ja päätetään tilaajan kanssa, mitä uusia ominaisuuksia kehitetään seuraavaksi. Jokaiseen vaiheeseen sisältyy ohjelmiston suunnittelua, toteutusta ja testausta. Projektin lopuksi on tulosten viimeistelyn ja raportoinnin vaihe. 
     769 
     7707.2 Aikataulu 
     771 
     772PIC 
     773Kuva 7.1: Projektin Gantt-kaavio. 
     774 
     775Kuvassa 7.1 on esitelty projektin suunniteltu aikataulu. Projekti alkoi 21.1.2014, ja se päättyy viimeistään toukokuun puolessa välissä. Ensimmäinen yksinkertainen prototyyppi on valmis 10.4. järjestettävään palaveriin mennessä, jonka jälkeen kahden viikon vaiheissa toteutetaan lisää ominaisuuksia palavereissa sovitun mukaisesti. Toukokuussa ei toteuteta uusia ominaisuuksia, vaan keskitytään ohjelmiston, lähdekoodin ja dokumentaation viimeistelyyn. 
     776Luku 8 
     777Riskit ja riskien hallinta 
     778 
     779Luvussa kuvataan projektissa tiedostetut riskit ja niiden vaikutukset projektin tuloksiin tai läpivientiin. Lisäksi kuvataan toimia niiden ennakoimiseksi ja ehkäisemiseksi sekä niistä toipumiseen. 
     7808.1 Riskien todennäköisyydet ja haitat 
     781 
     782Riskien todennäköisyydet ja niistä seuraavat haittavaikutukset on arvioitu taulukossa 8.1. Todennäköisyyttä ja haittavaikutusta arvioidaan asteikolla pieni, keskinkertainen ja suuri. 
     783 
     784                 
     785 
     786Riski 
     787        Todennäköisyys  Haittavaikutus 
     788                 
     789                 
     790 
     791Alustan rajoitukset 
     792        keskinkertainen         suuri 
     793                 
     794 
     795Kehittäjien tietotaidon puutteet 
     796        keskinkertainen         keskinkertainen 
     797                 
     798 
     799Tavoitteiden rajaaminen 
     800        keskinkertainen         keskinkertainen 
     801                 
     802 
     803Tiedotuksen puutteet 
     804        pieni   keskinkertainen 
     805                 
     806 
     807Jäsenten poissaolot 
     808        keskinkertainen         pieni 
     809                 
     810 
     811Kokemattomuus projektihallinnassa 
     812        keskinkertainen         pieni 
     813                 
     814 
     815Taulukko 8.1: Arvioitujen riskien todennäköisyys ja haittavaikutus. 
     816 
     8178.2 Alustan rajoitukset 
     818 
     819Projektiryhmä joutuu päättämään yhdessä tilaajan edustajien kanssa, mille alustoille tietojärjestelmään kuuluvat sovellukset toteutetaan projektin aikana. Koska alustat ovat hyvin erilaisia, voi jonkin ominaisuuden toteuttaminen vaatia huomattavasti enemmän resursseja kuin jollakin toisella alustalla. Alustan valinnasta riippuen joitakin tietojärjestelmältä vaadittuja ominaisuuksia saatetaan joutua rajaamaan projektin ulkopuolelle. 
     820 
     821Riskiä ehkäistään tutustumalla etukäteen eri alustoihin mahdollisimman hyvin. Riskin toteutuessa on mahdollista vaihtaa käytettävää alustaa tai rajata joitakin toteutettavia ominaisuuksia projektin ulkopuolelle. 
     822 
     8238.3 Kehittäjien tietotaidon puutteet 
     824 
     825Ohjelmiston toteutuksessa käytetään monia eri työkaluja ja tekniikoita, joista 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 viivästyttää projektin aikataulua. 
     826 
     827Riskin ehkäisemiseksi ryhmän jäsenet tutustuvat käytettäviin työkaluihin ja tekniikoihin. Ongelmia kohdatessa ryhmän jäsenten tietoa pyritään hyödyntämään keskustelemalla ongelmasta. Ongelmatilanteissa projektiryhmällä on myös käytettävissään kaksi teknistä ohjaajaa ja asiantuntijoita. 
     828 
     8298.4 Tavoitteiden rajaaminen 
     830 
     831Tilaajan edustajien tavoitteet poikkeavat toisistaan, ja niissä painotetaan eri asioita, joten vaatimusmäärittelyn laatimiseen on kiinnitettävä paljon huomiota. Ryhmän muodostama kuva ohjelmiston tavoitteista voi erota tilaajan toiveista ja tarpeista. Tällöin tietojärjestelmä ei tule projektin päättyessä sisältämään kaikkia vaatimusmäärittelyssä kuvattuja ominaisuuksia. 
     832 
     833Riskin ehkäisemiseksi projektiryhmä joutuu projektin alussa käyttämään paljon aikaa sovittaakseen tilaajan näkemykset yhtenäiseksi vaatimusmäärittelyksi [6]. Ennen kuin ohjelmiston toteutus aloitetaan, pitää projektiryhmällä ja tilaajalla olla selkeä kuva siitä, mitä ohjelmiston osia ja toimintoja on mahdollista saada projektin aikana valmiiksi. Vaatimusmäärittelyyn tulee kirjata vähintään projektissa toteutettavat vaatimukset ja priorisoida ne. 
     834 
     835Sovittujen tavoitteiden muuttuessa täytyy ryhmän ja tilaajan yhdessä päättää, mitä vaatimusmäärittelyn vaatimuksia voidaan siirtää jatkokehitykseen, jotta uudet tavoitteet voidaan toteuttaa pysyen aikataulussa. Jos projektin kuluessa 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 siirtää pienemmälle prioriteetille. 
     836 
     8378.5 Tiedotuksen puutteet 
     838 
     839Projektiorganisaatiossa tiedonkulku on tärkeää. Tiedotuksen puutteet voivat vaarantaa koko projektin aikataulussa pysymisen tai tulokset eivät vastaa tilaajan kokonaistavoitteita. 
     840 
     841Riskin ehkäisemiseksi ryhmän jäsenten tiedotuksen täytyy olla riittävää, jotta jokainen projektiorganisaation jäsen pysyy ajantasalla projektin kulusta ja omista tehtävistään projektin eteenpäin viemiseksi. Ehkäisykeinoja muodostuville ongelmille on kuvattu luvuissa 5.1 ja 5.2. Jos projektin tiedotuksessa havaitaan puutteita, projektipäällikön täytyy pystyä havaitsemaan ongelmat ja pyytää asianomaisia parantamaan tiedottamistaan. Jokaisen projektiorganisaation jäsenen täytyy tiedottaa havaituista ongelmista ja valmistuneista tehtävistä asiaankuuluville henkilöille. 
     842 
     8438.6 Jäsenten poissaolot 
     844 
     845Ryhmän yhdellä tai useammalla jäsenellä voi olla suunniteltuja (kuten esimerkiksi matka) tai ennakoimattomia (kuten sairastuminen) poissaoloja. Ryhmän jäsenten poissaolot saattavat hidastaa ohjelmiston kehitystä. 
     846 
     847Riskin ehkäisemiseksi suunnitellut poissaolot huomioidaan tehtävien jaossa etukäteen. 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 tai tuloksiin, täytyy asiasta keskustella tilaajan kanssa ja neuvotella muutoksista toteutettaviin vaatimuksiin. 
     848 
     8498.7 Kokemattomuus projektihallinnassa 
     850 
     851Projektipäälliköllä ei ole aiempaa kokemusta projektin läpiviemisestä päällikkönä, joten työmäärien ja aikataulun arvioiminen on vaikeaa. Kokemattomuudesta johtuen työtehtävien tasainen jakaminen ryhmän jäsenille ja ryhmän jäsenten taitojen hyödyntäminen ei välttämättä ole ihanteellista. 
     852 
     853Riskien ehkäisemisessä ja siitä toipumisessa ryhmän jäsenten apu projektipäälliköille on ensiarvoisen tärkeää. Lisäksi mahdollisten ongelmien havainnoinnissa auttavat tilakatsaukset ja projektiryhmän keskinäiset tapaamiset. 
     854 
     855Ryhmän jäsenten täytyy muistaa, että projektipäällikkö on myös oppimassa projektin johtamista. Projektiryhmän jäsenillä on velvollisuus huomauttaa, jos projekti ei etene oikeaan suuntaan. Ryhmän jäsenten täytyy lisäksi olla oma-aloitteisia ja huomauttaa, jos jotkin tehtävät jäävät tekemättä. Jos projektin hallinnassa esiintyy ongelmia, täytyy niistä keskustella vastaavan ohjaajan kanssa. 
     856Luku 9 
     857Yhteenveto 
     858 
     859Hälyri-projekti suorittaa alustavan toteutettavuuskartoituksen ja kehittää hätätietojärjestelmän prototyypin Sovellusprojekti-kurssilla keväällä 2014. Projektin tulokset luovutetaan tilaajalle toukokuun lopussa. 
     860 
     861Kehitettävä prototyyppi on laaja ja monimutkainen, joten tietojärjestelmän sovellusten ominaisuuksien priorisointiin on kiinnitettävä erityisen paljon huomiota. Projektin onnistumisen esteenä olevat suurimmat riskit liittyvät alustan rajoituksiin, kehittäjien tietotaidon puutteisiin ja tavoitteiden rajaamiseen. Projektissa kehitettävän prototyypin pohjalta tullaan kehittämään tietojärjestelmästä pilottiversio, joten projektissa laadittuja dokumentteja tullaan hyödyntämään myöhemmin. 
     862 
     863Tietojärjestelmän toteutuksen kokemuksen lisäksi sovellusprojekti antaa projektiryhmän jäsenille kattavan käsityksen ohjelmistoprojektissa työskentelystä sekä sen vaatimuksista ja työtavoista. Ryhmän jäsenet oppivat asioita käytännön tekemisen kautta sekä soveltavat aikaisemmilta kursseilta oppimaansa teoriatietoja ja taitoja. 
     864Luku 10 
     865Lähteet 
     866 
     867[1]   Petri Heinonen, ”Ajankäytönseurantasovellus”, saatavilla Excel-muodossa <URL: http://appro.mit.jyu.fi/tools/ajankaytto/ajankaytonseuranta.xls>, Jyväskylän yliopisto, informaatioteknologian tiedekunta, viitattu 23.2.2014. 
     868 
     869[2]   Tapio Keränen, Toni Salminen, Jari Salokangas ja Lauri Satokangas, ”Paatti-projekti”, saatavilla PDF-muodossa <URL: http://sovellusprojektit.it.jyu.fi/paatti/>, Jyväskylän yliopisto, tietotekniikan laitos, 2012. 
     870 
     871[3]   Tomi Karppinen, ”ComTest for C#”, saatavilla WWW-osoitteessa <URL: 
     872https://trac.cc.jyu.fi/projects/comtest/wiki/ComTestCsharp>, Jyväskylän yliopisto, tietotekniikan laitos, 14.2.2014. 
     873 
     874[4]   Microsoft, ”Windows Phone SDK”, saatavilla WWW-osoitteessa <URL: 
     875http://dev.windowsphone.com/en-_us/>, Microsoft, 2014. 
     876 
     877[5]   Microsoft, ”C# Programming Guide”, saatavilla WWW-osoitteessa <URL: http://msdn.microsoft.com/en-_us/library/67ef8sbd.aspx>, Microsoft, 2014. 
     878 
     879[6]   Niko Mononen, Veli-Mikko Puupponen, Ilkka Rautiainen ja Atte Söderlund, ”Hätäilmoitustietojärjestelmän vaatimusmäärittely”, saatavilla WWW-osoitteessa <URL: https://trac.cc.jyu.fi/projects/sovproj/wiki/Halyri/Vaatimusmaarittely>, Jyväskylän yliopisto, tietotekniikan laitos, 2014. 
     880 
     881[7]   Jukka-Pekka Santanen, ”Tietotekniikan Sovellusprojektien ohje”, saatavilla WWW-osoitteessa <URL: http://www.mit.jyu.fi/opetus/sovellusprojektit/projohje.html>, Jyväskylän yliopisto, tietotekniikan laitos, 29.1.2013. 
    1882 
    2883