Sisällys
1 Projektin
yleiskuvaus
1.1 Työn
aihepiiri
1.2 Prosessimalli
2 Aikataulu
3 Resurssit
4
Organisaatio
4.1 Osallistujat
4.2 Vastuiden
jakaminen
4.3
Ryhmän työskentelytavat
5
Kehitys- ja käyttöympäristö
6
Toteutusmenetelmät ja standardit
6.1 Dokumentit
6.2 Suunnittelu
6.3 Ohjelmakoodi
7
Riskien hallinta
8
Laadun varmistus
9
Tuotteenhallinta
9.1 Versionhallinta
9.2 Varmuuskopiointi
10 Projektin
päättäminen
Projektin asiakas on Juha Taina, jota projektiryhmässä edustaa ryhmän ohjaaja Lauri Aarnio. Projektin aihe liittyy asiakkaan väitöskirjatutkimukseen, ja työn tutkimusalueita ovat tosiaikajärjestelmät ja suorituskykyanalyysi. Asiakas on aiemmin käyttänyt suorituskykyanalyysissä suurta määrää laajoja laskentataulukoita. Menetelmää halutaan automatisoida, koska se on ollut hidas, työläs ja virhealtis.
Projektiryhmä on antanut projektin nimeksi TAVI.
Projektin tarkoituksena on tuottaa visuaalinen suorituskykyanalyysityökalu, jonka avulla voidaan sekä suunnitella että analysoida tapahtumapohjaisia järjestelmiä. Työkalu perustuu jonoanalyysiin ja sitä varten kehitettyihin valmiiksi annettuihin kaavoihin.
Valmiissa työkalussa on mahdollisuus piirtää
analysoitavassa järjestelmässä olevat palvelupisteet ja
muista palvelupisteistä niihin saapuvat palvelupyynnöt, jotka
kuvataan särminä palvelupisteiden välillä (kuva 1).
Jokaiseen palvelupisteeseen voi saapua useita palvelupyyntötyyppejä,
joista jokaisella on oma vaadittu palveluaika. Kaikkiin palvelupisteisiin
ei välttämättä kerry palvelupyyntöjonoa. Lisäksi
malliin on voitava lisätä muuttujia, joita voidaan käyttää
palvelupyyntöjen saapumistiheyden ja palvelun kestoajan arviointiin.
Pääpaino työssä on visuaalisella suunnittelulla ja
toteutuksella.
kuva 1: Tapahtumapohjaisten jonomallien visualisointi
XP perustuu pienissä osissa tehtävään jatkuvaan suunnitteluun, testaukseen ja toteutukseen. Se sopii parhaiten ohjelmistotuotantoprojekteihin, joissa koko projektin kattavia tarkkoja määrittelyjä on vaikeaa tehdä heti projektin alkuvaiheessa.
Prosessimallin mukaisesti projekti etenee iteratiivisina kierroksina. Kunkin kierroksen alussa asiakas toimittaa ryhmälle nipun käyttäjäkertomuskortteja, joihin on vapaamuotoisesti kirjoitettu toteutettavaksi haluttavia toimintoja. Projektin jäsenet arvioivat tehtävien vaatiman työmäärän ja valitsevat korteista ne, jotka he ehtivät seuraavan kierroksen aikana toteuttaa. Valinnassa noudatetaan asiakkaan esittämää toteuttamisjärjestystä.
Tässä projektissa kunkin toteutuskierroksen pituus on 3 viikkoa, ja projektin aikana ryhmä ehtii tehdä kolme iterointikierrosta. Jokaista kierrosta seuraa viikon mittainen jakso, jonka aikana:
Projektin tarkoituksena on myös kokeilla XP-prosessimallia. XP:n keskeisiä ominaisuuksia ovat mm. pareittain ohjelmointi, testitapausten luominen etukäteen sekä jatkuva testaus ohjelmoinnin aikana. Eräs projektin tavoitteista on testata parityöskentelyn toimivuutta.
XP perustuu minimaaliseen dokumentointiin, eikä tuota kaikkia perinteisen vaihejakomallin mukaisia asiakirjoja. Tämän takia ryhmän jäsenten välinen avoin kommunikointi, ohjelmakoodin huolellinen dokumentointi ja testien kirjoittaminen on erityisen tärkeää. Ohjelmistoon liittyvät dokumentit generoidaan ohjelmakoodista englanninkielisinä JavaDoc-kuvauksia.
Ennen ohjelmoinnin alkua ryhmä arvelee työn olevan kooltaan 4000 LOC (lines of code). Ensimmäisen toteutuskierroksen jälkeen koodia on kertynyt noin 3000 LOC.
Kaikki kevään 2002 ohjelmistotuotantoprojektit esittelevät työnsä yhteisessä esittelytilaisuudessa10.5.2002. Ryhmä pyrkii saamaan työnsä valmiiksi 1.5.2002 mennessä.Projektin aikataulu on esitetty kuvassa 2.
kuva 2: Projektin aikataulu Gantt-kaaviona
Henkilöstöresurssit on esitetty luvussa 4. Jos ryhmän jäsenten aikataulujen yhteensovittamisessa tulee ongelmia, XP:n ehdottomasta parityöskentelyvaatimuksesta jouduttaneen hieman tinkimään. Projektin toteutuksen ajan jokainen projektin jäsen käyttää projektityöhön keskimäärin 20 viikkotyötuntia.
Juha Taina | . | . | |
Projektin vastuuhenkilö | Turjo Tuohiniemi | . | . |
Projektin ohjaaja | Lauri Aarnio | lauri.aarnio@helsinki.fi | 050-4836606 |
Projektiin osallistuvat opiskelijat | Kimmo Airamaa | kimmo.airamaa@helsinki.fi | 045-6744503, 1355773 |
Esko Kupiainen | esko.kupiainen@helsinki.fi | . | |
Liisa Länkä | liisa.lanka@hut.fi | 050-3303493 | |
Janne Petäjä | janne.petaja@helsinki.fi | 040-5147586 | |
Heikki Tuominen | heikki.tuominen@helsinki.fi | 040-5674072 | |
Johannes Ukkonen | johannes.ukkonen@helsinki.fi | 050-3016916 |
taulukko 1: Osallistujat
Projektin johtoryhmään kuuluu projektin ohjaaja, vastuuhenkilö sekä asiakas.
Kukin projektin jäsen on tehnyt Helsingin yliopiston kanssa sopimuksen ohjelmistotuotantoprojektiryhmän tuotosten immateriaalioikeuksista. Helsingin yliopisto antaa kaikkeen sellaiseen materiaaliin, joihin se on saanut immateriaalioikeudet tällä tavalla, avoimen ohjelmistokehityksen periaatteiden mukaisesti vapaan käyttöoikeuden GNU General Public Licensen tai valintansa mukaan GNU Lesser General Public Licensen muodossa.
Jäsen | |
Ohjaaja | Lauri Aarnio |
Projektipäällikkö | Liisa Länkä |
Java-vastaava | Johannes Ukkonen |
Käyttöliittymäsuunnittelu | Kimmo Airamaa |
Tuotteenhallinta | Heikki Tuominen |
Testausvastaava | Janne Petäjä |
Projektin WWW-sivut | Esko Kupiainen |
taulukko 2: Vastuut
Ohjaaja toimii asiakkaan edustajana ja laatii ryhmälle prosessimallin mukaiset käyttäjäkertomukset. Hän myös raportoi projektin etenemisestä asiakkaalle ja projektin vastuuhenkilölle.
Projektipäällikön vastuulla on:
Java-vastaava määrittelee projektin toteutuksessa käytettävän Java-standardien mukaisen ohjelmointityylin sekä luokkien, metodien ja muuttujien nimeämistavan. Hän neuvoo tarvittaessa muita ryhmän jäseniä ohjelmointikielen käyttöön liittyvissä ongelmissa. Tavoitteena on, että kaikki projektin jäsenet tuottavat yhtenäistä Java-koodia. Ohjelmakoodi kommentoidaan ja muuttujat nimetään englanniksi.
Tuotteen hallinnasta vastaava henkilö huolehtii versionhallintaympäristön (CVS) rakentamisesta sekä varmuuskopioinnista. Hän myös opastaa muita ryhmän jäseniä CVS:n käytössä.
Testauksesta vastaava jäsen huolehtii testien laadunvarmistuksesta. Hänen vastuullaan on, että valitut testit ovat riittäviä.
Kokouksiin laaditaan esityslista, jonka mukaisesti kokoukset etenevät. Kaikista kokouksista kirjoitetaan pöytäkirjat, jotka talletetaan projektin kotihakemistoon sekä projektikansioon. Ellei toisin sovita, projektipäällikkö on kokouksen puheenjohtaja. Sihteeri valitaan aina kokouksen alussa. Poissaoloista ilmoitetaan kaikille ryhmän jäsenille etukäteen sähköpostilla.
Kokousten ulkopuolella ryhmä käyttää keskinäisessä viestinnässään sähköpostia, WWW-sivuja ja kiireellisissä tapauksissa myös puhelimia. Sähköpostiviestit lähetetään tiedoksi myös ohjaajalle.
Projektin yhteystiedot ovat:
Kukin projektin jäsen pitää henkilökohtaista tuntikirjanpitoa. Koko projektin keston ajalta arvioitu työajan määrä on 20 viikkotyötuntia/henkilö.
Versionhallinta toteutetaan käyttäen CVS-järjestelmää. Kaikki muutokset ohjelmaan tehdään CVS:n kautta. Dokumenttien hallinta tehdään keskitetysti yhden henkilön kautta. Tekstinkäsittelyohjelmistona toimii Microsoft Word (Office97) ja projektiaikataulun Gantt-kaavio toteutetaan Microsoft Project98 -ohjelmalla.
Sovellusalustana käytetään Java-virtuaalikonetta Linuxilla ja Windowsilla, ja tiedostojen käsittelyssä käytetään Emacs-editoria.
Työtuntilistat tuotetaan ja säilytetään ainoastaan paperiversioina. XP:n mukaiset käyttäjäkertomukset seurantatietoineen talletetaan myös sähköiseen muotoon projektin kotihakemistoon, mutta niitä ei julkaista projektin www-sivuilla.
Miten riskin voi välttää |
|
Riskin todennäköisyys | Toipumissuunnitelma | |
Ryhmä ei ymmärrä asiakkaan tarpeita | Kiinteä ryhmän ja asiakkaan vuorovaikutus | Korkea | Matala | Asiantuntija ryhmän ulkopuolelta |
Systeemimääritykset tehdään vajavaisesti tai virheellisesti | Valitun prosessimallin (XP) noudattaminen | Korkea | Keski | Prosessin sykli takaisinpäin |
Muutostenhallinta vaillinaista | Versionhallinta työkalun käyttö | Keski | Matala | Menetelmien tarkastus |
Valittu teknologia muuttuu | Alkuperäinen teknologia valitaan oikein | Korkea | Matala | Projekti aloitetaan alusta |
Ryhmä on erimielinen - työkuorma jakautuu epätasaisesti | Parityöskentely, tarkastuspisteet | Keski | Korkea | Tehtävien uudelleen arviointi |
Asiakkaan tarpeet muuttuvat | Prosessimallin valinta huomioimaan muutoksia | Matala | Keski | Uudet ominaisuudet seuraavaan jaksoon |
Työ laajenee arvaamattomasti | Laajennukset ryhmän yhteisellä päätöksellä | Matala | Matala | Työn mitoittaminen alussa sovittuun tasoon |
Aikarajat ovat epärealistisia | Alkuperäinen aikataulu tehtävän vaativuuden mukaan | Keski | Keski | Työn laajuus arvioidaan uudestaan |
Projektin ihmisiltä puuttuu tarvittavia taitoja | Tehtävän realistinen arviointi projektisuunnitelmassa | Matala | Matala | Koulutus, ryhmän ulkopuolinen apu |
Asiakkaan luottamus projektin hoitajiin vähenee tai katoaa | Asiakkaan pitäminen ajan tasalla | Korkea | Matala | Luottamuspulan syyn korjaaminen |
Osa ryhmästä sairastuu tai lopettaa | Varahenkilöjärjestelmä | Keski | Keski | Lisäkuorma varahenkilölle |
Tehty työ tai osa siitä katoaa. | Varmuuskopiointi, versionhallinta | Korkea, | Matala | Varmuuskopiot: TKTL ja henkilökohtaiset |
Projektin aikana on tarkoitus järjestää kaksi FTR:ää. Katselmukset järjestetään 25.3. ja 2.5. eli kolmen viikon mittaista koodausjaksoa seuraavalla viikolla. Varsinaisten katselmuksien lisäksi suuri osa koodin tarkistamisesta suoritetaan XP-prosessimallin mukaisesti parityöskentelyn avulla ohjelmakoodin kirjoittamisen yhteydessä. Projektiryhmä päätti pitää katselmuskokoukset, vaikka ne eivät varsinaisesti XP-prosessimalliin kuulu.
Tuotteen korkea laatu pyritään varmistamaan testauksella, koodikatselmoinneilla ja ennenkaikkea XP:n mukaisella parityöskentelyllä.
LIITE 1