Projektisuunnitelma 21.3.2001
Tekijät: Minna Lesonen (minles@st.jyu.fi)
Hannu Pekkanen (krimu@st.jyu.fi)
Tuukka Tawast (tutawast@mit.jyu.fi)
Heikki Uuksulainen (heuuksul@st.jyu.fi)
Yhteystiedot: Agora, huone C222.2 (puh. 014-2604963)
Työn nimi: KORPPI-projekti, projektisuunnitelma
Työ: Projektisuunnitelma tietotekniikan cum laude-työprojektiin.
Tiivistelmä: Korppi-projektin päätehtävänä on toteuttaa
Jyväskylän yliopiston KURKI-nimiselle kurssikirjanpitojärjestelmälle seuraaja. Projektisuunnitelmassa kuvataan uuden
järjestelmän kurssikirjanpito-osuuden toteutusta, projektin tavoitteet ja
projektiorganisaatio sekä työn jako ja suunniteltu aikataulu.
Avainsanat: Kurssit, tentit, kurssikirjanpito,
ilmoittautuminen, tietokanta.
Versio Päiväys Tehnyt
0.1 14.2.2001 Heikki Uusukainen
0.2 22.2.2001 Hannu Pekkanen asiasisältömuutoksia
0.3 26.2.2001 Minna Lesonen asiasisältömuutoksia
0.4 28.2.2001 Hannu Pekkanen rakennemuutoksia
0.5 5.3.2001 Hannu Pekkanen kielioppimuutoksia
0.6 15.3.2001 Hannu Pekkanen kielioppimuutoksia
1.0
21.3.2001 Tuukka Tawast loppukorjaukset
Sisältö
3 Projektin
taustat ja tavoitteet
3.1
KURKI- ja
KOTKA-järjestelmät
4 Projektin resurssit ja organisaatio
5 Projektin tehtävät ja niiden
jakautuminen
6 Riskien arviointi ja hallinta
7 Arvio projektin aikataulusta
KORPPI-niminen
tietotekniikan cum laude -työprojekti osallistuu Jyväskylän yliopiston
tietotekniikan laitoksella käytössäolevan KURKI-nimisen
kurssikirjanpitojärjestelmän seuraajan kehitykseen. Projekti jatkaa syksyn 2000
KOTKA-nimisen työprojektin työtä.
KOTKA-projekti
määritteli uuden KOTKA-järjestelmän ominaisuudet, suunnitteli järjestelmälle
tietokannan, kartoitti käytettävien ohjelmistojen ominaisuuksia ja toteutti
yhden moduulin testausta varten. Uuteen järjestelmään on suunniteltu viittä
moduulia. Niistä KORPPI-projekti toteuttaa kurssikirjanpitomoduulin,
päivyrimoduulin sekä henkilötietomoduulin, jonka KOTKA-projekti osittain
toteutti. Toteutumattomista moduuleista jatkanee syksyn 2001 projektiryhmä.
Kevään 2001
KORPPI-projektiryhmään kuuluvat Minna Lesonen, Hannu Pekkanen, Tuukka Tawast ja
Heikki Uuksulainen. Tilaajana toimii Jyväskylän yliopiston tietotekniikan
laitos. Tilaajaa edustaa Pauli Kujala. Muut projektiorganisaatioon kuuluvat
henkilöt esitellään luvussa 4.
Luvussa 2
esitellään aiheeseen oleellisesti liittyviä käsitteitä sekä luvussa 3 projektin
taustoja ja tavoitteita. Luku 4 esittelee projektin organisaation ja resurssit.
Luvussa 5 käsitellään projektin tehtäviä ja vastuualueita sekä niiden
jakautumista projektin jäsenille. Luvussa 6 arvioidaan projektiin liittyviä
riskejä. Luku 7 kuvaa projektin suunnitellun aikataulun.
KORPPI-
projektiin keskeisesti liittyviä käsitteitä ovat seuraavat:
Apache on ilmainen HTTP-palvelinohjelmisto.
CSS eli Cascade Style Sheets on WWW-sivujen
ulkoasua kuvaava kieli.
GNUJSP on
ilmainen JSP-moottori.
HTML on
WWW-sivujen sisältöä kuvaava kieli.
HTTP on
WWW-arkkitehtuurin käyttämä tiedonsiirtoprotokolla.
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ä tietosilta erilaisiin
tietokantoihin.
Jserv on
ilmainen Java-servlettimoottori.
JSP eli Java Server Pages on skriptaustyylinen
ohjelmointikieli.
Keksi (engl. cookie)
on Netscapen luoma, mutta nykyään jo standardoitu menetelmä saada WWW-sivuista
vuorovaikutteisempia. Palvelin lähettää pieniä tietopaketteja selaimelle, jonka
perusteella käyttäjä asetuksineen tunnistetaan jatkossa.
KURKI on
Jyväskylän yliopistossa käytössä oleva Intrabuilderilla toteutettu
WWW-pohjainen kurssikirjanpitojärjestelmä.
Kuukkeli on Antti Viinikan Jyväskylän yliopistossa
kehittämä järjestelmä ohjausaikojen ajanvaraukseen ja hallintaan.
Käyttötapaus (engl. use
case) on käyttäjän tai sovelluksen toimintoa tietyn tehtävän
suorittamiseksi kuvaava dokumentti.
Luokkakaavio kuvaa
järjestelmän sisäistä modulaarista jakoa.
Moduuli on tietyn tehtäväjoukon suorittamiseen
kehitetty sovellus ja käyttöliittymä.
ODBC eli Open
Database Connectivity on yleinen käyttöjärjestelmien tukema tietosilta
erilaisiin tietokantoihin.
OMT++ eli Object Modeling Technique ++ on Nokian
kehittämä ohjelmistokehityksen elinkaarta kuvaava ohjelmistokehitysmenetelmä.
PostgreSQL on ilmainen
tietokannanhallintajärjestelmä.
Skripti on ohjelmointikieltä muistuttava ja usein
hieman yksinkertaistettu tulkattava kieli.
Skriptaus tarkoittaa WWW-sivujen tapauksessa ohjelmakoodin
kirjoittamista HTML-dokumenttien sisään. Palvelinpuolen skriptauksessa koodi
ajetaan palvelinkoneessa ja asiakaspään skriptauksessa selaimessa.
Selain on ohjelma, joka käyttäjän koneella
tulkkaa HTML-kieliset sivut esitettävään muotoon.
Palvelin on ohjelmisto, joka WWW-sovellusten
tapauksessa palvelee asiakkaana toimivien selainten hakupyyntöjä.
Servletti on palvelimella sijaitseva sovelma (engl. applet),
joka toteuttaa HTTP-palvelimen pyynnöstä tietyn toiminnon.
SQL eli Structured Query Language on
tietokantojen hallintaan kehitetty standardi kieli.
Tomcat on ilmainen servletti- ja JSP-moottori.
UML eli Unified Modeling Language on
standardin asemaan pääsemässä oleva ohjelmistokehitysmenetelmä.
KORPPI-projektin
taustalla on Jyväskylän yliopistossa käytössä oleva KURKI- niminen
kurssikirjanpitojärjestelmä. Projekti toteuttaa KURKI-järjestelmälle seuraajan,
joka korjaa esiintyviä ongelmia ja samalla lisää toiminnallisuutta. Lisäksi
kehitystyön ja tekniikan osalta
siirrytään KURKI-järjestelmän IntraBuilder-ohjelmistosta käyttämään yleisesti
tunnustettuja standardeja työkaluja sekä siirrytään palvelintekniikassa Windows
NT:stä Linuxiin.
Nykyisin käytössä
oleva vuonna 1998 kehitetty KURKI-järjestelmä on suunniteltu pääosin
kurssikirjanpidon välineeksi. Se edustaa muutaman henkilön näkemystä
järjestelmän tarpeista ja ominaisuuksista. Käyttäjäkunnan koko ajan
laajennuttua järjestelmään on yritetty lisätä uusia ominaisuuksia, mutta ensimmäisistä
versioista asti seuranneet heikko käytettävyys ja hitaus vaivaavat järjestelmää
edelleen. Järjestelmässä on myös yhteensopivuusongelmia tiettyjen selainten
kanssa (erityisesti Internet Explorerin kohdalla). Lisäksi Borland ei ole enää
pariin vuoteen tukenut Intrabuilder-työkalua, jolla KURKI-järjestelmä on
toteutettu.
Tietotekniikan
laitoksen tavoitteena on rakennuttaa kokonaan uusi järjestelmä, joka sisältää
kaikki nykyisen KURKI-sovelluksen tarjoamat ominaisuudet sekä mahdollistaa
kokonaan uusia palveluja mm. opinnäytteiden hallitsemiseen ja salivarausten
suunnitteluun.
Uuden
järjestelmän suunnittelun aloitti syksyllä 2000 KOTKA-niminen työprojekti. Se
suunnitteli ja toteutti järjestelmän tietorakenteen, kartoitti käytettävät
työkalut sekä toteutti myöhempien projektiryhmien työtä tukemaan
henkilötietojen selaus- ja muokkausmoduulin.
KORPPI-projekti
toteuttaa uuteen KOTKA-järjestelmään kurssikirjanpidon osuuden. Jatkamme näin
KURKI-järjestelmän seuraajan kehitystyötä Kotka-projektin tulosten pohjalta.
Uuteen
järjestelmään kehitettävässä kurssikirjanpitosovelluksessa tulee olla ainakin
samat ominaisuudet kuin nykyisessä KURKI-järjestelmässä sekä joitakin uusia
ominaisuuksia, kuten kalenteritoiminto. Samalla KORPPI paikkaa KURKI-järjestelmässä
havaittuja tietoturva-aukkoja ja parantaa järjestelmän käytettävyyttä. Lisäksi
KORPPI-projekti korjaa KOTKA-järjestelmän puutteellisia toteutusratkaisuja ja
toteuttaa tietokantaan tarvittavat muutokset.
Tietokantaan
tarvittavat muutokset toteutetaan osaksi yhdessä HALKO-projektin kanssa. HALKO-projekti
toteuttaa kansalaisopistoille ja muille oppilaitoksille
opetushallinto-ohjelman, käyttäen osittain vastaavanlaisia kehitystyökaluja ja
-ympäristöä kuin KORPPI-projekti. KORPPI-projektin sovellussuunnitelmassa
kuvataan projektin tavoitteita tarkemmin.
Käyttöliittymän
suunnittelu on yksi KORPPI-projektin tärkeimmistä tehtävistä. Erityisesti
opettajan käyttöliittymän toimintojen suhteen on KURKI-järjestelmästä tullut
runsaasti negatiivista palautetta, joten siihen tulee kiinnittää erityistä
huomiota. Käyttöliittymän suunnittelussa tulee ottaa huomioon eritasoiset
käyttäjät. Järjestelmän käyttäminen ei siis saa olla liian monimutkaista
henkilöille, joilla ei ole kokemusta tietokoneiden käytöstä. Uuden järjestelmän tulisi olla kaikin puolin
helppokäyttöinen, selkeä ja nopea. Lisäksi järjestelmän suunnittelussa tulee
ottaa huomioon kokeneempien käyttäjien käyttötavat.
Projektin
tavoitteena on myös antaa projektilaisille kuva luentokursseja suuremman ohjelmistoprojektin
läpiviennistä ja yleensäkin perehdyttää projektimuotoiseen ryhmätyöskentelyyn.
Kevään 2001
KORPPI-projektin jäsenet ovat Minna Lesonen, Hannu Pekkanen, Tuukka Tawast ja
Heikki Uuksulainen. Tilaajana toimivan Jyväskylän yliopiston tietotekniikan
laitoksen edustajana on Pauli Kujala. Projektin vastaavana ohjaajana toimii
Jukka-Pekka Santanen sekä teknisinä ohjaajina Tommi Lahtonen, Sami Poimala,
Markku Vire, Vesa Lappalainen ja Tero Toivonen. Avustajia toimivat Kwakye
Oppong ja Päivi Kaijula.
Projektiryhmä sai käyttöönsä huoneen C222.2 (puh. 014-2604963) Agorasta, jossa on asennettuina kolme Linux-palvelinta ja yksi Windows 2000 -työasema. Palvelimille on asennettuina Apache 1.3.17, Java 2 SDK Standard Edition, Tomcat 3.2.1, PoolMan 1.4.1 ja PostgreSQL 7.0.3. Työasemalle on asennettu Corel DRAW 9, Netscape 6.01, JBuilder 4, MS Project ja Internet Explorer 5.0.
Projektin
dokumentointi ja testattavat sovellukset sijoitetaan projektin kotisivuille
osoitteeseen http://europa.it.jyu.fi/korppi/. Projektilla on
käytössä sähköpostilista korppi@mit.jyu.fi.
Hannu Pekkasen
vastuualueena on järjestelmän tietokantaosuus, kalenterimoduuli ja
palvelinratkaisut. Minna Lesonen huolehtii käyttöliittymän ulkoasusta. Heikki
Uuksulainen vastaa JSP- ja Java-koodeista, sekä toimii ryhmän
projektipäällikkönä. Tuukka Tawast vastaa HTML-koodista ja tiedotuksesta. Opiskelijan
käyttöliittymää kehittää Heikki sekä opettajan käyttöliittymää kehittävät Minna
ja Tuukka.
Määritellyt tehtävät on jaettu vastuualueittain siten, että nimetyt henkilöt perehtyvät omaan osa-alueeseensa tarkemmin kuin muihin projektin osa-alueisiin. Jaottelun ideana on jakaa tehtävät sekä vaaka- että pystysuunnassa, eli jokainen tekee kaikkia eri tehtävä- alueita, mutta syventyy tiettyyn osa-alueeseen. Näin tulemme jokainen tutuiksi järjestelmän kehityksessä tarvittavien ohjelmien kanssa, mutta pystymme kuitenkin keskittymään omaan vastuualueeseemme. Projektin kuluessa tehtäviä tarkennetaan tarvittaessa. Jokainen huolehtii oman osuutensa dokumentoinnista.
Luvussa
määritellään projektin aikataulu, johon on merkitty eri toteutusvaiheille
varattu aika ja vastaavat tarkistuspistepäivämäärät.
22.1.2001
Projektitöiden jako ja alustava suunnittelu:
·Projektit aloitettiin 22.1. kevään 2001 työprojektin aloitusluennolla.
·Hahmoteltiin projektin toteutusta yleisellä tasolla.
·Tutustuminen projektiin ja toteutusratkaisuihin.
·Tutustuminen KOTKA- ja KURKI-projektien tuotoksiin.
20.2.2001
Alustava suunnittelu päättyy:
·Projektin tavoitteet ja vaatimukset ovat selvinneet ryhmälle.
20.2.2001 Kurssikirjanpidon rakenteen
suunnittelu alkaa:
·Hannu Pekkanen testaa ohjelmistoja, tekee muutoksia tietokantaan ja laatii
projektisuunnitelmaa. Tietokantamuutoksissa Hannu pitää yhteyttä
HALKO-projektiin
·Minna Lesonen suunnittelee käyttöliittymän ulkoasua ja laatii
projektisuunnitelmaa.
·Heikki Uuksulainen perehtyy jo toteutettuihin ratkaisuihin ja laatii
sovellussuunnitelmaa.
·Tuukka Tawast perehtyy jo toteutettuihin ratkaisuihin ja laatii
sovellussuunnitelmaa.
10.3.2001
Suunnitteluvaiheen puoliväli:
·Kaikki projektilaiset tekevät
yhteisvastuullisesti käyttötapauksia.
·Käyttöliittymää suunnitellaan ja
toteutetaan siitä eri versioita. Ensimmäiset hahmotelmat KORPPI-projektin
WWW-sivuille ovat valmistuneet, jotta kaikki projektiin osalliset pääsevät
niitä testaamaan.
27.3.2001 Suunnitteluvaihe päättyy:
·Tietokannan rakenne on kiinnitetty.
·Projektisuunnitelma on hyväksytty.
·Sovellussuunnitelma on hyväksytty.
·Käyttötapaukset ovat valmiit.
·Muutokset tietokannan rakenteeseen on
tehty.
·Käyttöliittymän rakenne on päätetty.
27.3.2001
Toteutusvaihe alkaa:
·Heikki Uuksulainen toteuttaa opiskelijan käyttöliittymää.
·Minna Lesonen ja Tuukka Tawast toteuttavat opettajan käyttöliittymää.
·Hannu Pekkanen toteuttaa tietokantaliittymää ja kalenterimoduulia.
10.4.2001
Toteutusvaiheen puoliväli:
·Ensimmäinen prototyyppi on valmis.
·Opiskelijoille ja opettajille annetaan mahdollisuus kommentoida sovellusta
tästä eteenpäin.
24.4.2001
Toteutusvaihe päättyy:
·Järjestelmä on toiminnallisesti valmis.
24.4.2001
Testausvaihe alkaa:
·Heikki Uuksulainen testaa opiskelijan käyttöliittymää.
·Minna Lesonen ja Tuukka Tawast testaavat opettajan käyttöliittymää.
·Hannu Pekkanen testaa kalenterimoduulia ja tietokantaliittymää.
·Projektiorganisaatio testaa kokonaisuutta
15.5.2001 Testausvaihe päättyy:
·Kurssikirjanpito on saatu projektiryhmän osalta päätökseen.
·Sovellus dokumentteineen on luovutettu tilaajalle.
Projektin suurin riski on pysyminen sovitussa aikataulussa. Projektiin kuuluvien henkilöiden henkilökohtaiset aikataulut on pyritty luomaan joustaviksi, jotta projekti saadaan toteutettua aikataulussa.
Laajaksi paisunut projektiorganisaatio ja mahdolliset eriävät näkemykset toteuttavasta sovelluksesta tuovat mukanaan omat riskinsä. Useiden ohjaajien lisäksi projektiorganisaatioon kuuluvat myös pro gradu -tutkielmaa tekevä Kwakye Oppong ja taidehistoriaa opiskeleva Päivi Kaijula. Riskejä pyritään pitämään hallinnassa perehtymällä KOTKA- ja KURKI-järjestelmien dokumentaatioon, sujuvalla tiedotuksella, keskittymällä olennaiseen ja selkeällä dokumentoinnilla.
Lähes kaikki sovelluskehityksessä käytettävät ohjelmistot ovat projektin jäsenille uusia ja outoja. Tämä saattaa hankaloittaa ja viivästyttää projektin etenemistä. Perehtyminen käytettäviin ohjelmistoihin aloitettiin jo ensimmäisen projektipalaverin aikoihin. Osaamista ja lähdetietoutta kasvatetaan koko ajan, jotta vältyttäisiin suuremmilta ongelmilta. Lisäksi Markku Viren asiantuntevaa apua pyritään käyttämään mahdollisimman paljon hyväksi.
Toteuttavan sovelluksen erääksi riskiksi muodostuu myös tietoturva. Sovelluksen tietoturvataso täytyy olla riittävä, jottei kenenkään henkilökohtaisia tietoja pääse julkisuuteen. Sovellus tullaan toteuttamaan siten, että sovellusta on turvallinen käyttää. Tähän tavoitteeseen pääsemiseksi KORPPI-projekti toimii yhteistyössä HALKO-projektin kanssa tietokanta- ja tietoturva-asioissa.
Koska kyseessä on laajan järjestelmän jatkokehitys, saattaa tämä aiheuttaa projektin venymistä. Järjestelmään saattaa jäädä myös virheitä johtuen suuresta työmäärästä ja aikataulun niukkuudesta. Aikataulun venyminen yritetään estää mahdollisimman tarkalla aiheen rajauksella ja noudattamalla sovittua aikataulua.
Sovelluksen prototyyppi täytyy saada valmiiksi hyvissä ajoin, jotta testeistä saatua palautetta voidaan hyödyntää sovelluksen lopullisessa versiossa. Järjestelmää testataan järjestelmällisesti koko projektiorganisaation toimesta, jotta ongelmat saadaan poistetuksi ennen järjestelmän luovuttamista tilaajalle.
Pääosa riskeistä kohdistuu sovelluskehitykseen, jota tarkastellaan tarkemmin projektiryhmän laatimassa sovellussuunnitelmassa.
Ryhmämme toteuttaa kurssikirjanpitomoduulin KOTKA-järjestelmään, jota on jo suunniteltu, osaksi kehitetty ja jota tullaan kehittämään tulevaisuudessakin. Tämä aiheuttaa aluksi ryhmällemme lisätöitä, sillä uusien ohjelmien lisäksi pitää tutustua edellisten KOTKA- ja KURKI-projektien työhön.
Suuren projektin kehitys on vaativaa työtä varsinkin, kun meillä projektilaisilla ei ole kokemusta suurten järjestelmien kehittämisestä. Tulemme kaikki tekemään parhaamme ja uskomme pääsevämme lopputulokseen, johon useimmat ovat tyytyväisiä. Projektin jälkeen olemme kaikki saaneet hyvän annoksen projektityöskentelyoppia.
Ismo Horppu, Markku Mielityinen, Markku Vire, ”KOTKA-projektin projektikansio”, Jyväskylän Yliopisto, Informaatioteknologin tiedekunta, 2000.
Santanen Jukka-Pekka, ''Tietotekniikan cum laude -harjoitustöiden ohje'', saatavilla WWW-muodossa <URL: http://www.mit.jyu.fi/santanen/info/projohje.html>, Jyväskylän yliopisto, Tietotekniikan laitos, 20.1.2001.
Pauli Kujala, Riku Nykänen ja Niina Riikonen, ”Kurki-projektin projektikansio”, Jyväskylän yliopisto, Matematiikan laitos, 1998.