`"
Kiuru-projekti |
Toni Hilpinen |
Marko Koivuniemi |
Jussi Mäkinen |
Miika Nurminen |
Projektisuunnitelma 16.10.2002
Jyväskylän yliopisto |
Tietotekniikan laitos |
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: huone AgC222.2, puh.nro. 014-260 4963, sähköpostilistan osoite on kiuru@korppi.jyu.fi.
Työn nimi: Kiuru-projekti, projektisuunnitelma
Työ: Projektisuunnitelma tietotekniikan sovellusprojektiin
Tiivistelmä: Kiuru-projekti toteuttaa Jyväskylän yliopiston tietotekniikan laitoksella toteutettuun Korppi-järjestelmään WWW-pohjaisen tilanvaraus- ja varausvahvistusosion. Projektisuunnitelmassa kuvataan projektin taustoja ja projektille asetettuja tavoitteita, projektiorganisaatiota sekä suunniteltua työnjakoa ja aikataulua.
Avainsanat: Tilanvaraus,kurssien opetustapahtumat, resurssivaraus, WWW-sovellus, Kotka-järjestelmä, Timmi-järjestelmä
Versio | Päiväys | Tehnyt | Muutokset |
0.1 | 25.9.2002 | Jussi Mäkinen | |
0.11 | 27.9.2002 | Jussi Mäkinen | Pieniä muutoksia |
0.2 | 2.10.2002 | Jussi Mäkinen | Korjauksia J-P Santasen kommenttien pohjalta. |
0.3 | 3.10.2002 | Jussi Mäkinen | Lisätty aikataulusuunnitelma ja korjattu tekstiä |
0.4 | 16.10.2002 | Jussi Mäkinen | Korjauksia ja täydennyksiä |
0.41 | 18.10.2002 | Jussi Mäkinen | Dokumentti käännetty LaTeX-muotoon |
Syksyn 2002 Kiuru-projektiryhmään kuuluvat tietotekniikan opiskelijat Toni Hilpinen, Marko Koivuniemi, Jussi Mäkinen ja Miika Nurminen. Tilaajana toimii Jyväskylän yliopistolta hallintovirasto ja tietotekniikan laitos. Projektiorganisaatioon kuuluvat henkilöt esitellään luvussa 4.
Tässä projektisuunnitelmassa käsitellään projektin kulkuun liittyviä suunnitelmia. Projektisuunnitelmaan kuuluu aikataulusuunnitelma, projektin tavoitteiden määritteleminen, projektiorganisaation kuvaus, projektin tehtävien ja niiden jakautumisen suunnittelu sekä pieni riskianalyysi.
Projektiryhmä laatii myös sovellussuunnitelman, jossa käsitellään tarkemmin sovelluksen rakennetta ja ominaisuuksia. Projektiraportti laaditaan projektin loppuvaiheessa ja siinä tarkastellaan projektin kulkua ja onnistumista. Sovellusraportti kuuluu myös projektin loppuvaiheen tuloksiin ja siinä käsitellään lopullisen sovelluksen onnistumista ja toimivuutta. Lisäksi ryhmä laatii sovelluksen käyttö- ja asennusohjeet. Projektiryhmä muokkaa myös aiemmin tehtyä Kotka-tietokantaraporttia.
Luvussa 2 esitellään aiheeseen oleellisesti liittyviä termejä sekä luvussa 3 projektin taustoja ja tavoitteita. Luku 4 esittelee projektin organisaation ja resurssit. Luvussa 5 käsitellään projektin tehtäviä ja niiden jakautumista projektin jäsenten kesken. Luku 6 kuvaa projektin suunnitellun aikataulun. Luvussa 7 arvioidaan projektiin liittyviä riskejä.
Kotka | on henkilötietojen hallintaosio ja tietokantarakenne. |
Korppi | on Kotka-järjestelmän kurssikirjanpitomoduuli. |
Maksaja | on henkilö/organisaatio, joka maksaa varauksen. |
Oheisvarattava | on liikuteltava esine, jonka vahtimestarit toimittavat tilaisuuden järjestäjän toiveiden mukaisesti haluttuun tilaan haluttuna ajankohtana. |
Resurssi | on johonkin tilaan liittyvä ominaisuus tai kiinteästi tilaan asennettu laite tai esine. Esimerkiksi salin paikkamäärä tai piirtoheittimen olemassaolo voivat olla resursseja. |
Sali | on tällä hetkellä käytössä oleva tekstipohjainen salienvarausjärjestelmä. |
Tila | on varattavissa oleva paikka, johon ihmiset voivat kokoontua (esimerkiksi luentosali tai kokoustila). |
Timmi | on Yomi Applications Oy:n kehittämä tilanvaraussovellus |
Vakiovaraus | on 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 vahvistaja | on henkilö, jolla on oikeus vahvistaa varaus tiettyyn tilaan. |
Varaus | on käyttöoikeus tiettyyn tilaan tiettynä ajankohtana. |
Apache | on ilmainen HTTP-palvelinohjelmisto. |
CSS | eli Cascading Style Sheets on WWW-sivujen ulkoasua kuvaava kieli. |
HTML | on WWW-sivujen sisältöä kuvaava kieli. |
HTTP | on WWW-arkkitehtuurin käyttämä tiedonsiirtoprotokolla. |
Jakarta-Tomcat | on ilmainen servletti- ja JSP-moottori. |
Java | on Sunin kehittämä laitteistoriippumaton olio- ohjelmointikieli. |
Java-pavut | (engl. JavaBeans) ovat Java-ohjelmointikielellä luotuja komponentteja, joita voidaan kutsua JSP- sivuilla. |
JDBC | eli Java Database Connectivity on Java-teknologian käyttämä rajapinta erilaisiin tietokantoihin. |
JSP | eli 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ä. |
PostgreSQL | on 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 | on palvelimella sijaitseva ohjelma (engl. servlet), joka toteuttaa HTTP-palvelimen pyynnöstä tietyn toiminnon. |
SQL | eli Structured Query Language on tietokantojen hallintaan kehitetty standardi kieli. |
Jyväskylän Yliopiston hallintovirastossa on tarkoitus hankkia 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 todettu olevan suoraa vaikutusta Timmi- tai Kotka-järjestelmiin.
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 [1].
Vuonna 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. Vuonna 2002 Koppelo-projekti toteutti Korppi-järjestelmään opinnäytetyömoduulin.
Opetustapahtumien lisäksi saleja ja tiloja voidaan varata muuhunkin käyttöön. Tällaisia tapahtumia ovat esimerkiksi kokoukset, konferenssit ja maksulliset tapahtumat. Näitä tapahtumia varattaneen jatkossa Timmi-järjestelmällä, poikkeuksena laitoksien omassa käytössään olevat tilat. Tällaisia tiloja ovat mm. kokoustilat. Tällaisia tiloja ei oteta Timmi-järjestelmän piiriin. Näiden tilojen varaus on mahdollista liittää Korppi-järjestelmään.
Kotka-tietokantaan ja opettajan käyttöliittymään lisätään 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.
Tilatarpeiden merkitsemisen lisäksi Kotka-järjestelmään lisätään 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.
Käytännössä synkronointi hoidetaan HTTP-protokollaa käyttäen XML-tiedostoilla. Jokaisesta Timmiin tehdystä lisäys-, muokkaus- tai poistotietokantatapahtumasta laaditaan uusi tiedosto. Tiedostot numeroidaan juoksevasti, tietokantatapahtumien keskinäisen järjestyksen varmistamiseksi. Tiedoston sisällä kuvataan tapahtumaan liittyvät tiedot (tarkempi formaatti toimitetaan Yomi Oyj:n taholta myöhemmin ilmoitettavana ajankohtana). Myös kyselyt ja tietojen päivitykset Kotka-järjestelmästä Timmiiin suoritetaan vastaavan muotoisilla tiedostoilla.
Yksittäisten tapahtumailmoitusten lisäksi Timmistä tarkastetaan varausten nykytilanne säännöllisin väliajoin. Tilannetiedot saadaan muuten samalla tiedostoformaatilla kuin tapahtumailmoitukset, mutta nyt tiedoston sisällä voi olla useampia tapahtumia.
Synkronoinnissa on mahdollisena ongelmana on Kotkan ja Timmin välillä siirrettävien tietojoukkojen yhtenäisyys, erityisesti varaavien henkilöiden tunnistamisen osalta. Kotka"-järjestelmään on määritelty henkilöille yksilölliset tunnukset, mutta Timmissä niitä ei ole. Yhtenäisyysongelman ratkaisusta päätetään tarkemmin ennen kuin tiedostoformaatti lyödään lukkoon ko. järjestelmien välillä.
Projektiryhmän muodostavat 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 ja Jukka Valkonen ovat Timmi-järjestelmän kehittäneen Yomi Oyj:n edustajia. Jukka-Pekka Santanen on projektin vastaava ohjaaja. Teknisiä ohjaajia ovat Markku Vire (vastuualueenaan tietokannat) ja Kirsi Koponen (vastuualueenaan Java Server Pages). Projektiryhmä sai käyttöönsä Tietotekniikan laitokselta Agorasta huoneen C222.2, jossa on asennettuina kolme Linux-työasemaa ja yksi Windows 2000 -työasema. Käyttöjärjestelmäksi Linux-työasemille on asennettuna Redhat 7.3 -levitysversio. Käyttöjärjestelmään kuuluu useita erilaisia sovelluspaketteja.
Lisäksi sovelluspalvelimeksi asennetaan Jakarta Tomcat. Sovelluskehittimenä toimii Borland Jbuilder 6. Näitä ohjelmia ei ole vielä asennettu projektin koneille. Windows-työasemaan on asennettu mm. WinTimmi, Microsoft Visio 2000 ja MS Project.
Projektin dokumentointi on luettavissa projektin kotisivuilta
http://kotka.it.jyu.fi/kiuru. Projektilla on käytössä sähköpostilistat
kiuru@korppi.jyu.fi ja kiurulaaja@korppi.jyu.fi. Sähköpostilistojen keskustelua voi lukea www-selaimella osoitteesta http://korppi.it.jyu.fi/list-archive/kiuru/ ja
http://korppi.it.jyu.fi/list-archive/kiurulaaja.
Kuitenkin alustavasti ryhmän jäsenet ovat sopineet keskenään kunkin päävastuualueesta. Koska ryhmän JSP-osaaminen on projektin alussa lähinnä Jussi Mäkisellä, hän on ryhmän JSP-vastuuhenkilö. Jussi on myös (ainakin projektin alussa) projektipäällikkö. Miika Nurminen vastaa pääosin tietokannan suunnittelusta.
Muilta osin (mm. käyttöliittymän sunnittelu) vastuualueet jaetaan myöhemmin. Dokumentointi hoidetaan koko ryhmän voimin, jotta kukaan ei kyllästyisi dokumentointityöhön. Dokumentointia toteutetaan koko projektin ajan tasaisesti, jotta kaikki oleellinen saadaan kirjattua. Toisaalta tällöin projektin loppuvaiheessa ei tule paniikkia raporttien loppuunhiomisen kanssa.
Vaihe Tulos Esittely Suunnittelu 1 Projektisuunnitelma 04.10.2002 Sunnittelu 2 Sovellussuunnitelma 17.10.2002 Toteutus Ohjelmakoodi ja dokumentaatio 21.11.2002 Testaus Testausraportti, sovellusraportti ja projektiraportti 20.12.2002 Taulukko 1 Projektin vaiheet ja tarkistuspisteet
Toinen melkein yhtä suuri riski on Timmi-sovelluksen ja Kiuru-sovelluksen välinen viestintä ja yhteistoiminta. Timmi ei myöskään ole vielä aktiivisessa käytössä salien varausprosessissa, mikä aiheuttaa epävarmuutta varausprosessiin. Riskit pienenevät jonkin verran, jos Yomi Oyj saa rajapintamäärittelyt valmiiksi mahdollisimman aikaisessa vaiheessa.
Myös mahdolliset eriävät näkemykset ja mielikuvat toteutettavasta sovelluksesta tuovat mukanaan omat haasteensa. Kaikkia esitettyjä toiveita ei ole mahdollista toteuttaa projektin puitteissa. Tarvittaessa projektiorganisaation kesken sovitaan ominaisuuksista,jotka jätetään myöhempien jatkokehittäjien toteutettaviksi. Riskiä pystytään pienentämään myös laatimalla sekä kattavat että selkeät pöytäkirjat ja dokumentit koko projektin ajan.
Sovelluksen testiversio täytyy saada valmiiksi hyvissä ajoin, jotta testauksessa saatua palautetta voidaan hyödyntää sovelluksen loppuhiomisessa. Järjestelmää yritetään testata mahdollisimman kattavasti testaussuunnitelman mukaisesti, jotta ongelmat saadaan poistetuksi ennen järjestelmän luovuttamista tilaajalle.
Pääosa riskeistä kohdistuu siis yhteistoimintaan muiden sovellusten kanssa ja varsinaiseen sovelluskehitykseen , jota tarkastellaan tarkemmin projektiryhmän myöhemmin laatimassa sovellussuunnitelmassa.
Projektiryhmä toteuttaa tilanvarausmoduulin Kotka-järjestelmään. Koska Kiuru-projekti liittyy läheisesti aikaisemmin toteutettuihin Kotka-, Korppi-, Halko-, Kolibri-, ja Koppelo"-projekteihin sekä Sali- ja Timmi-sovelluksiin, tulee ryhmän olla ainakin jossain määrin selvillä myös kaikista näistä järjestelmistä.
Projektin läpivienti on vaativaa työtä varsinkin, kun projektilaisilla ei ole mainittavaa kokemusta suurten järjestelmien kehittämisestä. Osa projektilaisista on kuitenkin kehittänyt joitakin pienempiä sovelluksia ennen tätä projektia. Kukin projektinjäsen tekee parhaansa ja toivon mukaan se riittää takaamaan kaikkia osapuolia tyydyttävän lopputuloksen.
[2] Jaakkola Mia, Juutinen Sanna, Lupari Matti ja Nieminen Mikko, "Kolibri- projektin projektikansio", Jyväskylän yliopisto, Tietotekniikan laitos, 2001.
[3] Lesonen Minna, Pekkanen Hannu, Tawast Tuukka ja Uuksulainen Heikki, "Korppi"-projektin projektikansio", Jyväskylän yliopisto, Tietotekniikan laitos, 2001.
[4] Horppu Ismo, Mielityinen Markku ja Vire Markku, "Kotka-projektin projektikansio", Jyväskylän yliopisto, Tietotekniikan laitos, 2000. [5] Santanen Jukka-Pekka, "Tietotekniikan Sovellusprojektien ohje", Jyväskylän yliopisto, Tietotekniikan laitos, 2002.
[6] Santanen Jukka-Pekka, Öpinnäytteiden kirjoittaminen, lyhyt oppimäärä", Jyväskylän yliopisto, Tietotekniikan laitos, 2000.