`"






















KIURU
Tietotekniikan sovellusprojekti
Toni Hilpinen
Marko Koivuniemi
Jussi Mäkinen
Miika Nurminen
Projektiraportti
15.1.2003
Jyväskylän yliopisto
tietotekniikan laitos

Kiuru-projektin tietoja



Tekijät:  
Toni Hilpinen (hilpinen@cc.jyu.fi)
Marko Koivuniemi (koimark@cc.jyu.fi)
Jussi Mäkinen (jusmaki@cc.jyu.fi)
Miika Nurminen (minurmin@cc.jyu.fi)
Yhteystiedot:   Työtila AgC222.2, puh.nro. (014) 260 4963, sähköpostilistojen osoitteet kiuru@korppi.jyu.fi ja kiurulaaja@korppi.jyu.fi.
Työn nimi:   Kiuru-projekti, projektiraportti
Työ:   Projektiraportti tietotekniikan sovellusprojektiin
Tiivistelmä:   Kiuru-projekti toteutti Jyväskylän yliopiston tietotekniikan laitoksella toteutettuun Korppi-järjestelmään WWW-pohjaisen tilanvaraus- ja varausvahvistusosion. Projektiraportissa kuvataan projektin taustoja ja projektille asetettuja tavoitteita, projektiorganisaatiota sekä suunnitelmien toteutumista ja projektin onnistumista.
Avainsanat:   Salivaraus, kurssien opetustapahtumat, resurssivaraus, WWW-sovellus, Korppi-järjestelmä, Timmi-järjestelmä

Versionhallinta



Versio Päiväys Tehnyt Muutokset
0.12.1.2003Jussi MäkinenEnsimmäinen versio
0.213.1.2003Jussi MäkinenPieniä muutoksia
0.314.1.2003Jussi MäkinenMuokattu lukua 3
0.415.1.2003Miika NurminenLisätty omia kommentteja

Contents

1  Johdanto
2  Termejä
    2.1  Aihepiirin yleisiä termejä
    2.2  Teknisiä termejä
3  Projektin taustaa ja tavoitteita
    3.1  Salivarausohjelmistojen taustaa
    3.2  Korppi-järjestelmän taustaa
    3.3  Projektille asetettujen tavoitteiden toteutuminen
    3.4  Oppimistavoitteet ja niiden toteutuminen
    3.5  Aihepiiriin liittyviä tulevaisuuden ideoita
4  Projektin resurssit ja organisaatio
5  Projektiryhmän tehtävät ja niiden jakautuminen
6  Projektin aikataulu
7  Projektin riskit ja ongelmat
8  Henkilökohtaisia arvioita projektista
    8.1  Toni Hilpinen
    8.2  Marko Koivuniemi
    8.3  Jussi Mäkinen
    8.4  Miika Nurminen
9  Yhteenveto

1  Johdanto

Kiuru-niminen tietotekniikan sovellusprojekti oli jatkoa Kotka-, Korppi-, Kolibri- ja Koppelo"-projekteille. Kiuru toteutti Korppi"-järjestelmään tilanvarausmoduulin ja rajapintayhteyden Yomi Oyj:n Timmi"-järjestelmään. Kiuru-ryhmän koodi on julkaistu GPL-lisenssin alaisuudessa.
Syksyn 2002 Kiuru-projektiryhmään kuuluivat tietotekniikan opiskelijat Toni Hilpinen, Marko Koivuniemi, Jussi Mäkinen ja Miika Nurminen. Tilaajana toimi Jyväskylän yliopistolta hallintovirasto ja tietotekniikan laitos. Muut projektiorganisaatioon kuuluneet henkilöt esitellään luvussa 4.
Projektiraportissa kuvataan projektin kulkuun liittyneitä suunnitelmia ja niiden toteutumista. Projektiraportissa tarkastellaan aikataulua, projektin tavoitteiden toteutumista, projektin resursseja, projektin vastuualueita ja niiden jakautumista sekä arvioitujen riskien ja toteutuneiden ongelmien ratkaisemista.
Projektiryhmä laatii myös sovellusraportin, jossa käsitellään tarkemmin sovelluksen rakennetta ja ominaisuuksia. Projektiryhmä muokkaa myös aiemmin tehtyä Kotka-tietokantaraporttia. Projektiryhmä on laatinut jo aiemmin projektisuunnitelman, sovellussuunnitelman, vaatimusmäärittelyn, haastatteluraportin ja testaussuunnitelman.
Luvussa 2 esitellään aiheeseen oleellisesti liittyviä termejä. Luvussa 3 käsitellään projektin taustoja sekä tavoitteita ja niiden toteutumista. Luku 4 esittelee projektin organisaation ja resurssit. Luvussa 5 käsitellään projektin vastuualueita sekä niiden jakautumista projektiryhmän jäsenten kesken. Luku 6 kuvaa projektin toteutuneen aikataulun. Luvussa 7 arvioidaan projektiin liittyneitä riskejä, ongelmia ja niiden ratkaisuja. Luvussa 8 projektiryhmän jäsenet kertovat omista kokemuksistaan liittyen projektiin.

2  Termejä

Luvussa on kuvataan termejä, jotka auttavat ymmärtämään dokumentteja paremmin. Tekniset termit on pääosin listattu sellaisia henkilöitä varten, joilla ei ole ohjelmointitaustaa.

2.1  Aihepiirin yleisiä termejä

Seuraavat termit liittyvät salinvarausprosessiin:
Korppion Jyväskylän yliopistossa joidenkin laitoksien käyttämä opetus- ja tutkimushallintajärjestelmä.
Kotkaon Korppi-järjestelmän tietokanta.
Maksajaon henkilö tai organisaatio, joka maksaa varauksen.
Oheisvarattavaon liikuteltava esine, jonka vahtimestarit toimittavat tilaisuuden järjestäjän toiveiden mukaisesti haluttuun saliin haluttuna ajankohtana.
Resurssion johonkin saliin liittyvä ominaisuus tai kiinteästi saliin asennettu laite tai esine. Esimerkiksi salin paikkamäärä tai piirtoheittimen olemassaolo voivat olla resursseja.
Resurssipyyntökuten varauspyyntö, kuitenkin sillä erotuksella, että salin sijaan ilmoitetaan resurssien tarve.
Salion varattavissa oleva paikka, johon ihmiset voivat kokoontua (esimerkiksi luentosali tai kokoustila).
Sali-järjestelmäon Jyväskylän yliopistossa aiemmin käytössä ollut tekstipohjainen salienvarausjärjestelmä.
Timmion Yomi Applications Oy:n kehittämä tilanvaraussovellus.
Vakiovarauson sarja varauksia, jotka liittyvät toisiinsa ja toistuvat esimerkiksi viikoittain samana viikonpäivänä.
Varauksen pyytäjäon henkilö, joka ehdottaa varattavaksi jotakin tilaa jonakin ajankohtana.
Varauksen vahvistajaon henkilö, jolla on oikeus vahvistaa varaus tiettyyn tilaan.
Varauson käyttöoikeus tiettyyn tilaan tiettynä ajankohtana.
Varauspyyntöon varauksen pyytäjän tekemä ehdotus varauksesksi koskien tiettyä tilaa tiettynä ajankohtana.

2.2  Teknisiä termejä

Seuraavat ohjelmointitekniset termit liittyvät sovelluksen taustalla olevaan järjestelmään:
AJP12on protokolla tiedonsiirtoon Apache- ja Tomcatpalvelimien välillä.
Apacheon ilmainen HTTP-palvelinohjelmisto.
CSSeli Cascading Style Sheets on WWW-sivujen ulkoasua kuvaava kieli.
HTMLon WWW-sivujen sisältöä kuvaava kieli.
HTTPon WWW-arkkitehtuurin käyttämä tiedonsiirtoprotokolla.
Jakarta-Tomcaton ilmainen servletti- ja JSP-moottori.
Javaon Sunin kehittämä laitteistoriippumaton olio-ohjelmointikieli.
JavaDocon Java-kehitysympäristön mukana tuleva dokumentointityökalu.
Java-pavut(engl. JavaBeans) ovat Java-ohjelmointikielellä luotuja komponentteja, joita voidaan kutsua JSP-sivuilla.
JDBCeli Java Database Connectivity on Java-teknologian käyttämä rajapinta erilaisiin tietokantoihin.
JSPeli Java Server Pages on skriptaustyylinen ohjelmointikieli.
Keksi(engl. cookie) on menetelmä saada tallennettua tietoja WWW-sivuilta käyttäjien koneille. Palvelin lähettää pieniä tietopaketteja selaimelle, jotka tallennetaan käyttäjän koneelle. Myöhemmin selain lähettää tiedot palvelimelle ja palvelin voi käyttää niitä esimerkiksi istuntojen tallentamiseen.
Käyttötapaus(engl. use case) on käyttäjän tai sovelluksen toimintoa tietyn tehtävän suorittamiseksi kuvaava dokumentti.
Moduuli on tarkkaan rajattu toiminnallinen ohjelmakokonaisuus.
Poolman on ohjelma, joka kontrolloi tietokantayhteyksiä.
PostgreSQLon ilmainen tietokannanhallintajärjestelmä.
Skripti on yksinkertainen ohjelmanpätkä, joka useimmiten on tehty tulkattavalla kielellä.
Selain on ohjelma, joka käyttäjän koneella tulkkaa HTML-kieliset sivut esitettävään muotoon.
Servletti(engl. servlet) on palvelimella sijaitseva sovellus, joka toteuttaa HTTP-palvelimen pyynnöstä tietyn toiminnon.
SQL eli Structured Query Language on relaatiotietokantojen hallintaan kehitetty standardi kieli.

3  Projektin taustaa ja tavoitteita

Luvussa esitellään projektin taustoja ja projektille asetettuja tavoitteita sekä asetettujen tavoitteiden toteutumista.

3.1  Salivarausohjelmistojen taustaa

Jyväskylän yliopistossa oli aiemmin käytössä keskitetty Sali"-niminen tekstipohjainen varaussovellus. Järjestelmällä hoidettiin periaatteessa kaikkien yliopiston tilojen varaus.
Yomi Oyj:n Timmi"-järjestelmä piti ottaa käyttöön 23.10.2002, mutta käyttöönotto kuitenkin viivästyi joulukuulle 2002. Timmi"-järjestelmän merkittävin etu aikaisempaan Sali"-järjestelmään verrattuna on automaattinen salien laskutuksesta huolehtiminen, mitä vanha järjestelmä ei tukenut. Timmi on Windows"-sovellus, johon on saatavilla myös WWW"-käyttöliittymä. Tosin WebTimmiä ei ole tarkoitus hyödyntää Jyväskylän yliopistossa.
Jyväskylän yliopiston hallintovirastossa on tarkoitus hankkia myöhemmin Timmin rinnalle myös yleiskäyttöisempi tilahallintasovellus, jolla hallittaisiin kaikkien yliopiston tilojen (rakennukset, osastot ja huoneet) vuokrausta ja laskutusta. Tulevalla järjestelmällä ei kuitenkaan ole todettu olevan suoraa vaikutusta Timmi- tai Korppi-järjestelmiin.

3.2  Korppi-järjestelmän taustaa

Tietotekniikan laitoksella oli käytössä Kurki-järjestelmä vuosina 1998-2002. Järjestelmän avulla opiskelijat pystyivät ilmoittautumaan kurssille ja selaamaan tietojaan eri kursseilta. Opettajat pystyivät hallinnoimaan kursseja, pääteohjauksia ja demotilaisuuksia.
Syksyllä 2000 Kotka-projekti kehitti tietokantarakenteen ja henkilötietohallintamoduulin uuden opetus- ja tutkimushallintajärjestelmän pohjaksi. Keväällä 2001 Korppi-projekti kehitti järjestelmään kurssikirjanpito-osion, jolloin vanha Kurki-järjestelmä alkoi käydä tarpeettomaksi. Korppi-projektin kanssa yhteistyötä teki Halko-projekti, joka teki kansalaisopistoille opetuksenhallintajärjestelmän. Yhdessä nämä projektit tekivät Kotka-tietokantaan ryhmien toteuttamien sovellusten tarvitsemia muutoksia [6].
Syksyllä 2001 järjestelmän kehitystyötä jatkoi Kolibri-projekti, joka kehitti Korppi"-järjestelmään kalenteriosion. Kalenteriosio tukee mm. henkilöryhmiä, joille voi määritellä yhteisiä tapahtumia. Keväällä 2002 Koppelo-projekti toteutti Korppi-järjestelmään opinnäytetyömoduulin.

3.3  Projektille asetettujen tavoitteiden toteutuminen

Projektiryhmä toteutti järjestelmän, jonka avulla kurssien opetustapahtumille voidaan varata salit Korppi"-järjestelmällä. Varaukset on mahdollista hoitaa yksittäisten opetustapahtumien tarkkuudella. Opetustapahtumien lisäksi saleja ja tiloja voidaan varata muuhunkin käyttöön. Tällaisia tapahtumia ovat esimerkiksi kokoukset, konferenssit ja maksulliset tapahtumat. Projektin puitteissa jäi toteuttamatta joitakin yksityiskohtia järjestelmästä. Sovellukselle asetettujen tavoitteiden toteutumista käsitellään tarkemmin Sovellusraportissa. Syitä siihen, miksi kaikkia ominaisuuksia ei pystytty toteuttamaan, pohditaan luvussa 7.
Opetus- ja muita tapahtumia varattaneen jatkossa myös Timmi"-järjestelmällä, mistä poikkeuksena ovat laitoksien omassa käytössään olevat tilat. Tällaisia tiloja ovat mm. kokoustilat ja laboratoriot. Tällaisia tiloja ei oteta Timmi"-järjestelmän piiriin. Näiden tilojen varaus on mahdollista liittää Korppi"-järjestelmään varsin helposti.
Korppi-järjestelmään lisättiin mahdollisuus varata yksittäisiä saleja tiettyä tapahtumaa varten. Tällöin opettaja voi ehdottaa varausta ja varauksista vastaava vahvistaa sen, jolloin tiedot siirtyvät automaattisesti Timmiin.
Projektiryhmä toteutti Korppi"-järjestelmään Kiuru"-osion lisäksi synkronoinnin Timmi"-järjestelmän kanssa. Korppi"-järjestelmän kautta tiedot varauksista välittyvät Timmiin ja Timmiin tehdyt salivaraukset välittyvät myös Kotkan tietokantaan. Synkronoinnin testaaminen jäi todella vähälle projektin aikana, koska Yomi ei saanut toimitettua toimivaa rajapintaa sovitussa aikataulussa. Rajapintaa projektiryhmä pääsi testaamaan vasta viikolla 3 vuonna 2003, jolloin projektin olisi pitänyt olla jo valmis.
Testausta ei projektin puitteissa ollut mahdollista toteuttaa tarvittavissa määrin, mutta jokainen komponentti testattiin nopeasti, jotta pahimmat viat saatiin korjattua.
Toteuttamatta jäivät mm. resurssivarauksien käsittely ja oheisvarattavien käsittely.

3.4  Oppimistavoitteet ja niiden toteutuminen

Projektin tavoitteena oli antaa projektilaisille kuva projektityöskentelystä käytännössä. Lisäksi tavoitteena oli opettaa projektiryhmäläisille uusia teknologioita ja niiden toteuttamiseen soveltuvien sovellusten käyttöä.
Projektilaiset saivat varmasti hyvin totuudenmukaisen kuvan hieman laajemman sovelluksen toteuttamisesta. Määräpäivät tulivat yllättävän nopeasti vastaan ja aina tuntui olevan hieman kiire. Lisäksi projektilaiset saivat kokemusta alihankkijan kanssa toimimisesta. Tätä kokemusta eivät muut projektit ole aikaisemmin saaneet.
Projektiryhmä yritti ensin itse hakea ratkaisut ongelmiin. Jos ongelma ei ratkennut ryhmän sisällä, ryhmä tiedusteli teknisiltä ohjaajilta ratkaisua ongelmaan.
Projektiryhmäläiset tutustuivat myös uusiin teknologioihin ja sovelluksiin. Java Server Pages -teknologia ja SQL-kyselykieli tulivat tutuiksi kaikille projektiryhmäläisille. Uusia työkaluja projektilaisille olivat mm. versionhallintaohjelma CVS ja ohjelmointiympäristö NetBeans. Näistä työkaluista jäi ryhmäläisille hyvä kuva ja aikovat käyttää niitä myös jatkossa. Lisäksi ryhmäläiset oppivat LATEXin käytön, koska pääsääntöisesti kaikki ryhmän tekemät dokumentit ladottiin LATEX-ohjelmalla.
Projektiryhmä sai myös arvokasta kokemusta ryhmätyöskentelystä. Myös projektiryhmäläisten viestintätaidot kehittyivät. Projektissa oli monta osapuolta, joiden kaikkien piti olla ajan tasalla projektin etenemisestä. Projektiryhmäläiset oppivat myös työnjakoa ja organisointia.

3.5  Aihepiiriin liittyviä tulevaisuuden ideoita

Kotka-tietokantaan ja opettajan käyttöliittymään tulisi lisätä mahdollisuus tilatarpeiden merkitsemiseen. Tilatarpeiden merkitseminen hoidetaan tällä hetkellä siten, että kurssin opettaja toimittaa tilatarpeet henkilölle (esim. amanuenssi), joka suunnittelee kootusti laitoksen kurssien opetustapahtumien sijoittamisen käytössä oleviin saleihin. Tilatarpeet sisältävät vaatimuksia salin paikkamäärään ja tarvittaviin resursseihin (esim. videoprojektori, liitutaulu). Resurssit voivat liittyä saliin kiinteästi tai ne voivat olla erikseen varattavia. Tietokannassa huomioidaan tilatarpeiden suunnittelu ja muokkaus, mutta varsinaista suunnitteluohjelmaa projektin resurssien puitteissa ei ehditä toteuttamaan. Lisäksi kurssien sijoittumisen suunnittelusta vastaavat henkilöt tarvitsisivat ohjelmaa, jonka avulla voisi sijoittaa kurssien ajankohdat siten, että opiskelijoilla ja opettajilla olisi mahdollisimman vähän päällekkäisyyksiä. Ohjelman tulisi ainakin ilmoittaa, jos esimerkiksi saman vuositason tai aineen kursseja on menossa samaan aikaan. Ihanteellinen tilanne olisi, jos ohjelma osaisi sijoitella kurssit valmiiksi lukujärjestykseen eri osapuolia tyydyttävällä tavalla.
Projektin toteuttamia ominaisuuksia tulisi testata myös perusteellisemmin, jotta mahdollisista virheistä voisi päästä eroon. Lisäksi projektiryhmältä jäi toteuttamatta yksittäisiä ominaisuuksia, joita käsitellään tarkemmin Sovellusraportissa.

4  Projektin resurssit ja organisaatio

Projektiryhmän muodostivat Toni Hilpinen, Marko Koivuniemi, Jussi Mäkinen ja Miika Nurminen. Tilaajan edustajina toimivat Pauli Kujala ja Vesa Lappalainen tietotekniikan laitokselta sekä Esko Korhonen ja Pekka Lampinen yliopiston hallinnosta. Jani Asikainen, Taru Väisänen ja Jukka Valkonen olivat Timmi-järjestelmän kehittäneen Yomi Oyj:n edustajia. Jukka-Pekka Santanen oli projektin vastaava ohjaaja. Teknisiä ohjaajia olivat Markku Vire (vastuualueenaan tietokannat) ja Kirsi Koponen (vastuualueenaan Java Server Pages).
Projektiryhmä sai käyttöönsä tietotekniikan laitokselta Agorasta huoneen C222.2, jossa oli asennettuina kolme Linux-työasemaa ja yksi Windows 2000 -työasema. Käyttöjärjestelmäksi Linux-työasemille oli asennettuna Redhat 7.3 -levitysversio. Käyttöjärjestelmään kuului useita erilaisia sovelluspaketteja.
Lisäksi sovelluspalvelimeksi asennettiin Jakarta Tomcat 3.2.3. Sovelluskehittimenä toimi NetBeans. Sovelluksen testaamiseen ryhmä käytti NetBeansin mukana tulevaa Jakarta Tomcat 4.0:aa. Windows-työasemaan oli asennettu mm. WinTimmi, Microsoft Visio 2000 ja MS Project.
Projektin dokumentointi on luettavissa projektin kotisivuilla
http://kotka.it.jyu.fi/kiuru. Projektilla oli käytössään sähköpostilistat
kiuru@korppi.jyu.fi ja kiurulaaja@korppi.jyu.fi. Sähköpostilistojen keskustelua voi lukea WWW-osoitteista http://korppi.it.jyu.fi/list-archive/kiuru/ ja http://korppi.it.jyu.fi/list-archive/kiurulaaja.

5  Projektiryhmän tehtävät ja niiden jakautuminen

Ryhmä jakoi tehtäviä melko monipuolisesti siten, että kaikki tekivät (ainakin jossain vaiheessa projektia) kutakin eri tehtävätyyppiä eli suunnittelua, toteutusta ja dokumentointia. Tällä tavalla kukin projektiryhmän jäsen sai kokemusta kaikista ohjelmistoprosessin vaiheista.
Ryhmän projektipäällikkönä ja JSP-vastaavana toimi Jussi Mäkinen. Tietokantavastaavana toimi Miika Nurminen. LaTeX-dokumenttien pohjat ja XML-dokumenttien hallinnan teki Marko Koivuniemi. Marko Koivuniemi vastasi projektin kirjoittamien dokumenttien viimeistelystä. Toni Hilpinen vastasi pääosin Timmi"-rajapinnan kanssa tarvittavista luokista.
Muilta osin (mm. käyttöliittymän sunnittelu) vastuualueet jaettiin kunkin projektilaisen tilanteen mukaan projektin edetessä. Dokumentointi hoidettiin koko ryhmän voimin, jotta kukaan ei olisi kyllästynyt dokumentointityöhön. Dokumentointia yritettiin toteuttaa koko projektin ajan tasaisesti, mutta projektin edetessä dokumentoinnin määrä kasvoi.
Päävastuualueita ei tarvinnut jakaa uudestaan projektin aikana, mutta kukin projektiryhmän jäsen osallistui myös muiden työtehtävien toteuttamiseen. Tehtävät selkiytyivät projektin edetessä hyvin työstettäviksi ja kaikille riitti töitä projektin loppuun saakka.

6  Projektin aikataulu

Projektin oli tarkoitus kestää 14 viikkoa ja kyseinen aikajänne oli jaettu kolmeen päävaiheeseen: analyysiin ja suunnitteluun, toteutukseen sekä testaukseen. Analyysi ja suunnittelu -vaiheiden oli suunniteltu kestävän 5 viikkoa, mutta todellisuudessa niihin kului aikaa 7 viikkoa. Toteutusvaiheen oli tarkoitus kestää 5 viikkoa. Toteutusvaihe kesti 6 viikkoa. Testaukselle ja loppuhiomiselle oli varattu 4 viikkoa, mutta testausta ei keritty omana vaiheenaan toteuttamaan ollenkaan. Loppuhiomiseen kului 3 viikkoa, joista 2 viikkoa vuoden 2003 puolella.
Ensimmäisen vaiheen tuloksia olivat Projektisuunnitelma, Sovellussuunnitelma ja Vaatimusmäärittely. Toisen vaiheen tuloksia olivat valmis ohjelmakoodi (JavaBeanit ja JSP-sivut), Testaussuunnitelma sekä koodin dokumentaatio. Kolmannen vaiheen tuloksia olivat Projektiraportti ja Sovellusraportti. Vaiheet on esitelty taulukossa 6.1.
VaiheTulosToteutunutSuunnitelty
Suunnittelu 1Projektisuunnitelma20.11.200214.10.2002
Suunnittelu 2Sovellussuunnitelma7.11.200217.10.2002
ToteutusOhjelmakoodi ja dokumentaatio10.1.200213.12.2002
TestausTestausraportti, sovellusraportti ja projektiraportti15.1.200220.12.2002
Table 1: Projektin vaiheet ja tarkistuspisteet.

7  Projektin riskit ja ongelmat

Projektin suurin ongelma oli sovitussa aikataulussa pysyminen. Yksi syy tähän oli huonosti määritellyt tavoitteet projektin alussa. Toinen syy oli se, että kaksi projektin jäsentä työskenteli samaan aikaan muualla ja tämä hidasti projektin etenemistä jonkin verran. Loppuvaiheessa jokainen projektin jäsen käytti kaiken mahdollisen ajan projektin loppuunsaattamiseen.
Toinen suurehko ongelma oli Timmi-sovelluksen ja Kiuru-sovelluksen välinen viestintä ja yhteistoiminta. Timmi ei ollut projektin aikana vielä aktiivisessa käytössä salien varausprosessissa Jyväskylän yliopistolla, mikä aiheutti epävarmuutta projektiin. Rajapintamäärittelyn laatimiseen hukkui liian paljon aikaa ja Yomi sai rajapintakomponentin n. kuukauden myöhässä sovitusta aikataulusta.
Myös eriävät näkemykset ja mielikuvat toteutettavasta sovelluksesta toivat mukanaan omat haasteensa. Kaikkia esitettyjä toiveita ei ollut mahdollista toteuttaa projektin puitteissa, osin siitä syystä, että toiveet olivat toisensa poissulkevia. Riskiä pyrittiin pienentämään laatimalla sekä kattavat että selkeät pöytäkirjat ja dokumentit koko projektin ajan.
Projektin aikana ilmennyt riski, joka liittyi olemassaolevien ohjelmien lisensseihin ei muodostunut kuitenkaan ongelmaksi. Korppi-järjestelmä on toteutettu GPL"-lisenssin alla ja mm. Timmi-rajapintadokumentti sovittiin salaiseksi. Tästä projektiorganisaatio pääsi yhteisymmärrykseen.
Sovelluksen testiversio pyrittiin saamaan valmiiksi hyvissä ajoin, jotta testauksessa saatua palautetta olisi voitu hyödyntää sovelluksen loppuhiomisessa. Aikataulu kuitenkin petti ja sovelluksen ensimmäinen kunnollinen versio valmistui pari viikkoa myöhässä aikataulustaan. Myöskään sovelluksen testausta ei ehditty kunnolla toteuttaa.

8  Henkilökohtaisia arvioita projektista

8.1  Toni Hilpinen

8.2  Marko Koivuniemi

Syksyllä 2002 olin vielä Loviisassa kesätöiden parissa, kun huomasin, että sovellusprojekti olisi tarjolla. Kun sain tietää, että kesätyöni uhkaavasti venyivät syyskuun loppuun asti, olin hieman epävarmoin mielin, että pääsenkö projektiin ollenkaan. Aloitusluennoilla saimme kouraan listan erinäköisistä projekteista, jotka vaikuttivat todella kiinnostavilta - rehellisesti sanottuna pikainen vilkaisu näytti ainoastaan yhden projektin joka vaikutti vähemmän kiinnostavalta. Murphyn lakikin jo sanoo, että mihin projektiin sitten pääsin.
Projektiryhmä vaikutti kuitenkin hyvältä, olihan joukossamme kattavaa asiantuntemusta sekä JSP:stä että tietokannoista jo entuudestaan. Yritysedustajan kanssa järjestettävä rajapintakuvaus ja sen pohjalta tehtävä rajapinta muodostui jo projektin alussa isoksi kysymysmerkiksi, eikä projektiryhmän luottamus tämän tärkeimmän osa-alueen toimivuuteen ollut kovin suuri. Rajapintamäärittely kokonaisuudessaan antoi kuitenkin hyvää tietämystä määrittelyvaiheen vaikeuksista ja haasteista.
Projektin alkuvaihe oli tutustumista uusiin työkaluihin. Jo pelkästään Linuxin käyttö perustyökaluna oli hieman hapuilevaa. Projektin aikana tutustuimme uusiin työkaluihin ja etenkin LATEX-opinnot antavat paljon myös tulevaisuutta silmällä pitäen. CVS oli myös täysin uusi tuttavuus, joka helpotti projektin työtä huomattavasti. Dokumentointi, palaverointi ja muut pakolliset projektiin liittyvät byrokratiat tuntuivat välillä raskailta, mutta niistäkin sai varmasti paljon uutta tietoa ja kokemusta.
Oma panokseni huoletti välillä minun lisäkseni myös JP Santasta - tunneissakin näkyi se, että minä olin välillä hieman sivustaseuraaja. Yritin kompensoida parhaani mukaan osallistumalla dokumentointiin, mutta kiriminen jäi hieman puolitiehen. Syyksi tähän voisin mainita päällimäisen, eli oman saamattomuuden lisäksi sen, että vastuualueeni komponentit riippuvat ensisijaisesti rajapinnasta, jonka saatavuus vierähti.
Koodauksessa vastuualueenani oli Timmi-rajapinnan kanssa kommunikoivat komponentit ja XML-parsinta. Alkuvaiheessa XML-parsinta vaatii erittäin pitkäkestoista tutustumista dokumentteihin ja dokumentaatioon, mutta sen jälkeen varsinainen parserointi sujuikin paremmin. Rajapinnan kanssa keskustelevien komponenttien työstäminen oli hankalaa, sillä rajapintamäärittelykin valmistui liian myöhässä. Kun määrittely oli lyöty lukkoon, voitiin kehitystä aloittaa, mutta komponentin testausta ei voinut suorittaa.
Kaiken kaikkiaan projektissamme oli hyvä ja kannustava ryhmähenki, vaikka kenties työnjako oli hieman epätasainen, johtuen ehkä myös ryhmän osaamistason vaihtelusta. Muiden projektilaistemme osaamisesta toivottavasti muutama hippunen jäi minunkin päähäni, heiltä oli hyvä ammentaa apua omaan hieman haparoivaan toimintamalliin Java-ohjelmoinnin saralla.
Kiitän projektin jäseniä niistä yhteisistä hetkistä, joita vietimme Kiurun parissa.

8.3  Jussi Mäkinen

Sovellusprojektin alku oli jännittävää ja oikein odotti, että pääsee koodaamaan jotain hienoa ja suurta. Alkuvaiheessa tuntui, että aikaa oli jopa liikaa varattu projektille.
Parin viikon jälkeen karu totuus paljastui; tehtävää oli paljon ja kokonaiskuva oli kaikilla hieman sekava. Lisäksi aiempien projektien materiaaleihin tutustuminen vei paljon aikaa, koska dokumentteja oli paljon. Toisaalta myös paljon puuttui dokumentaatiota, joka olisi ollut tarpeellista.
Opin projektin aikana projektityöskentelyä, organisoimista ja viestintää. Myös dokumentointiin joutui paneutumaan koko projektin ajan. Välillä kyseenalaistin joidenkin dokumenttien relevanttiutta. Opin käyttämään joitakin uusia työkaluja, mistä on paljon hyötyä myös jatkossa.
Projektista jäi kokonaisuudessaan ihan mukava kuva ja kiitän kaikkia projektiryhmäläisiä hyvästä työstä.

8.4  Miika Nurminen

Kiuru-projekti onnistui projektina melko hyvin, oppimiskokemuksena erinomaisesti. Olin jo ennakkoon asennoitunut, että odotettavissa on tähän mennessä työläin opintokokonaisuus, mutta työmäärän laajuus yllätti silti. Projektiinhan kuuluu "itsestäänselvien" koodauksen ja dokumentoinnin lisäksi mm. palavereja, suunnittelua, asioista sopimista, tiedotusta ja tietenkin monta dokumenttien korjauskierrosta...
Projektin lopputulos ei ollut lähellekään tavoitteiden mukainen, mutta ainakin saimme tehtyä perusteellisen vaatimusmäärittelyn ja suunnitelman, josta on toivottavasti hyötyä myös tuleville projekteille. Myös osa valmistuneesta koodista on toivon mukaan uudelleenkäyttettävää.
Vaikeinta oli projektimuotoisen työtavan omaksuminen. Kiuru-projekti oli itselleni ensimmäinen ryhmätyönä tehtävä ohjelmistoprojekti, mistä johtuen työtapojen löytäminen vei aikansa. Tehtävien jako ei aina selkiytynyt ja asioista sopiminen kesti yllättävän kauan. Edellisten Kotka-järjestelmän kehitykseen liittyvien projektien tietojen omaksuminen oli vaativaa. Teknisistä ohjaajista oli tässä suuresti apua.
Projekti lähti liikkeelle liian hitaasti. Rajapinnasta sopiminen Yomi Oy:n kanssa vei lähes kaksi kuukautta kauemmin kuin alunperin oli suunniteltu ja pääsimme testaamaan sitä vasta juuri ennen loppuesittelyä. Osittain tästä, osittain myös alkuperäisen tehtävänannon puutteellisuudesta johtuen määrittely- ja suunnitteluvaihe venyivät kohtuuttoman pitkiksi. Parempi olisi ollut määrittää osalle ryhmäläisistä koodaustehtäviä jo suunnitteluvaiheen aikana.
Kehitystyössä käytettävät työkalut ja tekniikat olivat useimmille ryhmäläisille uusia. Tämä hidasti hieman työskentelyä projektin alkupuolella, mutta oli hyvin opettavaista. Projektimuotoisen työtavan omaksumisen ohella projektin hyödyllisintä antia olikin ehkä uusien tekniikoiden oppiminen: CVS-versionhallinta, LATEX-ladontaohjelma, Linux-skriptit sekä tietenkin Java ja JSP tulivat tutuiksi. Jukka-Pekka Santasen huomiot dokumenttien muodon ja sisällön suhteen olivat aluksi perusteellisuudessaan masentavia, mutta kiistämättä auttoivat täsmällisen ilmaisun kehittämisessä.
Erityishuomion ansaitsee vielä syksyn aikana kehittynyt hyvä ryhmähenki, joka osaltaan mahdollisti projektin läpiviennin. Kiitokset kaikille projektiin osallistuneille!

9  Yhteenveto

Projektiryhmä toteutti ensimmäisen version Korppi-järjestelmän tilanvarausmoduulista.
Projekti onnistui lähtökohdat huomioon ottaen hyvin. Jos projekti pitäisi tehdä uudestaan, niin luultavasti muuttaisimme aikataulua ja prosessimallia. Suunnitteluun käytettyä aikaa voisi hieman supistaa ja kokeilla prototyyppien kautta tapahtuvaa sovelluskehitystä.
Lisäksi Timmin rajapintakuvaus olisi pitänyt saada paljon aikaisemmin valmiiksi. Tämä olisi hoitunut pitämällä suunnittelupäivä Taru Väisäsen kanssa paljon aiemmin. Välikäsien kautta tapahtunut kommunikointi hidasti määrittelyä liikaa.

Lähteet

[1]
Celko Joe "SQL For Smarties", Morgan Kaufmann Publishers, San Francisco, 2000.
[2]
Geary David M. "Advanced JavaServer Pages", Sun Microsystems - Prentice Hall PTR, Upper Saddle River, 2001.
[3]
Hilpinen Toni, Koivuniemi Marko, Mäkinen Jussi ja Nurminen Miika "Kiuru-projektin projektisuunnitelma ja sovellussuunnitelma", Jyväskylän yliopisto, tietotekniikan laitos, 2002.
[4]
Hillebrand Minna, Silván Markus, Vanhanen Antti ja Ylitalo Marko, "Koppelo-projektin projektikansio", Jyväskylän yliopisto, tietotekniikan laitos, 2002.
[5]
Jaakkola Mia, Juutinen Sanna, Lupari Matti ja Nieminen Mikko, "Kolibri-projektin projektikansio", Jyväskylän yliopisto, tietotekniikan laitos, 2001.
[6]
Lesonen Minna, Pekkanen Hannu, Tawast Tuukka ja Uuksulainen Heikki, "Korppi-projektin projektikansio", Jyväskylän yliopisto, tietotekniikan laitos, 2001.
[7]
Horppu Ismo, Mielityinen Markku ja Vire Markku, "Kotka-projektin projektikansio", Jyväskylän yliopisto, tietotekniikan laitos, 2000.
[8]
Santanen Jukka-Pekka, "Tietotekniikan Sovellusprojektien ohje", Jyväskylän yliopisto, tietotekniikan laitos, 2002.
[9]
Santanen Jukka-Pekka, "Opinnäytteiden kirjoittaminen, lyhyt oppimäärä", Jyväskylän yliopisto, tietotekniikan laitos, 2000.



File translated from TEX by TTH, version 3.22.
On 15 Jan 2003, 18:22.