This page last changed on 2008-12-12 by htmannin.
Yhteenvetodokumentti
Johdanto
Tämä dokumentti on yhteenveto PULSU -ryhmän ohjelmistotuotantoprojektista. Dokumenttiin on tiivistetty oleelliset tiedot projektin tuotoksista ja se antaa projektiin tutustuvalle hyvän yleiskuvan projektin luonteesta.
Projektin tavoitteena oli rakentaa uusi käyttäjäystävällisempi ja näyttävämpi käyttöliittymä PULS -järjestelmälle. Järjestelmän käyttäjäryhmä on hyvin laaja, koska järjestelmää voidaan käyttää moniin eri tarkoituksiin. Tämä oli hyvin haasteellista sekä käyttöliittymän kannalta että mukautumiskyvyn kannalta, koska järjestelmän käyttöliittymän pitää soveltua vielä tuntemattomien, tulevaisuudessa toteutuvien käyttäjäryhmien tarpeisiin. Projekti toteutettiin lisp -ympäristössä, joka oli täysin uutta lähes kaikille projektiryhmän jäsenille.
PULS on luonnollisen kielen prosessointijärjestelmä, joka on kehitetty Helsingin yliopiston tietojenkäsittelylaitoksella. Se erottelee faktoja jäsentämättömästä tekstistä ja tallettaa ne tietokantaan. Järjestelmää voidaan käyttää eri skenaarioihin, tosin tällä hetkellä sitä käytetään pääasiassa tauti- ja liiketalousskenaarioihin. PULSU -ryhmän työ keskittyi lähinnä tautiskenaarioon, mutta pyrki tekemään uudesta käyttöliittymästä sellaisen, että muiden skenaarioiden lisääminen on jälkikäteen helppoa. Samaan järjestelmään ei oltu tehty aikaisempia ohjelmistotuotantoprojekteja.
Vanha PULS-järjestelmän käyttöliittymä oli suunnattu käyttäjälle, joka tuntee järjestelmän ja sen toiminnot. Käyttöliittymä oli jo alkujaan web-käyttöliittymä, jolla voitiin tehdä hakuja tietokantaan ja korjata järjestelmän virheitä.
Sanasto
Domain |
Aihepiiri, jolle kyseinen käyttöliittymä on suunnattu. Aihepiirejä on esim. lääketieteellinen ja liiketaloudellinen. |
Scenario |
Skenaario, jolle kyseinen käyttöliittymä on suunnattu. Skenaarioita on esim. taudit ja investoinnit. |
View |
Yksittäinen näkymä esittää tietoa tietystä näkökulmasta. Näkymiä ovat esim. yleiskatsaus, taulukko tai laajennettu haku. |
Map |
Kartta, johon on merkitty eri tautien havaintopaikat. |
Document |
Dokumentti, joka on löydetty internetistä. Yksittäinen dokumentti voi sisältää useita caseja. |
Case (IE event) |
Fakta, jonka IE-järjestelmä on löytänyt dokumentista. Lääkärit käyttävät 'case' -sanaa, koska 'event' tarkoittaa heille koko taudin tapahtumaketjua. Koskee vain lääketieteellistä domainia. |
Unified case |
Ryhmä caseja, joilla on samat attribuutit (Level 1). |
Group |
Ryhmä unified caseja, jotka liittyvät samaan tautiin samassa maassa kahden viikon säteellä (Level 2). |
Plain cases |
Caset ilman mitään ryhmittelyä (Level 0). |
Attribute |
Casen muuttuja esim. disease, country, time, total, status yms. Disease: Casessa esiintyvän taudin nimi. Country: Casessa esiintyvän maan nimi. Time: Taudin tapahtuma-aika. Total: Sairastuneiden lukumäärä. Status: Taudin kehittymisaste. |
Search |
Tavallinen haku, jota kaikki käyttäjät voivat hyödyntää. |
Enhanced search |
Laajennettu haku, jota ei tarjota tavalliselle käyttäjälle. Muut voivat käyttää tätä määritelläkseen hakuehdot tarkemmin. |
Help |
Sisältää ohjeita kaikille käyttäjille. |
Lopputuotteen esittely
PULSU -ryhmän tuottaman käyttöliittymän toiminnalliset ominaisuudet ovat melko lähellä alkuperäistä käyttöliittymää, mutta kaikki toiminnot on tehty käyttäjäystävällisemmin. Käyttäjälle tarjotaan nyt intuitiivisempi ja enemmän informaatiota tarjoava ympäristö, jossa on ajateltu myös muita skenaarioita tautiskenaarion lisäksi. Käyttöliittymän visuaalinen miellyttävyys on samalla kohentunut merkittävästi ja se tarjoaa yhtenevän näkymän eri sivujen välillä. Käyttäjä voi nyt tehdä monipuolisia hakuja tietokantaan sekä nähdä samat tiedot yksittäisinä tapauksina, ryhmiteltynä tai sivustolle sulautetulla Google Maps -kartalla.
Dokumenttien tiivistelmät
Projektisuunnitelma
Projektisuunnitelma kertoo ryhmän jäsenien tehtävistä, työskentelytavoista ja arvoita projektin riskeistä. Siitä saa myös kuvan projektin etenemisestä ja iteratiivisestä luonteesta.
Vaatimusmäärittely
Vaatimusmäärittelydokumentti sisältää asiakkaan kanssa neuvotellut vaatimukset ja toiveet projektin lopputuloksesta, joita projektin aikana toteutettiin ja tarkennettiin. Dokumentin pohjalta luotiin suunnitteludokumentti ja valvottiin käyttöliittymän eri komponenttien toiminnan oikeellisuutta.
Suunnitteludokumentti
Suunnitteludokumentti antaa kattavan kuvan toteutetusta järjestelmästä. Se sisältää kuvauksen järjestelmän rakenteesta, sekä miten eri komponentit on käytännössä toteutettu. Dokumentissa on käyty kaikki järjestelmän funktiot läpi ja kerrottu niiden tarkoitus sekä tarkempia tietoja, kuten mitä ne palauttaa ym. Lisäksi se sisältää tiedot ulkopuolisten kirjastojen käytöstä ja missä kohdissa järjestelmää niitä on käytetty.
Testaussuunnitelma
Testaussuunnitelma antaa kuvan järjestelmän testauksesta sekä siihen liittyvistä työkaluista. Dokumentissa käydään läpi myös vaatimusmäärittelydokumentin vaatimuksia suhteessa testaukseen.
Ylläpitodokumentti
Ylläpitodokumentti sisältää kaiken asiakkaan jatkukehitystä varten tarpeellisen informaation. Se sisältää paljolti samoja asioita kuin suunnitteludokumentti, mutta siinä näkökanta on juuri ohjelmiston jatkokehityksessä.
Käyttöohje
Käyttöohje on erillinen opas järjestelmän käyttöön, joka löytyy myös ohjelman "helpistä". Siinä keskitytään käyttötapausten pohjalta tapahtuviin käyttöskenaarioihin ja käydään niitä yksityiskohtaisesti läpi. Tarkoituksena on antaa järjestelmän uusille käyttäjille helppo tapa tutustua käyttöliittymän toimintaan.
Projektin päättöanalyysi
Projektin lopputulos oli projektiryhmän mielestä onnistunut. Kaikkia alkuvaiheen visioita ei saatu toteutettua, mutta se kuuluu projektityöskentelyn luonteeseen. Aluksi annetaan ideoiden rönsyillä ja projektin edetessä keskitytään olennaiseen. Lähes kaikki asiakkaan esittämät vaatimukset saatiin kuitenkin toteutettua, paitsi tautitapauksien ryhmittely käyttäjän toimesta. Kyseinen vaatimus osoittautui erittäin monimutkaiseksi toteuttaa ja se todettiin myös asiakkaan toimesta asiaksi, johon ei välttämättä löydy mitään hyvää kompromissia käytettävyyden ja ominaisuuksien välillä. Varsinaisten vaatimusmäärittelyssä ilmenneiden asioiden lisäksi toteutimme monia pieniä asioita asiakkaan toiveesta sekä käyttöliittymän selkeyden parantamiseksi.
Projektin ketterä ja iteratiivinen toteutustapa osoittautui toimivaksi kyseisessä projektissa, vaikka se välillä loi epävarmuutta aikataulutukseen. Toisaalta sen hyvinä puolina oli nopea reagointi asiakkaan esittämiin lisätoivomuksiin, joista tehtiin ensin toiminnaltaan vajaita demoja ja idean tuntuessa hyvältä ne toteutettiin lopulliseen järjestelmään. Kaikki ryhmän jäsenet tekivät heille osoitetut tehtävät ja yleinen ilmapiiri oli hyvä. Ideoita saatiin kaikilta projektin jäseniltä ja ainakin jokin kaikkien ehdottamista ratkaisuista pääsi toteutukseen saakka. Projektiryhmän sisäinen kommunikaatio käytiin suomeksi, mutta kaikki ulkoinen dokumentaatio ja kommunikointi asiakkaan kanssa käytiin englanniksi. Tämä kaksikielisyys ei osoittautunut kuitenkaan suureksi ongelmaksi.
Testauksen käytännön toteutuksen osalta projekti jäi hieman vajaaksi, mutta ottaen huomioon tarvittaviin työkaluihin menneen ajan ja laitoksella järjestetyn koulutuksen, niin kovin erikoista testaamista ei tässä projektissa voitu odottaa. Testausta toteutettiin kuitenkin lähestyen mahdollisia ongelmia eri testimenetelmin. Käytimme perinteisiä testausmenetelmiä lispin ja javascriptin testaukseen, sekä niiden lisäksi käyttöliitymän korkeatasoiseen testaukseen tarkoitettua ohjelmaa.
Dokumentaation osalta pyrimme pitämään kaikki järjestelmään liittyvät tiedot hyvin ajan tasalla ja onnistuimme tavoitteessamme hyvin. Uskomme, että kyseisiin dokumentteihin tutustumalla seuraavilla projektiryhmillä on hyvin ajantasainen käsitys järjestelmän tilasta.
Yhteenveto
Projekti oli onnistunut ja mieluisa kokemus kaikille ja yhteistyö asiakkaan kanssa sujui hienosti. Projektin jäsenille uusi ohjelmointikieli ja siihen liittyvä työkalut veivät huomattavan osan projektin ajasta. Näiden lisäksi täytyi opetella hallitsemaan useita muita asioita, kuten versionhallinta, emacs, slime, ym. Tämän lisäksi testaukseen perehtyminen ilman kunnollista koulutusta, projektin muun työskentelyn ohessa, oli vähintäänkin haastavaa. Projekti oli kuitenkin pääsääntöisesti onnistunut ja projektiryhmä oli tyytyväinen suoritukseensa.
Projektiryhmän jäsenien kommentteja
Joel: Projekti sujui mielestäni jopa yllättävän hyvin ottaen huomioon ryhmäläisten kokemattomuuden lispin ja käytettyjen työkalujen kanssa. Työtaakka jakautui tasaisesti koko projektin kestolle ja asioita saatiin aikaan. Lopputulos on ehkä hiukan rumempi kuin olisin halunnut mutta olen enimmäkseen tyytyväinen projektiin, myös kokemuksena.
Erno: Projekti sujui hyvin ja opin projektin aikana uusia asioita. Töiden jako onnistui hyvin ja projektiin ja projektin lopputulokseen voi olla ihan tyytyväinen.
Sami: Projekti onnistui hyvin myös minun mielestäni. Lisp:in opettelu ja testaaminen lispillä oli hankalaa, mutta mukavaa oli lispiä kuitenkin käyttää ja oppia. Testaamista vaikeutti myös se että koodi ja tavoitteet muuttui paljon projektin aikana. Ryhmä työskentely ja töiden jako onnistui meiltä hyvin.
Noora: Projekti onnistui yllättävän hyvin, vaikka aihepiiri ja uusi ohjelmointikieli osoittautuivatkin varsin haastaviksi. Työtaakka onnistuttiin jakamaan tasaisesti ryhmän jäsenten kesken ja ilmapiiri oli hyvä ja kannustava.
Heikki: Tämä kirjoittamani dokumentti kertoo mielipiteeni projektista.
|