URAANI-projekti

Teemu Lappalainen

Anu Valkonen

Mikko Vieru

Markus Viklund

 

 

 

 

 

 

 

 

 

Sovellussuunnitelma 17.5.2002



 

URAANI-projektin tietoja

 

Tekijät:                        Teemu Lappalainen (teelapp@cc.jyu.fi)

Anu Valkonen (anivalk@st.jyu.fi)

Mikko Vieru (mivieru@cc.jyu.fi)

Markus Viklund (vimabe@cc.jyu.fi)

Tilaaja:                          Jyväskylän avoin yliopisto

Teettäjä:                       Jyväskylän yliopisto, tietotekniikan laitos

Yhteystiedot:                 Agora, huone C223.2 puh. 014-2604964

 

Tiivistelmä:                   Uraani-projekti toteuttaa Jyväskylän yliopiston avoimelle yliopistolle Vainu-nimisen opintoneuvonta- ja urasuunnittelusovelluksen. Sovellussuunnitelmassa kuvataan Vainu-järjestelmälle asetetut tavoitteet, toimintojen ja ominaisuuksien priorisointi sekä tämän projektin ulkopuolelle rajattavat ominaisuudet. Dokumentissa käsitellään myös Vainu-järjestelmän tietorakennetta ER-tietokantakaavion avulla, toimintaa ja käyttöliittymää sivustokarttaa ja kuvia käyttäen sekä koodin kommentointitapaa ja testausperiaatteita.

 

Avainsanat:                   Aine, ammatti, avoin yliopisto, opintoneuvonta, opiskelu, urasuunnittelu, Java, JavaPavut, JSP, SQL, HTML, CSS, TomCat, Poolman, Apache


 

 

Versionhallinta

 

Versio

Päiväys

Muutokset

Tehnyt

0.1

7.3.2002

- 1. Versio

Uraani

0.2

10.3.2002

- Layout, sisältöä

Uraani

0.3

11.3.2002

- Sisältöä

Uraani

0.4

12.3.2002

- Sisältöä

Uraani

0.5

13.3.2002

- Layout, sisältöä

Uraani

0.6

19.3.2002

- Sivustokartta, luvut 8 ja 9

Uraani

0.7

22.3.2002

 - Luvun 3.2 tarkennusta,

    kuvien lisäystä,    käyttöliittymäkuvien  lisäys.

Anu Valkonen

0.8

17.4.2002

- Koko dokumentin    läpikäynti ja korjailu.

Anu Valkonen

0.9

21.4.-30.4.2002

-Admin-puolen  WWW-sivujen lisäys. Sisällön tarkennusta ja uudelleenjärjestelyä.

Anu Valkonen

Sisältö

1     Johdanto. 1

2     Termejä. 3

3     Sovelluksen tavoitteet ja toiminnot 5

3.1     Sovelluksen kuvaus. 5

3.2     Vainu-sovelluksen toiminnot opiskelijoille. 6

3.3      Henkilökunnan ylläpito-osan toiminnot 8

3.4     Projektin ulkopuolelle jäävät ominaisuudet 8

4     Palvelinratkaisut, työkalut ja tekniikat 9

4.1     Käytettävät palvelinohjelmistot 9

4.2     JSP-tekniikka. 9

4.3     Java-pavut 11

4.4     Tekniset vaatimukset ja testaus. 11

5     Tietokanta. 12

5.1     Kotka-tietokannan osuus. 12

5.2     Vainu-järjestelmän omat ratkaisut 13

6     Sovelluksen sivusto ja toiminnot 15

6.1     Sovelluksen käyttöliittymä ja navigointi 15

6.2     Sivuston rakenne. 17

6.3     Etusivu. 19

6.4     Avoimessa opiskelu -kohdan sivut 20

6.5     Tavoitteena tutkinto -kohdan sivut 24

6.6     Ammatillinen kehittyminen -kohdan sivut 28

6.7     Avoin väylä -kohdan sivut 30

6.8     Keskustelu ja palaute -kohdan sivut 33

6.9     Admin-sivut 43

6.10    Opinnot-kohdan sivut 45

6.11    Ammatit-kohdan sivut 62

6.11    Organisaatiot-kohdan sivut 68

6.13    Kiinnostus & Kertomus kohdan sivut 74

6.14    Kiinnostus & Kertomus kohdan sivut 82

6.15    FAQ-kohdan sivut 88

6.16    Sivut-kohdan sivut 91

7     Ohjelmakoodissa käytettävät merkinnät 92

8     Testausperiaatteita. 93

9     Yhteenveto. 94

Lähteet 95


1     Johdanto

URAANI-niminen tietotekniikan cum laude -työprojekti toteuttaa kevään 2002 aikana Vainu-nimisen WWW-pohjaisen opintoneuvonta- ja urasuunnittelusovelluksen Jyväskylän yliopiston avoimelle yliopistolle. Projektissa toteutettavalla järjestelmällä voidaan tarjota Jyväskylän avoimen yliopiston opiskelijoille opiskeluneuvontapalveluja WWW-muodossa. Tällä tavoin toteutettuna opiskeluneuvonta tehostuu, sillä opiskelijat saavat yleisen opiskeluun tarvitsemansa tiedon verkon välityksellä ja avoimen (henkilökohtainen) opiskeluneuvonta voi keskittyä vaikeampien kysymysten tarkasteluun. Sovelluksen taustalla oleva tietokanta pyritään toteuttamaan mahdollisimman joustavaksi, jotta uusia ominaisuuksia voidaan lisätä myöhemmin ja käyttöä voidaan laajentaa Jyväskylän yliopiston muiden laitosten tarpeisiin.

 

Kevään 2002 aikana URAANI-projektin jäsenet ovat Teemu Lappalainen, Anu Valkonen, Mikko Vieru ja Markus Viklund. Avoimen yliopiston puolelta projektin vastuuhenkilöitä ovat Minna Lehtonen, Carita Haapanen, Mervi Gröhn ja Tommi Lahtonen. Minna Lehtonen vastaa sisällön tuottamisesta. Projektin vastaavana ohjaajana toimii Jukka-Pekka Santanen sekä teknisenä ohjaajana Markku Vire. Merja Ruuska toimii työprojektiryhmän visuaalisena konsulttina.

 

Tämä sovellussuunnitelma määrittelee WWW-pohjaiseen Vainu-sovellukseen liittyvät toiminnalliset ja tekniset vaatimukset. Suunnitelmassa kuvataan Vainu-järjestelmälle asetetut tavoitteet, toimintojen ja ominaisuuksien priorisointi sekä tämän projektin ulkopuolelle rajattavat ominaisuudet. Dokumentissa esitellään Vainu-järjestelmän tietorakennetta ER-tietokantakaavion avulla, toimintaa ja käyttöliittymää sivustokartan ja kuvien avulla sekä koodin kommentointitapaa ja testausperiaatteita. Projektin toinen suunnitteludokumentti on projektisuunnitelma, jossa kuvataan projektin taustoja ja tavoitteita, projektiorganisaatiota sekä työnjakoa ja suunniteltua aikataulua.

 

Luvussa 2 esitellään Vainu-sovelluksessa käytettävät termit. Luku 3 käsittelee sovellukselle asetettuja tavoitteita sekä sovelluksen ominaisuuksia ja toimintoja. Luku 4 kuvaa sovelluksen palvelinratkaisua, työkaluja ja tekniikoita. Luvussa 5 tarkastellaan sovelluksen tietokantaratkaisuja. Luku 6 käsittelee ko. WWW-sovelluksen sivustokarttaa ja  sovelluksen toimintojen jakautumista sivuille. Luku 7 esittelee ohjelmakoodin kommentointitapoja ja muuttujien nimeämiskäytäntöjä. Luvussa 8 tarkastellaan testauskäytäntöjä.

2              Termejä

URAANI- projektiin keskeisesti liittyviä käsitteitä ovat seuraavat:
 

Apache                                    on ilmainen HTTP-palvelinohjelmisto.

CSS                                         eli Cascading Style Sheets on WWW-sivujen ulkoasua kuvaava kieli.

ER-kaavio                              on tietokannan rakennetta kuvaava kaavio (engl. Entity Relationship diagram).

GPL-lisenssi                           on ns. vapaa lisenssi, jonka mukaan ohjelman mukana tulee toimittaa sen lähdekoodi tai se tulee olla vapaasti saatavilla verkossa.

HTML                                    on WWW-sivujen rakennetta ja ulkoasua 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.

JServ                                      on ilmainen Java-servlettimoottori.

JSP                                          (engl. Java Server Pages) on ohjelmointitekniikka. JSP-sivut sisältävät HTML-muotoiluelementtejä ja WWW-sivujen dynaamisuuden aikaansaavaa Java-kielistä skriptausta.  Palvelin kääntää JSP-sivun servletiksi ja TomCat  Java-skriptauksen selainohjelman ymmärtämäksi HTML:ksi.

KORPPI                                 on kurssikirjanpitosovellus ja osa KOTKA-järjestelmää.

KOTKA                                  on Jyväskylän yliopistossa käytössä oleva WWW-pohjainen opetuksen ja tutkimuksen hallintajärjestelmä.

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.

 

Vainu-sovellukseen liittyvät seuraavat käsitteet:

Approbatur                             on perusopintokokonaisuus (15 ov).

Avoin yliopisto                       järjestää maksullista yliopistotasoista opetusta kaikille.

Avoimen yliopiston väylä      on yksi tapa päästä yliopistoon tiettyjen opintokriteerien perusteella.

Chat                                        on WWW-pohjainen reaaliaikainen keskustelualue.

Cum laude approbatur           on aineopintokokonaisuus (35 ov).

Dynaaminen sivu                   on Vainu-sovelluksessa HTML-sivu, jonne tietoa haetaan tietokannasta käyttötapauskohtaisesti JSP-sivujen avulla.

FAQ                                        on dokumentti usein esitettyjen kysymysten vastauksista.

Lokitieto                                 on tietoa sivujen käyttöhistoriasta (tässä yhteydessä).

Opintokokonaisuus                koostuu tietyistä opintojaksoista muodostaen esim. approbaturin, cumu laude approbaturin tai laudaturin.

Staattinen sivu                       on normaali HTML-sivu, jonka selainohjelma tulkitsee aina samalla tavalla.

Tutkintovaatimus                  kertoo, mitä opintoja vaaditaan tietyn tutkinnon suorittamiseksi.

3     Sovelluksen tavoitteet ja toiminnot

Sovelluksen ensisijainen tarkoitus on tarjota Jyväskylän avoimen yliopiston opiskelijoille opintoneuvonta- ja urasuunnittelupalveluja. Sovelluksen avulla opiskelija saa sellaista tietoa, jonka avulla hän pystyy suunnittelemaan opintojaan itsenäisesti ja osaa valita tarkoituksenmukaisia kursseja. Sovellukseen kootaan myös sellaista tietoa, joka antaa vastauksia opiskelijoita yleisesti askarruttaviin opiskeluun liittyviin kysymyksiin.

 

Luvussa 3.1 kuvataan eri käyttäjäryhmien tarpeita. Luvussa 3.2 selvitetään  yksityiskohtaisesti sovellustoiminnot.

 

3.1        Sovelluksen kuvaus

URAANI-projekti toteuttaa Jyväskylä yliopiston avoimen yliopiston opintoneuvonta- ja urasunnittelupalveluja tarjoavan WWW-pohjaisen sovelluksen. Tällä tavoin toteutettuna avoimen henkilökunnan opiskeluneuvonta tehostuu, sillä opiskelijat saavat tarvitsemaansa tietoa helpommin verkon välityksellä ja avoimen yliopiston opiskeluneuvonnan kuormitus vähenee.

 

Sovelluksen avulla opiskelija saa tietoa eri ainevalintojen tuomista mahdollisuuksista työelämässä sekä tiettyyn ammattiin vaadittavista opinnoista. Työelämässä olevat opintojaan täydentävät saavat apua ainevalintoihinsa. Eri elämäntilanteissa olevat saavat tietoa eri aineiden opiskelumahdollisuuksista ja -muodoista. Avoimen yliopiston väylän mahdollisuutta hyödyntävät saavat tietoa opintovaatimuksista eri tiedekunnissa. Sovellus sisältää myös tietoa yliopisto-opintojen rakenteesta.

 

Sovelluksen tarkoituksena on myös helpottaa avoimen yliopiston sivuston ja toteutettavan sovelluksen sisältämän tiedon ylläpitoa ja saatavuutta. Tietokannassa olevaa tietoa voidaan käyttää tarkoituksenmukaisella tavalla eri sivuilla. Myös tiedon ajan tasalla pitäminen helpottuu.

 

Opintojaan suunnittelevat käyttäjät saavat Vainu-sovelluksen avulla tietoa avoimen yliopiston järjestämästä opetuksesta. Näin voidaan samalla rekrytoida uusia opiskelijoita ja esitellä avoimen yliopiston toimintaa.

3.2   Vainu-sovelluksen toiminnot opiskelijoille

Sovelluksen käyttäjät jaotellaan  kahdeksi eri käyttäjäryhmäksi: opiskelijat ja henkilökunta (opettajat ym. henkilökunta). Ylläpito-oikeuksilla pääsee muokkaamaan sovelluksen tietokannan sisältämiä tietoja. Periaatteessa sovelluksen tietokantarakenne mahdollistaa useammatkin käyttäjätasot, mutta alkuvaiheessa tälle  ei ole tarvetta. Vainu-sovelluksessa toteutettavat perustoiminnot opiskelijalle ovat seuraavat.

 

Loggautuminen ja tietojen tallennus tapahtuu opiskelijalla seuraavalla tavalla:

·        Opiskelija voi rekisteröityä järjestelmään ja saada henkilökohtaisen tunnuksen ja  salasanan sisäänkirjautumista varten.

·        Rekisteröitynyt opiskelija voi tallentaa tietonsa tietokantaan myöhempää käyttöä varten. Näitä tietoja ovat ainakin päiväkirja ja aikaisemmat opintosuoritukset.

·        Opiskelija voi halutessaan käyttää sovellusta myös ilman sisäänkirjautumista.

Hakutoimintoina toteutetaan seuraavat ominaisuudet:

·          Tavoitteena tutkinto aineet-ammatti -haku listaa tietyn aineen opiskelun mahdollistamat ammatit. Lisäksi esitetään suositeltavat sivuainevalinnat, ammattikuvaukset sekä opiskelukertomukset näitä aineita opiskelleilta näissä ammateissa toimivilta.

·           Tavoitteena tutkinto ammatti-aineet -haun tuloksena tulee tiettyyn ammattiin vaadittavia opintokokonaisuuksia. Hakutuloksina on mahdollista saada niin pääaine-, sivu kuin ei-perinteiset aineyhdistelmät.

·          Ammatillinen kehittyminen kohdan kiinnostukset-haun hakutuloksena hakusanaan liittyviä tietokokonaisuuksia esim. lapset-sanalla tulee tähän liittyviä opintokokonaisuuksia.

·           Opiskelumuotoja koskevan haun tuloksena listataan kaikki hakusanaan liittyvät  opintokokonaisuudet, joita voi opiskella hakusanan kuvaamalla tavalla.

·           Yleishaku kohdistuu koko  tietokantaan. Hakua voi rajata koskemaan tiettyä kokonaisuutta esim. vain aineita.

 

Opiskelija voi täyttää avoimen yliopiston ilmoittautumislomakkeen ja tulostaa sen itselleen.

 

Uutisryhmä-sivulla (ei-reaaliaikainen keskustelukanava) on keskustelualueita eri aihealueille. Käyttäjät voivat oma-aloitteisesti luoda uusia keskustelualueita tarpeidensa mukaan.

 

Chat-sivulla (reaaliaikainen keskustelukanava) eri kanavilla tietyt käyttäjät voivat lähettää toisilleen viestejä omista aiheistaan.

 

Palaute ja kysymykset –kohdassa opiskelija voi lähettää kysymyksiä/palautetta henkilökunnalle siten, että hänen on mahdollista kohdentaa kysymys tietylle taholle esim. aineen  vastuuhenkilölle tai tietyn tiedekunnan kurssisihteerille tai suunnittelijalle.

 

FAQ-sivu sisältää usein kysyttyjä kysymyksiä vastauksineen. Avoimen yliopiston henkilökunnalla on mahdollisuus lisätä uusia FAQ-ryhmiä, uusia kysymyksiä tiettyihin ryhmiin ja vastaukset niihin.

 

Sovellukseen rekisteröityneet opiskelijat voivat pitää opinnoistaan opiskelupäiväkirjaa.

 

Avoin väylä kohdassa opiskelija saa tietoa tietyn aineen avoimen väylän vaatimuksista. Hän voi syöttää suorittamansa opinnot, joiden perusteella hän saa tietoa puuttuvista opinnoista. Opiskelija (sisäänkirjautunut) voi halutessaan tallentaa syöttämänsä tiedot seuraavaa käyttökertaa varten.     

 

Ohjeita opiskeluun -kohdassa opiskelija saa ohjeita opiskeluun avoimessa yliopistossa. Ohjeet ovat esim. ohjeita kirjoittamiseen.

 

Opiskelija voi tehdä oppimistyylikartoitustestin, joka toteutetaan linkkinä muihin sivuihin.

 

Tilastotietoa- kohdassa opiskelija saa tietoa väylän kautta sijoittuneista opiskelijoista. Hän voi lukea näiden opiskelijoiden opiskelukertomuksia ja tutkia avoimen väylän tilastotietoja.

 

Ammattiaapinen sisältää lyhyitä kuvauksia akateemisista ammateista sekä  linkkejä ammattiin liittyviin kertomuksiin.

 

Tutkintovaatimukset -kohdasssa käyttäjä saa  tietoa tutkintovaatimuksista. Kohdasta on  linkit yliopiston ainelaitosten sivuille.

 

Lisäpisteet pääsykokeisiin -sivuilta saa tietoa niistä opintokokonaisuuksista, joista saa lisäpisteitä Jyväskylän yliopistoon hakuvaiheessa.

 

Opiskelija saa opettajien ja muun henkilökunnan yhteystiedot pääasiassa avoimen yleisiltä sivuilta, mutta aiheeseen liittyviä yhteystietoja on eri puolilla järjestelmää, esim. FAQ:ssa.

 

3.3   Henkilökunnan ylläpito-osan toiminnot

Henkilökunnalla on mahdollisuus lukea ja tarkistaa palautteen laatu (tulevatko viestit luettaviksi sivuille).

 

Henkilökunta voi kirjoittaa vastaukset kysymyksiin ja valita kysymyksistä ne, joiden vastaukset tulevat FAQ-sivuille opiskelijoiden luettaviksi. He voivat myös lähettää vastauksen suoraan kysyjille.

 

Henkilökunnalla eli kurssien opettajilla ja avoimen henkilökunnalla on oikeudet tehdä muutoksia tietokannassa olevaan tietoon. WWW-käyttöliittymän avulla he voivat poistaa ja päivittää tietokannan sisältämiä tietoja.

 

3.4   Projektin ulkopuolelle jäävät ominaisuudet

Vainu-sovellukseen ei tämän projektin puitteissa toteuteta WWW-pohjaista kurssimaksutoimintoa. Ominaisuuden toteuttaminen katsottiin muodostavan oman kokonaisuutensa, joka ehkä toteutetaan tulevaisuudessa. Tutkintovaatimuksia ei toteuteta toimintoina, vaan linkkeinä tiedekuntien sivuille.

 

4     Palvelinratkaisut, työkalut ja tekniikat

Luvussa esitellään projektissa käytettävät työkalut, palvelinohjelmistot ja ohjelmointitekniikat. Niihin on pääosin päädytty, koska ne ovat ilmaisia ja KOTKA-projektin testitulosten perusteella ne soveltuvat tulevaan järjestelmään paremmin kuin muut kilpailevat ohjelmistot ja tekniikat.

 

4.1   Käytettävät palvelinohjelmistot

Alussa toisena vaihtoehtona oli ottaa järjestelmä käyttöön avoimen yliopiston omalla WWW-palvelimella, jolloin toteutusympäristönä olisi ollut Microsoftin IIS-WWW-palvelin ja ASP-skriptikieli. Sovelluksen toteutuksessa päätettiin kuitenkin hyödyntää Jyväskylän yliopiston tietotekniikan laitoksen Kotka-järjestelmän tietokantaa ja toteutustekniikoita tietyin osin (Java-kieli, HTML ja CSS).

 

Tämän valinnan seurauksena sovellus toteutetaan JSP-tekniikalla. Järjestelmän HTTP-palvelimena toimii Apache, koska yliopiston WWW-palvelimet käyttävät yleisesti Linux-käyttöjärjestelmää. Apache-palvelimen jälkeen järjestelmään asennetaan TomCat, joka on yhdistetty JSP- ja servlettimoottori. Tietokannan ja TomCatin tietovälittimenä toimii PoolMan, joka jakaa tietokantayhteyksiä niitä tarvitseville servleteille. Tietokannanhallintajärjestelmänä on PostgreSQL.

 

4.2   JSP-tekniikka

Kuvassa 1 on hahmoteltu järjestelmän toimintaa. Kun WWW-palvelin vastaanottaa pyynnön selaimelta, se päättelee, onko kyseessä staattinen HTML-sivu vai JSP-sivu. Staattisen sivun tapauksessa palvelin voi palauttaa pyydetyn sivun välittömästi takaisin selaimelle.

 

JSP-sivun ollessa kyseessä pyyntö välitetään edelleen servlettimoottorille. Se tutkii, onko kyseistä sivua vastaava servletti jo olemassa. Jos servlettiä ei ole, pyyntö jatkaa matkaansa JSP-moottorille, joka generoi sivua vastaavan servletin. Se puolestaan on JSP-sivusta muodostettu Java-kielinen luokka, johon on liitetty tarvittavat Java-pavut.

Tämän jälkeen servletti suoritetaan, jolloin muodostuu selaimen pyytämä HTML-sivu. Se lähetetään takaisin selaimelle (kuva 1). Näin asiakassovelluksena toimiva WWW-selain saa pelkkää HTML-koodia sisältävän sivun esitettäväksi. Tällä pyritään parantamaan selainyhteensopivuutta [Horppu, Mielityinen, Vire].

 

Kuva 1. Vainu-järjestelmän sovellusrakenne [Horppu, Mielityinen,Vire].

4.3   Java-pavut

Java-pavut ovat Java-ohjelmointikielellä toteutettuja luokkia. Papuihin pyritään sijoittamaan mahdollisimman paljon JSP-sivujen Java-koodia, jolloin JSP-sivujen luettavuus paranee.

 

Kaikki yleiskäyttöiset metodit tulisi upottaa Java-papuihin. Tällöin niitä tarvitsee kutsua vain JSP-koodissa, eikä kirjoittaa aina uudestaan samaa Java-koodia JSP-koodin sekaan. Vainu-sovelluksen toteutuksessa tullaan hyödyntämään paljon valmiita Korppi-työryhmän toteuttamia papuja [Horppu,  Mielityinen, Vire].

 

4.4   Tekniset vaatimukset ja testaus

Sovelluksen tulee toimia useilla eri selaimilla, mm. Netscape, Internet Explorer, Opera, Mozilla ja Lynx. Niinpä testauksessa tulee kiinnittää huomiota sivujen esteettömyyteen. Käytännössä sivujen tulee toimia tyydyttävästi myös selainten vanhemmilla versioilla, esim. Netscape 4.

 

Toteutuksessa ei käytetä lainkaan kehyksiä ja vältetään taulukoiden käyttämistä elementtien asemointiin. HTML:ää käytetään vain rakenteen kuvaukseen ja mm. navigointipalkit, asemointi ja värimaailma toteutetaan CSS-määrityksin. Niiden kanssa pitääkin olla erityisen tarkkana, koska eri selainten CSS-tuki on valitettavasti varsin eriävää ja paikoin puutteellista.

 

Sovelluksen tulee toimia usealla eri kielellä ja kieliä täytyy voida lisätä myöhemmin. Käytännön toteutus tapahtuu tietokantatasolla, eli esim. kurssien nimet täytyy tallentaa kantaan jokaisella haluttavalla kielellä. Myös sivusto itsessään täytyy kääntää: esim. navigointipuun linkit on täten haettava myös tietokannasta. Sivujen layoutin ja toimintojen toimivuuden testaus on siten suoritettava useammalla selaimella ja niiden versioilla.

5              Tietokanta

Sovelluksen esittämä tieto tallennetaan tietokantaan, joka on jaettu kahteen osaan käytettävyyden sekä erilaisten tietokantahakujen takia. Luvussa 5.1 selvennetään Kotka-tietokantaratkaisujen vaikutusta tietokannan rakentamisessa. Luvussa 5.2 selostetaan URAANI-projektiryhmän omia ratkaisuja.

 

5.1   Kotka-tietokannan osuus

Vainun yhdistämisestä Kotka-järjestelmään oli puhetta jo projektin alkuvaiheessa, koska käytettävät työkalut, toteutuskielet ja palvelinratkaisut ovat yhtäläiset. Sovellusalue tuntui kuitenkin eroavan siinä määrin kurssikirjanpitoon keskittyvästä Korppi-sovellus, että ensimmäiset tietokantasuunnitelmat olivat riippumattomia edellä mainituista järjestelmistä.

 

Suunnitelmien edetessä yhdistämisen edut tulivat kuitenkin ilmeisiksi. Vaikka järjestelmiä ei vielä ainakaan URAANI-projektin puitteissa olekaan tarkoitus varsinaisesti sulauttaa, on tietokanta kuitenkin suunniteltu yhteensopivaksi tulevaa yhdistämistä varten. Tästä seurauksena lähes puolet tauluista on lainattu suoraan Kotka-tietokannasta, mutta paljon on täytynyt lisätä uusiakin sovelluksen erilaisen luonteen ja lähestymistavan seurauksena.

 

Kuvien 2 ja 3 ER-kaavioissa esiintyvät pienet pallot kuvaavat monikielistämistä. Kuvan 2 tietokantakaaviossa on esimerkin vuoksi purettu lyhennysmerkintä auki Line-taulun osalta. Käytännössä siis on yksi ainoa Language-taulu, mutta jokaista monikielisiä kenttiä sisältävää taulua kohti täytyy tehdä käännökset sisältävä sidostaulu.

 

Kotka-tietojärjestelmästä lainatut taulut on merkitty kuvien 2 ja 3 ER-kaavioihin merkinnällä <<Korppi>>. Taulut pohjautuvat Korppi-työryhmän ER-kaavioihin Person, Organisation ja Course_bookkeeping.

 

Osassa lainatuissa tauluissa (etenkin Person) ei luetella kaikkia kenttiä, vaan ainoastaan Vainun kannalta oleelliset. Selkeimmin lainattuja tai yhteisiä kokonaisuuksia ovat organisaatioihin, käyttöoikeuksiin, henkilöön ja monikielistämiseen liittyvät palaset.

5.2   Vainu-järjestelmän omat ratkaisut

Course-taulun saimme lainattua Kotkasta (kuva 2), mutta opintokokonaisuuksien, opintolinjojen ja aineiden osalta lähdimme puhtaalta pöydältä, niitä kun ei ollut tietokannassa. Huomattavaa on myös, että Vainu-sovelluksessa kursseilla ei ole erillisiä instansseja, kuten kurssikirjanpitoon keskittyvässä Korppi-sovelluksessa. Niinpä CompletionType-taulu (iltaopinnot ja verkko-opinnot) täytyy assosioida suoraan Course-tauluun CourseInstancen sijasta.

 

 

Kuva 2. Opiskelijan tietoihin liittyvä tietokantakaavio.

 

Vaikka Vainussa ei ainakaan toistaiseksi ole tarvetta tutkintovaatimuksien esittämiseen, projektiryhmä teki kattavan tietokantaratkaisun sille saralle. Avoimen yliopiston väylään liittyvät vaatimukset voidaan esittää hieman yksinkertaistaen samalla rakenteella. Toisaalta nyt on valmis runko, jos Kotka-järjestelmään yleensä halutaan lisätä tutkintovaatimukset.

FeedbackType-, Person- ja Module-taulujen tarkoitus on yksinkertaisesti päätellä kenelle tietyntyyppiset palautteet tai kysymykset ohjataan. Tarkoituksena on, että opintokokonaisuuksilla tai vähintään kullakin aineilla on omat vastuuhenkilönsä opintoneuvontaan liittyen. Kysymyksien käsittelijöillä on mahdollisuus lisätä usein esiintyvä kysymys mallivastauksineen FAQ-tauluun.

 

 

 

Kuva 3. Opintoihin liittyvä  tietokantakaavio.

6              Sovelluksen sivusto ja toiminnot

Vainu-sovelluksen WWW-sivujen layout ja navigointi päädyttiin toteuttamaan erittäin yksinkertaisella tavalla. Lähtökohtana niiden suunnittelussa oli se, että sivujen yleisilmeen tulee olla mahdollisimman selkeä ja havainnollinen.  Luvussa 6.1 tarkastellaan sivuston käyttöliittymä- ja navigointitoteutusta ja luvussa 6.2 eri sivujen rakennetta, niiden sisältämiä toimintoja ja tietoja.

 

6.1   Sovelluksen käyttöliittymä ja navigointi

Sivuston sivujen rakenne on yhtenäinen ulkoasultaan ja sijoittelultaan (katso kuva 4).  Navigointipalkki ruudun vasemmassa reunassa on samanlainen kaikilla sivuilla. Siinä ovat Vainu-koiran kuva ja Vainu-sovelluksen logo. Navigointipalkkiin on sijoitettu myös avoin yleishakukenttä, jonka avulla käyttäjä saa syöttämänsä sanan mukaan tietoa tietokannasta.

 

Linkit esitetään navigointipalkissa puumaisena rakenteena. Se on käytännössä kaksitasoinen puu, jossa pääkohtien alta aukenee uusia, tarkempia, linkkejä. Tältä sivulta oo linkit Vainun viiteen päähaaraan, jotka ovat: Avoimessa opiskelu, Tavoitteena tutkinto, Ammatillinen kehittyminen, Avoin väylä ja Keskustelu ja palaute. Lisäksi aloitussivulla on ajankohtaista asiaa ja sovelluksen esittelyteksti, joiden avulla on myös mahdollista päästä sovelluksen eri sivuille.

 

Kuva 4. Vainu-sovelluksen etusivu.

 

 

 

 

 

 

 

 

 

 


6.2        Sivuston rakenne

Kuvan 7 sivustokartta havainnollistaa sivuston rakennetta ja eri sivujen sisältämät toiminnallisuudet.

 

Kuva 5. Sivustokartta.

 

Avoimessa opiskelukohdassa opiskelija saa tietoa eri opiskelumuodoissa opiskeltavista opintokokonaisuuksista, hän voi täyttää ja tulostaa ilmoittautumislomakkeen avoimen yliopiston opintoihin sekä löytää valmiin linkkikokoelman avoimen yliopiston ja Jyväskylän yliopiston WWW-sivuille. Oman alalinkkikohtansa muodostaa ohjeita opiskeluun -kohta, jonka alla on opiskelutyylikartoitus,

 

Tavoitteena tutkinto -sivulla tehdään varsinaiset haut aineiden ja ammattien välillä. Ammatti-haussa syötetään aineen nimi, jonka jälkeen tulee tuloksena ammatteja, joissa voi toimia valmistuttuasi, ammattikertomus ja listaus pakollisista/suositeltavista ja ei-perinteisistä sivuaineista. Aine-haussa ammattinimikkeen perusteella saadaan lista opintokokonaisuus-ehdotuksia, joita tulee opiskella ko. ammattiin opiskeltaessa. Tarjolla on lisäksi opiskelupäiväkirja. Tutkintovaatimukset toteutetaan linkkeinä muille yliopiston sivuille. Lisäpisteet kohdassa saa tietoa niistä avoimessa yliopistossa suoritetuista opintokokonaisuuksista, joista  saa lisäpisteitä Jyväskylän yliopistoon hakuvaiheessa.

 

Ammatillinen kehittyminen -kohdassa käyttäjä saa tietoa omaan työtaustaansa sopivista opintokokonaisuuksista ja kursseista, joita opiskelemalla hän voi pätevöittää omaa ammatillista osaamistaan. 

 

Avoin väylä -sivulla on yleistä tietoa väylästä ja väylävaatimuksista. Väylävaatimukset toteutetaan niin, että käyttäjä voi syöttää opiskelemansa aineet, jonka jälkeen saadaan väylävaatimuksista vielä puuttuvat opintokokonaisuudet. Lisäksi kohdassa on väylä-opiskelijoiden kertomuksia ja tilastotietoa väylän kautta yliopistoon pyrkineistä.

 

Keskustelu ja palaute -sivulla on reaaliaikainen keskustelukanava (Chat) sekä uutisryhmäperiaatteella toimiva keskustelualue (News).  Palaute-kohdassa voi esittää kysymyksiä ja lähettää palautetta avoimen yliopiston henkilökunnalle, kuten esim. opintojen ohjaajille sekä eri aineiden opettajille.  Useimmin kysytyt kysymykset- kohdassa (FAQ) opiskelija voi lukea vastauksia usein esitettyihin kysymyksiin. Kohdassa voi antaa palautetta Vainu-sivustosta.

 

 

 


6.3        Etusivu

 

Kuva 6. Vainu-sovelluksen etusivu.

 

 

 

 

 

 

 


6.4        Avoimessa opiskelu -kohdan sivut

 

Kuva 7. Avoimessa opiskelu kohdan etusivu.

Kuva 8. Opintomuodot-sivu.

 

Kuva 9. Linkkejä muualle -sivu.

Kuva 10. Ilmoittautumislomake-sivu.


6.5   Tavoitteena tutkinto -kohdan sivut

 

Kuva 11. Tavoitteena tutkinto kohdan etusivu.

 

 

 

 

 

 

 

 


 

Kuva 12. Tavoitteena tutkinto -kohdan Mihin ammattiin valmistun sivu.

Kuva 13. Tavoitteena tutkinto -kohdan Mitä opiskella sivu.

Kuva 14. Tavoitteena tutkinto -kohdan Tutkintovaatimukset sivu.

 


6.6   Ammatillinen kehittyminen -kohdan sivut

 

Kuva 15. Tavoitteena ammatillinen kehittyminen kohdan etusivu.

 

Kuva 16. Tavoitteena ammatillinen kehittyminen kohdan Miten kehitän työtäni? - sivu .

 


6.7   Avoin väylä -kohdan sivut

 

Kuva 17. Avoimen väylän kohdan etusivu.

 

Kuva 18. Avoimen väylän kohdan Yleistä väylästä-sivu.

Kuva 19. Avoimen väylän kohdan Väylävaatimukset-sivu.


6.8   Keskustelu ja palaute -kohdan sivut

 

Kuva 20. Keskustelu & palaute kohdan etusivu.

Kuva 21. Keskustelu & palaute kohdan Palaute-kohdan etusivu.

Kuva 22. Keskustelu & palaute kohdan Palautteen lähetys kurssisihteerille -sivu.

Kuva 23. Keskustelu & palaute kohdan Palautteen lähetys opettajalle -sivu.

 

Kuva 24. Keskustelu & palaute kohdan Palautteen lähetys avoimen opintoneuvojalle -sivu.

Kuva 25. Keskustelu & palaute kohdan Palautteen lähetys suunnittelijalle -sivu.

Kuva 26. Keskustelu & palaute kohdan Palautteen lähetys Vainusta -sivu.

Kuva 27. Keskustelu & palaute kohdan FAQ-sivu.

 

 

 

 

 

 

 

 

Kuva 28. Keskustelu & palaute kohdan Chat-sivu.

 

Kuva 28. Päiväkirjan etusivu.

 

Sovelluksen vasemman navigointipalkin logo ja kuva esitellään kuvissa 15 ja 16.

 

Kuva 29. Vainu-sovelluksen logo.

 

 

 

Kuva 30. Vainu-sovelluksen Vainu-koira.

6.9   Admin-sivut

 

Kuva 31. Admin-sivujen sisäänkirjautumissivu.

 

 

Kuva 32. Admin-sivujen etusivu.

 

 

 

 

 

 

 

 

 

 

6.10 Opinnot-kohdan sivut

 

Kuva 33. Opinnot kohdan opintokokonaisuuksien syötön etusivu.

 

Kuva 34. Opinnot kohdan opintokokonaisuuksien syöttösivu.

Kuva 35. Opinnot kohdan opintokokonaisuuteen kuuluvien kurssien etusivu.

Kuva 36. Opinnot kohdan opintokokonaisuuksiin kuuluvien  kurssien syöttösivu.

Kuva 37. Opinnot kohdan  kurssin valintasivu.

Kuva 38. Opinnot kohdan opintokokonaisuuksiin kuuluvien  kurssien opintomuodon liitossivu.

Kuva 39. Opinnot kohdan uusien opintomuotojen syöttösivu.

Kuva 40. Opinnot kohdan opintokokonaisuuksien liitto ammatteihin opintokokonaisuuden valintasivu.

 

Kuva 41. Opinnot kohdan opintokokonaisuuksien liitto ammatteihin-sivu.

 

Kuva 42. Opinnot kohdan uusien kurssien ja niiden tietojen etusivu.

Kuva 43. Opinnot kohdan uusien kurssien ja niiden tietojen syöttö-sivu.

Kuva 44. Opinnot kohdan kurssin liitto kiinnostuksiin kurssin valintasivu.

 

 

 

Kuva 45. Opinnot kohdan kurssin liitto kiinnostuksiin sivu.

 

Kuva 46. Opinnot kohdan oppiaineen lisäyksen etusivu.

Kuva 47. Opinnot kohdan oppiaineen lisäyssivu.

Kuva 48. Opinnot kohdan uuden opintomuodon lisäyksen etusivu.

 

Kuva 49. Opinnot kohdan uuden opintomuodon lisäykssivu.

 

 

 

 

 

 


6.11   Ammatit-kohdan sivut

 

Kuva 50. Ammatit kohdan uuden ammatin lisäyksen etusivu.

Kuva 51. Ammatit kohdan uuden ammatin lisäyssivu.

Kuva 52. Ammatit kohdan ammatin liitto opintokokonaisuuteen etusivu.

Kuva 53. Ammatit kohdan ammatin liitto opintokokonaisuuksiin sivu.

Kuva 54. Ammatit kohdan ammatin liitto kiinnostukseen etusivu.

 

Kuva 55. Ammatit kohdan ammatin liitto kiinnostukseen sivu.

 

 

 

 

 

 

 

 

 

 

 

 

6.11   Organisaatiot-kohdan sivut

 

Kuva 56. Organisaatiot kohdan uuden organisaatiotyypin lisäyksen etusivu.

Kuva 57. Organisaatiot kohdan uuden organisaatiotyypin lisäys.

Kuva 58. Organisaatiot kohdan organisaation alaorganisaatioiden liitoksen etusivu.

Kuva 59. Organisaatiot kohdan organisaation alaorganisaatioiden liitossivu.

Kuva 60. Organisaatiot kohdan uuden organisaation lisäyksen etusivu.

Kuva 61. Organisaatiot kohdan uuden organisaation lisäys.


6.13 Kiinnostus & Kertomus kohdan sivut

 

Kuva 62. Kiinnostus & Kertomus kohdan uuden kertomuksen lisäyksen etusivu.

Kuva 63. Kiinnostus & Kertomus kohdan uuden kertomuksen lisäys-sivu.

Kuva 64. Kiinnostus & Kertomus kohdan kiinnostuksen liitto ammattiin etusivu.

Kuva 65. Kiinnostus & Kertomus kohdan kiinnostuksen liitto ammattiin.

Kuva 66. Kiinnostus & Kertomus kohdan uuden kiinnostuksen lisäyksen etusivu.

Kuva 67. Kiinnostus & Kertomus kohdan uuden kiinnostuksen lisäys-sivu.

Kuva 68. Kiinnostus & Kertomus kohdan uuden kiinnostuksen liitto kurssiin etusivu.

Kuva 69. Kiinnostus & Kertomus kohdan uuden kiinnostuksen liitto kurssiin -sivu.


6.14 Kiinnostus & Kertomus kohdan sivut

 

Kuva 70. Väylävaatimukset kohdan uuden aineen syötön etusivu.

 

Kuva 71. Väylävaatimukset kohdan uuden aineen syöttösivu.

 

 

 

Kuva 72. Väylävaatimukset kohdan vaatimuksen liitto kursseihin/opintojaksoihin aineen/vaatimuksen valintasivu.

 

Kuva 73. Väylävaatimukset kohdan vaatimuksen liitto kursseihin/opintojaksoihin liitossivu.

Kuva 74. Väylävaatimukset kohdan vaatimuksen liittoopintokokonaisuuteen etusivu.

 

 

Kuva 75. Väylävaatimukset kohdan vaatimuksen liitto opintokokonaisuuteen liitossivu.

 

 

 

 


6.15 FAQ-kohdan sivut

 

Kuva 76. FAQ-kohdan lisää uusi kysymys usein FAQ:n etusivu.

Kuva 77. FAQ-kohdan lisää uusi kysymys ja vastaus siihen usein FAQ:n sivu.

Kuva 78. FAQ-kohdan lisää uusi kertomus etusivu.

Kuva 79. FAQ-kohdan lisää uusi kysymys ja vastaus siihen usein FAQ:n sivu.?

 

6.16 Sivut-kohdan sivut

7     Ohjelmakoodissa käytettävät merkinnät

URAANI-projekti päätyi käyttämään sovelluksen moduulien listauksissa mahdollisimman samanlaista kommentointitapaa kuin KOTKA- ja KORPPI -projektit. Tämä johtuu siitä, että ryhmä tulee käyttämään ja muuttamaan kyseisten projektien toteuttamia Java-papuja. Alla on esimerkki noudatettavasta kommentointitavasta.

 

 

/***********************************************************************                          ******MODULE DESCRIPTION                             

******************************************************************************

* NAME: XXX

* LANGUAGE: JSP 1.1

* DATE: 7/3/2002          

* AUTHOR: XXX, Jyväskylän yliopisto

******************************************************************************

*                  COPYRIGHT (C) 2002 URAANI-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license              

*****************************************************************************/

/******************************************************************************                                  UPDATES

******************************************************************************Initial release

*****************************************************************************/

class MyClass inplements ... extends ... {

protected:                 // Attributes

boolean       MyBoolean;               // MyBoolean is used for....

int           MyInt;                   // MyInt is used for...

double        MyDouble;               

 

public:                                // Access methods

boolean       isMyBoolean();

void          setMyBoolean(boolean MyBoolean);

int           getMyInt();

}

8     Testausperiaatteita

Sovelluksen testaamiselle on varattu tietty ajanjakso projektin loppuvaiheessa. Tällöin sovelluksen testaus on pääasiallinen tehtävä, mutta projektin toteutusvaiheessa tarkkaillaan tietokantarakenteen, SQL-kyselyjen, JSP:n ja JavaPapujen toteutusten virheettömyyttä.

9     Yhteenveto

Tässä dokumentissa on  esitelty URAANI-projektin sovellukselle asetetut vaatimukset ja sen toteutustekniikat. Vainu-sovelluksen toteutuksessa edetään sovellussuunnitelman mukaan. Dokumentti on suunnattu pääasiassa URAANI-organisaatiolle projektin hallinnon ja seurannan tueksi sekä tueksi toteutusvaiheelle. Näin suunnitteluvaiheen aikana syntyneet ominaisuudet voidaan vain ohjelmoida toimivaan muotoon. Tällä tavoin totetusvaiheessa ei tarvitse enää miettiä, sitä, mitä nyt pitäisi koodata.

 

 

Lähteet

Ismo Horppu, Markku Mielityinen, Markku Vire, ”KOTKA-projektin projektikansio”,  saatavilla HTML-muodossa <URL: http://kotka.it.jyu.fi/kotka>, Jyväskylän Yliopisto, tietotekniikan laitos, 2000.

 

Lesonen Minna, Pekkanen Hannu, Tawast Tuukka ja Uuksulainen Heikki, ”KORPPI-projektin projektikansio”, saatavilla HTML-muodossa <URL: http://kotka.it.jyu.fi/korppi>, Jyväskylän yliopisto, tietotekniikan laitos, 2001.

 

Jaakkola Mia, Juutinen Sanna, Lupari Matti, Nieminen Mikko, ”KOLIBRI-projektin  projektikansio”, saatavilla HTML-muodossa

<URL:   http://kotka.it.jyu.fi/kolibri>, Jyväskylän Yliopisto, tietotekniikan laitos, 2002.

 

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

 

URAANI-ryhmä, ”URAANI-projektipalaverien pöytäkirjat”,  Jyväskylän Yliopisto, tietotekniikan laitos, 2002.