1. Johdanto
2. Projektin eteneminen
3. Lopputulokset
4. Projektityöskentely
5. Jälkilaskelmat
Määrittelyvaiheen
aikana suunniteltiin alustavasti käyttöliittymät
ja alettiin algoritmeihin sekä kuvaformaateihin tutustumista,
suurin osa vaiheesta oli tutkimustyötä.
Ohjelmiston toiminnot suunniteltiin
toiminnalliseen määrittelyyn, tässä
vaiheessa ryhmälläkin oli jo muodostunut melko selvä kuva ohjelmistosta
jota oltiin tekemässä ja sen vaatimuksista.
Koska koulun PC-luokkiin ei oltu asennettu Visual C++:aa, oli
Windows-käyttöliittymän tekoon tarvittavan laitteiston saaminen
vielä hämärän peitossa.
Suunnitteluvaiheessa suunniteltiin ohjelmiston
arkkitehtuuri
ja tehtiin alpha-proto joka osasi jo kätkeä sanomia
yksinkertaiseen PGM kuvaformaattiin. JPEG ja GIF kuvaformaateista
käytiin palavereja asiakkaan kanssa ja tehtiin alustavat suunnitelmat
niissä käytettävistä kätkemisalgoritmeista.
Windows-käyttöliittymän tekoa ei vieläkään päästy aloittamaan. Nyt
ongelmana oli käyttöön saadun tietokoneen liian vähäinen muisti. Tässä
vaiheessa asialla alkoi olla jo melkoinen kiire sillä VC++ ei ollut
kenellekään tuttu joten ohjelmiston opetteluunkin täytyi varata aikaa.
Prototyyppi 1 vaiheessa tuli vastaan ensimmäiset
todelliset ongelmat. Ensinnäkään Windows käyttöliittymästä ei saatu
toimivaa versiota vielä tässä vaiheessa. Aivan edellisen vaiheen lopulla
saatiin Windows käyttöliittymän tekoon tarvittavat laitteisto-ongelmat
ratkaistua, joten toimiva Windows versio prototyyppi1 vaiheessa
laitettiin projektisuunnitelmaan:
olihan sen tekemiseen yli puolitoista kuukautta aikaa ja suurin osa
koodista (kirjasto) oli jo valmiina. Tässä vaiheessa
tilattiin Visual C++ ohjelmisto, mutta sen saaminen kestikin reilut
kolme viikkoa, eikä jäljellä ollut aika aivan riittänyt toimivan
käyttöliittymän aikaansaamiseksi (VC++ ohjelmiston opettelu vei
odotetusti melkoisesti aikaa). Ohjelmiston olisi toki voinut tilata jo
aikaisemminkin mutta kukaan ei osannut ennakoida näin pitkää viivettä.
Toinen vaiheen ongelma oli JPEG jota ei saatu liitettyä kirjastoon
koska käytettäväksi valittu kirjasto osoittautui luultua monimutkaisemmaksi.
Ongelmien kanssa painiskeltaessa jäi testaus melko vaatimattomaksi.
Prototyyppi 2 vaiheeseen oli tehty tiukka aikataulu,
koska vaiheen omien tehtävien lisäksi edellisessä vaiheesta oli jäänyt
melkoisesti tekemättä. Tällä kertaa aikataulu toimi melko hyvin,
Windows versio saatiin toimimaan ja sekä GIF että JPEG lisättiin
kirjastoon. JPEG tosin saatiin toimimaan sen verran myöhään että
sitä ei ehditty liittämään Windows versioon mukaan.
Testauksessa kävi ilmi vakava yhtensopivuusvirhe, Windowsilla kätkettyjä
sanomia ei pystytty purkamaan Unix:ssa ja päinvastoin.
Luovutusvaiheessa korjattiin edellisen vaiheen testauksessa havaittu yhteensopivuusvirhe ja lisättiin JPEG Windows versioon. Lisäksi optimoitiin koodia ja paranettiin sen luettavuutta, ja yleensäkin paranneltiin monia pikkukohtia asiakkaan ehdotuksien ja omien ideoiden pohjalta. Tässä vaiheessa myös kirjoitettiin uusi dokumentti jossa kuvataan tarkasti kirjastossa käytetyt algoritmit.
Projekti onnistui kaiken kaikkiaan hyvin. Yksi tärkeimmistä syistä projektin onnistumiselle oli suunnitteluvaiheessa huolellisesti suunniteltu ohjelmiston arkkitehtuuri. Arkkitehtuuri toimi hyvin eikä sitä tarvinnut enää projektin myöhemmissä vaiheissa muutella, vaan voitiin keskittyä muihin ongelmiin.
Kurssin WWW-sivulla olleita raportointityökaluja olisi voitu
käyttää tehokkaammin. Nyt tuntiraportointi tehtiin vain kerran
vaiheen lopussa, sen sijaan että sitä olisi jatkuvasti päivitetty
vaiheen aikana.
Myös virheraportintijärjestelmää käytettiin vähän turhan laskasti.
Virheet yleensä lähetettiin ensin sähköpostilla ja raportointiin
järjestelmään vasta jos virhettä ei lähipäivinä saatu korjattua.
Syy raportointijärjestelmän laiskaan hyödyntämiseen on lienee se,
ettei ryhmällä pitkään ollut edes tietoa koko järjestelmän
olemassaolosta, ja se ehti jo tottua virheiden raportointiin
sähköpostin välityksellä.
Seuraavassa taulukot suunnitelluista ja toteutuneista työtunneista eri vaiheissa:
Tommi L | Tommi J | Vesa P | Lasse H | Yhteensä | |
---|---|---|---|---|---|
PS | 10 | 15 | 15 | 10 | 50 |
MÄ | 30 | 30 | 25 | 40 | 125 |
SU | 55 | 75 | 35 | 60 | 225 |
P1 | 45 | 45 | 70 | 40 | 200 |
P2 | 50 | 30 | 50 | 45 | 175 |
LU | 10 | 5 | 5 | 5 | 25 |
Yhteensä | 200 | 200 | 200 | 200 | 800 |
Tommi L | Tommi J | Vesa P | Lasse H | Yhteensä | |
---|---|---|---|---|---|
PS | 16 | 20 | 17 | 14 | 67 |
MÄ | 27 | 26 | 21 | 34 | 108 |
SU | 31 | 78 | 29 | 31 | 169 |
P1 | 49 | 12 | 80 | 47 | 188 |
P2 | 68 | 52 | 55 | 63 | 238 |
LU | 35 | 37 | 40 | 28 | 140 |
Yhteensä | 226 | 225 | 242 | 217 | 910 |
Kuvaformaatteihin tutustumiseen ei tarvittu ihan niin paljon aikaa kun oli suunniteltu. Lisäksi kaikki ryhmän jäsenet eivät perehtyneet kaikkiin algoritmeihin yksityiskohtaisesti, vaan keskityttiin enemmän vain niihin algoritmeihin joiden kanssa kukin joutui tekemisiin projektin aikana.
Koodaukseen varattu aika ylittyi lähes joka vaiheessa, paitsi suunnitteluvaiheessa jossa alpha prototyyppi saatiin valmiiksi ilman suurempia ongelmia. Mutta varsinkin projektin loppupuolella virheiden korjaus ja ohjelman viimeistely veivät yllättävän paljon aikaa.
Dokumentointiin käytettiin lopussa reilusti enemmän aikaa kun oli suunniteltu. Syynä oli lähinnä Windows version on-line help, jonka tekeminen osoittautui melko monimutkaiseksi. Lisäksi päätimme tehdä yhden lisädokumentin, jossa kuvataan tietovirtojen ja algoritmien toimintaa teknisellä tasolla.
PS | +/- | MÄ | +/- | SU | +/- | P1 | +/- | P2 | +/- | LU | +/- | Yhteensä | +/- | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Luennot | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 0 |
Opiskelu | 11 | 0 | 63 | -30 | 21 | -10 | 20 | -10 | 0 | 0 | 0 | 0 | 115 | -50 |
Kokoukset | 20 | 0 | 18 | -2 | 12 | 0 | 16 | 0 | 3 | -17 | 0 | 0 | 69 | -19 |
Projektinhallinta | 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 0 |
Suunnittelu | 0 | 0 | 0 | 0 | 40 | -16 | 60 | 0 | 3 | -2 | 0 | 0 | 103 | -18 |
Koodaus | 0 | 0 | 0 | 0 | 62 | -35 | 54 | 4 | 195 | 50 | 72 | 32 | 383 | 51 |
Testaus | 0 | 0 | 0 | 0 | 0 | 0 | 4 | -16 | 13 | -7 | 8 | -2 | 25 | -25 |
Dokumentointi | 18 | 0 | 27 | 15 | 34 | 5 | 34 | 10 | 24 | -16 | 60 | 40 | 197 | 54 |
Yhteensä | 67 | 0 | 108 | -17 | 169 | -56 | 188 | -12 | 238 | 8 | 140 | 70 | 910 | -7 |
(P2 ja LU vaiheisiin varattiin enemmän aikaa kuin mitä oli alunperin
suunniteltu, joten niiden +/- sarake ei täsmää
taulukossa 1 esitettyjen arvojen kanssa)