Kaakkuri

Tietotekniikan sovellusprojekti

Petteri Kela
Antti Pokela
Santtu Salmi
Matti Suomalainen

Vaatimusmäärittely

7. joulukuuta 2004

Versio 0.5



Tietoja Kaakkuri-projektista

Tekijät:                       Petteri Kela, PK, (kapekela@cc.jyu.fi)
Antti Pokela, AP,
(anpokela@cc.jyu.fi)
Santtu Salmi, SS,
(ssalmi@cc.jyu.fi)
Matti Suomalainen, MS,
(msuomal@cc.jyu.fi)

Tilaaja:                        Jyväskylän yliopisto, tietotekniikan laitos

Tilaajan edustajat:     Päivi Jämsen, (pjamsen@mit.jyu.fi)             Vesa Lappalainen (vesal@mit.jyu.fi)

Vastaava ohjaaja:       Lari Kannisto (kalahe@mit.jyu.fi)

Tekninen ohjaaja:       Arto Rikalainen (artturi@cc.jyu.fi)

Käytettävyyskonsultit:

                                    Ville Haapsaari (vjhaaps@cc.jyu.fi)
Jukka Partanen
(jpartan@cc.jyu.fi)

Yhteystiedot:              Työtila AgC222.2, puhelin (014) 260 4963

Kotisivu:                     http://sovellusprojektit.it.jyu.fi/kaakkuri/

Postilista:                    kaakkuri@korppi.jyu.fi

Tiivistelmä:                Vaatimusmäärittely kuvaa Kaakkuri-projektin toteuttaman sovelluksen teknisiä ja toiminnallisia vaatimuksia.  Se sisältää myös kuvauksen sovelluksen rakenteesta ja käyttötapauskuvauksia.


Versiohistoria

Versio

Päiväys

Tekijä

Muutokset

0.1

 

MS

Esittelysivu ja otsikot

0.2

 

MS

Sisältö kappaleisiin 1, 2, 3, 4, 5

0.3

15.11.2004

MS

Lisätty vaatimukset 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14.

0.4

22.11.2004

MS

Kirjoitettu käyttötapaukset ja lisätty vaatimukset 15, 16, 17, 18, 19, 20.

0.5

7.12.2004

MS

Vaatimukset muutettu taulukkomuotoon. Lisätty kappale kohtaan 5, Järjestelmän kuvaus. Lisätty kuva kohtaan 5. Korjattu kirjoitusvirheitä.


Sisällysluettelo

1      Johdanto. 1

2      Termejä. 1

3      Toiminnalliset vaatimukset 2

4      Tekniset vaatimukset 5

5      Järjestelmän kuvaus. 6

6      Käyttötapaukset 6

6.1       Käyttäjäryhmä. 6

6.2       Käyttötapauskuvaukset 7

6.2.1        Käyttäjä lisää blokin blokkieditorissa. 7

6.2.2        Käyttäjä sijoittaa kurssin blokkiin. 9


1           Johdanto

Kaakkuri-projekti on Jyväskylän yliopiston tietotekniikan laitoksella syksyn 2004 aikana toteutettava sovellusprojekti. Projekti toteuttaa Windows-pohjaisen suunnittelusovelluksen yhden tai useamman laitoksen kurssien opetustapahtumien sijoitteluun määriteltyihin saleihin ja ajankohtina.

Tämä dokumentti sisältää sovelluksen vaatimusmäärittelyn. Kappaleessa kaksi käsitellään dokumenttiin liittyviä vieraita termejä. Kappaleet kolme ja neljä sisältävät kuvaukset vaatimuksista. Kappaleessa viisi kuvataan lyhyesti järjestelmän toimintaa. Kappale kuusi sisältää yksityiskohtaisia käyttäjäkuvauksia.

 

 

2           Termejä

Projektin sisällä sovittuja termejä

Blokki                Blokki on apuväline säännöllisen kurssin luentojen sijoittamisessa. Blokkia kuvataan isolla kirjaimella: A, B, C jne. Blokki sitoo yhteen tiettyjä kellonaikoja, tiettyinä päivinä viikossa (blokki A voi siis olla esimerkiksi seuraavanlainen: ma 10-12 ja ti 12-14). Blokkiin A sijoitetut kurssit siis toistuvat joka viikko blokkiin kiinnitettyinä ajankohtina.

Tapahtumaryhmä

                            Tapahtumaryhmä sisältää tietyn tyyppistä tapahtumaa (luento, demo, ohjaus…) niin monta kappaletta kuin kyseinen tyyppi kurssissa kestää viikoissa. Tämä tieto voidaan laskea, kun tiedetään kuinka monta kyseisen tyypin tapahtumaa kurssissa on ja kuinka monta kertaa viikossa.

Projektissa käytössä olevia yleisiä termejä

Java                    Java on oliopohjainen, laitteistoriippumaton ohjelmointikieli, mikä mahdollistaa Javalla kirjoitettujen sovellusten ajamisen useilla eri laitteistoarkkitehtuureilla.

Korppi                 Korppi on opintotietojärjestelmä, joka tarjoaa tietoa ja työvälineitä mm. opiskelijoille ja opettajille. Korppi-järjestelmän avulla voidaan esimerkiksi ilmoittautua kursseille ja tentteihin, varata opetusta varten saleja ja muita työvälineitä jne.

3           Toiminnalliset vaatimukset

Sovelluksen avulla on pystyttävä suunnittelemaan lukukauden luentolukujärjestys, jossa on huomioitu tarvittavat reunaehdot. Tässä luvussa esitellään sovelluksen toiminnalliset vaatimukset tarkemmin. Vaatimukset on jaettu kahteen prioriteettiluokkaan: toteutettavat ja toivottavat. Näitä kuvataan kirjaimilla, toteutettavat: A ja toivottavat: B.

1.

Opiskelijalle tarkoitetut kurssit ei päällekkäin

A

Tietylle opiskelijalle lukukausitasolla suunnattujen kurssien päällekkäisyys täytyy huomioida.

2.

Opettajan kaksoisvaraus

B

Samaa opettajaa ei voi asettaa kahteen eri paikkaan samaan aikaan.

3.

Pakolliset sivuaineet

A

Pakollisten sivuaineiden approbaturtasoiset kurssit tulee olla mahdollista ottaa huomioon suunnittelussa. Pääaineen ja sivuaineen approbaturtasoiset kurssit eivät saisi olla päällekkäin.


 

4.

Salivarausten päällekkäisyys

A

Samaan saliin ei voi varata tiettyyn aikaan kuin yhden tapahtuman.

5.

Salin koko

B

Sovellus huomauttaa suuresta poikkeavuudesta salin koon ja kurssille oletettavasti osallistuvien opiskelijoiden määrän suhteen.

6.

Näkymät

A

Sovelluksessa on periodi- ja kalenterinäkymä. Kalenterissa näkyy viikko kerrallaan. Käyttäjä voi itse lisätä haluamansa ”periodin” esim. vko 36 – 52 vuonna 2004.

7.

Sijoittaminen periodinäkymässä

A

Periodinäkymässä voi sijoittaa kurssin kerralla kokonaisuudessaan johonkin blokkiin. Jos kurssi ei mahdu blokkiin, jää ylimääräiset tapahtumat sijoittamatta. Periodinäkymässä voi tapahtumia sijoittaa myös ohi blokkirakenteen viikkoluento kerrallaan.

8.

Sijoittaminen kalenterinäkymässä

A

Kalenterinäkymässä voidaan käyttää periodinäkymän (kohta 7.) sijoittelumahdollisuuksia ja lisäksi sijoitella yksittäisiä tapahtumia mielivaltaisiin paikkoihin kalenterissa.

9.

Yhteys Korppiin

A

Sovelluksesta on yhteys korppi-järjestelmään.

10.

Haku Korpista

A

Sovellus pystyy hakemaan korpista tiedot kursseista (kurssikuvaus, osallistujien määrä, luentojen määrä, aloitus päivämäärä) ja tiedot saleista (nimi, koko, varusteet).

11.

Vienti Korppiin

A

Sovellus pystyy viemään korppiin kurssiin kuuluvien luentojen ajat (yksittäisten luentojen tarkat ajat ja päivät) ja luennoille varattavat salit.

12.

Sijoitetun poistaminen

A

Käyttäjä pystyy poistamaan minkä tahansa sijoitetun kurssin, tapahtumaryhmän tai tapahtuman sijoituksen ja se ilmestyy uudestaan sijoittamattomien kurssien joukkoon

13.

Blokkieditori

A

Sovelluksessa on blokkieditori, jolla pystyy tekemään haluamansa blokkirakenteen. Blokkirakenteen pystyy tallentamaan ja sitä pystyy muokkaamaan. Blokille voi antaa mielivaltaisen nimen.

14.

Kurssiryhmät

A

Sovelluksessa on kurssiryhmäeditori, jolla voi muodostaa kursseista ryhmiä (tämä mahdollistaa samaan ryhmään kuuluvien kurssien päällekkäisyyden tarkistamisen). Ryhmälle voi antaa mielivaltaisen nimen. Ryhmä voi sisältää toisia ryhmiä.

15.

Viikon jakaminen ajanjaksoihin

B

Viikko voidaan jakaa juoksevalla numeroinnilla yhden tai useamman tunnin jaksoihin.

16.

Kurssien vieminen ilman salivarausta

B

Kurssit voidaan viedä Korppi-järjestelmään ilman salivarausta (nähdään mahdolliset päällekkäisyydet).

17.

Demot, ohjaukset

B

Sovelluksella pystyy sijoittamaan myös kurssiin liittyvät demot, ohjaukset ja mahdolliset muut tapahtumat.


 

18.

Salivarauskonfliktit

B

Sovellus huomaa mahdolliset ennalta tiedetyt salivarauskonfliktit ja pystyy huomauttamaan näistä käyttäjälle. Sovellus voi tarvittaessa poistaa tietyltä viikolta luennon ja siirtää sen automaattisesti kurssin loppuun jatkaen näin kurssin kestoaikaa viikolla.

19.

Tapahtumien lisääminen

B

Käyttäjä pystyy lisäämään haluamansa määrän tietynlaisia tapahtumia johonkin kurssiin ja sijoittelemaan ne normaalisti

20.

Tarkat ajat

A

Päivämäärät ja kellon ajat tallennetaan tietorakenteisiin tarkasti kalenteritasolla.

 

4           Tekniset vaatimukset

Tilaajan toiveena oli, että sovellusta voisi suorittaa eli alustoilla. Tämän vuoksi päätettiin, että sovellus tehdään Java-ohjelmointikielellä. Kehitysympäristönä käytetään Borland JBuilder9 ohjelmistoa. Javalla toteutetut sovellukset ovat alustariippumattomia ja näin ollen sovellus tulee ainakin teoriassa toimimaan monella eri käyttöjärjestelmällä. Sovelluksesta on tarkoitus tehdä monikäyttöinen, jotta eri laitokset yliopistolla voisivat hyötyä siitä. Java näyttelee osaa myös tässä, koska joillakin amanuensseilla on käytössään MAC -tietokoneet.

Sovellus suunnitellaan käytettäväksi vähintään 1024x768 resoluutiolla, mutta sujuvan toiminnan kannalta olisi suurempi resoluutio suositeltava. Sovellusta käyttävässä tietokoneessa tulee olla toimiva internet yhteys. Muita laitteistolle suunnattavia vaatimuksia sovellus ei aseta. Tietokoneen laskentateho vaikuttaa kurssien sijoittelussa laskettavien näkymien ja rajoitteiden vasteaikaan. 

5           Järjestelmän kuvaus

Sovelluksessa on suunnittelunäkymä, jossa käyttäjä voi itse konfiguroida haluamansa blokkirakenteen. Sovellus hakee Korpista kaikki luennoitavat kurssit ja listaa ne näkyville pääkäyttöliittymään. Kurssien olemassa olevia tietoja voi tarkastella tässä näkymässä. Käyttäjä aloittaa luentolukujärjestyksen suunnittelun sijoittamalla jonkin kurssin käyttöliittymässä olevaan viikkonäkymään. Sovellus pitää yllä tietoa siitä, mihin blokkeihin tietty kurssi voidaan rajoitteet huomioon ottaen sijoittaa. Tietty kurssi sisältää tietyn määrän luentoja viikossa. Nämä luennot voidaan sijoittaa myös blokkirakenteen ohi täysin mielivaltaisiin paikkoihin viikkonäkymässä.

Sovelluksen rakenne perustuu tekstitiedostopohjaiseen rajapintaan Korppi-järjestelmän kanssa.

6           Käyttötapaukset

Tässä luvussa esitellään sovelluksen käyttäjäryhmä ja tarkastellaan käyttötapauksia. Käyttötapauskuvauksissa kuvataan käyttäjän toiminta, sovelluksen vastineet toimintaan, sekä mahdolliset poikkeukset ja erikoistapaukset.

6.1             Käyttäjäryhmä

Sovelluksesta yritetään tehdä mahdollisimman monikäyttöinen, jotta se sopisi monen eri laitoksen tarpeisiin. Varsinainen käyttäjäryhmä ovat eri laitosten amanuenssit ja muut henkilöt, jotka osallistuvat luentolukujärjestyksen suunnitteluun. Sovelluksen käyttäjäryhmä on rajattu tiettyihin henkilöihin ja tämä on otettu huomioon käytettävyyden suunnittelussa. Tärkeintä on siis ohjelman toimivuus, eikä siitä ole tarkoitus tehdä kauneinta kukkasta kedolla.

6.2             Käyttötapauskuvaukset

Käyttötapauskuvauksissa käydään läpi yksityiskohtaisesti erilaisia operaatioita, joita käyttäjä ohjelmalla pystyy tekemään, ja tarkastellaan sovelluksen näihin antamaa vastinetta sekä mahdollisia poikkeuksia ja virhetilanteita.

Kuvausten tekemisessä on käytetty suurempi kuin (>) - ja pienempi kuin (<) -merkkejä kuvaamaan toimenpiteen suuntaa suhteessa käyttäjältä sovellukselle: > ja sovellukselta käyttäjälle: <.

6.2.1        Käyttäjä lisää blokin blokkieditorissa

Esiehdot:

Käyttäjä on käynnistänyt blokkieditorin

Kuvaus:

< Blokin nimeä vastaava ruutu on aktiivinen

> Käyttäjä kirjoittaa haluamansa mielivaltaisen blokin nimen ja painaa ”Lisää”-nappulaa tai hyväksyy sovelluksen ehdottaman blokin nimen (iso aakkosten kirjain) painamalla ”Lisää”-nappulaa

< Valittu blokin nimi siirtyy ikkunan vasemmassa laidassa sijaitsevaan blokkilistaan ja ikkunan fokus siirtyy mukana kyseessä olevan blokin nimen kohdalle. Lisätty blokki on nyt valittuna.

> Käyttäjä valitsee hiirellä oikealla olevasta taulukosta ne viikon aikajaksot, jotka haluaa liittää kyseiseen blokkiin. Painamalla hiiren nappia tietyn taulukon solun päällä muuttuu sen väri ja siihen ilmestyy blokin nimi. Käyttäjä pystyy poistamaan valintansa painamalla hiiren nappia uudestaan saman solun päällä.

> Käyttäjä on valinnut sopivat solut blokkiin ja on tyytyväinen tulokseen. Hän painaa ”Ok”-nappia.

< Palaa pääkäyttöliittymään.

Mahdolliset ongelmat:

1.

> Käyttäjä painaa ”Ok”-nappia ennen kuin on valinnut blokkiin kuuluvia aikajaksoja.

< Luotu blokki säilyy blokkilistassa, mutta siihen ei ole sijoitettu aikajaksoja. Sovellus palaa pääkäyttöliittymään.

2.

> Käyttäjä painaa ”Peruuta”-nappia ”Ok”-napin sijasta.

< Sovellus kysyy onko käyttäjä varma, että haluaa peruuttaa tekemänsä muutokset.

2.1

> Käyttäjä painaa ”Kyllä”-nappia.

< Sovellus poistaa kaikki käyttäjän tekemät muutokset ja palaa pääkäyttöliittymään.

2.2

> Käyttäjä painaa ”Ei”-nappia.

< Sovellus palaa blokkieditori ikkunaan ja luotu blokki on edelleen blokkilistassa.

6.2.2        Käyttäjä sijoittaa kurssin blokkiin

Esiehdot:

  1. Käyttäjä on hakenut kurssit Korpista
  2. Käyttäjä on luonut blokkeja blokkieditorilla

Kuvaus:

< Sovellus näyttää haetut kurssit puurakenteessa käyttöliittymän vasemmassa reunassa.

> Käyttäjä valitsee puusta tietyn kurssin klikkaamalla sitä hiiren napilla

< Sovellus esittää kurssin tiedot puun alla sijaitsevassa inforuudussa

> Käyttäjä haluaa nähdä kurssin sisällön tarkemmin ja tuplaklikkaa kurssia puussa

< Sovellus avaa kurssin puussa ja näyttää sijoitettavien tapahtumien otsikot (Luennot, Demot, Ohjaukset, jne…)

> Käyttäjä tarttuu otsikkoon hiirellä ja raahaa sen haluamansa blokin päälle ja vapauttaa hiiren napin

< Sovellus sijoittaa kurssin blokkiin ja kirjoittaa vastaaviin ruutuihin taulukossa kurssin koodin ka viikot, joilla kurssi pidetään.

Mahdolliset ongelmat:

-