TIETOKANTA MERIKOTKIEN SEURANTAAN
Projektisuunnitelma

Versiohistoria:
Versio	Päivämäärä	Kuvaus	Tekijä	
0.1	27.1.2003	Ensimmäinen luonnos	J. Kleemola	
0.2	30.1.2004	Toinen luonnos	J. Kleemola	
0.3	2.2.2004	Kolmas luonnos	J. Kleemola	
1.0	4.2.2004	Valmis	J. Kleemola	

HELSINGIN YLIOPISTO
Tietojenkäsittelytieteen laitos
Ohjelmistotuotantoprojekti Hali2

Sisällys

1. Johdanto	1
2. Työn aihepiiri	1
3. Työn kuvaus	1
4. Projektin määrittely	1
4.1. Tavoite	2
4.2. Asiakkaiden tavoitteet	2
4.3. Projektin käyttämät menetelmät	2
4.3.1. Ympäristö	2
4.3.2. Kieli	2
4.3.3. Työkalut	2
4.3.4. Ohjelmointistandardit ja tyylit	3
4.4. Aikaisemmat projektit	3
4.5. Rajaukset	3
5. Projektin osalliset	3
5.1. Projektiryhmä	3
5.2. Projektin ohjaaja ja vastuuhenkilö	4
5.3. Asiakkaat	4
6. Projektin tehtävät ja vaiheet	4
6.1. Projektityöskentely	4
6.2. Työvälineet ja tilat	5
6.3. Työajan seuranta	5
6.4. Projektiryhmän vastuualueet	5
6.5. Asiakkaiden vastuualueet	5
6.6. Projektin vaiheet eli prosessimalli	6
6.7. Tarkastukset ja katselmukset	6
7. Aikataulu	6
8. Riskit	7
9. Oikeudet	8

1. Johdanto
	Tässä projektisuunnitelmassa on projektin hallinnan ja onnistumisen kannalta tärkeitä tietoja. Dokumentti kuvaa, millaiseen projektiin asiakkaan kanssa on ryhdytty. Se on tarkoitettu myös projektiryhmän jäsenille projektin etenemisen seuraamista varten. Suunnitelma pidetään ajan tasalla ja sitä päivitetään tarvittaessa.

	Tämä projekti lähtee liikkeelle siitä, mihin keväällä 2003 toiminut Hali – projektiryhmä päätti työnsä. Niinpä etenkin suunnittelu- ja vaatimusdokumentti sekä tietokantarakenne ja servlettien pohjarakenne ovat suurelta osin kyseisen ryhmän käsialaa.

2. Työn aihepiiri
	WWF:n merikotkatyöryhmän johtama suojelutyö merikotkan pelastamiseksi Suomessa sukupuuton partaalta elinvoimaisiksi populaatioiksi saaristossa ja Pohjois-Suomessa on eräs luonnonsuojelun menestystarinoita. Merikotkakannan romahduksen jälkeen pesimätietoja alettiin kerätä 1960-luvulla yksittäisten tutkijoiden toimesta. WWF:n merikotkatyöryhmän perustamisen jälkeen 1972 pesimätietojen kerääminen muuttui systemaattiseksi. 

Kolmenkymmenen vuoden aikana tunnetut merikotkan pesät on tarkastettu vuosittain ja seuranta jatkuu edelleen. Tarkastuksen yhteydessä kerätään tietoja mm. pesimistuloksesta, pesinnän epäonnistumisen syistä, poikasista, pesäpuusta ja –paikasta sekä kerätään kuoriutumattomia munia ja muita näytteitä myrkkyanalyysejä varten.

3. Työn kuvaus
	Tämän projektin tarkoituksena on toteuttaa merikotkien pesätarkastusten yhteydessä kerättyjen tietojen tallettamiseen ja käyttöön soveltuva tietokanta sekä käyttöliittymä tähän tietokantaan. Käyttöliittymä tarjoaa rajapinnan tietokannan tauluihin, tarkistaa syötetyt tiedot ja tallettaa ne tietokantaan. Käyttöliittymän kautta tuotetaan säännönmukaisia raportteja tutkijoiden ja viranomaisten käyttöön.

Kuten Johdanto - kappaleessa todettiin, tämän projektin työ perustuu suurelta osin keväällä 2003 toimineen Hali – projektin aikaansaannoksiin. Muun muassa tietokantarakenne ja servlettien toteutustapa on jo suunniteltu valmiiksi. Hali2 – projekti keskittyy lähinnä asiakkaan määrittelemien järjestelmästä puuttuvien toimintojen luomiseen ja järjestelmän toiminnallisuuteen.

4. Projektin määrittely
	Ohjelmistotuotantoprojekti on Helsingin yliopiston tietojenkäsittely-tieteen laitoksen projekti, joka on osa LuK- tai FM-tutkintoa. Sen tarkoitus on harjaannuttaa opiskelijoita ohjelmistotuotannon tekniikoihin, ryhmätyöskentelyyn, tavoitteelliseen projektityöhön ja dokumentointiin.

4.1. Tavoite
	Tavoitteena on saattaa loppuun Hali –projektin keväällä 2003 aloittama työ. Tietokanta on ilmeisesti lähes kunnossa, samoin 3.5 servlettiä 14:a suunnitellusta servletistä. Raportit ovat kokonaan toteuttamatta, samoin syötetietojen tarkistukset sekä integrointi ja järjestelmätestaus. Hali’n suunnitelmassa olevat toiminnallisuudet ovat edelleen tarpeellisia ja ne on tarkoitus toteuttaa tässä projektissa. Korkein prioriteetti on pesänäytöillä ja pesän tarkastusraporteilla.

4.2. Asiakkaiden tavoitteet 
	Keskeisimpänä tavoitteena on saada aikaan merikotkien pesä-tarkastusten yhteydessä säännönmukaisesti kerätyn aineiston turvallinen talletusjärjestelmä, josta voidaan tuottaa raportteja merikotkan suojelun ja tutkimuksen käyttöön. Talletusjärjestelmä toteutetaan Oraclen tietokantana ja selaimella toimivana käyttö-liittymänä. Käyttöliittymän avulla ylläpidetään tietokantaan talletettuja tietoja ja käynnistetään raportteja. Käyttöliittymän kautta tuotettavien säännönmukaisten raporttien lisäksi järjestelmään tullaan kohdistamaan moninaisia tietokantakyselyitä.

Projektiryhmän odotetaan toteuttavan edellä esitettyyn tarpeeseen tietokannan ja käyttöliittymän sisältävä järjestelmä. Edelleen ryhmän odotetaan toteuttavan keskeisiä raportteja erikseen sovitun mukaisesti. Asiakas toimittaa tiedot tarvittavista raporteista. Tietokanta ja siihen liittyvät ohjelmistot dokumentoidaan sekä laaditaan järjestelmän käyttöohje projektiryhmän toimesta.

Käyttöliittymän rakenteessa ja ohjelmoinnissa on varauduttu myös
muiden kuin suomen kielen tukemiseen.

4.3. Projektin käyttämät menetelmät 

4.3.1. Ympäristö
	Työ toteutetaan Helsingin yliopiston Unix –ympäristössä Oracle 9 tietokantaa käyttäen. Käyttöliittymä toteutetaan Java Servlet –tekniikalla ja tietokantayhteyksiin käytetään JDBC:tä  (Java DataBase Connection). Asiakasohjelmistona on käyttäjän selain.

4.3.2. Kieli
	Dokumentointi- ja kommentointikielenä käytetään suomea, muuttujien ja funktioiden nimissä englantia.

4.3.3. Työkalut
	Ohjelmointikieli on Java. Sovelluskehitys ei ole sidoksissa mihinkään tiettyyn ohjelmointiympäristöön, kunhan tuotettava lähdekoodi on Java 1.3.1 yhteensopivaa. 

Versionhallintaan (lähdekoodit ja dokumentit) käytetään tarvittaessa TKTL:n CVS-versionhallintajärjestelmää (Concurrent Version System), joka löytyy laitoksen Linux-koneista. 

Dokumentit kirjoitetaan MS Wordillä ja niistä tehdään myös pdf-versiot ryhmän kotisivulle.

4.3.4. Ohjelmointistandardit ja tyylit
	Ohjelmoinnissa käytetään hyvää ohjelmointityyliä. Sunin Java-tyylioppaan (http://java.sun.com/docs/codeconv/) määrityksiä noudatetaan soveltuvin osin.

Ohjelmistoarkkitehtuurin ja tietokannan rakenteiden mallinnuksessa noudatetaan UML (Unified Modeling Language) –standardia.

Dokumentoinnissa noudatetaan yhtenäistä ulkoasua.

4.4. Aikaisemmat projektit
Käytettävän tietokannan ja toteutettavien servlettien suunnittelu ja osittainen toteutus on tehty  keväällä 2003 läpiviedyssä Hali –projektissa (Tietojenkäsittelytieteen laitoksen Ohjelmistotuotantoprojekti). 

4.5. Rajaukset
	Hali –projekti arvioi saavansa toteutettua lähes puolet suunnitelluista servleteistä, mutta toteutettu lukumäärä jäi alle arvioidun. Toteutetut servletit olivat kuitenkin ilmeisesti suunnitelluista työläimpiä, joten suunnittelutyön jäädessä tässä projektissa vähemmälle työ todennäköisesti ehditään viemään loppuun. 

Projektin rajaamisessa täytyy muistaa aikataulun rajoitukset ohjelmiston koolle. Asiakkaan tulee huomioida, että kaikkia ohjelmistoon liittyviä piirteitä ja toimintoja ei välttämättä ole mahdollista toteuttaa määritellyn ajan puitteissa.  
	
5. Projektin osalliset
	Projektiin osallistuvat projektiryhmä, ohjaaja ja vastuuhenkilö sekä asiakkaat. Projekti on nimeltään Hali2, joka on johdettu merikotkan latinankielisestä nimestä. 

5.1. Projektiryhmä

Honkanen Harri	harri.honkanen@helsinki.fi	
Jääskeläinen Henri	henri.jaaskelainen@helsinki.fi	
Jouko Kleemola (projektipäällikkö)	jouko.kleemola@helsinki.fi 	
Maaranen Timo Allan	timo.maaranen@helsinki.fi	
Mattila Markus Pauli	markus.mattila@helsinki.fi	
Turner Sipi	sipi.turner@helsinki.fi	

	Ryhmä toimii tiiminä, jolla on yhteiset tulostavoitteet. Vaikka projektiin onkin valittu projektipäällikkö, ongelmanratkaisu ja päätöksenteko tapahtuu yhdessä.
	
5.2. Projektin ohjaaja ja vastuuhenkilö
	Projektin ohjaajana toimii  
Jarno Lehtimäki	jarno.lehtimaki@helsinki.fi	
Puh.	040-8417447	
		
ja vastuuhenkilönä

Juha Taina	juha.taina@helsinki.fi	
Puh.	09-19144157	

	tietojenkäsittelytieteen laitokselta.

5.3. Asiakkaat
	Asiakkaina projektissa toimivat:

Torsten Stjernberg 		torsten.stjernberg@helsinki.fi	
Puh.	09-191 28857	
Luonnontieteellinen keskusmuseo, WWF:n merikotkatyöryhmä		

Heikki Lokki 		heikki.lokki@cs.helsinki.fi	
Puh.	09-191 44245, 050-5525422	
Tietojenkäsittelytieteen laitos		

Jan Lindström	jan.lindstrom@cs.helsinki.fi	
Puh.	050-3779881	
Tietojenkäsittelytieteen laitos		

6. Projektin tehtävät ja vaiheet

6.1. Projektityöskentely
	Projektiryhmä kokoontuu tietojenkäsittelytieteen laitoksella 

•	Maanantaisin klo 14-16 huone C476, poikkeuksena 1.3. B451 ja 5.4.  B450

•	Keskiviikkoisin klo 16-18
huone C455

Jokaisesta ryhmän seurantakokoontumisesta tehdään pöytäkirja, ja muista tapaamisista muistio, jonka sihteeri vie ryhmän kotisivulle. Kotisivujen osoite on http://www.cs.helsinki.fi/group/hali2/. Pöytäkirjojen lisäksi kotisivulla on linkit mm. projektin dokumentteihin ja muuhun  materiaaliin. 

Kokousten lisäksi voidaan pitää epävirallisia ideointi- ja ongelmanratkaisupalavereja, joissa on tarpeellinen määrä projektiryhmän jäseniä sekä mahdollisesti muita edustajia. 

Kokousten ulkopuolella projektiryhmä pitää yhteyttä lähinnä sähköpostitse, kiireellisissä tapauksissa puhelimitse. Ryhmän jäsenten sähköpostiosoitteet ovat ryhmän kotisivuilla ja puhelinnumerot on lähetetty sähköpostilla ryhmälle.

Mahdollisista poissaoloista ja muista projektiin vaikuttavista seikoista on ilmoitettava projektiryhmälle mahdollisimman aikaisessa vaiheessa.   

6.2. Työvälineet ja tilat
	TKTL:n huoneessa D328 on säilytyslokero numero 18 projektiryhmän käytettävissä. Lokerossa säilytetään projektikansiota, kopiokorttia ja muuta projektiin liittyvää materiaalia. Jokaisella ryhmän jäsenellä on avain kaappiin.  Lokerossa on myös avain säilytyslokeroon numero 15, jossa on Hali –projektin kansio.

6.3. Työajan seuranta
	Jokainen projektiryhmän jäsen pitää kirjaa työtunneistaan. Tunnit päivitetään projektin kotihakemiston tunnit –alihakemistoon viimeistään kunkin kahden viikon raportointijakson eräpäivän puoleen päivään mennessä. Eräpäivät: 2.2., 23.2., 8.3., 22.3., 5.4., 26.4. ja 10.5.

	Projektipäällikkö raportoi työajat kurssin vastuuhenkilölle kahden viikon välein. 

6.4. Projektiryhmän vastuualueet
	Dokumenttivastaavat ovat:

Dokumentti	Vastuuhenkilöt	
Projektisuunnitelma	Jouko Kleemola	
Vaatimusanalyysi	Harri Honkanen	
Suunnitteludokumentti	Henri Jääskeläinen	
Toteutusdokumentti	Timo Maaranen	
Testausdokumentti	Markus Mattila	
Käyttöohje	Sipi Turner	
Loppuraportti	Jouko Kleemola	

6.5. Asiakkaiden vastuualueet	
	Asiakkaiden vastuulla on määritellä tuotettavalle ohjelmistolle halutut ominaisuudet.

Asiakkaat seuraavat projektia halutessaan osallistumalla ryhmän tapaamisiin ja seurantakokouksiin. Vaatimusanalyysi ja suunnittelu-dokumentti tarkastetaan systemaattisesti määrämuotoisessa katselmuksessa, FTR:ssä (formal technical review), joihin asiakkaiden tulee osallistua, sillä näille dokumenteille vaaditaan asiakkaiden hyväksyntä. 

Projektin päättyessä asiakkaat osallistuvat ohjelmiston lopputarkastukseen.

6.6. Projektin vaiheet eli prosessimalli
	Vesiputousmallin mukaisesti projektissa on seuraavat osatehtävät:

1. Vaatimusanalyysi: Kartoitetaan ohjelmiston vaatimukset: ominaisuudet, sidosryhmät, liittymät ja rajoitteet. Vaatimukset analysoidaan ja tulokset kootaan vaatimus- tai määrittelydokumenttiin.
Vaatimusanalyysille tarvitaan asiakkaan hyväksyntä.

 2. Suunnittelu: Suunnittelun lähtökohtana käytetään määrittelydokumenttia, jonka pohjalta laaditaan yksityiskohtainen ohjelmiston toteutussuunnitelma, eli suunnitteludokumentti. Alustava testaussuunnitelma laaditaan. Suunnitteludokumentille vaaditaan asiakkaan hyväksyntä.

3. Toteutus: Ohjelmisto toteutetaan suoraviivaisesti suunnitteludokumentin mukaan. Toteutuksen ohessa jatketaan  testaussuunnitelman laadintaa sekä aloitetaan testausdokumentin kirjoittaminen. Toteutusvaiheen aikana tehdään myös toteutusdokumentti, joka sisältää kuvaukset mahdollisista poikkeamista tehtyihin määrityksiin ja suunnitelmiin, ja ohjelmiston käyttöohje.

4. Testaus: Ohjelmistoa testataan mahdollisimman kattavasti testaussuunnitelman mukaisesti. Testausdokumenttia täydennetään ja dokumentti valmistuu vaiheen lopuksi.

5. Projektin päättäminen: Lopuksi kirjoitetaan loppuraportti, jossa on yhteenveto projektista, työtunneista ja muista projektiin liittyvistä asioista. 

Tämä vaihejako on perusteltavissa ensinnäkin sillä että asiakkaiden voi olettaa kykenevän määrittelemään tuotettavan ohjelmiston vaatimukset kokonaisuudessaan jo heti projektin alkuvaiheessa.

6.7. Tarkastukset ja katselmukset
	Jokainen dokumentti katselmoidaan tai tarkastetaan ryhmän kesken. Dokumentti pitää kaksi päivää ennen katselmointia toimittaa ryhmän jäsenille, jotta kaikki ehtivät tutustua dokumenttiin.

7. Aikataulu
	Hali’n toteuttamat servletit ovat ilmeisesti työläimpiä suunnitelluista, joten loppujen tekeminen ei ehkä vaadi juurikaan enempää työtä kuin valmiina olevat ovat vaatineet. Niiden toteuttamisessa suunnittelun osuus tarvittavasta työajasta on vähäinen verrattuna tilanteeseen, jossa aloitetaan tyhjältä pöydältä. Sen sijaan tarkistus- ja raporttitoiminnallisuuden toteuttaminen vaatii myös normaalisti suunnittelua. Integrointi- ja järjestelmätestaus on myös työlästä.

Alla projektin aikataulusuunnitelma. Projekti alkoi 21.1.2004.

Viikot	Vaihe	Dokumentin deadline	
	Projektisuunnitelma	2.2.	
	Vaatimusanalyysi	11.2.	
	Suunnittelu	25.2.	
	Toteutus, käyttöohje	29.3.	
	Testaus ja toteutuksen viimeistely	26.4.	
	Loppuraportti	9.5.	

		
	Projektin arvioitu päättymispäivä on siis 9.5.2004. Projekti on valmis, kun tuote on valmis ja testattu sekä tuotettavat dokumentit hyväksytty päätöskatselmuksessa kaikkien sidosryhmien kesken. Työn ehdoton viimeinen päättymispäivä on 31.5.2004.

8. Riskit
	Alla on kartoitettu projektia mahdollisesti uhkaavia riskejä, arvioitu niiden todennäköisyyttä ja vaikutuksen suuruutta, sekä luotu toimintasuunnitelma riski(e)n toteutumisen varalle. 	

Asteikko: 
Vaikutus: 1: pieni, 2: kohtalainen, 3: melko suuri, 4: kriittinen

Riski	Tod.
näk.	Vaik	Toiminta	
Jäsenen sairastuminen.	95 %	1-2	Ainakin kriittisten työtehtävien jakaminen muille ryhmän jäsenille. 	
Jäsen keskeyttää	1 %	3	Keskeyttäneen työt jaetaan muille, toteutettavien ominaisuuksien karsinta.	
Ryhmän osaaminen ei ole tarpeeksi laaja-alaista.	50 %	3	Projektin tehtävät pyritään jakamaan osaamisalueiden mukaan.	
Uusien työkalujen hidastava vaikutus	80 %	3	Uusiin tekniikoihin tutustuminen aloitettava mahdollisimman aikaisessa vaiheessa.	
Epäselvät vaatimukset	30%	3	Keskustelu asiakkaan kanssa, pyydetään asiakkaalta tarkka ja selkeä lista vaatimuksista.	
Asiakkaan vaatimusten muuttuminen	25 %	2	Neuvottelu asiakkaan kanssa muuttuneiden vaatimusten toteutuskelpoisuudesta.	
Työmäärä ylittyy arvioidusta	50 %	2	Neuvotellaan vaatimusten uudelleenrajaamisesta asiakkaan kanssa.	
Aikataulun pettäminen	50 %	3	Selvitetään syy aikataulussa lipsumiselle. Kohdistetaan ryhmän resursseja uudelleen tai tarkistetaan aikataulua.	
Ohjelmisto- / laitteisto-ongelmat	15 %	1-2	Oracle tunnetusti saattaa temppuilla… Ilmoitus ylläpidolle.	
Virheellinen / huonosti ylläpidettävä ohjelmakoodi	20 %	3	Koodin vertaaminen suunnitteludokumenttiin, tunnollinen dokumentointi, koodin huolellinen laadinta. 	

9. Oikeudet
	Projektin jäsenet ovat sopineet, että projektiryhmän tuotosten immateriaalioikeudet luovutetaan Helsingin yliopistolle. Oikeuksista ei makseta korvauksia. 

Helsingin yliopisto antaa avoimen ohjelmistokehityksen periaatteiden mukaisen vapaan käyttöoikeuden GNU General Public Licensen tai valintansa mukaan GNU Lesser General Public Licensen muodossa.

Projektin jäsenet ovat sitoutuneet pitämään kaiken asiakkaalta saadun luottamuksellisen tiedon salassa.

Projektiryhmän jäsenillä on oikeus tulla mainituiksi projektiryhmän alkuperäisten tuotosten tekijöinä ja käyttää tuotoksia opinnäytteinään, poissulkien data ja sen osat, joita projektiryhmä tai sen jäsenet eivät 
saa ilmaista kolmansille osapuolille missään muodossa.