Versio | Pvm | Muutokset | |
0.9 | 03.10.1999 | Ensimmäinen versio, suunnitelman runko, projektin määrittely | |
1.0 | 12.10.1999 | Täydennyksiä asiakaspalaverin pohjalta | |
1.1 | 2.11.1999 | SU-vaiheen suunniteltujen työtuntien lisäys. Tarkennuksia projektin riskienhallintaan |
|
1.2 | 15.11.1999 | Vaihekohtaisten kuvausten tarkennus | |
1.3 | 19.11.1999 | Yhteenvetoja ajankäytöstä | |
1.4 | 7.12.1999 | P1-vaiheen suunniteltujen työtuntien lisäys. Tarkennuksia projektin riskienhallintaan |
|
1.5 | 9.2.2000 | Työmäärien arviointia. | |
1.51 | 15.2.2000 | Toteutuneiden tuntien lisääminen. P1-vaiheen yhteenveto. |
1.1 Yleiskuvaus projektista
1.2 Projektin tavoite
1.3 Projektiryhmä
1.4 Oikeudet työn tuloksiin
2. Projektin vaiheiden tavoiteet ja aikataulu
2.1 Yleinen jaottelu
2.2 Projektin suunnittelu
2.3 Määrittely
2.4 Suunnittelu
2.5 Prototyyppi 1
2.6 Prototyyppi 2
2.7 Luovutus
2.8 Jälkihoito
3.1 Koko projekti
3.2 Tarkennetut vaihekohtaiset tehtäväsuunnitelmat
3.3 Kustannusarvio
4.1 Työmenetelmät
4.2 Dokumentointimenetelmät
4.3 Projektityön menetelmät
4.4 Riskien hallinta
4.5 Jäsenten roolit ja tehtävänjako
5.1 Projektin tilan seuranta
6.1 Sanasto
6.2 Lähdeluettelo
6.3 Aikataulu
Tämä projekti on TKK:n Tik-76.115 Tietojenkäsittelyopin ohjelmatyö -kurssin harjoitustyö. Projektin asiakkaana on Osuuspankkikeskus Oyj, jolle projektin tarkoituksena on tuottaa ratkaisu pankin ja pankin asiakkaan välinen tietoturvaratkaisu.
Osuuspankki jakaa yritysasiakkailleen ilmaiseksi KULTALINKKI pankkiyhteysohjelmaa. Ohjelman avulla asiakas pystyy hallinnoimaan tilejään pankissa, lähettää ja tulostaa laskuja, lähettää ja noutaa maksutapahtumia, tehdä tilikyselyitä yms. Asiakas voi olla yhteydessä pankkiin ympäri vuorokauden.
Asiakas voi muodostaa yhteyden pankkiin Internetin kautta. Tällöin
salaamaton linjaliikenne on erittäin altis hyökkäyksille ja asiakkaan
liikesalaisuudet joutuvat helposti ulkopuolisen tahon käsiin. Tällä
hetkellä tuotteessa oleva tietoturva rajoittuu ainoastaan integriteettiin ja
tunnistukseen, ja koko linjaliikenne on täysin salaamatonta.
Projektin tavoitteena on toteuttaa
vaatimusmäärittelyn mukainen ohjelmistotuote, jonka avulla asiakkaan
ongelmat on suunniteltu ratkaistavaksi. Tavoitteen saavuttamista mitataan
määrittelyssä esitettyjen laatukriteereiden avulla. Samalla analysoidaan
ja dokumentoidaan ratkaisun toimivuutta, sen etuja ja haittoja sekä
huomioidaan tulevaisuuden tarpeet (jatkokehitys, uudet ohjelmaversiot,
uudet standardit, yhteensopivuus) ja muuttuva ympäristö.
1.3.1 Projektiryhmän jäsenet
Projektiryhmässä on neljä jäsentä. Allaolevasta listasta käy
nimitietojen lisäksi ilmi kullekin jäsenelle osoitettu pääasiallinen
työtehtävä. Työtehtävät ovat kuitenkin osittain muodollisia ja jokainen
ryhmän jäsen on yhteisvastuussa kaikista projektin vaiheista ja osista.
Nimen perässä on esitetty suluissa nimikirjaimet, joita käytetään
myöhemmin dokumentissa viitatessa kyseiseen henkilöön.
1.3.2 Muut projektin osapuolet
1.3.3 Kotisivu
Projektin kotisivulta löytyy kaikki oleellinen materiaali. Kotisivun
osoite on http://www.hut.fi/~mvartiov/tkot/index.html ja
sivun päivittämisestä vastaa pääasiassa projektipäällikkö.
Kotisivulla on uusimmista dokumenteista versiot
PDF-formaatissa. Näiden katsomiseen vaaditaan Adobe Acrobat Reader.
1.3.4 Työskentelytilat
Ohjelmistotuotteen kehitys ja testaaminen tapahtuu projektiryhmän
omalla laitteistolla. Asiakkaan kanssa neuvotellaan erikseen tuoteproton
ja lopputuotteen testaamisesta lopullisessa toimintaympäristössä.
1.3.5 Tiedottaminen
Projektin eri osapuolten välinen tiedotus tapahtuu projektipäällikön
toimesta sähköpostitse sekä puhelimitse.
Projektiryhmä luovuttaa asiakkaan kanssa erillisessä työsopimuksessa
määritellyn tuotteen ja siihen liittyvät sopimuksessa esitetyt dokumentit
asiakkaalle. Työsopimusta ei toistaiseksi ole tehty.
Oikeudet tuotteen jatkokehitykseen ja lähdekoodiin säilyvät
projektiryhmällä.
Projekti on jaettu ohjelmatyökurssin vaiheiden
mukaisesti
Vaiheiden yhteisinä tavoitteina ovat
Ohjelmatyökurssin aikana on joukko jatkuvia prosesseja, joista
huolehtiminen on kriittinen edellytys projektin onnistumiselle. Näiden
prosessien tunnistaminen heti alkuvaiheessa on välttämätöntä. Alla
olevassa taulukossa on kuvailtu näistä tärkeimpiä. Jos prosessin
luonne on erityisesti jonkun ryhmän jäsenen erikoisalaa on hän merkitty
vastuuhenkilöksi ko. prosessin suhteen. Kuten edellä jo mainittiin,
ryhmän kaikilla jäsenillä on kuitenkin täysi vastuu projektin kaikista
osista. Vastuuhenkilöiden avulla pyrimme vain selventämään työnjakoa.
Osa prosesseista jatkuu koko projektin ajan, osa on erikseen
merkitty aikatauluun (esim. palaverit). Prosesseista voidaan ajatella
saatavan tulos, joka on myös kuvattu lyhyesti taulukon neljännessä
sarakkeessa. Vastuuhenkilö huolehtii, että määritelty lopputulos
toteutuu aikataulussa määritetyn aikajänteen puitteissa.
1.2 Projektin tavoite
1.3 Projektiryhmä
Rooli
Nimi
E-mail
Projektipäällikkö
Markus Vartiovaara (MV)
mvartiov@cc.hut.fi
Laatupäällikkö
Petteri Kaski (PK)
pkaski@cc.hut.fi
Suunnittelupäällikkö
Arto Vuori (AV)
avuori@cc.hut.fi
Ohjelmoija
Juha Räsänen (JR)
juha.rasanen@hut.fi
Asiakas:
Osuuspankkikeskus Yhteyshenkilö ja ohjaaja:
Kauko Metsä E-mail:
kauko.metsa@osuuspankki.fi
Kurssin edustaja:
Kari Alho
kari.alho@hut.fi
1.4 Oikeudet työn tuloksiin
2. Projektin vaiheiden tavoitteet ja aikataulu
2.1 Yleinen jaottelu
Tehtävä | Vastuuhenkilö(t) | Aikajänne / Deadline | Lopputulos |
Projektisuunnitelman ja määritelmädokumenttien kehittäminen ja päivittäminen | MV | Jatkuva | Kattava kuvaus projektista |
Tuntiraporttien laatiminen | Kaikki | Koko projekti, raportit kootaan maanantaisin | Projektiin käytetyt työtunnit |
Projektipalaverit | Kaikki | Aikataulun mukaisesti | Tiivis yhteistyö asiakkaan kanssa johtaa haluttuun lopputulokseen |
Tekninen suunnittelu | AV (+kaikki) | Jatkuva | Teknisen kokonaisuuden hallinta tekee työstä tehokasta |
Koodin toimivuudesta huolehtiminen | PK | Jatkuva | Ohjelmiston kasvaessa tulee olla toimiva perusta minkä päälle kehittää. |
Projektiryhmä- palaverit |
Kaikki | Aikataulun mukaisesti | Projektin etenemistä kontrolloidaan pitämällä tiiviisti ryhmän omia palavereja |
Asiakas-palaverit | Kaikki + Asiakas | Aikataulun mukaisesti | Ryhmä pitää aina tarvittaessa palavereja asiakkaan kanssa |
Projektipalaverit | Kaikki + Asiakas + kurssin edustaja | Aikataulun mukaisesti | |
WWW-sivujen päivitys | MV (+kaikki) | Jatkuva | Ryhmän lisäksi myös kurssin ja asiakkaan vastaavat voivat seurata projektin kehitystä. |
Luvuissa 2.2 - 2.7 on näiden perustoimintojen lisäksi kuvattu jokaiselle vaiheelle tyypillisiä asioita kuten dokumentaatiota.
Dokumenttitaulukossa on esitetty kurssin eri vaiheissa palautettavat dokumentit. Palaverien pöytäkirjat sekä mahdollinen asiakkaalle toimitettava erillinen dokumentaatio on eritelty kohdassa "Muu dokumentaatio".
Jokaisella dokumentilla on määritelty päävastuuhenkilö, jonka tehtävänä on huolehtia kyseisen dokumentin tekemisestä (tai ainakin kasaamisesta, toimittamisesta ja aikataulunmukaisesta valmistumisesta). Vastuuhenkilön tulee palauttaa dokumentti hyvissä ajoin vastaavalle tarkastajalle, joka lukee sen läpi ja tekee tarvittaessa muutoksia ja tarkennuksia.
Projektin kulku on esitetty erillisessä aikataulussa.
2.2.1 Vaiheen kuvaus
Projektin suunnitteluvaiheessa kartoitetaan asiakkaan vaatimuksia
projektin hallinnan sekä lopputuotteen toiminnallisuuden suhteen. Suunnitellaan
projektin läpivienti käytettävissä olevilla resursseilla ja laaditaan
aikataulu johon kaikki projektin osapuolet sitoutuvat. Lisäksi
projektin riskienhallinta kuuluu olennaisena osana projektin suunnitteluun.
2.2.2 Vaiheen tavoitteet
Projektin suunnitteluvaiheen tärkein tavoite on saada projekti
onnistuneesti käyntiin. Projektin eri osapuolien välille on saatava
yhteysymmärrys lopputuotteen vaatimuksista sekä projektin
aikataulusta.
2.2 Projektin suunnittelu
Tavoite | Strategia |
Lopputuotteen vaatimusten huolellinen tarkka määrittely | Käyttää paljon aikaa huolellisen vaatimusmäärittelyn tekemiseen. Sen päälle (ja jota täydentäen ja täsmentäen) projektia voidaan joustavasti rakentaa ja viedä eteenpäin oikeaan suuntaan |
Työn jakaminen, aikataulusta sopiminen | Työ jaetaan kurssin antaman viitekehyksen mukaisesti osiin. Työmäärä mitoitetaan siten, että jokaisessa vaiheessa on mahdollista saavuttaa haluttu lopputulos. Ryhmä tutustuu aikatauluun niin että kaikki osaavat varata resursseja riittävästi sovittuina ajankohtina. |
2.2.3 Vaiheen ennakoidut tulokset
Asiakkaan kanssa tarkkaan laadittu vaatimusmäärittely. Vaatimusmäärittelyä tarkennetaan projektin aikana, mutta jo suunnitteluvaiheessa laaditun määrittelyn tulee olla mahdollisimman kattava ja suuntaa-antava.
2.2.4 Vaiheen dokumentaatio
Suunnitteluvaiheessa laadittu projektisuunnitelma on keskeinen työväline eri tehtävien ja töiden hallinnassa, sekä yhdessä aikataulun kanssa se asettaa keskeisille tavoitteille ja vaatimuksille aikarajat.
Vaatimusmäärittely on asiakkaan kanssa yhteistyössä tehty määritelmä lopputuotteen toiminnallisuudesta sekä kaikesta siihen liittyvästä. Vaatimusmäärittelystä käy ilmi ohjelmatyölle asetetut vaatimukset toiminnallisuuden ja dokumentaation osalta. Lopputuotteen onnistuneisuuden ja laadun evaluointi suoritetaan myös tätä määrittelyä vastaan. Vaatimusmäärittelyllä on lisäksi merkittävä rooli ryhmän sisäisenä työkaluna.
Edistymisraportti antaa palautetta eri osapuolille projektin nykytilasta. Kuinka on pystytty pysymään suunnitellussa aikataulussa. Mitä tehtäviä on suoritettu ja mitä ongelmia on tullut vastaan. PS-tuntiraportti kertoo ryhmän jäsenten käyttämät työtunnit projektin suunnitteluvaiheessa.
Kurssin dokumentti | Vastuu (tarkastaja) | Kuvaus |
Projektisuunnitelma | MV (PK) | Suunnitelma projektin läpiviemisestä ja aikataulusta. Projektin riskienhallinta. |
Vaatimusmäärittely | Kaikki | Asiakkaan vaatimukset tuotteen toiminnallisuuteen |
Edistymisraportti | JR (MV) | Kuvaus projektin nykytilasta. |
PS-tuntiraportti | Kaikki | Projektin suunnitteluvaiheeseen käytetyt työtunnit |
Muut dokumentit ja raportit | Vastuu (tarkastaja) | Kuvaus |
Työsopimus-proto | Kaikki | Projektiryhmä ja asiakas tekevät sopimuksen ohjelmatyön tekemisestä. Sopimuksen liitteenä käytetään vaatimusmäärittelyä. |
Palaverien pöytäkirjat | MV (JR) | Ryhmän ja asiakkaan pitämistä palavereistä tehdään lyhyet mutta ytimekkäät pöytäkirjat. |
2.2.5 Vaiheen toteutuminen
Projekti suunniteltiin huolellisesti. Tuotteen tarkempi määrittely siirrettiin seuraavaan vaiheeseen vaikkakin alustavia suunnitelmia tehtiin jo tässäkin vaiheessa.
Kurssin dokumentti | Vastuu (tarkastaja) | Kuvaus |
Projektisuunnitelma | MV (PK) | Tarkennettu projektisuunnitelma |
Vaatimusmäärittely | AV (Kaikki) | Tarkennettu vaatimusmäärittely |
Toiminnallinen määrittely | AV (Kaikki) | Ohjelmiston vaatimusten tarkka kuvaus ja analysointi. Ohjelmiston rajapintojen määrittely käyttäjälle sekä muille systeemeille. |
Edistymisraportti | JR (MV) | Kuvaus projektin nykytilasta |
MÄ-tuntiraportti | Kaikki | Määrittelyvaiheeseen käytetyt työtunnit |
2.4.1 Vaiheen kuvaus
Suunnitteluvaihe on lopputuotteen toteutuksen kannalla tärkein vaihe. Siinä paineudutaan entistä syvemmälle toteuttavaan ohjelmistoon. Määritellään kaikki ohjelmistoon liittyvät modulit sekä rajapinnat. Tarvittaessa laaditaan pseudokoodi joistain palasista. Lisäksi laaditaan testaussuunnitelma tuotettavan ohjelmiston testauksesta. Määritellään mitkä modulit testaan erillisinä, mitkä yhdessä sekä kuvataan testausympäristö.
2.4.2 Vaiheen tavoitteet
Suunnitteluvaiheessa on kaksi samanarvoista ja erittäin tärkeää tavoitetta. Ensinnäkin tavoitteena on laatia perinpohjainen suunnitelma toteutettavasta ohjelmistosta, että itse toteutus olisi erittäin virtaviivaista ja tehokasta. Toiseksi kattavan, virheet poissulkevan testaussuunnitelman laatiminen.
2.4.3 Vaiheen ennakoidut tulokset
Suunnitteluvaiheen tuloksena on laaja ja yksityiskohtainen suunnitelma toteutettavasta ohjelmistosta sekä sen toimivuuden testaamisesta.
2.4.4 Vaiheen dokumentaatio
Projektisuunnitelmaa tarkennetaan ensimmäisen prototyyppivaiheen suunnittelua sekä siihen liittyvän riskienhallinnan osalta. Lisäksi toiminnallista määrittelyä tarkennetaan tarvittaessa.
Tekninen määrittely sekä testaussuunnittelma on avaindokumentit tässä vaiheessa. Niistä käy ilmi toteuttavan ohjelmiston toiminta ja ympäristö ohjelmistoteknisesti määriteltynä sekä miten ohjelmiston toimivuus testataan.
SU-tuntiraportti kertoo ryhmän jäsenten käyttämät työtunnit suunnitteluvaiheessa.
Kurssin dokumentti | Vastuu (tarkastaja) | Kuvaus |
Projektisuunnitelma | MV (PK) | Tarkennettu projektisuunnitelma |
Toiminnallinen määrittely | AV (Kaikki) | Tarkennettu toiminnallinen määrittely |
Tekninen määrittely | Kaikki | Määrittely ohjelmiston arkkitehtuurista ja eri modulien rajapinnoista ja yhteyksistä. |
Testaussuunnitelma | PK (Kaikki) | Suunnitelma tuotteen kattavasta testauksesta. |
Edistymisraportti | JR (MV) | Kuvaus projektin nykytilasta |
SU-tuntiraportti | Kaikki | Suunnitteluvaiheeseen käytetyt työtunnit |
2.4.5 Vaiheen toteutuminen
Vaiheen tarkempi kuvaus on esitetty edistymisraportissa.
Tässä vaiheessa projektia oli tarvetta korjata myös tuntiarviointia, jonka seurauksena
tulevien vaiheiden arviot korotettiin 200 tuntiin ja seuraavan P1-vaiheen tunnit lähes
kolmeen sataan. Syynä tähän on projektin teettämä arvioitua suurempi työmäärä.
2.5.1 Vaiheen kuvaus
Ensimmäisessä prototyyppivaiheessa toteutetaan ohjelmistosta toimiva
versio, johon ei ole vielä toteutettu kaikkia vaadittuja
toimintoja. Protoa voi testata ja liittymät muihin systeemeihin on
pääosiltaan toteutettu.
2.5.2 Vaiheen tavoitteet
Tavoitteena on käytännössä toteuttaa suunnitteluvaiheessa määritellyn
ohjelmiston pääkomponentit niin, että mahdollisimman moni liittymät
muihin systeemeihin voidaan todeta toimiviksi.
Proton avulla asiakas pystyy muodostamaan hyvän käsityksen
lopputuotteen toiminnallisuudesta. Vaiheen tärkein tavoite on tarjota
asiakkaalle testiversio tuotteesta ja näin saada mahdollisesti uusia
(tarkempia) ideoita lopullisen tuotteen yksityiskohdista.
Mahdolliset epätoimivuudet ja yhteensopivuusongelmat tulisi havaita tässä vaiheessa.
2.5.3 Vaiheen ennakoidut tulokset
Vaiheen tuloksena ohjelmistosta on versio, joka on periaatteessa
toimiva, mutta ei sisällä kaikkia vaadittuja ominaisuuksia. Asiakkaalta
pyydetään palautetta proton testaamisesta, jotta halutut korjaukset ja
lisäykset voidaan toteuttaa seuraavassa vaiheessa.
2.5.4 Vaiheen dokumentaatio
Projektisuunnitelmaa tarkennetaan toisen prototyyppivaiheen sekä
siihen liittyvän riskienhallinnan osalta. Ensimmäisen prototyypin
testauksen tuloksista kertoo testiraportti. Lisäksi tässä vaiheessa
hahmotellan ensimmäiset käyttöohjeet ohjelmiston asennuksesta,
käytöstä ja käyttäytymisestä eri tilanteissa.
P1-tuntiraportti kertoo ryhmän jäsenten ensimmäiseen
protityyppivaiheeseen käyttämät työtunnit. Edistymisraportti kuvaa
projektin nykytilaa.
2.5 Prototyyppi 1
Kurssin dokumentti | Vastuu (tarkastaja) | Kuvaus |
Projektisuunnitelma | MV (PK) | Tarkennettu projektisuunnitelma |
Toiminnallinen määrittely | AV (Kaikki) | Tarkennettu toiminnallinen määrittely |
Tekninen määrittely | AV (Kaikki) | Tarkennettu tekninen määrittely |
Testiraportti | PK (MV) | Raportti olemassa olevan ohjelmiston testauksesta |
Käyttöohje | JR (Kaikki) | Ohjeet ohjelmiston asennuksesta, toiminnoista, virheilmoituksista, käyttöliittymästä sekä ylläpidosta. |
Edistymisraportti | JR (MV) | Kuvaus projektin nykytilasta |
P1-tuntiraportti | Kaikki | Ensimmäiseen prototyyppivaiheeseen käytetyt työtunnit |
2.5.5 Vaiheen toteutuminen
P1-vaihe vastasi asetetut tavoitteet: ohjelmistosta on versio,
joka on keskeisiltä osiltaan toimiva, mutta ei sisällä kaikkia
vaadittuja ominaisuuksia. Asiakkaalta tullaan saamaan
palautetta proton testaamisesta, jotta halutut korjaukset ja
lisäykset voidaan toteuttaa seuraavan vaiheen aikana.
Tarkempi kuvaus löytyy edistymisraportista.
2.6.1 Vaiheen kuvaus
Toisessa prototyyppivaiheessa ohjelmistoon lisätään loput vaaditut
toiminnot, joita ei oltu toteuttu ensimmäisessä prototyypissä.
Asiakkaalta saadaan erittäin yksityiskohtaista palautetta tuotteesta.
2.6.2 Vaiheen tavoitteet
Tavoitteena on saada aikaan ohjelmisto, johon on toteutettu kaikki
vaaditut ominaisuudet. Toisessa protossa asiakas testaa huolellisesti
tuotetta tuotteen lopullisessa ympäristössä.
2.6.3 Vaiheen ennakoidut tulokset
Asiakas antaa viimeiset kommentit ohjelman kehittämiseksi
lopulliseksi tuotteeksi. Tuloksena ei tulisi olla kuin pieniä muutoksia.
Erityistä huomiota tulee kiinnittää laatukriteereissä esitettyihin
seikkoihin, joiden avulla (pääasiassa asiakas) arvioi tuotetta.
2.6.4 Vaiheen dokumentaatio
Toisessa prototyyppivaiheessa ei laadita mitään uusia
dokumentteja, vaan pitäydytään tarkentamaan jo olemassaolevia
dokumentteja.
2.6 Prototyyppi 2
Kurssin dokumentti | Vastuu (tarkastaja) | Kuvaus |
Projektisuunnitelma | MV (PK) | Tarkennettu projektisuunnitelma |
Toiminnallinen määrittely | Kaikki | Tarkennettu toiminnallinen määrittely |
Tekninen määrittely | AV (Kaikki) | Tarkennettu tekninen määrittely |
Testiraportti | PK (Kaikki) | Raportti olemassa olevan ohjelmiston testauksesta |
Käyttöohje | JR (Kaikki) | Tarkennetut käyttöohjeet |
Edistymisraportti | JR (MV) | Kuvaus projektin nykytilasta |
P2-tuntiraportti | Kaikki | Toiseen prototyyppivaiheeseen käytetyt työtunnit |
2.6.5 Vaiheen toteutuminen
P2-vaiheessa ohjelmiston testaus suoritettiin loppuun ja
tuote viimeisteltiin luovutuskuntoiseksi. Myös dokumentaatio
käytiin kootusti läpi, ja annettiin asiakkaalle luettavaksi.
Tarkempi kuvaus löytyy edistymisraportista.
2.7.1 Vaiheen kuvaus
Luovutusvaiheessa testataan ohjelmisto lopullisesti ja korjataan
viimeiset havaitut virheet. Viimeistellään projektin suunnittelu- ja
määritysdokumentit sekä WWW-sivut. Lisäksi ohjelmisto valmistellaan
loppudemonstraatiota ja mahdollista laatupalkintoa varten.
2.7.2 Vaiheen tavoitteet
Kaikkien dokumenttien sekä ohjelmiston tulee olla luovuttamista
vailla valmiita.
2.7.3 Vaiheen ennakoidut tulokset
Ennakoidusti ohjelmisto on valmis luovutusta varten.
2.7.4 Vaiheen dokumentaatio
Lopputuotteen luovutuksen yhteydessä laaditaan loppuraportti
projektista. Siinä tarkastellaan projektin elinkaarta ja yritetään
vastata kysymykseen "Mikä on onnistunutta ja missä mentiin metsään?".
Loput dokumentit tarkennetaan siinä laajuudessa, että ne vastaavat
olemassa olevaa ohjelmistoa.
2.7 Luovutus
Kurssin dokumentti | Vastuu (tarkastaja) | Kuvaus |
Projektisuunnitelma | MV (PK) | Tarkennettu projektisuunnitelma |
Toiminnallinen määrittely | Av (Kaikki) | Tarkennettu toiminnallinen määrittely |
Tekninen määrittely | AV (Kaikki) | Tarkennettu tekninen määrittely |
Testiraportti | PK (Kaikki) | Raportti ohjelmiston lopullisesta testauksesta. |
Käyttöohje | JR (MV) | Ohjeet ohjelmiston asennuksesta, toiminnoista, virheilmoituksista, käyttöliittymästä sekä ylläpidosta. | Loppuraportti | MV (Kaikki) | Kuvaus projektin elinvaiheista, lopputuloksen vertailu alkuperäiseen suunnitelmaan sekä arvioita projektityöskentelystä ja käytetyistä resursseista. |
Edistymisraportti | JR (MV) | Kuvaus projektin nykytilasta |
LU-tuntiraportti | Kaikki | Luovutusvaiheeseen käytetyt työtunnit |
Mahdollisista jatkotoimenpiteitä projektin suhteen ovat mm.
Projektiin voidaan olettaa olevan käytettävissä n. 4 x 5 ov x 40 h/ov eli 800 työtuntia. Seuraavassa on arvio eri projektin vaiheisiin jokaiselta ryhmän jäseneltä kuluvasta ajasta. Vaiheen toteuduttua merkitään arvion perään toteutunut arvo. PS vaiheelle ei aika-arviota laadittu, joten arvio ja toteutunut on merkitty samoiksi.
MV | AV | PK | JR | Yhteensä (arvio) |
Toteutunut | |
---|---|---|---|---|---|---|
PS |
35 / 35 | 31 / 31 | 27 / 27 | 30 / 30 | 123 | 123 |
MÄ |
37 / 37.5 | 34 / 33 | 34 / 45 | 35 / 35 | 140 | 150.5 |
SU |
40 / 51 | 50 / 59 | 40 / 56 | 40 / 61 | 210 | 227 |
P1 |
73 / 55 | 72 / 55 | 75 / 56 | 72 / 52 | 292 | 218 |
P2 |
50 / 48 | 50 / 52 | 50 / 50 | 50 / 48 | 200 | 198 |
LU |
50 / - | 50 / - | 50 / - | 50 / - | 200 | |
Yhteensä |
285 / - | 287 / - | 276 / - | 277 / - | 1125 |
3.2.1 Projektin suunnittelu
Suunnitteluvaiheessa paljon aikaa kului aiheen määrittelemiseen sekä dokumenttien kirjoittamiseen. Lähtökohtana oli kuitenkin se, että suunnitteluun käytetyt resurssit maksavat itsensä takaisin projektin myöhemmissä vaiheissa.
3.2.2 Määrittely
Määrittelyvaiheen kuvaus on kohdassa 2.3. Oheiseen taulukkoon on listattu ryhmän jäsenille osoitettuja tehtäviä ja niihin käytetyt tuntiarviot.
3.2.3 Suunnittelu
Suunnitteluvaiheen kuvaus on kohdassa 2.4. Alla olevaan taulukkoon on listattu ryhmän jäsenille osoitettuja vastuualueita ja tehtäviä suunnitteluvaiheessa ja niihin arvioidut työtunnit.
3.2.4 Prototyyppi 1
Ensimmäisen prototyyppivaiheen kuvaus on kohdassa 2.5. Alla olevaan taulukkokuvaan on listattu eri työtehtäviin ensimmäisessä prototyyppivaiheessa arvioituja työtunteja.
3.2.5 Prototyyppi 2
Toisen prototyyppivaiheen kuvaus on kohdassa 2.6. Alla oleva gannt-kaavio havainnollistaa miten P2-vaiheessa on aikaa budjetoitu eri tehtäviin.
3.2.6 Luovutus
Luovutus-vaiheen kuvaus on kohdassa 2.7. Alla oleva gannt-kaavio havainnollistaa miten tässä vaiheessa on aikaa budjetoitu eri tehtäviin.
Kustannuksia muodostuu pitkin projektia. Projektin alussa eniten
kustannuksia voidaan katsoa aiheutuvan tehdystä työstä. Puhelin-,
bensa- ja monistuskuluja aiheutuu satunnaisesti, mutta niistä ei tulla
pitämään kirjaa sen tarkemmin (suuruudeltaan mitättömiä).
Työn lisäksi saatetaan joutua hankkimaan tarvittavia ohjelmistoja
ja mahdollisesti testityöasema ryhmän omaan käyttöön. Toistaiseksi
projektia pystytään viemään eteenpäin kuitenkin ryhmän omalla
laitteistokannalla, eikä tässä vaiheessa osata vielä ennustaa tarkkoja
hankintatarpeita.
Projektiryhmän työkustannukset lasketaan ryhmänjäsenten
vaihtoehtoiskustannusten perusteella. TEKin vuoden 1999 suositus
(reilut 60 mk/h) ei vastaa ryhmän keskimääräistä vaatimusta
tuntipalkalle, joka arvioidaan tässä vaiheessa olevan 100 mk/h.
Projektin kokonaishinnaksi näillä laskelmilla tulisi 933 h * 100
mk/h = 93300 mk. Tämä on projektin suunnitteluvaiheessa laadittu arvio
projektin kustannuksista (ilman laitteisto- ja ohjelmistokuluja).
4.1.1 Työasemat
Työ tehdään pääasiallisesti ryhmän jäsenten omilla koneilla.
Testausvaiheessa tullaan käyttämään myös asiakkaan omia järjestelmiä, kun
ohjelmaa testataan sen lopullisessa ympäristössään.
4.1.2 Ohjelmistot
Projektin ohjelmat toteutetaan GNU C++ ympäristössä. Ohjelmat
toteutetaan mahdollisimman ympäristöriippumattomiksi, siten että ne
kääntyvät sekä *NIX ja Win95/98/NT käyttöjärjestelmillä. Ohjelma
kehitetään pääosin Windows ja Linux ympäristöissä. Windows
ympäristössä voi käyttää cygnus
cygwin ohjelmistoa, josta löytyvät GNU perustyökalut ja
kirjastot windowsiin sovitettuna.
Välttämättömiä ovat GNU työkaluista GCC kääntäjä, GNU
make, sekä GNU bintools paketti. Kaikki ohjelmat ja dokumentaatio on
saatavilla ilmaiseksi (GNU-site).
Version hallintaan käytetään CVS version hallinta
järjestelmää. Tämä helpottaa ryhmätyöskentelelyä mahdollistaen
samanaikaisen lähdetiedostojen editoinin ilman suurempia
ongelmia. CVS:stä on olemassa myös windows versio graafisella
käytöliittymällä (Wincvs). Ohjelma on
saatavilla ilmaiseksi.
Lähdekoodien dokumentaatioon käytetään doxygen ohjelmistoa (doxygen). Lähdekoodiin lisätään kommentteihin tagit, joista saadaan
koottua automaatisesti HTML ja Latex dokumentit.
Dokumentteja kirjoittaessa pyritään koko projektin ajan säilyttämään
yhteneväinen linja tyylin ja laadun suhteen. Yhtenäisestä tyylistä
huolehditaan tarkastamalla dokumentti aina toisella (kuin kirjoittaja)
ryhmän jäsenellä. Laadusta vastaa koko ryhmä. Dokumentteja aloitetaan
kirjoittamaan kurssin ylläpitäjien antamien pohjien perusteella
mahdollisimman aikaisin, jotta deadlinet eivät pääse yllättämään ja
rokottamaan laatua.
Lähtökohtaisesti kaikki materiaali on WWW:ssä linkattuna projektin
kotisivulla. Eri dokumentteja editoidaan eri työkaluilla, mutta siirto
tapahtuu pääasiallisesti FTP:llä kotikoneilta ATK-keskuksen koneelle.
Dokumentoinnin kattavuudesta vastaa projektipäällikkö, mutta eri
dokumenttien vastuuta on jaettu eri jäsenille.
Lisäksi dokumentoinnissa noudatetaan lähtökohtaisesti seuraavia
periaatteita
Tärkeimpiä dokumentteja kuten asiakkaalle tuotteen mukana jaettavia
käyttöohjeita yms. voidaan toimittaa lisäksi vaihtoehtoisissa formaateissa
kuten PostScript ja MS Word. Uusimmat dokumentit on toimitettu
ainoastaan PDF-formaatissa.
Kaikista eri vaiheiden dokumenteista säilytetään alkuperäiset versiot
vaikka dokumentteja sinänsä kehitetään jatkuvasti. Näihin versioihin on
kiinteät linkit projektin kotisivulla.
4.3.1 Palaverit
Ryhmä kokoontuu kerran viikossa projektin tiimoilta, johon
osallistuvat kaikki jäsenet. Ryhmäpalaverissä käydään läpi projektin
tila, tehtävien edistyminen, mahdollisia ongelmia, seuraavan viikon
tehtävät sekä projektia koskevat päätettävät asiat.
Ohjelmatyökurssin aikataulun mukaisesti järjestetään muutama
katselmus, johon osallistuvat ryhmän jäsenet, asiakas sekä kurssin
henkilökuntaa. Viikko ennen katselmuksen ajankohtaa pidetään ryhmän
sisäinen palaveri, jossa käydään läpi katselmukseen menevien
dokumenttien ja koodin laatu.
Asiakkaan kanssa pyritään pitämään palavereja parin viikon
välein. Näin pyritään kumpikin osapuoli pitämään projektin
ajantasalla. Tarpeen vaatiessa palavereja pidetään tiuhemmin.
4.3.2 Työajan raportointi
Jokainen ryhmän jäsen raportoi kerran viikossa käyttämänsä
työtunnit. Tämä tapahtuu kurssin WWW-sivuilla olevalla
tuntiraportointijärjestelmällä. Projektipäällikkö kerää ryhmän
jäsenten raportoimat tunnit kerran kuukaudessa ja vertaa käytettyjä
tuntimääriä projektisuunnitelmaan. Näin projektipäällikkö voi
tarvittaessa tehdä muutoksia projektin aikatauluun ja tuleviin
suunnitelmiin.
4.3.3 Virheiden raportointi
Ohjelmiston testausvaiheessa havaittavista virheistä lähetetään
muille ryhmän jäsenille sähköpostitse ilmoitus. Ilmoituksessa tulee
olla kuvaus virheestä, kuinka se havaittiin sekä kuka on vastuussa
virheen korjauksesta. Lisäksi kaikki havaitut virheet talletetaan
erilliseen tietokantaan. Virheen tultua korjatuksi, korjauksesta
vastuussa ollut henkilö lähettää sähköpostitse muille ryhmän jäsenille
kuittauksen virheen korjaamisesta. Lisäksi hän päivittää
virhetietokantaa, korjauksen osalta.
4.3.4 Ryhmän sisäinen tiedonvälitys
Pääasiallisin tiedonvälityskanava ryhmän sisällä on
sähköposti. Akuuteissa tilanteissa käytetään puhelinta yksittäisen
henkilön kiinnisaamiseksi. Projektin kannalta tärkeimmät dokumentit on
nähtävillä projektin WWW-sivuilla, jonne kaikilla ryhmän jäsenillä on
pääsy. Viikottain pidettävissä ryhmäpalavereissa selvitetään projektin
tila ja tulevat tehtävät.
Riskienhallinnan tarkoituksena on kartoittaa mahdollisia
riskitekijöitä, jotka voivat vaikuttaa projektin onnistumiseen
negatiivisesti/positiivisesti. Tärkeintä on tiedostaa, että millaisia
riskejä on olemassa ja mitä toimenpiteitä on tehtävissä niiden
ehkäisemiseksi. Jokaisen projektin vaiheen lopussa tarkennetaan projektin
riskienhallintaa seuraavan vaiheen osalta.
Seuraavassa on taulukoitu mahdollisia riskejä projektin
onnistumiseen, keinoja niiden hallitsemiseen sekä riskin vaikutus
projektin toteutuessaan. Alla olevat riskit ovat olemassa koko
projektin ajan. Lisäksi on suuri joukko vaihekohtaisia riskejä.
3.3 Kustannusarvio
4. Työmenetelmät
4.1 Työkalut ja laitteistot
4.2 Dokumentointimenetelmät
4.3 Projektityön menetelmät
4.4 Riskien hallinta
Kuvaus | Hallintamenetelmät | Vaikutus |
Pula henkilöresursseista | Projekti suunnitellaan alusta lähtien toteutettavaksi olettamatta lisäresursseja. Ohjelmiston vaatimuksia ei lisätä ilman sen toteutusmahdollisuuksien analysointia. | Projekti ei valmistu ajallaan. |
Asiakas vetäytyy projektista | Asiakkaan kanssa tehdään sopimus projektin etenemisestä. Asiakas sitoutuu noudattamaan kurssin viitekehyksen mukaista aikataulua. | Projekti keskeytyy |
Asiakas vaatii uusia toimintoja tai muutoksia nykyisiin toimintoihin | Asiakkaan kanssa tehdään läheistä yhteistyötä projektin määrittely- ja suunnitteluvaiheessa. Lisämuutoksiin vaaditaan sekä ryhmän että asiakkaan puolto. | Projekti ei valmistu ajallaan |
Pula osaamisresursseista | Varataan riittävästi aikaa projektin eri vaiheille, käytetään aikaa huolellisten suunnitelmien tekemiseen | Työmäärä kasvaa, laatu kärsii, aikataulu venyy |
Ryhmän jäsen poistuu projektista | Ryhmän henki pidetään hyvänä ja luovana. Seurataan ryhmän jäsenten mielipiteitä projektin aikana. | Projekti keskeytyy tai ei valmistu ajallaan |
Valittu järjestelmäarkkitehtuuri on huono | Määrittely- ja suunnitteluvaiheessa analysoidaan useita mahdollisia vaihtoehtoja. | Projekti ei valmistu ajallaan |
Valitut salausalgoritmit ovat liian heikkoja | Nojaudutaan tunnettuihin vahvoihin salausalgoritmeihin, joille on olemassa tieteellistä tukea | Asiakas on hyvin vihainen |
Isojen lukujen aritmetiikka on liian hidas | Käytetään julkisia hyväksi todettuja toteutuksia | Projekti viivästyy |
Proxyjen välinen protokollassa on turvallisuusaukkoja | Kaikki mahdolliset tapaukset protokollassa analysoidaan | Asiakas on hyvin vihainen |
Proxyjen sisäinen kompleksisuus on liian suuri | Pyritään pitämään arkkitehtuuri mahdollisimman yksinkertaisena | Projekti viivästyy huomattavasti | Yhteensopivuusongelmia eri ympäristöjen kanssa | Käyttämällä asiakkaan teknistä tietämystä ympäristöistä | Projekti viivästyy aikataulusta tai keskeytyy |
Gygwin kirjastototeutus POSIX threads -kirjastosta ei ole tarpeeksi toimiva | Toteutetaan asiakkaan proxyn monisäkeisyys Windowsin omilla säikeillä | Projekti viivästyy |
Puutteellinen ohjelmiston testaus | Testaus suoritetaan useassa vaiheessa. Testauksen laajuutta pyritään suurentamaan asteittain | Projekti viivästyy ja ohjelmiston laatu kärsii |
Salaustoimintojen testaukseen ei pätevyyttä | Salausalgoritmit pyritään testaamaan julkisesti saatavilla olevilla testivektoreilla. | Ohjelmiston laatu kärsisi |
Ohjelmiston integrointi asiakkaan ympäristöön ongelmallinen | Asiakas pidetään tiiviisti mukana ohjelmiston kehityksessä ja testauksessa | Projekti viivästyy tai keskeytyy |
4.4.1 Projektin suunnittelu
Suunnitteluvaiheessa moni asia on epäselvä ja on suuri riski tehdä hätiköityjä päätöksiä. Asiakkaan tarvetta ei kartoiteta riittävän perusteellisesti, aikataulu voidaan suunnitella liian tiukaksi, tehtävät voidaan jakaa tehottomasti, tarvittavista esitiedoista ja lähteistä ei oteta riittävän ajoissa selvää jne.
4.4.2 Määrittely
Määrittely muodostaa pohjan koko ohjelmistolle ja on näinollen syytä tehdä huolella. Riskejä epäonnistumiseen aiheuttaa väärät lähtötiedot, huonosti määritelty tuote, puutteellinen yhteistyö asiakkaan kanssa, väärä arvio käytettävissä olevasta ajasta ja osaamisresursseista jne.
4.4.3 Suunnittelu
Luistaminen suunnitteluvaiheessa aiheuttaa moninkertaisen työn toteutusvaiheissa. On riski, että aika ei anna myöten tehdä suunnittelua huolellisesti ja näin joko laatu kärsii tai aikataulu pettää (tai molemmat). Suunnittelu voidaan tehdä myös virheellisesti pohjautuen esim. virheelliseen määrittelyyn. Tällöin suunniteltua tuotetta ei ehkä koskaan saada valmiiksi tai ei ainakaan sellaisena kuin asiakas sen haluaa.
4.4.4 Prototyyppi 1
Proto tarkoittaa jo jonkinasteista toiminnallisuutta tuotteessa eli ei riitä pelkkä paperidokumentaatio. Se mitä protossa toteutetaan tulee olla huolellisesti punnittu, jotta resurssit riittävät ja toteutunut proto toimii halutulla tavalla. On riski, että koodaaminen ei pysy aikataulussa eikä proto täytä tehtäväänsä.
4.4.5 Prototyyppi 2
Asiakas antaa palautetta myös tästä kehittyneemmästä proto-versiosta. On riski, ettei kokeiluversio olekaan tarpeeksi lähellä asiakkaan tarvetta. Jos aikataulu pettää, ei protoon saada toteutettua riittävää toiminnallisuutta eikä haluttua havainnollisuutta saavuteta.
4.4.6 Luovutus
On riski, ettei tuote vastaa asiakkaan odotuksia. Syynä voi olla
laatu tai aikataulu. On riski, että kaikki menee pieleen juuri viime
tipassa.
4.5 Jäsenten roolit ja tehtävänjako
Henkilö | Rooli | Tehtäväalueet |
Petteri Kaski | Laatupäällikkö, Ohjelmistosuunnittelija |
Dokumentoinnin, koodin ja projektin hallinnan laatuvaatimusten seuranta, salausalgoritmien suunnittelu ja toteutus. Proxyjen välisen yhteyden testaus. |
Juha Räsänen | Ohjelmistosuunnittelija | Avaintenhallinnan, sekä proxyjen ulkopuolisen rajapinnan suunnittelu, toteutus ja testaus. Käyttöliittymän testaus. |
Markus Vartiovaara | Projektipäällikkö, Asiakasvastaava, WWW-vastaava |
Projektin hallinta ja ohjaus, yhteydenpito asiakkaaseen, projektin WWW-sivujen ylläpito. Käyttöliittymän suunnittelu ja testaus. |
Arto Vuori | Pääsuunnittelja | Järjestelmän arkkitehtuurin suunnittelu, Proxyjen välisen yhteyden suunnittelu, toteutus. Salausalgoritmien testaus. |
5.1.1 Raportit Jokaisen projektin vaiheen lopussa laaditaan edistymisraportti projektin tilasta. Siinä kartoitetaan mitä on suoritettu ja mitä ongelmia on ilmennyt. Lisäksi asiakkaalle raportoidaan jokaisen vaiheen jälkeen mitä projektissa on saavutettu. Tämä voi olla sama kuin edistymisraportti.
5.1.2 Palaverit
Ryhmän sisäisiä palavereja pidetään viikottain ja tarvittaessa jopa useamminkin. Näissä käydään läpi projektin tila ja kuinka projektin on edistynyt. Asiakkaan kanssa pidetään palavereja pari kertaa kuukaudessa tarpeen mukaan, joissa asiakkaalle kerrotaan mitä projektissa on jo suoritettu ja mitä on suunnitelmissa seuraavaan palaveriin asti.
5.1.3 Katselmukset
Ohjelmatyökurssin mukaisesti pidetään projektin aikataulussa muutama katselmus, joissa on läsnä ryhmän lisäksi asiakkaan edustaja sekä kurssin henkilökuntaa. Ennen katselmusta ryhmän pitää sisäisesti oman esikatsemuksen, jossa käydään läpi katselmukseen menevien dokumenttien ja koodien julkaisukelpoisuus ja laadullisuus.
5.1.4 Tarkastuskäytännöt
Jokaisessa projektin vaiheessa laadituille dokumenteille on nimetty vastaava tarkastaja, jonka tehtävänä on kriittisesti käydä läpi ko. dokumentti ja antaa ryhmälle palautetta. Ennen dokumenttien virallista luovutusta yhtään mihinkään, jokainen ryhmän jäsen käy dokumentit vähintään kerran läpi ja ryhmän esikatselmuksessa käydään dokumentit läpi kootusti.
Sama käytäntö kuin dokumenteilla pätee myös demoissa esitettäviin toteutettuihin ohjelmistoihin. Jokaisella toteutetulla modulilla on eri testaaja kuin suunnittelija ja toteuttaja. Ennen demoa kaikki luovutettavat tarkastetaan ryhmän omassa demossa ja laatupäällikkö tarkastaa koodin laadun.
5.1.5 Mittarit
Projektipäällikkö seuraa koko ajan projektin aikataulun paikkaansapitävyyttä ja ilmoittaa projektin eri osapuolille aikataulumuutoksista sekä päivittää projektisuunnitelmaa. Erityisesti valvotaan projektin eri tehtävien aikataulun venymistä.
Kunkin vaiheen päättyessä verrataan toteutuneita työmääriä projektisuunnitelmassa arvioituihin lukuihin. Projektipäällikkö päivittää projektisuunnitelmaa jokaisen vaiheen päätyttyä työmäärien osalta. Vaiheen päätyttyä seuraavassa ryhmäpalaverissa analysoidaan ryhmän kesken toteutuneiden ja arvioitujen työmäärien erotusta.
Projektin eri vaiheiden aikana projektipäällikkö seuraa eri riskien todennäköisyyksiä kullekin tehtävälle ja mahdolliset muutokset päivitetään projektisuunnitelmaan kohtaan "Riskienhallinta".
Projektin prototyyppivaiheissa seurataan testauksissa ilmenneiden
virheiden määrää, laatua ja kuinka nopeasti virhe on saatu
korjattua. Virheet välitetään ryhmän jäsenille sähköpostitse sekä
päivitetään erilliseen virhetietokantaan.
Aiheeseen liittyvää sanastoa ja termejä on selitetty erillisessä sanastossa.
Lähteet ovat erillisessä lähdeluettelossa.
Projektin eri vaiheet, kurssin palautukset, asiakaspalaverit ja
muu aikataulu ovat nähtävissä erillisestä aikataulusta.
6. Muuta
6.1 Sanasto
6.2 Lähteet
6.3 Aikataulu