bgcolor=white 1
Graafinen käyttöliittymä lintujen rengastusjärjestelmään Projektisuunnitelma Versiohistoria: 0.1 22.01.2002 Ensimmäinen luonnos Markus Päivinen 0.2 23.01.2002 Lisätty aikataulut Markus Päivinen 1.0 24.01.2002 Asiakkaan hyväksymä versio Markus Päivinen Helsinki 25. tammikuuta 2002 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti Haukka
Sisältö 1 Johdanto 1 2 Työn aihepiiri 1 2.1 Työn kuvaus............................. 2 2.2 Aikaisemmat projektit....................... 2 2.3 Tavoitteet.............................. 2 3 Organisaatio 3 3.1 Projektiryhmä............................ 3 3.2 Ohjaaja............................... 3 3.3 Asiakas............................... 4 4 Toimintasuunnitelma 4 4.1 Projektiryhmän vastuualueet.................... 5 4.2 Dokumentointi........................... 5 4.3 Aikataulu.............................. 6 5 Riskit 6 5.1 Jäsenen/jäsenten sairastuminen................... 6 5.2 Aikataulun pettäminen....................... 7 5.3 Virheellisen ohjelmakoodin tuottaminen.............. 7 5.4 Vaatimusten muuttuminen..................... 8 5.5 Katkokset tiedonvälityksessä.................... 8 5.6 Ryhmän jäsen keskeyttää...................... 8 5.7 Laitteisto-ongelmat......................... 9 5.8 Ohjelmisto-ongelmat........................ 9 5.9 Yhteensopivuusongelmat...................... 9 1
5.9.1 projektia tehtäessä..................... 9 5.9.2 asiakkaan laitteisto..................... 10 5.10 Muut uhat.............................. 10 6 Projektissa käytettävät menetelmät 10 6.1 Ympäristö.............................. 10 6.2 Kieli................................. 11 6.3 Projektin seuranta.......................... 11 6.4 Käytettävät työkalut......................... 11 7 Omistus- ja käyttöoikeus 11 2
1 Johdanto Projektisuunnitelman tarkoituksena on auttaa pitämään projekti aikataulussa. Projektisuunnitelma on ennen kaikkea tarkoitettu projektiryhmälle itselleen, jotta projektiryhmä voi itse seurata projektin etenemistä. Projektisuunnitelmaa pidetään koko ajan ajan tasalla eli sitä päivitetään aina, kun aikataulua, työnjakoa tai muita osioita joudutaan korjaamaan. 2 Työn aihepiiri Rengastus on tutkimusmenetelmä, jolla pyritään saamaan tietoa yksilöllisesti merkittyjen lintujen elämänvaiheista. Suomessa rengastustyön organisoi Helsingin yliopiston Luonnontieteellisen Keskusmuseon Rengastustoimisto. Rengastuksia ja rengastettujen lintujen havaintoja koskevat tiedot talletetaan tietokantaan. Rengastus perustuu kansainväliseen yhteistyöhön, jonka osapuolina ovat rengastustoimistot, rengastajat ja suuri yleisö. Kerättyjä tietoja käyttävät tutkijat, päättäjät ja valistajat. Tuotteen avulla Rengastustoimistossa syötetään- ja ylläpidetään rengastus- ja tapaamistietoja. Tuote liittyy suurempaan tietokantajärjestelmään, jonka avulla tehdään sekä kyselyjä että raporttipyyntöjä. Järjestelmän avulla sekä tulostetaan rengastajille, maallikoille ja ulkomaisille rengastuskeskuksille kirjeitä että tuotetaan raportteja ja tutkimusdataa tutkijoille, päättäjille ja valistajille. Rengastustoimistossa on tuotantokäytössä SQL*Forms kehittimellä toteutettu merkkipohjainen käyttöliittymä tietokantaan. Tämä vanhentunut käyttöliittymä on tarkoitus vaihtaa nykyaikaisempaan käyttöliittymään. 1
2.1 Työn kuvaus Työssä viimeistellään graafisen käyttöliittymän toteutus. Tehtävässä jatketaan Tipu4 ja Tintti ryhmien työtä suunnittelemalla ja toteuttamalla käyttöliittymän puuttuvat osat. Käyttöliittymällä tarkoitetaan interaktiivisia lomakkeita, joilla Rengastustoimisto voi syöttää tietokannan tauluihin suoraan tietoja. Käyttöliittymä tarjoaa rajapinnan tietokannan tauluihin, tarkistaa syötetyt tiedot ja tallettaa tiedot tietokantaan. Tuotantokäytössä olevassa järjestelmässä olevia osia on tarkoitus käyttää työn toteutuksessa hyväksi soveltuvin osin. Järjestelmä asennetaan Helsingin yliopiston atk-keskuksen Unix-järjestelmään tietokoneeseen nimeltä kontti. 2.2 Aikaisemmat projektit Projektissa jatketaan Tipu4 ja Tintti ryhmien työtä. Tietoa aikaisemmista projekteista löytyy kyseisten ryhmien sivuilta: Tipu4 http://www.cs.helsinki.fi/group/tipu4/ Tintti http://www.cs.helsinki.fi/group/tintti/ 2.3 Tavoitteet Projektin tavoitteena on suunnitella ja toteuttaa käyttöliittymän puuttuvat osat jatkaen näin aikaisempien ryhmien työtä. Tuotettavan käyttöliittymän tulee olla vakaa ja mahdollisimman joustava, niin että mahdollisia muutoksia voidaan tehdä vähäisellä ohjelmakoodin muokkaamisella. Ehdottoman tärkeää on myös ohjelman toimiminen toivotulla tavalla. Projektiryhmän tavoitteena on siis tehdä mahdollisimman laadukasta työtä. 2
3 Organisaatio Projektin tehtävät pyritään tarpeen mukaan jakamaan siten, että kullekin tehtävälle sovitaan tietty vastuuhenkilö, joka yhdessä muiden ryhmän jäsenten kanssa toteuttaa kyseisen tehtävän, mutta joka kuitenkin itse on vastuussa tehtävän suorittamisesta. Työnjaosta seuraa, että kukin projektiryhmän jäsen suorittaa useampaa tehtävää samanaikaisesti. 3.1 Projektiryhmä Projektiryhmä koostuu kuudesta opiskelijasta: Mari Jaakkola (e-mail: mzjaakko@cs.helsinki.fi) Peter Lindroos (e-mail: peter.lindroos@helsinki.fi) Markus Päivinen (projektipäällikkö) (e-mail: markus.paivinen@helsinki.fi) Tarja Rauste (e-mail: tarja.rauste@sci.fi) Simo Salmensuu (e-mail: simo.salmensuu@helsinki.fi) Vesa Teikari (e-amil: vesa.teikari@helsinki.fi) 3.2 Ohjaaja Projektin ohjaajan tehtävänä on ohjata ja auttaa ryhmän etenemistä projektin eri vaiheissa. Projektin ohjaajana toimii Jenni Valorinta (e-mail: jenni.valorinta@helsinki.fi) 3
3.3 Asiakas Asiakkaana projektissa toimii Helsingin yliopiston Luonnontieteellisen keskusmuseon Rengastustoimisto sekä Helsingin yliopisto. Asiakkaan edustajina tässä projektissa toimivat Jukka Haapala - Luonnontieteellisen Keskusmuseon Rengastustoimisto Heikki Lokki - Tietojenkäsittelytieteen laitos (e-mail: Heikki.Lokki@cs.helsinki.fi) Jan Lindström - Tietojenkäsittelytieteen laitos (e-mail: jplindst@cs.helsinki.fi) 4 Toimintasuunnitelma Projektiryhmä kokoontuu koko projektin ajan kaksi kertaa viikossa ellei erikseen toisin sovita. Kokoontumisajat ovat tiistai klo 12.00-14.00 B451 ja torstai klo 12.00-14.00 C474. Kokoontumistilat B451 ja C474 sijaitsevat tietojenkäsittelytieteen laitoksella. Projektiryhmän kokouksissa sihteerivuoro on kiertävä siten että projektipäällikkö ei osallistu kiertoon. Kokoontumisten ulkopuolella ryhmä pitää yhteyttä lähinnä sähköpostitse. Kiireellisissä tapauksissa käytetään puhelinta. Ryhmän jäsenten yhteystiedot löytyvät ryhmän kotisivulta. Projektiryhmän kotisivut löytyvät osoitteesta http://www.cs.helsinki.fi/group/haukka/. Kotisivulta löytyvät linkit mm. tuotettuihin dokumentteihin ja muuhun materiaaliin. Ryhmän käytössä on erillinen kaappi, jossa säilytetään mm. dokumenttien paperiversioita. Kaappi on numero 7 ja sijaitsee huoneessa D328. 4
4.1 Projektiryhmän vastuualueet Mari Jaakkola vastaa toteutuksesta ja dokumentoinnista testausdokumentin ja käyttöohjeen osalta. Peter Lindroos vastaa toteutuksesta ja dokumentoinnista käyttöohjeen ja toteutusdokumentin osalta sekä toimii ryhmän WWW-vastaavana. Markus Päivinen vastaa toteutuksesta ja dokumentoinnista (projektisuunnitelma ja loppuraportti) sekä toimii projektipäällikkönä. Tarja Rauste vastaa toteutuksesta ja dokumentoinnista vaatimusmäärittely- ja suunnitteludokumentin osalta. Vesa Teikari vastaa toteutuksesta ja dokumentoinnista toteutus- ja testausdokumentin osalta. Simo Salmensuu vastaa toteutuksesta ja dokumentoinnista suunnittelu- ja vaatimusmäärittelydokumentin osalta sekä vastaa ryhmän LaTeX-osaamisesta ja dokumenttien käännöksistä. 4.2 Dokumentointi Projektissa tuotetaan seuraavat dokumentit Projektisuunnitelma Vaatimusmäärittelydokumentti Suunnitteludokumentti Testausdokumentti Toteutusdokumentti Käyttöohje Loppuraportti Markus Päivinen Tarja Rauste, Simo Salmensuu Simo Salmensuu, Tarja Rauste Mari Jaakkola, Vesa Teikari Vesa Teikari, Peter Lindroos Peter Lindroos, Mari Jaakkola Markus Päivinen Lisäksi dokumentoidaan työtuntilistat, kokouspöytäkirjat ja sisäiset muistiot. 5
Dokumentit tuotetaan LaTeX-ohjelmalla. 4.3 Aikataulu Projekti alkaa 17.1.2002 ja päättyy 10.5.2002. Projektin eri vaiheiden aikataulut ovat: Projektisuunnitelma 17.1.-24.1. Vaatimusmäärittelydokumentti 24.1.-12.2. Suunnitteludokumentti 7.2.-5.3. Ohjelmointia 28.2.-23.4. Ohjelmiston testausta 28.2.-30.4. Testausdokumentti 28.2.-7.5. Käyttöohje 7.3.-7.5. Käyttöliittymädemo 14.3. Formal Technical Review (FTR) 11.4. Toteutusdokumentti 16.4.-7.5. Loppuraportti 30.4.-7.5. Deadline 10.5. 5 Riskit Mahdollisia riskejä pyritään ehkäisemään jo etukäteen seurantakokousten, avoimen keskustelun ja huolellisen suunnittelun avulla. Alla on listattu mahdollisia projektin riskitekijöitä. 5.1 Jäsenen/jäsenten sairastuminen Minimointi: Riskiä ei voi ehkäistä mitenkään 6
Hallinta: Työt jaetaan ryhmäläisten kesken siten, että jokaisesta osa-alueesta löytyy osaamista useammalta henkilöltä. Tätä toimintoa voidaan tukea esimerkiksi hyvällä dokumentoinnilla ja parityöskentelyllä. 5.2 Aikataulun pettäminen Minimointi: Laaditaan aikataulu riittävän realistiseksi. Varaudutaan myös yllättäviin tapahtumiin projektin kuluessa. Projektin asettamia vaatimuksia ei pidä aliarvioida missään vaiheessa. Seuranta: Seurataan projektin etenemistä ja verrataan sitä projektisuunnitelmaan. Seuranta suoritetaan kahden viikon välien pidettävissä seurantakokouksissa. Hallinta: Jos aikataulussa havaitaan lipsumista, selvitetään syy ja joko 1) Kohdistetaan ryhmän resursseja uudelleen aikataulussa pysymiseksi tai 2) tarkistetaan aikataulua. Viimeisenä vaihtoehtona on projektin keskyttäminen. 5.3 Virheellisen ohjelmakoodin tuottaminen Minimointi: Suunnitellaan ja toteutetaan järjestelmä ja testaus huolella. Seuranta: Laaditaan koodi huolellisesti ja tarkistetaan sitä jatkuvasti ohjelmoinninkin aikana sekä ehdotetaan korjauksia toisten henkilöiden mahdollisesti jo kirjoittamiin kohtiin. Hallinta: Dokumentoidaan tunnollisesti, mukaanlukien ohjelmakoodin kommentit. Verrataan koodia suunnitteludokumenttiin ja tehdään koodiin päivityksiä tarpeen vaatiessa. 7
5.4 Vaatimusten muuttuminen Minimointi: Pyydetään asiakkaalta tarkka ja selkeä lista ominaisuuksista, jotka halutaan toteutettavan. Hallinta: Neuvotellaan asiakkaan kanssa halutuista ominaisuuksista ja niiden toteutuskelpoisuuksista. 5.5 Katkokset tiedonvälityksessä Minimointi: Käytetään viestintään sähköpostia ja tarvittaessa myös puhelinta. Hallinta: Sovitaan säännöt viestimiseen. Merkitään kaikki projektiin liittyvät viestit otsikon eteen sijoitettavalla sovitulla etumerkillä. Tärkeisiin viesteihin pyydetään vastaus saapumisesta. Jos jostain ryhmän jäsenestä ei kuulu mitään yli viikkoon, yritetään ottaa häneen yhteyttä käytettävissä olevin keinoin. 5.6 Ryhmän jäsen keskeyttää Minimointi: Jaetaan tehtävät tasapuolisesti ryhmän jäsenten kesken. Ei vaadita keneltäkään sellaisia suorituksia, joista ryhmän jäsenellä ei ole tietoa tai taitoa. Jos keskeyttäminen johtuu projektin ulkopuolisista syistä, tämä ei liene ehkäistävissä. Seuranta: Seurataan jäsenten työtilannetta ryhmätapaamisissa ja seurantakokouksissa ja puututaan epäkohtiin riittävän ajoissa. Hallinta: Jos jäsen keskeyttää, jaetaan hänen tehtävänsä ryhmän muiden jäsenten kesken ja tarvittaessa pyritään vähentämään työmäärää jättämällä pois vähemmän priorisoituja ominaisuuksia. 8
5.7 Laitteisto-ongelmat Minimointi: Ei voida vaikuttaa tähän. Käytetään vain toimiviksi havaittuja koneita. Seuranta: Jos huomataan, että järjestelmissä on ongelmia, ilmoitetaan asiasta välittömästi koko projektiryhmälle ja ohjaajalle. Hallinta: Otetaan yhteyttä TKTL:n ylläpitoon välittömästi vian havaitsemisen jälkeen ja pyydetään heitä korjaamaan ongelman aiheuttaja. Jos tämä ei onnistu, ilmoitetaan projektin ohjaajalle. 5.8 Ohjelmisto-ongelmat Minimointi: Ei voida ehkäistä ennakkoon. Seuranta: Ilmoitetaan ongelmista projektiryhmälle. Hallinta: Otetaan yhteyttä TKTL:n ylläpitoon ja pyydetään heitä korjaamaan ongelman aiheuttaja. 5.9 Yhteensopivuusongelmat 5.9.1 projektia tehtäessä Minimointi: Käytetään universaalia kieltä (Javaa) ja standardien mukaista ohjelmointitapaa. Seuranta: Testataan ohjelmistoa useissa eri ympäristöissä ja ohjelmissa. Hallinta: Muutetaan ohjelmiston koodia ja käytettäviä rajapintoja niin, että tuotettava ohjelmisto toimii vaadittavien ohjelmistojen kanssa. 9
5.9.2 asiakkaan laitteisto Minimointi: Tehtään käyttöliittymä niin, että sen komponentit ovat yhteensopivia sovittujen järjestelmien ja ohjelmistojen kanssa. Seuranta: Testataan käyttöliittymää asiakkaan laitteistossa tai ainakin vastaavassa laitteistossa. Hallinta: Jos ero on häiritsevä, muutetaan käyttöliittymään niin, että se toimii halutulla tavalla asiakkaan laitteistossa. 5.10 Muut uhat Minimointi: Säilytetään tiedostoja sekä palvelimella että omassa hakemistossa. Näin kaikki tiedot eivät välttämättä tuhoudu jos esim. terroristien kaappaama lentokone tuhoaa palvelimen. Seuranta: Seurataan säätiedotuksia ja uutisia. Havaittaessa uhkaava tilalle, otetaan tiedostoista varmuuskopiot. 6 Projektissa käytettävät menetelmät 6.1 Ympäristö Järjestelmän ympäristönä toimii asiakas-palvelin ympäristö. Palvelimena toimii WWW-palvelinohjelmisto ja asiakasohjelmistona käyttäjän selain. Asiakkaan käyttämä selain on Internet Explorer, joten käyttöliittymä suunnitellaan sen pohjalta. Työ toteutetaan Digital UNIX-ympäristössä Oracle 8 tietokantaa käyttäen. Työssä käytetään Java-servlet tekniikkaa ja FreeMarker kirjastoa. 10
6.2 Kieli Dokumentointi- ja kommentoinikielenä käytetään suomenkieltä. Käyttöliittymää tehtäessä käytetään samaa kieltä, jota edelliset ryhmät ovat käyttäneet. 6.3 Projektin seuranta Projektin etenemistä seurataan kahden viikon välein pidettävillä seurantakokouksilla. Projektin etenemistä seurataan myös projektin jäsenten työtuntilistojen avulla. Odotettava työtuntimäärä on noin 20h/viikko projektin alusta lähtien. 6.4 Käytettävät työkalut Dokumentointiin käytetään LaTeX-järjestelmää. Työtuntien seuraamiseen käytetään html-pohjaista työtuntilistaa, joka on näkyvillä ryhmän kotisivuilla. Ohjelmointikielenä käytetään Javaa. 7 Omistus- ja käyttöoikeus Ohjelmistotuotantoprojektissa tehtiin sopimus projektiryhmän tuotosten immateriaalioikeuksista. Sopimuksen osapuolina toimivat Helsingin yliopisto ja Haukkaprojektiryhmä. Sopimuksen tarkoituksena on luovuttaa ohjelmistotuotantoprojektiryhmän tuotosten immateriaalioikeudet Helsingin yliopistolle, joka puolestaan lupaa antaa tuotoksiin avoimen ohjelmistokehityksen periaatteiden mukaiset vapaat käyttöoikeudet. 11
Oikeuksien luovuttaja luovuttaa kaikki ohjelmistotuotantoprojektiryhmän tuotoksiin kohdistuvat immateriaalioikeutensa mukaan lukien tekijänoikeuden, patentti-, hyödyllisyysmalli- ja mallioikeutensa Helsingin yliopistolle. Oikeudet luovutetaan vain siinä laajuudessa ja niillä rajoituksilla kuin lainsäädäntö sallii ja edellyttää. Ohjelmistoprojektirymällä on oikeus tulla mainituiksi ohjelmistoprojektiryhmän tuotosten alkuperäisinä tekijöinä ja käyttää Oikeuksien luovuttaja luovuttaa kaikki ohjelmistotuotantoprojektiryhmän tuotoksiin kohdistuvat immateriaalioikeutensa mukaan lukien tekijänoikeuden, patentti-, hyödyllisyysmalli- ja mallioikeutensa Helsingin yliopistolle. Oikeudet luovutetaan vain siinä laajuudessa ja niillä rajoituksilla kuin lainsäädäntö sallii ja edellyttää. Ohjelmistoprojektirymällä on oikeus tulla mainituiksi ohjelmistoprojektiryhmän tuotosten alkuperäisinä tekijöinä ja käyttää tuotoksia omina opinnäytteinään. Oikeuksien käytöstä ei makseta korvausta. Helsingin yliopisto ei peri käyttöoikeudesta korvausta. 12