Hirviö Projektisuunnitelma



Samankaltaiset tiedostot
Hirviö Projektisuunnitelma

T Tietojenkäsittelyopin ohjelmatyö Hirviöryhmä loppukatselmointi. Hirviö. Projektikatselmointi

Hirviö Laadunvarmistussuunnitelma

Hirviö Laadunvarmistussuunnitelma

Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

Hirviö. Jani Heikkinen Anssi Kalliolahti Jukka Larja Kim Nylund Liia Sarjakoski Samuli Sorvakko Timo Toivanen. 15.

Hirviö Testausraportti I2

T Loppukatselmus

T Projektikatselmus

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Ohjelmistokehitysprojekti I - Iteraatiosuunnitelma (I2)

Menetelmäraportti - Konfiguraationhallinta

Projektiryhmä Tete Työajanseurantajärjestelmä. Riskienhallintasuunnitelma

Ohjelmistotekniikka - Luento 2

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1

Ohjelmistojen suunnittelu

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

LOPPURAPORTTI Paperikonekilta Versio 1.0

Hirviö Vertaistestausraportti

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Hirviö. Jani Heikkinen Anssi Kalliolahti Jukka Larja Kim Nylund Liia Sarjakoski Samuli Sorvakko Timo Toivanen. 2. marraskuuta 2004

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

A4.1 Projektityö, 5 ov.

Testaussuunnitelma Labra

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

T Testiraportti - järjestelmätestaus

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Työkalut ohjelmistokehityksen tukena

Convergence of messaging

UCOT-Sovellusprojekti. Testausraportti

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Data Sailors - COTOOL dokumentaatio Riskiloki

SEPA päiväkirja. Dokumentti: SEPA_diary_EM_PV.doc Päiväys: Projekti : AgileElephant Versio: V0.9

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

Hirviö. Jani Heikkinen Anssi Kalliolahti Jukka Larja Kim Nylund Liia Sarjakoski Samuli Sorvakko Timo Toivanen. 30.

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

L models. Testisuunnitelma. Ryhmä Rajoitteiset

Projektisuunnitelma. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Projektin suunnittelu

Hirviö Loppuraportti

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Projektisuunnitelma

Ohjelmistojen mallintaminen, mallintaminen ja UML

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Ylläpitodokumentti Mooan

Siimasta toteutettu keinolihas

Lohtu-projekti. Testaussuunnitelma

EDISTYMISRAPORTTI - PS Virtuaaliyhteisöjen muodostaminen Versio 1.0

Johdantoluento. Ohjelmien ylläpito

Opiskelija osaa määritellä ohjelmiston tiedot ja toiminnot, suunnitella ohjelmiston rakenteen ja laatia ohjelmiston teknisen spesifikaation.

Valtioneuvoston kanslia VAIN VIRKAKÄYTTÖÖN Hallinto- ja palveluosasto/hallintoyksikkö Terja Ketola PTJ2008-työsuunnitelma 1 (5)

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Edustajiston kokous Lahdessa MR Kuva Jorma Tenovuo. Uusi ohjelmistokehittäjä aloittaa marraskuu 2008

T Testiraportti - integraatiotestaus

T Software Project: FASTAXON

PROJEKTIN EDISTYMISRAPORTTI Seurantajakso <jaksonumero, alkupäivä - päättymispäivä>

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

I1 Iteraatiosuunnitelma. CoSCA-simulaattorin jatkokehitysprojekti. TeamDC

Projektityö

T Ohjelmistokehitysprojekti I Projektisuunnitelma (PP)

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Jukka Larja, Kim Nylund. 15. maaliskuuta 2005

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

T Projektisuunnitelma

T Projektikatselmus

T Projektikatselmus

Projektisuunnitelma Viulu

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

T SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B

Tik Ohjelmistoprojektien Hallinta

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Jyväskylän yliopisto, Sovellusprojektien kokoustila AgC Itkonen Jonne (saapui 9.25) Santanen Jukka Pekka (saapui 9.35)

T Edistymisraportti. ExtraTerrestriaLs PP iteraatio

Project group Tete Work-time Attendance Software

GroupDesk Toiminnallinen määrittely

SEPA päiväkirja. Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T Ohjelmistoprojekti I

TIEA4 Projektityö, 5-10 op.,

Projektisuunnitelma. Projektin tavoitteet

Viitearkkitehtuurin suunnitteluprosessi. Ohje. v.0.7

SEPA diary. Dokumentti: SEPA_diary_PK_RI.doc Päiväys: Projekti : AgileElephant Versio: V0.2

Internet-pohjainen ryhmätyöympäristö

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Transkriptio:

Hirviö Projektisuunnitelma Jani Heikkinen Anssi Kalliolahti Jukka Larja Kim Nylund Liia Sarjakoski Samuli Sorvakko Timo Toivanen 8. helmikuuta 2005 Tiivistelmä: Projektisuunnitelma kuvaa lyhyesti projektin, sen toimijat ja tavoitteet. Lisäksi suunnitelmassa listataan työtavat ja työkalut sekä projektin vaiheet. 1

Sisältö 1 Johdanto 4 1.1 Projektin kuvaus.................................. 4 1.2 Lopputuotteen oikeudet.............................. 4 1.3 Järjestelmä ja ympäristö.............................. 4 1.4 Termit ja määritelmät............................... 4 2 Henkilöstö ja toimijat 5 2.1 Projektiryhmä................................... 5 2.1.1 Projektiryhmän tiedot........................... 5 2.1.2 Projektiryhmän jäsenet ja vastuualueet................. 6 2.2 Muut toimijat.................................... 7 3 Projektin tavoitteet ja päättymiskriteerit 8 3.1 Asiakkaan tavoitteet lyhyesti........................... 8 3.2 Projektiryhmän tavoitteet............................. 8 3.3 Henkilökohtaiset oppimistavoitteet........................ 8 3.4 Projektin keskeytyskriteerit............................ 9 3.5 Projektin päättymiskriteerit............................ 9 4 Resursointi 9 4.1 Henkilöstö...................................... 9 4.2 Materiaalit..................................... 10 4.3 Budjetti....................................... 10 5 Työtavat ja työkalut 10 5.1 Käytännöt...................................... 10 5.1.1 Iteratiivinen kehitys............................ 10 5.1.2 Iteraatiosuunnittelu............................ 10 5.1.3 Dokumentointi............................... 11 5.1.4 Raportointi................................. 11 5.1.5 Projektikatselmoinnit........................... 12 5.1.6 Ryhmän kokoukset............................. 12 5.1.7 Vaatimusten hallinta............................ 12 5.1.8 Muutostenhallinta............................. 12 5.1.9 Versionhallinta............................... 13 5.1.10 Koodaustavat................................ 13 5.1.11 Vertaistestaus................................ 13 5.2 SEPA -yhteenveto................................. 13 5.3 Laadunvalvontasuunnitelma............................ 13 5.4 Työkalut....................................... 13 5.5 Käytäntöjen analysointi.............................. 14 5.6 Standardit...................................... 14 2

6 Projektin vaiheet 14 6.1 Aikataulu...................................... 14 6.1.1 Dokumenttien valmistelu......................... 14 6.2 Projektin suunnittelu................................ 15 6.2.1 Tavoitteet.................................. 15 6.2.2 Toimitukset................................. 16 6.2.3 Tehtävät.................................. 16 6.3 Implementaatio I.................................. 16 6.3.1 Tavoitteet.................................. 16 6.4 Toimitukset..................................... 17 6.5 Tehtävät....................................... 17 6.6 Implementaatio II................................. 18 6.6.1 Tavoitteet.................................. 18 6.7 Tehtävät....................................... 18 6.7.1 Toimitukset................................. 18 6.7.2 Tehtävät.................................. 18 6.8 Viimeistely ja toimitus............................... 18 6.8.1 Tavoitteet.................................. 18 6.8.2 Toimitukset................................. 19 6.8.3 Tehtävät.................................. 19 7 Riskienhallinta 19 7.1 Skenaariot...................................... 20 3

0.10 3.10.2004 Sorvakko Ensiversio, lähinnä dokumentin rakenne 0.90 20.10.2004 Sorvakko Kasattu eri ihmisten tekstit 1.00 1.11.2004 Sorvakko PP-vaiheen lopussa luovutettu dokumentti 1.01 5.11.2004 Sorvakko Korjaukset saadun palautteen perusteella 1.10 29.11.2004 Sorvakko I1-iteraation päivitykset 1.20 6.2.2005 Sorvakko I2-iteraation päivitykset 1 Johdanto Tämä dokumentti on Hirviö-ryhmän T-76.115 Tietojenkäsittelyopin ohjelmatyö -kurssin projektisuunnitelma. 1.1 Projektin kuvaus Projektin tarkoituksena on tuottaa jaettu muistikirja ensisijaisesti professorien, toissijaisesti muun henkilökunnan käyttöön. Työkalun kantavana ideana on helpottaa saman pääaineen professorien välistä yhteydenpitoa ja pitää kirjaa opiskelijoille annetuista lupauksista ja esim. opiskelijan diplomityön edistymisestä. Projektin toissijaisena tavoitteena on laajentaa työkalua koskemaan myös kursseja ja jatko-opiskelijoita. Työkalun pitää olla käytettävissä heterogeenisissä ympäristöissä. Järjestelmän luonteen vuoksi tarvitaan pääsynvalvonta sekä muuta tietosuojaa henkilötietosuojan täyttämiseksi. Lisäksi työkalun pitää olla turvallisesti käytettävissä niin TKK:n sisä- kuin ulkopuoleltakin. Projektin asiakkaana on Teknillisen korkeakoulun Tietoliikenneohjelmistojen ja multimedian laboratorio (myöh. TML). Työkalun ovat tilanneet kaksi professoria, Teemupekka Virtanen ja Antti Ylä-Jääski. Asiakkaan puolelta projektille on tarjolla kaksi ohjaajaa, opettavat tutkijat Sanna Liimatainen ja Ursula Holmström. 1.2 Lopputuotteen oikeudet Projektin lopputuote on asiakkaalle tärkeä. Nykyinen tilanne kuluttaa liikaa professorien työaikaa eikä mikään takaa sitä, että opiskelijoille annetut lupaukset todella pidetään siinä muodossa missä ne on tehty. Tästäkin syystä johtuen asiakkaan vaatimuksena on, että projektin tuotosten käyttö- ja jatkokehitysoikeudet jäävät ryhmän lisäksi laboratoriolle. Asiakkaan kanssa on sovittu, että sopimus oikeuksista allekirjoitetaan projektin kuluessa. 1.3 Järjestelmä ja ympäristö Projektissa kehitetään professorien ja muun henkilökunnan käyttöön koordinointia ja viestintää helpottava järjestelmä. Järjestelmän toimintamalli on client-server -perustainen; kaikki informaatio pidetään keskitetysti palvelimella, johon asiakasohjelmilla otetaan yhteyttä. Erilaisten käyttöympäristöjen vuoksi järjestelmän käyttöliittymä on tarkoitus toteuttaa selainpohjaisesti. Järjestelmän ylläpitoa varten voidaan tarpeen vaatiessa toteuttaa esim. Javapohjainen graafinen käyttöliittymä, tarve tälle selvitetään projektin aikana. 1.4 Termit ja määritelmät CVS Concurrent Versioning System IRC Internet Relay Chat PEAR PHP Extension and Add-on Repository, PHP:n laajennuskirjasto PHP PHP: Hypertext Preprocessor, erityisesti WWW-sivujen luontiin tarkoitettu skriptikieli 4

SEPA Software Engineering Practice Assignment, ohjelmistotuotannon harjoitus TML Tietoliikenneohjelmistojen ja multimedian laboratorio UML Uniform Modelling Language, ohjelmiston mallinnuskieli XHTML extensible Hypertext Markup Language, sivunkuvauskieli 2 Henkilöstö ja toimijat Projektin organisaatiokaavio esitetään kuvassa 1. TML Asiakas Prof. Antti Ylä-Jääski Asiakas Prof. Teemupekka Virtanen Ohjaaja DI Ursula Holmström SoberIT Mentor Kennet Westerdahl Ohjaaja TkL Sanna Liimatainen Projektiryhmä Projektipäällikkö Samuli Sorvakko Prosessivastaava Jani Heikkinen Laatuvastaava Anssi Kalliolahti Käyttöliittymävastaava Jukka Larja Asiakasvastaava Kim Nylund Järjestelmäarkkitehti Liia Sarjakoski Tietoturvavastaava Timo Toivanen Kuva 1: Organisaatiokaavio 2.1 Projektiryhmä 2.1.1 Projektiryhmän tiedot Projektiryhmässä on kolmannen-kuudennen vuoden opiskelijoita joista valtaosan pääaine on Tietoliikenneohjelmistojen ja multimedian laboratoriossa. Nimi: Sähköposti: Hirviö hirvio(at)tml.hut.fi 5

2.1.2 Projektiryhmän jäsenet ja vastuualueet Seuraavassa lyhyt esittely jokaisesta projektiryhmän jäsenestä. Nimi: Jani Heikkinen Rooli: Prosessivastaava Puhelin: 040-578 1213 Sähköposti: jahh(at)iki.fi Opinnot ja työkokemus: Viidennen vuoden opiskelija, pääaineena tietoliikenneohjelmistot ja sivuaineena ohjelmistojärjestelmät. Työskentelee neljättä vuotta ylläpitäjänä TML:ssä sekä ollut kurssiassistenttina muutamalla kurssilla. Nimi: Anssi Kalliolahti Rooli: Laatuvastaava Puhelin: 040-737 6200 Sähköposti: anssi.kalliolahti(at)iki.fi Opinnot ja työkokemus: Neljännen vuoden opiskelija, pääaineena ohjelmistojärjestelmät ja sivuaineena tietoliikenneohjelmistot. Työskentelee ohjelmistokehitystehtävissä, joista työkokemusta noin kaksi vuotta. Nimi: Jukka Larja Rooli: Käyttöliittymävastaava Puhelin: 040 767 9919 Sähköposti: jlarja(at)cc.hut.fi Opinnot ja työkokemus: Kuudennen vuoden opiskelija, pääaineena Sisällöntuotanto ja sivuaineena Vuorovaikutteinen digitaalinen media. Työskentelee neljättä vuotta assistenttina TML:ssä. Nimi: Kim Nylund Rooli: Asiakasvastaava, vastuuna on ohjelmiston vaatimusten hallinta ja asiakaskontaktit. Puhelin: 040-569 7028 Sähköposti: kim.nylund(at)hut.fi Opinnot ja Viidennen vuoden opiskelija, pääaineena tietoliikenneohjelmistot. Suorittaa sivuaineena aikuiskasvatustieteen approbaturin työkokemus: Helsingin yliopistolla. Työskentelee assistenttina kolmatta vuotta TML:ssä. Nimi: Liia Sarjakoski Rooli: Järjestelmäarkkitehti Puhelin: 045-671 0451 Sähköposti: liia.sarjakoski(at)hut.fi Opinnot ja työkokemus: Kolmannen vuoden opiskelija, pääaineena tietoliikenneohjelmistot. Työkokemusta kurssiassistenttina toimimisesta sekä WWWsovelluksista. Nimi: Samuli Sorvakko Rooli: Projektipäällikkö, vastuuna on huolehtia tehtävienjaosta ryhmän sisällä sekä viestinnän toimivuudesta. Lisäksi projektipäällikkö on päävastuussa koko projektista. Puhelin: 0440-942762 Sähköposti: ssorvakk(at)niksula.hut.fi Opinnot ja Viidennen vuoden opiskelija, pääaineena tietoliikenneohjelmistot. työkokemus: assistenttina useilla Työskennellyt järjestelmäylläpitäjänä muutamissa firmoissa sekä kursseilla. 6

Nimi: Timo Toivanen Rooli: Tietoturvavastaava Puhelin: 040 7549411 Sähköposti: thtoivan(at)cc.hut.fi Opinnot ja työkokemus: Viidennen vuoden opiskelija, pääaineena ohjelmistojärjestelmät, sivuaineina tietoliikenneohjelmistot ja avaruustekniikka. Työskennellyt assistenttina TML:ssä sekä tietojenkäsittelyopin laboratoriossa sekä muun muassa ylläpitotehtävissä. Jokainen ryhmän jäsen osallistuu järjestelmän toteuttamiseen ja on vastuussa koodaamansa luokan/paketin laadusta. 2.2 Muut toimijat Muut projektiin yhteydessä olevat tahot ovat asiakkaan edustajia sekä kurssin meille osoittama mentor. Nimi: Ursula Holmström Rooli: Ohjaaja Puhelin: 09-451 5125 Sähköposti: ursula(at)tml.hut.fi Esittely: DI, viidettä vuotta opettava tutkija TML:ssa Nimi: Sanna Liimatainen Rooli: Ohjaaja Puhelin: 09-451 5122 Sähköposti: sos(at)tml.hut.fi Esittely: Tekniikan lisensiaatti, viidettä vuotta opettava tutkija TML:ssa. Nimi: Teemupekka Virtanen Rooli: Asiakas Puhelin: 09-451 2173 Sähköposti: tpv(at)tml.hut.fi Esittely: TkT, Tietoliikenneohjelmistojen professori Nimi: Kennet Westerdahl Rooli: Mentor Puhelin: 040-865 9195 Sähköposti: kwesterd(at)cc.hut.fi Esittely: Työkokemus SysOpen Oyj:ssä 4 vuotta, nykyisin projektipäällikkö. Nimi: Antti Ylä-Jääski Rooli: Asiakas Puhelin: - Sähköposti: antti.yla-jaaski(at)tml.hut.fi Esittely: TkT, Tietoliikenneohjelmistojen professori, työkokemus Nokia Oyj 15 vuotta, ETH Zurich 5 vuotta. 7

3 Projektin tavoitteet ja päättymiskriteerit 3.1 Asiakkaan tavoitteet lyhyesti Tavoite 1 Opiskelijakohtaisten muistiinpanojen tallentaminen 2 Hakujen tekeminen nimen tai opiskelijanumeron perusteella 3 Järjestelmän käyttäminen sekä laboratorion sisältä että etänä Arviointikriteeri Ryhmä arvioi vaatimusmäärittelyn perusteella ja hyväksyttää valmistumisen asiakkaalla. Ryhmä arvioi ja testaa hakujen toimivuuden. Ryhmä toteuttaa teknisen osuuden näin, asiakkaan vastuulla on asentaa lopputuote s.e. se on käytettävissä laboratorion palomuurin ulkopuolelta. 4 Opiskelijan perustietojen tallentaminen Ryhmä arvioi asiakkaan hyväksymien testauskäytäntöjen pohjalta tallennuksen toimivuuden. 5 Opiskelijakohtaisten tiedostojen tallentaminen Ryhmä arvioi asiakkaan hyväksymien testauskäytäntöjen pohjalta tallennuksen toimivuuden. 6 Tietoturvallinen järjestelmä Ryhmä arvioi sisäisen testauksen ja vertaustestauksen perusteella järjestelmän kokonaisturvallisuuden, asiakas hyväksyy testauskäytännöt. 7 Diplomitöiden seuraaminen Asiakas ilmoittaa haluamansa kriteerit diplomitöiden tiloille. Tämän jälkeen ryhmä arvioi seurannan toimivuuden asiakkaan hyväksymien testauskäytäntöjen mukaisesti. 8 Työryhmät Ryhmä toteuttaa työryhmätoiminnallisuuden asiakkaan hyväksymällä tavalla ja testaa toimivuuden sovittujen käytäntöjen mukaisesti. 9 Raportit Asiakas arvioi ryhmän toteuttamien raporttien sopivuuden. 10 Opiskelijakäyttöliittymä Ryhmä arvioi ja verteistestaa opiskelijakäyttöliittymän toimivuuden asiakkaan antamien kriteerien perusteella. 3.2 Projektiryhmän tavoitteet Kaikille projektiryhmän jäsenille yhteisenä tavoitteena on saada arvokasta kokemusta ohjelmiston suunnittelu-, kehitys- ja toteutusprosessista. Projekti tarjoaa hyvän mahdollisuuden päästä soveltamaan eri kursseilla opittuja menetelmiä kohtuullisen turvallisessa ja vähäriskisessä ympäristössä. Kurssinäkökulmasta katsoen ryhmämme pyrkii suorittamaan projektin siten, että kurssin ohjemateriaalin kirjain ja henki täytetään. Tarkoituksemme siis on suorittaa kurssi niin hyvin kuin pystymme. Arvosanatavoitteemme on kiitettävä (5). 3.3 Henkilökohtaiset oppimistavoitteet Jani Heikkinen: Tavoitteena oppia käytännössä ohjelmistoprosessin ohjausmenetelmiä ohjelmistoprojektissa. Janin SEPA-tehtäväaiheena on refaktorointi, jossa pyritään parantamaan lähdekoodia ilman uusien toimintojen lisäämistä sekä estää lähdekoodin hajoamista pitkäaikaisessa ohjelmistokehityksessä. 8

Anssi Kalliolahti: Tavoitteena päästä kokeilemaan itselle uusia ohjelmistotuotannon menetelmiä. SEPA-tehtävänä Anssilla on suunnittelumallien (Design Patterns) soveltaminen. Jukka Larja: Tavoitteena oppia soveltamaan käytännössä eri kursseilla opittuja työtapoja suurehkossa projektissa. Erityisesti Jukan pyrkimyksenä on erilaisten työkalujen sujuvan käytön opettelu ja opittujen taitojen soveltaminen käyttöliittymän suunnittelussa ja toteutuksessa. SEPA-tehtävänä on heuristinen arviointi (Heuristic evaluation). Tehtävä on tarkoitus tehdä yhdessä tietoturvavastaava Timo Toivasen kanssa. Pyrkimyksenä on kehittää käyttöliittymää tietoturvaa heikentämättä. Kim Nylund: Tavoitteena oppia toimimaan isohkon projektiryhmän jäsenenä. Tavoitteena myös oppia toimimaan rajapintana asiakkaan ja ryhmän välillä, sekä oppia kirjoittamaan asiakkaan tarpeet selkeiksi vaatimuksiksi. Lisäksi Kimin tavoitteena on oppia ryhmätyökalujen käyttöä. SEPA-aiheena on, Jani Heikkisen kanssa yhdessä, koodin refaktorointi (Refactoring). Liia Sarjakoski: Tavoitteena oppia toimimaan ohjelmistoprojektissa ja tutustua ohjelmistotuotantoon liittyviin hyviin käytäntöihin. Tavoitteena myös oppia erityisesti arkkitehtuurisuunnittelusta. SEPA-tehtävänä suunnittelumallien (Design Patterns) soveltaminen arkkitehtuuriin. Samuli Sorvakko: Projektipäällikkönä Samulin tavoite on projektin johtamisen opettelu kohtuullisen turvallisessa ympäristössä. SEPA-tehtäväksi hän valitsi eri toimijoiden välisen viestinnän merkityksen selvittämisen. Timo Toivanen: Tämä on ensimmäinen suurehko ohjelmistoprojekti, joten miltei kaikki projektiin liittyvä on uuden opettelua. Erityisesti tarkoituksena on oppia pitämään huolta projektin tietoturvanäkökohdista sen kaikissa vaiheissa. SEPA-tehtävä on tarkoitus tehdä yhdessä käyttöliittymävastaava Jukka Larjan kanssa, koska perinteisesti käytettävyys ja tietoturva on mielletty vaikeasti yhdistettäviksi tavoitteiksi. Projektin yhteydessä olisi tarkoitus oppia miten nämä sovitetaan yhteen niin, että kummankin osa-alueen tavoitteet toteutuvat riittävän hyvin. 3.4 Projektin keskeytyskriteerit Projekti katsotaan keskeytyneeksi, jos vähintään kaksi projektiryhmän jäsentä jättää projektin kesken. Projekti voidaan myös keskeyttää koko ryhmän yhteisellä päätöksellä. 3.5 Projektin päättymiskriteerit Projekti päättyy jonkin seuraavan ehdon toteutuessa: Kurssin päättymispäivämäärä ohitetaan Projektin asiakas hyväksyy projektin päättymisen Kaikki projektille määrätyt tuotokset on testattu ja hyväksytysti toimitettu 4 Resursointi 4.1 Henkilöstö paksulla fontilla merkityt tunnit ovat toteutuneita tunteja 9

Heikkinen Kalliolahti Larja Nylund Sarjakoski Sorvakko Toivanen PP 32 37 18 35 55 90 18 Tot.1 34 73 81 38 83.5 32.5 73.5 Tot.2 64 40 52 60 31 29 60 Toim. 60 40 40 52.5 20 40 39 Yht. 185 190 185 185 190 185 190 Taulukko 1: Työtuntisuunnitelma tunteina Kustannus kpl Kappalehinta Yhteensä Projektiryhmän työtunnit 1310 100 EUR/h 131000 EUR Asiakkaan työtunnit 70 150 EUR/h 10500 EUR Laitteistokustannukset 1 2000 EUR 2000 EUR Yhteensä 154000 Taulukko 2: Projektin kokonaiskustannukset 4.2 Materiaalit Ryhmän käytössä on levytilaa TML:n CVS-palvelimelta ja lisäksi projektin sähköpostilista on laboratorion sähköpostipalvelimella. Laboratorio antaa ryhmän käyttöön myös kehityspalvelimen. Kehitystyötä voidaan tehdä laboratorion yleiskäyttöisiltä päätteiltä. Ryhmämme voi käyttää myös TML:n kokoustiloja sekä asiakaspalaverien että sisäisten kokousten pitämiseen. 4.3 Budjetti Projektin työmääräkustannukset olisivat huomattavat, mikäli projekti toteutettaisiin täysin kaupallisesti. On epätodennäköistä, että korkeakoulu olisi halukas panostamaan projektiin sen tarvitsemia summia. Taulukossa 2 on esitetty arvio projektin kokonaiskustannuksista. 5 Työtavat ja työkalut 5.1 Käytännöt 5.1.1 Iteratiivinen kehitys Tuotteen kehityksessä käytetään inkrementaalista iteraatiomallia ja käyttökuvauksia. Jokainen iteraatio jaetaan aktiviteetteihin ja niistä edelleen tehtäviin. Toteutus (implementointi) tehdään inkrementaalisesti järjestyksessä: järjestelmän arkkitehtuuri, avaintoiminnot, toissijaiset toiminnot ja viimeistely. Tämä käytäntö suosii arkkitehtuuriin painottuvaa testausta, minkä vuoksi oliosuunnittelussa tulee noudattaa vastuulähtöistä suunnittelua (responsibility-driven design) [2]. Jokaisen iteraation lopussa järjestelmä tulee olla testattu ja käyttövalmis implementoitujen toimintojen osalta. 5.1.2 Iteraatiosuunnittelu Jokaisen iteraation alussa tavoitteet ja toimitukset suunnitellaan yhdessä asiakkaan kanssa. Iteraatiosuunnittelussa arvioidaan tärkeimpiin käyttökuvauksiin ja toimintoihin kuluva aika. Asiakas määrittelee toimitettavien osien prioriteetin. Toimitukset jaetaan tehtäviin, joiden toteuttamiseen kuluva aika tulisi olla n. 10h 20h. 10

Jos iteraation aikana havaitaan, että tehtävän/tehtävien toteuttamiseen kuluva aika on enemmän tai vähemmän kuin suunniteltu aika, iteraation toimitettavien osien määrää voidaan vähentää tai lisätä. Käytettävä aika pyritään pitämään suunnitellulla tasolla. Ensimmäisen iteraation suunnitelussa otetaan huomioon asiakkaan ensisijaisesti haluamat toiminnot, jotka luovat pohjan järjestelmän arkkitehtuurille. Tässä vaiheessa analysoidaan, suunnitellaan ja toteutetaan järjestelmän arkkitehtuuri ja sen tärkeimmät toiminnot. Arkkitehtuurista laaditaan määrittelydokumentti (kts. kappale 6.2.2). Ensimmäisessä iteraatiovaiheessa suunnitellaan testaus arkkitehtuurille ja avaintoiminnoille. Testauksessa löydetyt virheet raportoidaan ja korjataan (kts. kappale 5.1.4). Toisessa iteraativaioheessa toissijaiset toiminnot analysoidaan, suunnitellaan ja yhdistetään olemassaolevaan arkkitehtuuriin. Tässä vaiheessa kirjoitetaan alustava järjestelmän käyttöohje. Kolmas iteraatiovaihe alkaa pienellä inkrementtitoteutuksella, jossa kehitetään olemassa olevia toiminnallisuuksia ja asiakkaalle luovutettavat ohjeet. Vaihe päättyy järjestelmätestaukseen. 5.1.3 Dokumentointi Dokumentit kirjoitetaan LaTeX-muotoon. Ryhmä palauttaa dokumentit kurssille PDF-muodossa, käyttäen muunnokseen pdflatex-työkalua. LaTeX-tiedostojen tulee olla aina virheettömästi käännettävissä, ennenkuin tiedosto päivitetään CVS:ään. Jokaisen dokumenttiin liitetään sanahakemisto kaikista uusista termeistä, joita dokumentissa on käytetty. Sanahakemiston täytyy olla selvästi indeksoitu, jotta siihen voidaan viitata muista dokumenteista tarvittaessa. Kaikki dokumentit kirjoitetaan siten, että niiden sisältöön voidaan projektin kuluessa viitata yksiselitteisesti. Yksi asiakokonaisuus dokumentoidaan vain yhdessä dokumentissa, johon muista dokumenteista viitataan. Dokumenteilla tarkoitetaan tässä myös käyttö- ja testikuvauksia (use cases, test cases). Dokumenttien muutoksenhallintaa varten toteutetaan LaTeX-makropaketti, jolla kukin ryhmän jäsen voi lisätä dokumentteihin omia kommenttejaan. Kommentit tulostuvat dokumentin esikatseluversioihin mutta niiden näkyminen estetään dokumenttia tuotettaessa. Tällä parannetaan tekstin kirjoittajan ja muutoksen ehdottajan välistä viestintää. 5.1.4 Raportointi Muutosraportit lähetetään ryhmän sähköpostilistalle. Listalle lähetetään ilmoitus kaikista merkittävistä muutoksista dokumentaatiossa, ohjelmistossa sekä työkaluissa. Lisäksi listalla koordinoidaan ryhmän sisäistä työnjakoa eri osa-alueiden toteuttamisen suhteen. Pienemmistä muutoksista keskusteluun voidaan käyttää ryhmän IRC-kanavaa. Keskusteluosapuolet ovat velvollisia tekemään keskustelustaan sähköpostiraportin muulle ryhmälle, mikäli keskustelussa on sovittu jotain merkittävää. Lajittelun selkiyttämiseksi kaikkiin listalle tuleviin sähköpostiviesteihin lisätään otsikkoon tunniste [hirviö]. Vikaraportoinnissa käytetään kurssin suosittelemaa Bugzilla-järjestelmää. Viat kirjataan Bugzillaan mahdollisimman täydellisinä heti niiden löydyttyä. Ryhmäpalavereissa (katselmoinneissa) jaetaan vastuut ja korjausaikataulut vioille. Edistymisraportteja on kahta lajia. Ensimmäinen on kurssin vaatimuksiin kuuluva, joka vaiheen lopussa palautettava raportti. Toinen on vapaamuotoisempi, n. kahden viikon välein projektin toimijoille lähetettävä raportti, jossa kerrotaan viimeaikaisista kehityksistä. Edistymisraporteista on vastuussa projektipäällikkö. 11

Työajan raportointiin käytetään kurssin tarjoamaa Trapoli-järjestelmää. Projektipäällikkö huolehtii siitä, että järjestelmässä on tarvittavat tehtäväkuvaukset. Kukin ryhmän jäsen on vastuussa siitä, että tehdyt tunnit tulevat kirjatuksi (puolen tunnin tarkkuudella) Trapolijärjestelmään mahdollisimman pian suorituksen jälkeen. 5.1.5 Projektikatselmoinnit Ennen varsinaista projektikatsemointia mentorille ja asiakkaan edustajille lähetetään käsiteltävä katselmointimateriaali, johon pyydetään tutustumaan ennen itse katselmointia. Projektikatselmoinneissa esitetään kalvoesitys, jolla kerrotaan lyhyesti projektin tilasta mentorille sekä asiakkaan edustajille. Projektikatselmointien kulusta sekä esityksen valmistelusta on vastuussa projektipäällikkö. 5.1.6 Ryhmän kokoukset Ryhmä pyrkii kokoontumaan mahdollisimman täydellisenä viikottain pidettävään kokoukseen. Kokouksessa päätetään projektin aikataulun perusteella seuraavaksi suoritettavat tehtävät ja määrätään niille vastuuhenkilö. Jokaisesta kokouksesta tehdään pöytäkirja, johon kirjataan kokouksessa käsitellyt ja päätetyt asiat. Tehtäväseurantaa varten projektipäällikkö ylläpitää tehtävälistaa, johon merkitään tehtävä, tehtävän vastuuhenkilö sekä tehtävän määräaika. 5.1.7 Vaatimusten hallinta Vaatimusten hallinta on koko projektin kestävä prosessi, jonka perustana on vaatimusmäärittelydokumentti. Vaatimusten hallinnan tavoitteena on varmistaa, että asiakkaan vaatimukset otetaan huomioon projektin jokaisessa vaiheessa. Vaatimusten hallintaan kuuluu myös vaatimusten muutosten hallinta. Vaatimusten hallinnasta vastaa asiakasvastaava, joka toimii läheisessä yhteistyössä asiakkaan kanssa. Kukin vaatimus tulee täyttää suunnittelussa, toteutuksessa ja testauksessa myöhemmin projektissa. Vaatimusten täyttymistä seurataan vaatimusmäärittelydokumentissa annettavien tunnisteiden perusteella. Seuraavassa luvussa kerrotaan lisää vaatimusmuutoksista. 5.1.8 Muutostenhallinta Projektiryhmän tai asiakkaan ehdottama vaatimus saa ensiksi statuksen ehdotus. Tässä tilassa olevaa vaatimusta voi muuttaa sellaisenaan. Kun asiakas ja projektiryhmä hyväksyy vaatimuksen, se saa statuksen hyväksytty. Hyväksyttyyn vaatimukseen voidaan tehdä muutoksia, jos muilla vaatimuksilla tai dokumenteilla ei ole siihen riippuvuuksia tai jos muiden vaatimusten ja dokumenttien riippuvuudet voidaan myös muuttaa. Muutos voidaan kuitenkin tehdä vain, jos asiakas ja projektiryhmä hyväksyvät muutoksen. Toteutettua vaatimusta muutetaan vain hyvin painavista syistä ja samoilla edellytyksillä kuin hyväksyttyjä vaatimuksia. Kun vaatimus on verifioitu, sitä ei enää muuteta. Muutokset vaatimuksissa päivitetään vaatimusmäärittelydokumenttiin sekä kaikkiin niihin dokumentteihin, joissa ne esiintyvät. Etenkin muutokset projektisuunnitelmassa päivitetään tähän dokumenttiin. Muutokset otetaan huomioon myös ohjelmakoodissa ja testitapauksissa. Laaja-alaisista muutoksista tulee informoida kaikkia osapuolia, joiden vastuualueella muutos tapahtuu. 12

5.1.9 Versionhallinta Versionhallinnassa käytetään CVS:ää. Jokaisen iteraation lopuksi kaikki toimitettavat merkitään samaan julkaisuun (release). Jos on tarvetta, voidaan käyttää myös kappaleessa 5.1.10 esitetyn koodaustavan mukaisia julkaisukanditaatteja tai mikrojulkaisuja. Tehtyjen muutoksien kommentointi on pakollista CVS:ään. Kommenttien tulee viitata jokaisen talletetun (commit) tiedoston sisäiseen rakenteeseen. 5.1.10 Koodaustavat Toteutuksessa noudatetaan PEAR:n PHP koodaustyylistandardin (http://pear.php.net/ manual/en/standards.php) koodaustapoja. 5.1.11 Vertaistestaus Projektiryhmä suorittaa vertaistestausta viimeisen iteraatiokierroksen aikana. Ryhmälle määritellään myöhemmin vertaistestausryhmä, jonka kanssa testausta tehdään ristiin SBTMmenetelmällä. Aikaa vertaistestaukselle on varattava vähintään kahdeksan tuntia. 5.2 SEPA -yhteenveto Aihe Vastuuhenkilö(t) Käyttöaika Yhteydenpitokäytännöt Samuli Sorvakko PP-DE Heuristinen evaluointi Jukka Larja ja Timo Toivanen I1-I2 Design Patterns Anssi Kalliolahti ja Liia Sarjakoski I1-I2 Refaktorointi Jani Heikkinen ja Kim Nylund I1-I2 Projektin vaiheet: PP projektisuunnittelu I1,I2 Toteutuskierrokset DE toimitus 5.3 Laadunvalvontasuunnitelma Ennen projektisuunnitelmakierroksen päättymistä kaikki tuotettavat dokumentit katselmoidaan. Katselmointiin liittyvä materiaali lähetetään katselmointiryhmälle ennen varsinaista katselmointia. Katselmointiryhmä tutustuu materiaaliin ennalta ja kirjaa ylös epäselvyydet ja esille tulleet virheet. Katselmoinnissa dokumentaatiosta vastaava henkilö käy läpi dokumentin, jonka aikana muu ryhmä esittää kysymyksensä. Katselmoinnissa esille tulleet muutokset päivitetään katselmoituun materiaaliin. Tarkka laadunvalvontasuunnitelma tehdään ensimmäisen implementaatiokierroksen alussa. 5.4 Työkalut Projektissa käytetään seuraavia työkaluja: 13

Työkalu CVS Xemacs Trapoli Bugzilla LaTeX Dia HttpUnit PhpUnit PhpDoc PhpEclipse Työkalujen lähdetietoja: Kuvaus Versionhallintajärjestelmä, joka ei ole rakennus- (build tool), projektinhallinta-, viestintä-, muutostenhallinta- tai testaustyökalu Tekstieditori ja sovelluskehitysjärjestelmä Aikaraportointityökalu Virheenseuraamisjärjestelmä Dokumenttien valmistelu- ja latomajärjestelmä Diagrammien suunnitteluohjelma Yksikkötestaustyökalu, joka emuloi selainta Yksikkötestaustyökalu PHP lähdekoodin dokumentointityökalu PHP liitin Eclipse integroituun kehitysympäristöön Viite Lähdetieto TK1 CVS https://www.cvshome.org/docs/manual/ TK2 LaTeX http://www.latex-project.org/guides/ TK3 Bugzilla http://www.bugzilla.org/docs/ TK4 Xemacs (php-mode) http://www.xemacs.org/documentation/packages/html/ prog-modes_21.html TK5 PhpUnit Cookbook http://sourceforge.net/projects/phpunitcookbook/ TK6 PHPDoc http://www.phpdoc.de/doc/ TK7 Eclipse http://help.eclipse.org/help30/index.jsp?topic=/org. eclipse.platform.doc.user/tasks/running_eclipse.htm 5.5 Käytäntöjen analysointi Jokaisen iteraation lopussa ryhmä analysoi käytettyjä työtapoja ja työkaluja. Analysoinnin tulokset raportoidaan edistymisraportissa (kts. kappale 5.1.4). 5.6 Standardit PEAR PHP koodaustyylistandardi (http://pear.php.net/manual/en/standards.php) XHTML v1.1 (http://www.w3.org/tr/xhtml11/) Unified Modeling Language (UML) v1.5 (http://www.omg.org/technology/documents/ formal/uml.htm) 6 Projektin vaiheet 6.1 Aikataulu Taulukossa 3 esitellään projektin karkea aikataulu, jota tarkennetaan projektin edetessä. Aikataulu pohjautuu kurssin sivuilla esitettyyn aikatauluun[1]. 6.1.1 Dokumenttien valmistelu Kaikkiin kierroksiin kuuluu valmisteltavia dokumentteja. Kunkin dokumentin valmisteluun kuuluu vähintään kolme vaihetta. Ensimmäisessä vaiheessa kirjoitetaan esiversio dokumentista. Yleensä tämä vaihe on kaikkein työläin. Toisessa vaiheessa esiversio toimitetaan katselmoitavaksi asiakkaan edustajille. Asiakkaalta pyydetään dokumentista kritiikkiä, kommentteja ja parannusehdotuksia. Tässä vaiheessa 14

Pvm Klo Kuvaus Projektisuunnitelma (28.9.-4.11.) 1.10. 13:00 Asiakastapaaminen (järjestäytyminen ja yleiskatsaus) 7.10. 13:00 Asiakastapaaminen (vaatimusmäärittely) 12.10. 13:00 Projektisuunnitelmakierroksen iteraatiosuunnitelma 13.10. 13:00 Asiakastapaaminen (vaatimusmäärittely) Seuraavista asiakastapaamisista sovitaan erikseen 26.10. 18:00 Sisäinen määräaika suunnitelmadokumenteille 2.11. 13:00 Suunnitelmadokumenttien ja -raporttien palautus 3.11. 9:00 Palautetilaisuus Implementaatiokierros I (5.11.-2.12.) 9.11. 18:00 Kierroksella toteutettavien use casejen viimeistely 9.11. 13:00 Ensimmäisen implementaatiokierroksen iteraatiosuunnitelma 12.11. 18:00 Sisäinen deadline arkkitehtuurikuvaukselle 12.11. 18:00 Kierroksen testaussuunnitelma valmis 23.11. 18:00 Sisäinen määräaika kierroksen dokumenteille 30.11. 13:00 Ensimmäisen implementaatiokierroksen dokumenttien palautus 1.12. 9:00 Palautetilaisuus Joululoma (3.12.-6.1.) Tarvittaessa varaslähtö Implementaatiokierros II:lle Implementaatiokierros II (7.1.-10.2.) 11.1. 13:00 Toisen implementaatiokierroksen iteraatiosuunnitelma 28.1. 18:00 Sisäinen checkpoint, varmistetaan eteneminen ja jaetaan työt 1.2. 18:00 Sisäinen määräaika kierroksen dokumenteille 1.2. 12:00 Järjestelmätestauksen aloitus 4.2. 18:00 Järjestelmätestauksen DL 8.2. 13:00 Dokumenttien ja raporttien palautus 9.2. 9:00 Palautetilaisuus Viimeistely ja toimitus (11.2.-17.3.) 15.2. 13:00 Viimeistelykierroksen iteraatiosuunnitelma 1.3. 13:00 Järjestelmän ja testiohjeistuksen toimitus vertaisryhmälle 8.3. 13:00 Vertaisarvioinnin palautus 11.3. 18:00 Sisäinen määräaika kierroksen dokumenteille 15.3. 13:00 Dokumenttien ja raporttien palautus 16.3. 9:00 Lopullinen demonstraatio Taulukko 3: Projektin aikataulu suoritetaan myös ryhmän sisäistä kritiikkiä luettamalla dokumenttia niillä, jotka eivät ole olleet sen kirjoitustyössä mukana. Viimeisessä vaiheessa dokumenttia muokataan soveltuvin osin edellisessä vaiheessa saadun kritiikin pohjalta. 6.2 Projektin suunnittelu 6.2.1 Tavoitteet Projektin suunnitteluvaiheessa kartoitetaan asiakkaan kanssa projektille asetetut vaatimukset ja tavoitteet sekä aikataulutetaan projekti. Lisäksi vaiheen tarkoituksena on tutustuttaa projektissa työskentelevät toisiinsa sekä asiakkaan edustajiin. Vaiheen aikana rakennetaan projektin tarvitsemat puitteet kehitysympäristön ja ajan- ja dokumenttienhallinnan osalta. Projektin suunnittelusta päävastuussa on projektipäällikkö. Projektipäällikön vastuulla on koordinoida projektisuunnitelman kirjoitus sekä pitää huolta dokumentin muutoksista. 15

6.2.2 Toimitukset Dokumentti Määräaika Vastuuhenkilö Projektisuunnitelma 2.11. Samuli Sorvakko Vaatimusmäärittely 2.11. Kim Nylund Tilannekatsaus 2.11. Samuli Sorvakko SEPA-aiheenvalinnat 6.2.3 Tehtävät Suunnitteluvaiheen tärkeimpänä tehtävänä on projektisuunnitelman ja vaatimusmäärittelyn tekeminen. Nämä dokumentit luovat pohjan projektin myöhemmille vaiheille, joten tähän vaiheeseen uhrattu aika maksanee itsensä moninkertaisesti takaisin projektin edetessä. Kuvassa 2 on kuvattu suunnitteluvaiheen työtuntisuunnitelma. Vaatimusmäärittelyn tueksi pyrimme tapaamaan asiakasta mahdollisimman monesti. Kuten ohjelmistoprojekteissa yleensäkin, asiakas ei osaa antaa suoraan valmista tarkkaa vaatimusmäärittelyä, vaan ennemminkin ideoita ja olisi kiva jos -tyylisiä kommentteja. Vaatimusmäärittelyn tarkoitus on selventää, mitä asiakas todella tarvitsee. Projektimme ensimmäinen haaste onkin näiden ideoiden rajaaminen ja kirjoittaminen tarkan vaatimusmääritelmän muotoon. Kuva 2: Trapolitehtävät suunnittelukierroksella 6.3 Implementaatio I 6.3.1 Tavoitteet Ensimmäisen implementaatiovaiheen tavoitteena on saada projektin arkkitehtuuri suunniteltua sekä toteuttaa määrätyt ydintoiminnallisuudet. 16

Ydintoiminnallisuudet Projektin ydintoiminnallisuudet ovat tietokannan määritteleminen ja toteuttaminen sekä käyttäjien tunnistautuminen ja sisäänkirjautuminen paikallisilla tunnuksilla. Lisäksi tässä vaiheessa pyritään saamaan käyttöliittymän runkoelementit valmiiksi, ulkoasu jätetään tässä vaiheessa vielä täysin huomiotta. 6.4 Toimitukset Toimitus Määräaika Vastuuhenkilö Dokumentit Päivitetty projektisuunnitelma 30.11. Samuli Sorvakko Päivitetty vaatimusmäärittely 30.11. Kim Nylund Arkkitehtuurikuvaus 30.11. Liia Sarjakoski Testausmäärittely 30.11. Anssi Kalliolahti Tietoturvakuvaus 30.11. Timo Toivanen Tilannekatsaus 30.11. Samuli Sorvakko Toteutuksen osat Tietokantarakenne 30.11. Anssi Kalliolahti Tietokanta-abstraktio 30.11. Jani Heikkinen Kirjautuminen ja sessionhallinta 30.11. Liia Sarjakoski Käyttöliittymärunko 30.11. Jukka Larja 6.5 Tehtävät Ensimmäisen toteutuskierroksen pääasiallisena tehtävänä on arkkitehtuurisuunnitelman tekeminen sekä järjestelmän päärungon toteuttaminen. Rungon lisäksi toteutetaan kirjautuminen järjestelmään sekä muistiinpanon lisääminen. Kuvassa 3 on nähtävissä kaikki kierrokselle suunnitellut tehtävät. Kuva 3: Ensimmäisen iteraatiokierroksen Trapoli-tehtävät 17

6.6 Implementaatio II 6.6.1 Tavoitteet Toisessa implementaatiovaiheessa tarkoituksena on toteuttaa järjestelmän varsinainen toiminnallisuus ensimmäisellä kierroksella rakennetun infrastruktuurin pälle. Lisäksi toisella kierroksella toteutetaan asiakkaan vaatimat raportti- ja muut kyselyt. 6.7 Tehtävät Toisen toteutuskierroksen tehtävät jakautuvat uusien ominaisuuksien toteuttamiseen sekä testaamiseen ja järjestelmän dokumentointiin. Dokumenteista uutena palautetaan käyttöohjeen ensimmäinen versio. 6.7.1 Toimitukset Toimitus Määräaika Vastuuhenkilö Dokumentit Päivitetty vaatimusmäärittely (sis.) 11.1. Kim Nylund Päivitetty projektisuunnitelma (sis.) 12.1. Samuli Sorvakko Päivitetty testaussuunnitelma (sis.) 16.1. Anssi Kalliolahti Arkkitehtuurikuvaus 8.2. Liia Sarjakoski Testiraportti 8.2. Anssi Kalliolahti Päivitetty tietoturvakuvaus 8.2. Timo Toivanen Käyttöohjeen ensiversio 8.2. Jukka Larja Tilannekatsaus 8.2. Samuli Sorvakko Toteutuksen osat Päivitetty käyttöliittymärakenne 13.1. Jukka Larja Päivitetty tietokantarakenne 16.1. Jani Heikkinen Opiskelijakohtaisten muistiinpanojen tallennus (F1) 23.1. Liia Sarjakoski Hakujen tekeminen (F2) 23.1. Kim Nylund Opiskelijan tietojen tallettaminen (F3) 23.1. Anssi Kalliolahti Tiedostojen tallennus (F4) 23.1. Jani Heikkinen Diplomitöiden seuraaminen (F5) 30.1. Jukka Larja Ylläpitotyökalu (F7) 30.1. Timo Toivanen Raportit (F8) 30.1. Kim Nylund Varmuuskopiointi(F10) 30.1. Jani Heikkinen 6.7.2 Tehtävät Toisen implementaatiokierroksen tehtäväjakauma kuvassa 4. 6.8 Viimeistely ja toimitus Viimeisen vaiheen suunnitelmat ja tavoitteet tarkentuvat Implementaatio II -kierroksen lopulla. 6.8.1 Tavoitteet Viimeistelyvaiheessa ohjelmisto paketoidaan ja paketin asennustoimenpiteet dokumentoidaan. Lisäksi viimeistelyvaiheessa päivitetään kaikki dokumentit sekä kirjoitetaan raportti projektin kulusta. 18

Kuva 4: Toisen iteraatiokierroksen Trapoli-tehtävät 6.8.2 Toimitukset Toimitus Määräaika Vastuuhenkilö Dokumentit Projektisuunnitelma 15.3. Samuli Sorvakko Vaatimusmäärittely 15.3. Kim Nylund Arkkitehtuurikuvaus 15.3. Liia Sarjakoski Testausmäärittely 15.3. Anssi Kalliolahti Tietoturvakuvaus 15.3. Timo Toivanen Testiraportti 15.3. Anssi Kalliolahti Tilannekatsaus 15.3. Samuli Sorvakko Asennusohje 15.3. Jani Heikkinen Käyttöohje 15.3. Jukka Larja Toteutuksen osat Valmis ohjelmapaketti 15.3. Jani Heikkinen 6.8.3 Tehtävät Viimeistelykierroksen tehtävät kuvassa 5. 7 Riskienhallinta Riskienhallinta pyrkii varautumaan, tunnistamaan ja reagoimaan projektin aikana ilmeneviin ongelmiin. Mikäli ongelma-alueet kyetään tunnistamaan jo ennen varsinaisten ongelmien ilmenemistä, voidaan niihin varautua ja niiden mahdollista vaikutusta projektin kulkuun voidaan vähentää tai jopa poistaa kokonaan. Kukin riski on jaettu jo ennakkoon jollekin ryhmän jäsenistä, jotta tällä olisi mahdollisimman paljon aikaa paneutua ongelmakohtiin ja keksiä keinoja ongelmien välttämiseksi. Ennen implementaatio I-vaiheen alkua sovitaan, mitä riskejä ryhdytään aktiivisesti seuraamaan. Samalla esitellään riskien ehkäisemiseksi suunnitellut toimenpiteet ja koostetaan näistä erillinen dokumentti. Riskejä on jonkin verran suodatettu jo ennen tähän kirjaamista, sillä hyvin epätodennäköisiin tai projektin kannalta merkityksettömiin riskeihin paneutuminen olisi liian työlästä hyötyihin 19

Kuva 5: Viimeistelykierroksen Trapoli-tehtävät suhteutettuna. 7.1 Skenaariot Riskiskenaariot on taulukossa 4. Viitteet [1] T-76.115 - Schedule http://www.soberit.hut.fi/t-76.115/04-05/schedule.html, viitattu 10.10.2004 [2] Stephen R. Schach, Object-Oriented and Classical Software Engineering, 5th edition, 2002, viitattu 26.10.2004 20

ID Riski Vaikutus Vastuu Aikatauluongelmat S1 Ryhmän jäsenillä liikaa Töiden kasaantuminen Samuli Sorvakko muita kuin projektiin liittyviä vastuita määräaikoja edeltäviin päiviin, aikatauluista lipsuminen S2 Asiakkaalla liian vähän Kim Nylund aikaa paneutua projektiin Ryhmän sisäiset ongelmat G1 Ryhmän sisäiset tavoitteet erilaiset G2 Ryhmän osaamistaso vaihteleva Palautteen saaminen asiakkaalta hidastuu, tapaamisten järjestäminen hankaloituu Jotkut haluavat kurssista paremman arvosanan kuin toiset Osa ryhmäläisistä on kokeneita ohjelmoijia, toisille tämä on ensimmäinen suurempi ohjelmistoprojekti, saattaa aiheuttaa laatuongelmia G3 Jokin ryhmän jäsen Ryhmäläisen työpanos voidaan sairastuu ja/tai luovuttaa joutua jakamaan pikaisella kesken projektin aikataululla muille Ryhmästä riippumattomat ongelmat E1 Asiakkaan edustajien virkasuhteita katkolla Muutokset asiakkaan edustajissa aiheuttavat ylimääräistä työtä projektin tavoitteiden selvittämisessä uusille edustajille E2 Asiakkas ei voi ottaa Asiakas ei saa tuotetta käyttöönsä tuotantokäyttöön PHP5 kieltä Työvälineongelmat T1 Tuotantoympäristöä Ei välttämättä osata varautua ei vielä ole määritelty tuotantoympäristön erityispiirteisiin tarkkaan T2 Tuotantoympäristön viat Tuotantoympäristöön kuuluvissa kolmansien osapuolien komponenteissa saattaa ilmetä vikoja T3 T4 Tuotantoympäristön tietoturvaongelmat Käytetään ennestään tuntemattomia työkaluja Tuotantoympäristöön kuuluvissa kolmansien osapuolien komponenteissa saattaa ilmetä tietoturvaongelmia Työkalujen ominaisuudet saattavat aiheuttaa yllätyksiä ja viivästyksiä asennuksessa tai käytössä Taulukko 4: Riskiskenaariot Samuli Sorvakko Anssi Kalliolahti Jani Heikkinen Kim Nylund Anssi Kalliolahti Liia Sarjakoski Liia Sarjakoski Timo Toivanen Jani Heikkinen 21