Changes between Version 8 and Version 9 of Halyri/Projektisuunitelma


Ignore:
Timestamp:
2014-05-18 14:24:13 (5 years ago)
Author:
nimajomo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Halyri/Projektisuunitelma

    v8 v9  
    1  
    2 Hälyri-Sovellusprojekti 
    3 Niko Mononen 
    4 Veli-Mikko Puupponen 
    5 Ilkka Rautiainen 
    6 Atte Söderlund 
    7 Projektisuunnitelma 
    8 Versio: 0.5.0 
    9 Julkinen 
    10 3. toukokuuta 2014 
    11 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä PäivämääräAllekirjoitus Nimenselvennys 
    12 Projektipäällikkö __.__.2014 
    13  
    14 Tilaaja __.__.2014 
    15  
    16 Ohjaaja __.__.2014 
    17  
    18  
    19 Tietoa dokumentista 
    20 Tekijä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 
    25 Dokumentin 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. 
    26 Muutoshistoria 
    27                          
    28 Versio  Päivämäärä       
    29  
    30 Muutokset 
    31          
    32  
    33 Tekijät 
    34                          
    35 0.0.1   11.2.2014        
    36  
    37 Projektisuunitelman laatiminen on aloitettu. 
    38          
    39  
    40 NM 
    41                          
    42 0.0.2   15.2.2014        
    43  
    44 Suunitelmaa on täydennetty. 
    45          
    46  
    47 NM 
    48                          
    49 0.0.3   18.2.2014        
    50  
    51 Projektin hallinta -luku on kirjoitettu. 
    52          
    53  
    54 NM 
    55                          
    56 0.0.4   23.2.2014        
    57  
    58 Prosessi ja riskit on kuvattu. 
    59          
    60  
    61 NM 
    62                          
    63 0.0.5   25.2.2014        
    64  
    65 Johdanto ja yhteenveto on kirjoitettu, sekä dokumenttia on viimeistelty. 
    66          
    67  
    68 NM 
    69                          
    70 0.1.0   27.2.2014        
    71  
    72 Aikataulut ja työnjako on päivitetty, sekä dokumnettia on viimeistelty. 
    73          
    74  
    75 NM 
    76                          
    77 0.1.1   9.3.2014         
    78  
    79 Ulkoasua on korjattu. 
    80          
    81  
    82 NM 
    83                          
    84 0.1.2   12.3.2014        
    85  
    86 Sisältöä on korjattu. 
    87          
    88  
    89 NM 
    90                          
    91 0.1.3   13.3.2014        
    92  
    93 Tavoitteet, tulokset ja resurssit on päivitetty. 
    94          
    95  
    96 NM 
    97                          
    98 0.1.4   13.3.2014        
    99  
    100 Projektiorganisaatiolukua on päivitetty. 
    101          
    102  
    103 NM 
    104                          
    105 0.1.5   18.3.2014        
    106  
    107 Termejä, vastuualueita ja aikataulua kuvaavia lukuja on päivitetty, sekä niiden järjestystä on muutettu. 
    108          
    109  
    110 NM 
    111                          
    112 0.2.0   19.3.2014        
    113  
    114 Työmäärät ja riskiarviot on päivitetty, sekä dokumenttia on viimeistelyä. 
    115          
    116  
    117 NM 
    118                          
    119 0.2.1   28.3.2014        
    120  
    121 Dokumenttia on korjattu saadun palautteen mukaisesti. 
    122          
    123  
    124 NM 
    125                          
    126 0.2.2   5.4.2014         
    127  
    128 Työmäärät ja Gantt-kaavio on päivitetty. 
    129          
    130  
    131 NM 
    132                          
    133 0.3.0   6.4.2014         
    134  
    135 Dokumentin ulkoasua on päivitetty. 
    136          
    137  
    138 NM 
    139                          
    140 0.3.1   9.4.2014         
    141  
    142 Dokumenttia on korjattu saadun palautteen mukaisesti. 
    143          
    144  
    145 NM 
    146                          
    147 0.3.2   18.4.2014        
    148  
    149 Sisältöä on korjattu. 
    150          
    151  
    152 NM 
    153                          
    154 0.4.0   19.4.2014        
    155  
    156 Työmäärät ja Gantt-kaavio on päivitetty. 
    157          
    158  
    159 NM 
    160                          
    161 0.5.0   23.4.2014        
    162  
    163 Dokumenttia on korjattu saadun palautteen mukaisesti. 
    164          
    165  
    166 NM 
    167                          
    168 Tietoa projektista 
    169 Projekti 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  
    171 Tekijät: 
    172  
    173    ∙  Niko Mononen (NM) 
    174          
    175  
    176          
    177  
    178 niko.m.mononen@student.jyu.fi 
    179  
    180    ∙  Veli-Mikko Puupponen (VMP) 
    181          
    182  
    183          
    184  
    185 veli-mikko.a.puupponen@student.jyu.fi 
    186  
    187    ∙  Ilkka Rautiainen (IR) 
    188          
    189  
    190          
    191  
    192 ilkka.t.rautiainen@student.jyu.fi 
    193  
    194    ∙  Atte Söderlund (AS) 
    195          
    196  
    197          
    198  
    199 atte.a.soderlund@student.jyu.fi 
    200  
    201 Tilaaja: 
    202  
    203    ∙  Vesa Lappalainen 
    204          
    205  
    206 vesa.t.lappalainen@jyu.fi 
    207  
    208    ∙  Tero Tuovinen 
    209          
    210  
    211 tero.tuovinen@jyu.fi 
    212  
    213 Ohjaajat: 
    214  
    215    ∙  Jaakko Kosonen 
    216          
    217  
    218 jaakko.j.kosonen@gmail.com 
    219  
    220    ∙  Olli Kauppinen 
    221          
    222  
    223 olli.p.kauppinen@student.jyu.fi 
    224  
    225    ∙  Jukka-Pekka Santanen 
    226          
    227  
    228 santanen@mit.jyu.fi 
    229  
    230 Asiantuntijat: 
    231  
    232    ∙  Helena Jäntti 
    233          
    234  
    235 helena.jantti@kuh.fi 
    236  
    237 Yhteystiedot: 
    238  
    239    ∙  Sähköpostilistat: 
    240          
    241  
    242 halyri@korppi.jyu.fi, 
    243  
    244 halyri_opetus@korppi.jyu.fi 
    245  
    246    ∙  Sähköpostiarkistot: 
    247          
    248  
    249 https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri/, https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri\_opetus/ 
    250  
    251    ∙  Projektitila: 
    252          
    253  
    254 AgC 223.2, puh. 040-3573796 
    255  
    256   
    257 Sisältö 
    258 1 Johdanto 
    259 2 Termit 
    260 3 Taustaa ja tavoitteet 
    261  3.1 Taustaa 
    262  3.2 Prototyypille asetetut tavoitteet 
    263  3.3 Tulokset 
    264  3.4 Oppimistavoitteet 
    265 4 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 
    271 5 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 
    281 6 Tehtävät, työmäärät ja työnjako 
    282  6.1 Vastuualueet 
    283  6.2 Työnositus ja työmäärä 
    284 7 Prosessi ja aikataulu 
    285  7.1 Prosessi 
    286  7.2 Aikataulu 
    287 8 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 
    295 9 Yhteenveto 
    296 10 Lähteet 
    297 Luku 1 
    298 Johdanto 
    299  
    300 Projekti 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  
    302 Projektisuunnitelma 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  
    304 Luvussa 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. 
    305 Luku 2 
    306 Termit 
    307  
    308 Dokumentin 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  
    338 Dokumentissa 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  
    368 Luku 3 
    369 Taustaa ja tavoitteet 
    370  
    371 Luvussa käsitellään projektin taustatietoja, tavoitteita projektissa toteutettavalle tietojärjestelmän prototyypille ja muille tuloksille sekä ryhmän jäsenille asetettuja oppimistavoitteita. 
    372 3.1 Taustaa 
    373  
    374 Matkapuhelinteknologia 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  
    376 Hä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  
    378 Virhearviot 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  
    385 Hä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  
    387 Jyvä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  
    389 Hankkeessa 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  
    391 3.2 Prototyypille asetetut tavoitteet 
    392  
    393 Hä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  
    401 Mobiilisovellus 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  
    403 Hä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  
    405 PIC 
    406 Kuva 3.1: Projektissa kehitettävän hätäilmoitusjärjestelmän prototyyppi. 
    407  
    408 3.3 Tulokset 
    409  
    410 Tietojä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  
    426 3.4 Oppimistavoitteet 
    427  
    428 Tietotekniikan 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  
    430 Ryhmä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  
    437 Luku 4 
    438 Organisaatio ja resurssit 
    439  
    440 Luvussa esitellään projektiorganisaatio, käytössä olevat resurssit sekä projektiin liittyvät oheiskurssit ja perehdytykset. 
    441 4.1 Projektiorganisaatio 
    442  
    443 Projektiryhmä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  
    445 Tilaajan 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. 
    446 Projektin sidosryhmiin kuuluu myös hätäkeskusten, pelastusalan ja ensihoidon asiantuntijoita, joita ovat mm. Helena Jäntti Kuopion yliopistollisesta sairaalasta. 
    447  
    448 Jyvä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  
    450 4.2 Projektin tilat ja laitteet 
    451  
    452 Projektiryhmä 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  
    454 Sovellusprojektien 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  
    456 Projektilla 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  
    458 Projektin julkistetut dokumentit sijoitetaan trac-wikiin URL-osoitteeseen 
    459 https://trac.cc.jyu.fi/projects/sovproj/wiki/Halyri. 
    460  
    461 Trac on hyvin yksinkertainen WWW-pohjainen, alun perin ohjelmistoprojektien tehtävien hallintaan tarkoitettu järjestelmä. 
    462  
    463 Projektissa toteutettava lähdekoodi sijoitetaan git-pohjaiseen YouSource-julkistusjärjestelmään osoitteeseen https://yousource.it.jyu.fi/halyri/ 
    464  
    465 Projektilla on käytössä sähköpostilistat halyri@korppi.jyu.fi ja 
    466 halyri_opetus@korppi.jyu.fi. Sähköpostilistojen arkistoista 
    467 https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri/ ja 
    468 https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri\_opetus/  keskustelua voi lukea WWW-selaimella kirjautumalla Korppi-opintotietojärjestelmään. 
    469  
    470 4.3 Dokumentointityökalut 
    471  
    472 Projektisuunnitelma 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  
    474 Ajankä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  
    476 4.4 Ohjelmointityökalut 
    477  
    478 Sovellukset 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  
    480 4.5 Luennot ja perehdytykset 
    481  
    482 Projektin 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  
    484 Kurssiin 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  
    493 Kurssiin 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  
    495 Tarvittaessa sovellusprojektiin sisällytetään perehdyttämistä projektiin liittyvistä työkaluista ja tekniikoista sekä aihealueesta. 
    496 Luku 5 
    497 Projektin käytänteet 
    498  
    499 Luvussa 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ä. 
    500 5.1 Tiedotus 
    501  
    502 Projektin 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  
    504 Projektiorganisaation 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  
    506 Projektiryhmän jäsenten ja ohjaajien käytössä on myös sähköpostilista 
    507 halyri_opetus@korppi.jyu.fi. Sen sähköpostiarkisto sijaitsee osoitteessa 
    508 https://korppi.jyu.fi/kotka/servlet/list-_archive/halyri\_opetus/. 
    509 Sä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  
    511 Ryhmä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  
    513 5.2 Palaverit 
    514  
    515 Projektiorganisaatio pyrkii pitämään yhteisen palaverin kerran kahdessa viikossa. Seuraavan palaverin ajankohta päätetään aina edellisessä palaverissa. 
    516  
    517 Palavereissa 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  
    519 Palavereissa 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  
    521 Ryhmä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  
    523 5.3 Tiedostojen nimeäminen 
    524  
    525 Lä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  
    527 Dokumenttitiedostot 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 
    528 halyri_projektisuunitelma_[numero].[numero].[numero].pdf 
    529  
    530 5.4 Hakemistorakenne 
    531  
    532 Projektin 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  
    560 5.5 Lähdekoodi 
    561  
    562 Projektissa 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  
    564 Seuraavassa 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   
    586 using System;   
    587 using HalyriServer.Model.Transfer;   
    588 using HalyriServer.Services.Exceptions;   
    589   
    590 namespace 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  
    639 5.6 Versiointi ja versiohallinta 
    640  
    641 Sovelluksen 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  
    643 Dokumenttien versioissa tullaan käyttämään kolmiportaista versionumerointia. 
    644 Ryhmä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  
    646 5.7 Testaus 
    647  
    648 Toteutetun 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  
    650 Jä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  
    652 5.8 Tulosten katselmoinnit ja hyväksyminen 
    653  
    654 Ryhmä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  
    656 Projektin 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  
    658 5.9 Tulosten koostaminen ja toimittaminen 
    659  
    660 Projektiryhmä 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  
    662 CD-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  
    664 Projektissa käytetty palvelin siirretään projektin päätyttyä tilaajan haltuun. Tietojärjestelmän viimeisimmät versiot ovat saatavilla YouSourcesta osoitteesta 
    665 https://yousource.it.jyu.fi/halyri/ 
    666 Luku 6 
    667 Tehtävät, työmäärät ja työnjako 
    668  
    669 Luvussa määritellään projektiryhmän jäsenten vastuualueet sekä eri tehtävien työmäärät ja työnjako. 
    670 6.1 Vastuualueet 
    671  
    672 Projektipää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  
    674 Ryhmä 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  
    678 Tulos 
    679          
    680  
    681 Vastuuhenkilö 
    682          
    683  
    684 Hätäkeskussovellus 
    685          
    686  
    687 Ilkka Rautiainen 
    688          
    689  
    690 Käyttöliittymät 
    691          
    692  
    693 Atte Söderlund 
    694          
    695  
    696 Mobiilisovellus 
    697          
    698  
    699 Atte Söderlund 
    700          
    701  
    702 Palvelinsovellus 
    703          
    704  
    705 Veli-Mikko Puupponen 
    706          
    707  
    708 Projektisuunnitelma 
    709          
    710  
    711 Niko Mononen 
    712          
    713  
    714 Projektiraportti 
    715          
    716  
    717 Niko Mononen 
    718          
    719  
    720 Sovellusraportti 
    721          
    722  
    723 Atte Söderlund 
    724          
    725  
    726 Testausdokumentit 
    727          
    728  
    729 Ilkka Rautiainen 
    730          
    731  
    732 Tietokanta 
    733          
    734  
    735 Veli-Mikko Puupponen 
    736          
    737  
    738 Vaatimusmäärittely 
    739          
    740  
    741 Veli-Mikko Puupponen 
    742          
    743  
    744 Taulukko 6.1: Olennaisten tulosten vastuuhenkilöt 
    745  
    746 Vastuuhenkilö 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  
    748 6.2 Työnositus ja työmäärä 
    749  
    750 Projektiryhmä 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  
    752 Työ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  
    754 PIC 
    755 Kuva 6.1: Työajankäyttösuunnitelma tehtäväkokonaisuuksittain 1/2. 
    756  
    757 PICPICPIC 
    758 Kuva 6.2: Työajankäyttösuunnitelma tehtäväkokonaisuuksittain 2/2. 
    759  
    760 Luku 7 
    761 Prosessi ja aikataulu 
    762  
    763 Luvussa kuvataan projektissa noudatettavaa prosessia ja suunniteltua aikataulua. 
    764 7.1 Prosessi 
    765  
    766 Projektin 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  
    768 Ensimmä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  
    770 7.2 Aikataulu 
    771  
    772 PIC 
    773 Kuva 7.1: Projektin Gantt-kaavio. 
    774  
    775 Kuvassa 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. 
    776 Luku 8 
    777 Riskit ja riskien hallinta 
    778  
    779 Luvussa kuvataan projektissa tiedostetut riskit ja niiden vaikutukset projektin tuloksiin tai läpivientiin. Lisäksi kuvataan toimia niiden ennakoimiseksi ja ehkäisemiseksi sekä niistä toipumiseen. 
    780 8.1 Riskien todennäköisyydet ja haitat 
    781  
    782 Riskien 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  
    786 Riski 
    787         Todennäköisyys  Haittavaikutus 
    788                  
    789                  
    790  
    791 Alustan rajoitukset 
    792         keskinkertainen         suuri 
    793                  
    794  
    795 Kehittäjien tietotaidon puutteet 
    796         keskinkertainen         keskinkertainen 
    797                  
    798  
    799 Tavoitteiden rajaaminen 
    800         keskinkertainen         keskinkertainen 
    801                  
    802  
    803 Tiedotuksen puutteet 
    804         pieni   keskinkertainen 
    805                  
    806  
    807 Jäsenten poissaolot 
    808         keskinkertainen         pieni 
    809                  
    810  
    811 Kokemattomuus projektihallinnassa 
    812         keskinkertainen         pieni 
    813                  
    814  
    815 Taulukko 8.1: Arvioitujen riskien todennäköisyys ja haittavaikutus. 
    816  
    817 8.2 Alustan rajoitukset 
    818  
    819 Projektiryhmä 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  
    821 Riskiä 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  
    823 8.3 Kehittäjien tietotaidon puutteet 
    824  
    825 Ohjelmiston 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  
    827 Riskin 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  
    829 8.4 Tavoitteiden rajaaminen 
    830  
    831 Tilaajan 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  
    833 Riskin 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  
    835 Sovittujen 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  
    837 8.5 Tiedotuksen puutteet 
    838  
    839 Projektiorganisaatiossa tiedonkulku on tärkeää. Tiedotuksen puutteet voivat vaarantaa koko projektin aikataulussa pysymisen tai tulokset eivät vastaa tilaajan kokonaistavoitteita. 
    840  
    841 Riskin 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  
    843 8.6 Jäsenten poissaolot 
    844  
    845 Ryhmä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  
    847 Riskin 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  
    849 8.7 Kokemattomuus projektihallinnassa 
    850  
    851 Projektipää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  
    853 Riskien 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  
    855 Ryhmä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. 
    856 Luku 9 
    857 Yhteenveto 
    858  
    859 Hä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  
    861 Kehitettä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  
    863 Tietojä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. 
    864 Luku 10 
    865 Lä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: 
    872 https://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: 
    875 http://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. 
    882  
    883  
    884 == Projektisuunitelma == 
     1= Projektisuunitelma = 
    8852 
    8863Liitteinä ovat Hälyri-projektin projektisuunitelma.