KORPPI-projekti

 

Minna Lesonen

 Hannu Pekkanen

 Tuukka Tawast

 Heikki Uuksulainen

 

 

 

Projektisuunnitelma 21.3.2001


Korppi-projektin tietoja

 

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.


Versionhallinta

 

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äl

1                Johdanto  1

2                Termejä  1

3                Projektin taustat ja tavoitteet. 4

3.1 KURKI- ja KOTKA-järjestelmät.. 4

3.2 KORPPI-sovellus. 5

4                Projektin resurssit ja organisaatio  6

5                Projektin tehtävät ja niiden jakautuminen  6

6                Riskien arviointi ja hallinta. 10

7                Arvio projektin aikataulusta  7

8                Yhteenveto  11

Lähteet. 11

 


 


1         Johdanto

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.

2         Termejä

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ä.

3         Projektin taustat ja tavoitteet

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.

3.1 KURKI- ja KOTKA-järjestelmät

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.

3.2 KORPPI-sovellus

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.

 

4         Projektin resurssit ja organisaatio

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.

 

5         Projektin tehtävät ja niiden jakautuminen

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.

 

6         Projektin aikataulu

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.

 

 

7         Riskien arviointi ja hallinta

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.

 

8         Yhteenveto

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.

 

Lähteet

 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.