NJC1
Projektisuunnitelma

Versio 1.15

Sasu Liuhanen
Helsinki 14.04.2004

HELSINGIN YLIOPISTO
Tietojenkäsittelytieteen laitos

Versiohistoria

Päivämäärä	Versio	Muutokset	
29.01.2004	1.00		
01.02.2004	1.10	Lisätty: versiohistoria
Päivitetty: yleiskuvaus, aikataulu	
01.02.2004	1.11	Päivitetty: kokoarvio (Pia)	
09.02.2004	1.12	Päivitetty: kokoarvio, aikataulu	
10.02.2004	1.13	Päivitetty: kokoarvio	
11.03.2004	1.14	Päivitetty: aikataulu 
(suunnitteluvaiheeseen viikko lisää, nyt ad. 19.03.2004) 	
14.04.2004	1.15	Päivitetty: aikataulu
(toteutusvaihe ad. 23.04.2004, testaus ad. 06.05.2004)	

Sisällysluettelo
1 Johdanto
2 Organisaatio
2.1 Henkilöt ja yhteystiedot
2.2 Vastuuhenkilöt
3 Yleiskuvaus
4 Kokoarvio
4.1 Toimintopistemenetelmä (FP, Function Points)
4.2 LOC
5 Aikataulu
5.1 Vaiheet
5.2 Aikajaksot ja määräajat
5.3 Tuntijakauma
6 Työskentelytavat
7 Riskianalyysi
7.1 Riskitekijänä: projektiryhmä
7.2 Riskitekijänä: asiakas
7.3 Riskitekijänä: projektin hallinta
7.4 Riskitekijänä: tekninen toteutus
8 Muuta
8.1 Sihteerivuorot
8.2 Tuotettavat dokumentit

1 Johdanto
Projektin tarkoituksena on suunnitella ja toteuttaa Nordic Journal of Computing -julkaisuyhdistykselle lehden julkaisutoimintaa helpottava ohjelmisto. Ohjelmisto hallinnoi julkaistavaksi tarjotun aineiston toimituksellista käsittelyä sekä edesauttaa automatisoidummin myös toimituksen kanssa vuorovaikutuksessa olevien sidosryhmien toimintaa.

Järjestelmässä pidetään kirjaa lehteen julkaistaviksi tarjotuista artikkeleista, niiden käsittelyn etenemisestä, artikkelien kirjoittajista ja artikkeleita kommentoivista asiantuntijoista. Järjestelmä mahdollistaa kunkin artikkelin eri osapuolille artikkelin tilan reaaliaikaisen seurannan, sekä lähettää tarvittaessa sähköpostitse erilaisia muistutuksia ja tiedotuksia. Lisäksi järjestelmä auttaa lehden toimitusta valitsemaan sopivat asiantuntijat arvioimaan jokaista julkaistavaksi tarjottua artikkelia.

2 Organisaatio
2.1 Henkilöt ja yhteystiedot
Nimi	Sähköposti	Puhelin	
Jyri Huttunen	jyri.huttunen@helsinki.fi	040-5071918	
Pia Laine	pia.laine@iki.fi	050-5621872	
Sasu Liuhanen	sasu.liuhanen@helsinki.fi	040-5166467	
Raine Moilanen	raine.moilanen@helsinki.fi	040-5394929	
Kare Piekkola	piekkola@cs.helsinki.fi	050-3702752	
Tatu Säily	tssaily@cs.helsinki.fi	050-3650572	

Ohjaaja:			
Mikko Olin	mikko.olin@cs.helsinki.fi	040-8667417	

Asiakas:			
Jukka Eskola	jueskola@cs.helsinki.fi	09-19144194	

2.2 Vastuuhenkilöt
Projektipäällikkö	Sasu Liuhanen
Vaatimusanalyysi	Tatu Säily
Suunnittelu		Jyri Huttunen
Toteutus		Raine Moilanen
Testaus		Kare Piekkola
Käyttöönotto, 	Pia Laine
dokumentointi ja
www-sivut

3 Yleiskuvaus
Ohjelmiston käyttötarkoitus on kuvattu johdannossa. Käyttäjäryhmiä tulevat olemaan artikkelien kirjoittajat, lehden toimitus ja ulkopuoliset asiantuntijat, jotka arvioivat julkaistavaksi tarjottuja artikkeleita. Yksittäiset käyttötapaukset ja ohjelmistolle asetetut vaatimukset kuvataan yksityiskohtaisesti määrittelydokumentissa.

Periaatteessa kuka tahansa voi tarjota artikkelia julkaistavaksi. Jotta järjestelmän käyttö olisi mahdollista ilman erillistä ohjelman asennusta, toteutetaan ohjelmiston käyttöliittymä www-pohjaisena. Tarkempi jako pääkomponentteihin ja osajärjestelmiin sekä ohjelmiston arkkitehtuuri kuvataan suunnitteludokumentissa.

Ohjelmistolla ei ole rajapintoja muihin käytössä oleviin järjestelmiin. Tarvittavat nykyisen järjestelmän tiedot siirretään toteutettavaan ohjelmistoon käyttöönoton yhteydessä.

Ohjelmiston tuotantoympäristönä tulee toimimaan tietojenkäsittelytieteen Linux-ympäristö. Tarkemmat laitteistolle ja muulle ympäristölle asetettavat vaatimukset kirjataan suunnitteludokumenttiin.

4 Kokoarvio
4.1 Toimintopistemenetelmä (FP, Function Points) 
Syötteiden lukumäärä – User Inputs (10)
•	kirjautuminen 
•	paperin tarjoaminen julkaistavaksi
•	korjatun paperin tarjoaminen
•	omien tietojen muokkaaminen
•	käyttäjän lisääminen tietokantaan
•	sopivien arvioijien valitseminen
•	lisäarvioijien valitseminen, jos joku ei suostu / jättää kesken
•	julkaisu- / korjaus- / hylkäyspäätöksen tekeminen
•	sivunumeroiden ja lehden numeron lisäys julkaistavaksi hyväksytyn artikkelin tietoihin
•	arvioijaksi suostuminen / kieltäytyminen
•	kommenttien lähettäminen

Tulosteiden lukumäärä - User Outputs (9)
•	virhe kirjautumisessa
•	virhe lomakkeen täyttämisessä
•	paperisi on vastaanotettu arvioitavaksi
•	tarjoamasi paperi hyväksytään / vaatii muutoksia / hylätään
•	uutta paperia tarjottu arvioitavaksi
•	arvioijien kommentit valmiina
•	pyyntö arvioijaksi
•	muistutus: otatko tehtävän vastaan?
•	muistutus: olet myöhässä

Kyselyiden lukumäärä - User Inquiries (5)
•	paperin tila (yksittäinen)
•	kaikkien paperien tila (haku valinnaisilla kriteereillä)
•	käyttäjien tiedot (haku valinnaisilla kriteereillä)
•	sopivien referoijien etsintä valinnaisilla kriteereillä
•	tilastoja (ajat, määrät)

Tiedostojen lukumäärä - Files (1)
•	tietokanta

Ulkoisten liittymien lukumäärä - External Interfaces (1)
•	sähköpostien lähetys (SMTP)

Käyttämällä yllämainittujen tekijöiden painotuskertoimena keskimääräistä (average):

Count-total = 122

Sovituskertoimet Fi  (0 = ei ollenkaan, 3 = keskimääräisesti, 5 = oleellisesti)
Varmuuskopiointi ja palautus	5	
Tietoliikenne	2	
Hajautettu laskenta	0	
Suorituskykyvaatimukset	1	
Käyttöympäristö (aiempi kuormitus)	1	
Reaaliaikainen tietojen syöttö	5	
Tietojen syötön kompleksisuus	3	
Tiedostojen reaaliaikainen päivitys	5	
Syötteiden, tulosteiden yms. monimutkaisuus	3	
Prosessoinnin kompleksisuus	3	
Uudelleenkäytettävyys	1	
Asennus ja käyttöönotto 	4	
Monta eri kohdeorganisaatiota	0	
Päivitettävyys ja helppokäyttöisyys	4	
Yhteensä	37	

Ylläolevista laskettuna:

FP = Count-total x [0.65 + 0.01 x (Fi)]
      = 122 x [0.65 + 0.01 x 37]

	      = 124

4.2 LOC
LOC-arvio perustuu FP-menetelmällä tehtyyn arvioon. Seuraavassa oletetaan toteutuskieleksi PHP + HTML + SQL –yhdistelmä. Näistä PHP:n osuus on selvästi suurin. PHP tarjoaa laajan joukon valmiita funktioita, joiden ansiosta sen ilmaisuvoima riviä kohden on huomattavasti suurempi kuin esimerkiksi puhtaan C++:n (LOC / FP = 64). Arvioimalla käytettävän kielen LOC / FP –suhteen olevan sama kuin esimerkiksi Visual Basicilla (LOC / FP = 32), saadaan toteutettavan ohjelmiston LOC-arvioksi:

LOC = 32 x FP

          = 3982

5 Aikataulu
Projektimallina käytetään vesiputousmallia. Ohjelmiston ylläpito rajataan projektin ulkopuolelle - asiakkaalle toimitetaan ohjelmiston ylläpitoon tarvittavat dokumentit yhdessä valmiin ohjelmiston kanssa.
5.1 Vaiheet
Projektisuunnitelma
Projektisuunnitelmassa esitellään projektin tarkoitus ja määritellään projektin organisaatio sekä aikataulu. Suunnitelmaan kuuluu riskiarvio. Projektisuunnitelmaa päivitetään tarpeen mukaan koko projektin ajan. Erityisesti seurataan projektin edistymistä ja päivitetään aikataulua vastaavasti.

Vaatimusmäärittely
Määrittelyvaiheessa kartoitetaan asiakkaan kanssa ohjelmiston vaatimukset, sidosryhmät, päätoiminnot, liittymät ja rajoitukset sekä mahdolliset suorituskykyvaatimukset. Määrittelyvaiheen tuloksena on määrittelydokumentti, jonka pohjalta suunnitteluvaiheessa suunnitellaan asiakkaalle tuotettava ohjelmisto.

Suunnittelu
Suunnitteluvaiheen aikana suunnitellaan ohjelmiston tekninen rakenne: pääkomponentit, arkkitehtuuri, algoritmit, tietorakenteet, tietoliikenne ja käyttöliittymä. Vaiheen tuloksena on suunnitteludokumentti, joka pohjalta toteutetaan määritelty ohjelmisto.

Toteutus
Toteutusvaiheessa toteutetaan määritelty ja suunniteltu ohjelmisto. Vaiheen tuloksena ovat toimiva vaatimukset täyttävä ohjelmisto sekä sen käyttöohje.

Testaus
Suunnitteluvaiheen aikana laaditaan testaussuunnitelma, jonka mukaisesti toteutusvaiheen aikana laadittu ohjelmisto testataan sen valmistuttua. Testauksen tuloksena syntyy testausdokumentti, joka toimii omalta osaltaan ohjelmiston laadun varmistajana.

Käyttöönotto
Projektin viimeisessä vaiheessa tuotettu ohjelmisto siirretään toteutusympäristöstä tulevaan tuotantoympäristöön. Käyttöönoton lopuksi tuotetaan projektin loppuraportti.

5.2 Aikajaksot ja määräajat
Ajoituksen laskennassa on käytetty karkeasti seuraavaa jakoa:
•	Vaatimusanalyysi + suunnittelu 45 %
•	Toteutus 25 %
•	Testaus + käyttöönotto 30 %

Kuva 1  Projektin aikataulu

Raporttien takarajat
13.02.2004 - T1 Määrittelydokumentti 
19.03.2004 - T2 Suunnitteludokumentti 
26.03.2004 - T3 Testaussuunnitelma
23.04.2004 - T4 Toteutus valmis
06.05.2004 - T5 Testausdokumentti 			
10.05.2004 - T6 Loppuraportti
31.05.2004 - Viimeinen takaraja

5.3 Tuntijakauma
Käytettävissä olevat resurssit:
15 viikkoa x 6 henkilöä x 17 tuntia = 1530 henkilötyötuntia

Vaihe	Tunnit	Osuus	Toteutuneet tunnit	
Määrittely	2.5 x 6 x 17 = 255	17 %		
Suunnittelu	4.5 x 6 x 17 = 459	30 %		
Toteutus	3.5 x 6 x 17 = 357	23 %		
Testaus	3.5 x 6 x 17 = 357	23 %		
Käyttöönotto	1 x 6 x 17 = 102	7 %		

6 Työskentelytavat
Ryhmä tapaa säännöllisesti kahdesti viikossa, maanantaisin 11.15 – 13.00 ja torstaisin 08.15 – 10.00. Tapaamiset pidetään huoneessa B452 – ellei toisin sovita. Säännöllisten tapaamisten lisäksi ryhmä sopii muista tarvittavista tapaamisista. Tapaamisista asiakkaan kanssa sovitaan erikseen. Tapaamisten ulkopuolella kommunikaatio hoidetaan pääasiassa sähköpostitse, mutta tarvittaessa myös puhelimitse. 

Ryhmän kotisivut löytyvät osoitteesta http://www.cs.helsinki.fi/group/njc1/. Kotisivuille linkitetään ryhmän tuottamat dokumentit, lähdekoodi sekä varsinainen tuotettu ohjelmisto.

Ryhmän kotihakemistoon /home/group/njc1 luodaan joka viikko uusi viikkohakemisto, johon kopioidaan viikon lopuksi kaikki siihen hetkeen mennessä tuotettu materiaali. Versionhallinta toteutetaan näin viikkopohjaisena. Samalla kaikista tiedostoista on tiedostojärjestelmän varmuuskopioiden lisäksi olemassa korkeintaan viikon vanha versio.

7 Riskianalyysi

7.1 Riskitekijänä: projektiryhmä
Riski	Ehkäisy	Toimenpide
	Tod. näk.	Vaka-vuus	
Jäsen keskeyttää	- hyvä yhteishenki
- motivoitunut ryhmä	- aikataulun uudelleenarviointi
- töiden jakaminen uudelleen	+	+++	
Jäsen sairastuu		- töiden jakaminen uudelleen,
  mikäli sairastuminen pitkittyy	++	++	
Kriittisen jäsenen poissaolo	- kukaan yksittäinen
  jäsen ei vastaa yksin
  liian suuresta koko-
  naisuudesta	- pidetään vähintään kaksi
  ihmistä tietoisena kaikesta,
  jolloin aina on varahenkilö	++	++	
Jäsenen muu poissaolo	- luvataan tehdä vain se 
  mihin pystytään
- pyritään ennakoimaan
  poissaolot	- jaetaan työt mahdollisimman 
  joustavasti	++	+

7.2 Riskitekijänä: asiakas
Riski	Ehkäisy	Toimenpide
	Tod. näk.	Vaka-vuus	
Tuotettu ohjelmisto ei vastaa asiakkaan tarpeita	- riittävä panostus 
  määrittelyyn ja 
  suunnitteluun (asiakas 
  mukana)
- toteutetaan implisiitti-
  set vaatimukset hyvin	- tilanne ehdottomasti
  ehkäistävä ennakolta
- tehdään käytettävissä olevan
  ajan puitteissa muutoksia	+	+++	
Asiakas haluaa muutoksia määrittely-vaiheen jälkeen	- määrittelydokumentin
  läpikäynti asiakkaan 
  kanssa
- dokumenttien jäädytys	- jäädytyksen jälkeen ei tehdä
 ei-triviaaleja muutoksia	+	++	
Asiakkaan vaatimukset ovat ristiriitaisia	- määrittelydokumentin
  tarkka analyysi ennen
  jäädytystä
- ristiriitojen osoittami-
  nen asiakkaalle	- tilanne ehdottomasti 
  ehkäistävä jo määrittely-
  vaiheessa	+	++	

7.3 Riskitekijänä: projektin hallinta
Riski	Ehkäisy	Toimenpide
	Tod. näk.	Vaka-vuus	
Aikataulu pettää	- huolellinen suunnittelu
- realistinen arvio
- jatkuva päivittäminen
- tarkistuspisteet
- asiakkaan vaatimusten 
  priorisointi	- aikataulun uudelleenarviointi
- töiden jakaminen uudelleen
- keskittyminen oleelliseen	++	+++	
Ryhmän jäsen ei saa omaa osuuttaan valmiiksi määräaikaan mennessä	- ajoissa ilmoitus muille
- työn jakaminen muille
  jo ennen määräaikaa	- mikäli kriittinen osa, 
  allokoidaan lisäresursseja
  heti kun ongelma on tiedossa	++	+	
Riittämätön kommunikaatio / päällekkäisen työn tekeminen 	- ryhmän informointi
  mahdollisista ongel-
  mista heti
- selkeä työnjako	- muutetaan käytäntöjä niin,
  ettei ongelma toistu	+	+	

7.4 Riskitekijänä: tekninen toteutus
Riski	Ehkäisy	Toimenpide
	Tod. näk.	Vaka-vuus	
Levyrikko / materiaalin tuhoutuminen	- varmuuskopiot (fs)
- viikkokansiot
- jokainen pitää kopion
  kaikesta tuottamastaan
  materiaalista	- palautus varmuuskopioista	+	+++	
Työvälineiden puutteellinen hallinta	- valitaan työvälineet ja
  toteutustapa, joista on
  riittävästi kokemusta
- allokoidaan aikaa myös
  uusien työvälineiden
  käytön opetteluun	- irrotetaan yksi henkilö muista
  tehtävistä tutustumaan tarvit-
  tavaan kirjallisuuteen / 
  esimerkkeihin
- neuvotaan toinen toisiamme	++	++	
Soveltumattomien tekniikoiden käyttö	- valitaan käytettävät
  tekniikat yhdessä 
  asiakkaan kanssa
- käytetään sellaisia 
  tekniikoita, joista aina-
  kin jollakin on aiempaa
  kokemusta	- ehkäistävä ennakolta / 
  aikaisessa vaiheessa	+	++	

8 Muuta
8.1 Sihteerivuorot
Jokainen projektiryhmän jäsen toimii vuorollaan ryhmän sihteerinä. Sihteeri kirjoittaa kokouspöytäkirjan jokaisesta pidetystä tapaamisesta.

Viikko 5 / 26.1. – 1.2.2004	Tatu Säily	
Viikko 6 / 2.2. – 8.2.2004	Raine Moilanen	
Viikko 7 / 9.2. – 15.2.2004	Pia Laine	
Viikko 8 / 16.2. – 22.2.2004	Jyri Huttunen	
Viikko 9 / 23.2. – 29.2.2004	Kare Piekkola	
Viikko 10 / 1.3. – 7.3.2004	Sasu Liuhanen	
Viikko 11 / 8.3. – 14.3.2004	Tatu Säily	
Viikko 12 / 15.3. – 21.3.2004	Raine Moilanen	
Viikko 13 / 22.3. – 28.3.2004	Pia Laine	
Viikko 14 / 29.3. – 4.4.2004	Jyri Huttunen	
Viikko 15 / 5.4. – 11.4.2004	Kare Piekkola	
Viikko 16 / 12.4. – 18.4.2004	Sasu Liuhanen	
Viikko 17 / 19.4. – 25.4.2004	Tatu Säily	
Viikko 18 / 26.4. – 2.5.2004	Raine Moilanen	
Viikko 19 / 3.5. – 9.5.2004	Pia Laine	
  
8.2 Tuotettavat dokumentit
Kaikki projektiin liittyvät dokumentit tehdään Word / rtf –muotoisina. Projektin aikana tuotetaan projektisuunnitelman lisäksi seuraavat dokumentit:

•	Vaatimusdokumentti
•	Suunnitteludokumentti
•	Testaussuunnitelma
•	Käyttöohje
•	Testausdokumentti
•	Loppuraportti