Matematiikan oppifoorumi Vaatimusdokumentti Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Ohjelmistotuotantoprojekti 1.11.1999 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Sisältö 1. Johdanto 1 1.1 Tuotteen tausta ja tarkoitus 1 1.2 Erikoissanasto ja käytetyt lyhenteet 1 2. Yleiskuvaus 2 2.1 Yleinen toiminta 2 2.2 Tuotteen toimintaympäristö 3 2.3 Tuotteen käyttäjäkunta 4 3. Tietokuvaus 5 3.1 Tietosisältö ja tietokantamalli 5 3.2 Kapasiteetti- ja saantiaikavaatimukset 7 4. Toimintokuvaus 7 4.1 Järjestelmän arkkitehtuuri 7 4.1.1 Toiminnalliset pääkomponentit 7 4.1.2 Pääkomponenttien väliset suhteet ja rajapinnat 8 4.1.3 Käyttötapaukset 11 4.2 Komponenttien kuvaus 14 4.2.1 Sisäänkirjoittautuminen 14 4.2.2 Rekisteröintisivu 15 4.2.3 Käyttäjänhallinta 15 4.2.4 Kurssivalinta 15 4.2.5 Kurssin pääsivu (oppimateriaalin selaus) 16 4.2.6 Kurssihallinta 16 4.2.7 Keskustelu 16 4.2.8 Viestieditori 17 4.2.9 Kaavaeditori / Kaava 17 4.2.10 Harjoitusikkuna 18 4.2.11 Harjoitus 18 4.2.12 Käyttäjäprofiilin tulostus 18 4.2.13 Kurssin luonti (kurssin kouluttaja) 19 4.2.14 Käyttäjähallintasivu (ylläpitäjä) 19 5. Käyttöliittymä 19 5.1 Rajoitukset 19 5.2 Opiskelija 20 5.2.1 Pääikkuna 20 5.2.2 Kysymykset 22 5.2.3 Kaavaeditori 24 5.2.4 Harjoitukset 24 5.3 Kouluttaja 26 6. Järjestelmän muut ulkoiset liittymät 26 7. Muut ominaisuudet 27 7.1 Suorituskyky 27 7.2 Virheistä toipuminen ja turvallisuus 27 7.3 Ylläpidettävyys 28 8. Testaus 28
9. Rajoitteet suunnittelulle ja toteutukselle 29 9.1 Noudatettavat standardit 29 9.2 Laitteistorajoitteet 29 9.3 Ohjelmistorajoitteet 30 Versio 0.1 Jukka Kariola 14.10.1999 Versio 0.2 Jukka Kariola 1.11.1999 Kirjoitusvirheiden korjaukset, otsikkohierarkian muutos ja pieniä tarkennuksia.
1 1 Johdanto (HV) 1.1 Tuotteen tausta ja tarkoitus Tietokoneavusteisessa matematiikan opetuksessa suurin osa ohjelmistoista on kehitetty kouluikäisten lasten opetukseen ja toistaiseksi vain harvoja on suunnattu korkeakouluopiskelijoille. Internet-tekniikka tarjoaa hyvät mahdollisuudet rakentaa tietyn asian ympärille keskittyvän keskustelufoorumin, jonka kautta kuka tahansa voi yrittää etsiä vastausta ongelmaansa tai vastata muiden kysymyksiin. Harvoissa opetusjärjestelmissä on vielä hyödynnetty palautetta mahdollisuutena kehittää oppimateriaalia. Toinen Internetissä laajasti käytössä oleva etäopetusmuoto on toimittaa verkkoon oppimateriaalia WWW-selaimilla katseltavaan muotoon. Matemaattisten kaavojen tuottaminen selaimen ymmärtämään muotoon on ollut kohtuullisen vaikeaa, mutta nyt on olemassa jo joitakin selaintuotteita (IceBrowser, WebEq, TechExplorer), jotka pystyvät tulkkaamaan HTML-tekstiin upotettuja MathML-kaavoja. Matematiikan oppifoorumi (MatWO) on järjestelmä, jossa hyödynnetään Internetin mahdollistamaa oppimateriaalin levitystapaa ja yhdistetään siihen materiaalin kehittyminen kysymysten ja niihin tulevien vastausten perusteella. Järjestelmä sisältää helppokäyttöisiä välineitä oppimateriaalin ja varsinkin matemaattisten kaavojen tuottamiseen. Järjestelmän tavoitteena on kehittää matematiikan opiskelua helpottamalla avun saamista vaikeiksi koettuihin asioihin toisaalta kysymysten ja vastausten ja toisaalta materiaaliin kohdistuvan kommentoinnin kautta. Oppifoorumi on tarkoitettu käytettäväksi selaimilla, jotka mahdollistavat Java-applettien käsittelyn. 1.2 Erikoissanasto ja käytetyt lyhenteet Applet on asiakkaassa (clientissa) suoritettava sovelma.
2 HTML, Hypertext Markup Language on Internetissä käytetty tiedon esitystapa, jota client-pään selaajat osaavat tulkata. JSP, Java Server Page on tekniikka, joka helpottaa palvelinsovellusten ohjelmointia ja ylläpitoa. JDBC-ajuri, Java DataBase Connect - ajuri mahdollistaa tietokantakutsut palvelinsovelmista. MathML, Matematical Markup Language mahdollistaa matemaattisen kaavan esittämisen HTML-sivulla. Servlet on Javalla koodattu ohjelmamoduuli, joka suoritetaan palvelimella, palvelinsovelma. XML, Extensible Markup Language on tiedonkuvauskieli. WWW-palvelin on keskitetty palvelintietokone, joka sisältää Internet-verkkoon toimitettavia HTML/JSP-sivuja, tietokannan sivuille dynaamisesti ladattavista tiedoista sekä aineiston käsittelyyn tarvittavan ohjelmiston. 2 Yleiskuvaus (HV) 2.1 Yleinen toiminta MatWO tarjoaa kouluttajalle, opiskelijalle ja ylläpitäjälle välineet matematiikan oppifoorumin käyttöön Internet- tai intranet-ympäristössä. MatWO tarjoaa välineet käyttäjien rekisteröintiin ja ylläpitäjälle tavan kouluttajien käyttövaltuuksien hallintaan.
3 Kouluttaja voi laatia ja muokata perustamiinsa kursseihin liittyvää oppimateriaalia, kirjoittaa tehtäviä ja suunnitella niihin liittyvät vastausvaihtoehdot vihjeineen. Kouluttaja voi seurata materiaaliin tullutta palautetta ja vastata aineistoon tai tehtäviin liittyviin sekä hänelle suoraan osoitettuihin kysymyksiin. Hän voi myös halutessaan poistaa aiheettomia kysymyksiä. Kouluttajan on mahdollista seurata, miten yksittäistä kurssia käydään seuraamalla luettuja sivuja ja kysymyksiin vastaamista. Opiskelija voi opiskelijaksi rekisteröidyttyään valita suoritettavakseen yhden tai useamman kurssin. Opiskelu tapahtuu lukemalla aineistoa kappale kerrallaan ja vastaamalla samalla kysymyksiin, joiden valintavaihtoehdoista muodostuu puumaisesti etenevä oikeiden vastausten polku. Oppimateriaalin kappaleiden ymmärrettävyydestä voi myös antaa helposti palautetta. Opiskelija voi jatkaa kurssin suorittamista edellisessä istunnossa lopettamastaan kohdasta. Opiskelija voi esittää kysymyksiä yleisesti vastattavaksi tai kohdistaa ne tietylle kouluttajalle. Hän voi myös itse halutessaan vastata muiden kysymyksiin tai kommentoida niiden vastauksia. Opiskelija voi seurata edistymistään kysymällä tehtäviin käyttämäänsä vastausaikaa. Kouluttajilla ja opiskelijoilla on käytössä kaavojen kirjoittamista helpottava kaavaeditori. 2.2 Tuotteen toimintaympäristö MatWO toimii client-server periaatteella Internetin tai intranetin kautta. Ohjelmisto ja tietokanta sijaitsevat palvelimella, johon opiskelijat ja kouluttajat ovat yhteydessä WWW-selainten avulla (kuva 2.1). Tuote vaatii JSP-yhteensopivan WWWpalvelimen, JDBC-yhteensopivan tietokannan sekä Java-yhteensopivan selaimen.
4 MatWO- toimintaympäristö Internet/Intranet WWW-selain HTML-sivut JSP-sivut Tietokanta JSP-kääntäjä Kuva 2.1 MatWO-toimintaympäristö 2.3 Tuotteen käyttäjäkunta MatWOn käyttäjäkunnan on muodostavat korkeakoulutason opettajat ja opiskelijat (kuva 2.2). Opiskelijoiden ei tarvitse olla yliopiston kirjoilla. Järjestelmällä on myös ylläpitäjä, joka pitää huolta mahdollisten teknisten asioiden lisäksi kouluttajavaltuuksista. MatWo-sidosryhmät Ylläpitäjä MatWO Opiskelija Kouluttaja Kuva 2.2 Matwo-käyttäjäkunta
5 3 Tietokuvaus 3.1 Tietosisältö ja tietokantamalli (CJ & SV) Tuotteessa tallennetaan käyttäjätiedot ja tietoa käyttäjien istunnoista, kurssitiedot, kurssilohkot ja niihin liittyvät palautteet, keskustelujen viestit, harjoitukset ja niihin liittyvät faktat, sekä matemaattiset kaavat. Opiskelija ilmoittautuu kurssille, joka koostuu kurssilohkoista ja harjoituksista. Suorittaminen tapahtuu istunnoissa, joissa selataan kurssilohkoja (asiakokonaisuuksia) ja suoritetaan harjoituksia. Kuhunkin kurssilohkoon liittyy 0-n harjoitusta, mutta harjoitus liittyy aina vain yhteen lohkoon (isomman materiaalikokonaisuuden hallitsemista vaativa harjoitus liittyy kertauslohkoon). Harjoitus sisältää vihjeitä, jotka voivat viitata (matemaattisiin lauseisiin eli) faktoihin, jotka voivat liittyä yhteen tai useampaan lohkoon. Harjoitukset ja lohkot voivat sisältää matemaattisia kaavoja. Opiskelija voi tehdä kysymyksiä, vastata tai kommentoida muiden kysymyksiä (viestit), jotka liittyvät tiettyyn lohkoon. Viestiin voi myös liittyä kaava. Opiskelija voi myös antaa palautetta, joka sekin liittyy tiettyyn kurssilohkoon. Kouluttaja eli kurssin ohjaaja tekee kurssilohkot ja syöttää harjoitukset järjestelmään. Kouluttaja voi myös kirjoittaa viestejä. Kaikilla viesteillä on täsmälleen yksi kirjoittaja. Järjestelmä pitää kirjaa istunnon pituudesta ja harjoitusten vastausajoista sekä niiden suorittamisjärjestyksestä. Myös lohkojen lukemisjärjestys kirjataan. Tarkka kuvaus tietosisällöstä on kuvassa 3.1.
Kuva 3.1 Tietosisällön ER-malli. (CJ) 6
7 Tuotteessa käytetään Solid Server relaatiotietokantaa. Tieto on tallennettu taulukkoihin ja sitä muokataan SQL-kieltä käyttämällä. (CJ) 3.2 Kapasiteetti- ja saantiaikavaatimukset (CJ) Tietokantaan mahtuu vähintään kaksi kokonaista kurssia, mukaan lukien niihin liittyvät viestit ja harjoitukset. Tuote tarjoaa riittävät nopeudet muutamille kymmenille samanaikaisille käyttäjille. On huomattava, että tämä vaatimus koskee tietokantayhteyksiä eikä verkkoyhteyksiä. Koska tuotetta käytetään Internetin yli, voivat käyttäjän sijainti ja verkkoyhteys tietokannan lisäksi myös aiheuttaa viivettä. Mutta tähän tuote ei voi vaikuttaa. 4. Toimintokuvaus 4.1 Järjestelmän arkkitehtuuri 4.1.1 Toiminnalliset pääkomponentit (CJ) Järjestelmässä on käytössä ohjelmointia ja ylläpitoa helpottava JSP-teknologia. Se perustuu ajatukseen, että on hyödyllistä erottaa tuotteen ulkoasuun liittyvä ohjelmointi sen muista toiminnoista. JSP:ssä tätä on toteutettu upottamalla JSPkoodia HTML-sivuihin, jotta ulkonäköön liittyvä HTML ja toimintalogiikkaan liittyvä JSP voidaan muokata ja päivittää täysin toisesta riippumatta. JSP:ssä on viety tätä modulaarista ajattelutapaa vieläkin pidemmälle JavaBeans moduulien avulla. Ne ovat palvelimella olevia Java-sovelluksia, joiden metodeja kutsutaan JSP-koodissa. JSP huolehtii tietojen asettelusta HTML-sivulla ja JavaBeans-komponentti suorittaa tietojen hakemisen tietokannasta ja niiden käsittelyn. Järjestelmä koostuu siis HTML-sivuista, joihin on upotettu JSP-koodia sekä JavaBeans-moduuleista.
8 4.1.2 Pääkomponenttien väliset suhteet ja rajapinnat (CJ) Kuvasta 4.1 ilmenee JSP-sivujen ja JavaBeans komponenttien yleiskuvaus järjestelmää käyttävän opiskelijan kannalta. Tämä on vain karkea esitys, sillä moduulien koot ja järjestelmän suunnitteluun liittyvät näkökohdat eivät ole toistaiseksi tiedossa. JavaBeans-komponentti ilmaistaan UML-notaation komponentti-symbolilla ja HTML-sivu, johon on upotettu JSP, UML:n pääohjelmasymbolilla (koska jälkimmäinen on tässä sovelluksessa pääohjelman roolissa). Nuolet ilmaisevat mikä JSP-sivu kutsuu/näkee minkäkin komponentin, joten ne ilmaisevat samalla myös moduulien väliset riippuvuudet. Jos JSP-sivulla on hyperlinkki toiseen sivuun, tai vaihtoehtoisesti jos se ohjaa käyttäjää automaattisesti toiselle sivulle, tätä ilmaistaan JSP-sivujen välisenä riippuvuutena. Kaksipäiset nuolet kuvassa ilmaisevat molemminpuolista riippuvuutta, näissä kohdissa avataan uusi ikkuna Javascriptin avulla ja tämä uusi ikkuna pystyy käsittelemään avaajaikkunaa Javascriptiä käyttämällä. Kuvassa 4.2 on sama esitys kuin kuvassa 4.1, mutta kouluttajan näkökulmasta. Kouluttajan ei tarvitse rekisteröityä järjestelmään, joten siihen liittyvä JSP-sivu on poistettu. Sen sijaan hän voi esimerkiksi laatia kursseja siihen tarkoitetun sivun avulla. Käyttäjänhallinta-moduulin rooli on tässä sekä uusien käyttäjien lisääminen, raporttien laadinta niistä sekä niiden tietojen muokkaaminen. (Esimerkiksi tätä moduulia pilkotaan todennäköisesti pienempiin osiin suunnitteluvaiheessa.) Käyttäjänhallinta liittyy kurssivalintaan koska käyttäjä voi olla mukana useissa kursseissa, mutta ei välttämättä kaikissa, joten täytyy hakea tietoa osallistumisesta kursseihin. Se liittyy myös kurssin pääsivuun, jossa opiskelu tapahtuu, koska järjestelmässä tallennetaan tietoa niistä lohkoista jotka käyttäjä on lukenut. Samasta syystä käyttäjänhallinta liittyy myös harjoitussivuun, koska tietoa käyttäjien harjoituksista tallennetaan myös (ks. kuva 4.2).
Rekisteröintisivu Käyttäjänhallinta Viesti-ikkuna 9 Keskustelu Kurssin pääsivu Kurssihallinta Kaavaeditori Sisäänkirjoittautuminen Kurssivalinta Harjoitusikkuna Harjoitus Kaava Kuva 4.1. Järjestelmän arkkitehtuuri opiskelijanäkymässä. Muiden moduulien roolit lienevät selviä. Kurssinhallinta-moduulilla haetaan kurssin lohkot näytettäväksi käyttäjälle sekä muokataan niiden sisältöä ja kurssin rakennetta. Kaava-moduuli liittyy matemaattisten kaavojen tekemiseen, tallentamiseen ja hakemiseen. Keskustelukomponentin avulla haetaan, tallennetaan sekä poistetaan viestejä ja harjoituskomponenttia käytetään harjoitusten hakuun kannasta sekä käyttäjän antamien vastausten tarkistamiseen. Harjoitusten ja lohkojen palaute syötetään tässä versiossa vastaavien komponenttien kautta (harjoitus- ja kurssinhallinta), suunnitteluvaiheessa saattaa tulla käyttöön erillinen palautemoduuli. Kuva 4.2 esittää järjestelmää myös ylläpitäjän kannalta (käyttötapaukset kohdassa 4.1.3). Käytännössä hän on samalla myös kouluttajan roolissa (jotta hän pystyisi
10 esimerkiksi avustamaan kouluttajia kurssien luomisessa). Joten ainoa ero kouluttajaan verrattuna on, että ylläpitäjä näkee käyttäjänhallintasivulla enemmän toimintoja, joilla hän pystyy hallitsemaan kouluttajia. JavaBeans-komponenttien rajapintoja ei kuvata yksityiskohtaisesti vielä tässä vaiheessa, koska tarkka moduulijako ei ole vielä selvä. Käyttäjänhallinta Harjoitusikkuna Harjoitus Käyttäjänhallinta Viesti-ikkuna Sisäänkirjoittautuminen Kurssivalinta Kurssin pääsivu Kaavaeditori Keskustelu Kurssin luonti Kurssihallinta Kaava Kuva 4.2 Järjestelmän arkkitehtuuri kouluttajan ja ylläpitäjän kannalta.
11 4.1.3 Käyttötapaukset (OM) Järjestelmän käyttäjien rooleja ovat opiskelija, kouluttaja ja ylläpitäjä. Opiskelija on henkilö, jota varten järjestelmä on pääasiassa luotu ja jonka tavoitteena on järjestelmän avulla oppia kurssin sisältämiä asioita. Kouluttaja luo kurssin materiaalin ja hyödyntää järjestelmän avulla annettavaa palautetta ja raportointia. Ylläpitäjän tarkoituksena on mahdollistaa järjestelmän toiminta. Seuraavassa on kuvattu eri käyttötapaukset, niiden suorittajat sekä tapahtumien kulku. Kaavio käyttötapauksista on esitetty kuvassa 4.3. Edistymisen seuranta Kouluttajan lisäys Ylläpitäjä Palautteen antaminen Opiskelija Rekisteröityminen Harjoitustehtävän tekeminen Viestien selailu Viestin etsiminen Viestin lukeminen Viestin kirjoittaminen Materiaalin lukeminen Kouluttaja Tehtävän syöttö Raporttien katsominen Kurssin lisäys Kysymyksen poisto Palautteen katsominen Materiaalin syöttö Kuva 4.3 Käyttötapaukset
12 Rekisteröityminen Suorittajat: opiskelija Käyttäjä syöttää tietonsa rekisteröitymisen yhteydessä käyttäessään ensimmäistä kertaa järjestelmää. Antamiensa tietojen lisäksi käyttäjä valitsee itselleen käyttäjätunnuksen, jonka perusteella hänet voidaan identifioida. Vasta rekisteröinnin jälkeen, kun käyttäjällä on käyttäjätunnus, hän pääsee käyttämään järjestelmän palveluita. Materiaalin lukeminen Suorittajat: opiskelija, kouluttaja Käyttäjä lukee järjestelmässä olevaa oppimateriaalia. Käyttäjä voi selailla materiaalia esim. sisällysluettelon avulla tai palata kappaleeseen, johon on viimeisen istunnon jälkeen jäänyt. Harjoitustehtävän tekeminen Suorittajat: opiskelija Käyttäjä lukee harjoitustehtävän ja syöttää vastauksen siihen. Monivalintatehtävässä käyttäjä valitsee annetuista vaihtoehdoista mielestään oikean. Järjestelmä antaa vastauksen oikeellisuudesta riippuvan palautteen käyttäjälle. Viestien selailu Suorittajat: opiskelija, kouluttaja Käyttäjä selailee lohkoon liittyvien viestien otsikoita. Viestien etsiminen Suorittajat: opiskelija, kouluttaja Käyttäjä etsii tiettyä (tai tiettyyn aiheeseen liittyvää) kysymystä. Käyttäjä voi antaa hakusanoja ja etsintä voidaan suorittaa otsikon perusteella joko lohkon kysymyksistä tai kaikista kysymyksistä.
13 Viestin lukeminen Suorittajat: opiskelija, kouluttaja Käyttäjä lukee viestin sisällön. Viestin kirjoittaminen Suorittajat: opiskelija, kouluttaja Käyttäjä kirjoittaa viestin uudesta aiheesta tai vastaukseksi aiempaan viestiin. Viestiin voi sisällyttää kaavoja kaavaeditorin avulla. Viestin poisto Suorittajat: kouluttaja Käyttäjä poistaa haluamansa viestin. Palautteen antaminen Suorittajat: opiskelija Käyttäjä lähettää joko sanallista palautetta tai yhden painikkeen pikapalautetta materiaalin selkeydestä kouluttajalle. Edistymisen seuranta Suorittajat: opiskelija Käyttäjä katsoo tekemänsä tehtävät ja mihin lohkoon on kurssissa edennyt. Materiaalin syöttö Suorittajat: kouluttaja Käyttäjä lisää oppimateriaalia kurssiin. Materiaali voi tekstin lisäksi sisältää muita elementtejä kuten kuvia, appletteja ja kaavoja. Kaavat lisätään kaavaeditorin avulla. Tehtävän syöttö Suorittajat: kouluttaja Käyttäjä lisää uuden tehtävän. Monivalintatehtävien syötössä määritetään kysymys, vaihtoehdot ja vaihtoehtojen valinnan jälkeen näytettävät ohjeet ym.
14 Palautteen katsominen Suorittajat: kouluttaja Käyttäjä tarkastelee saamaansa palautetta. (Palaute voi olla lähetetty sähköpostitse.) Raporttien katsominen Suorittajat: kouluttaja Käyttäjä muodostaa järjestelmän käyttöön sekä opiskelijoiden edistymiseen ja osaamiseen liittyviä raportteja. Kouluttajan lisäys Suorittajat: ylläpitäjä Käyttäjä rekisteröi järjestelmään uuden kouluttajan. Kurssin lisäys Suorittajat: kouluttaja Käyttäjä lisää järjestelmään uuden kurssin ja syöttää kurssin tiedot. 4.2 Komponenttien kuvaus (SV) 4.2.1 Sisäänkirjoittautuminen Sisäänkirjoittautumissivu avautuu ensimmäisenä järjestelmään saavuttaessa. Sivu mahdollistaa aikaisemmin rekisteröityneen opiskelijan sisäänkirjoittautumisen, rekisteröintisivulle siirtymisen tai järjestelmän anonyymin selaamisen. - syötteitä: käyttäjätunnus, salasana - tietokantahaku: tietojen tarkistus
15 4.2.2 Rekisteröintisivu Uuden opiskelijan rekisteröinti järjestelmään suoritetaan rekisteröintisivulla. Käyttäjäprofiili luodaan automaattisesti uudelle opiskelijalle rekisteröinnin yhteydessä. - syötteitä: käyttäjätunnus, salasana, henkilötiedot - käyttäjäprofiilin luonti - tietokantahaku: onko käyttäjätunnus vapaa, onko samat tiedot omaava henkilö jo järjestelmässä - tietojen vienti tietokantaan - tulosteita: käyttäjäprofiili (tietokantaan) 4.2.3 Käyttäjänhallinta Käyttäjänhallinta hoitaa tietokantatoiminnot rekisteröitymistä ja käyttäjäprofiilin ylläpitoa varten sekä tulostaa raportteja tai yksittäisiä profiileja. - syötteitä: käyttäjätunnus, salasana, henkilötiedot - tulosteita: kuittaus, käyttäjäprofiili, käyttäjäraportti 4.2.4 Kurssivalinta Opiskelija valitsee tarjolla olevista kursseista haluamansa. - tulosteita: käyttäjäprofiilin päivitys
16 4.2.5 Kurssin pääsivu (oppimateriaalin selaus) Opiskelija selaa kurssimateriaalia, joka on järjestetty kokonaisuuksiksi. Kutakin kokonaisuutta voi kommentoida erikseen ja siitä voi tehdä kysymyksiä keskusteluryhmään. - materiaalikokonaisuudet - kokonaisuuskohtaiset toiminnot: kommentti (helppo/vaikea), kysymys - kurssimateriaalin sisällysluettelo 4.2.6 Kurssihallinta Kurssihallinta hoitaa kurssin lohkojen tallentamiseen ja hakemiseen tarvittavat tietokantayhteydet sekä muodostaa kurssin sisällysluettelon lohkojen otsikoista. 4.2.7 Keskustelu Tiettyihin lohkoihin (materiaalikokonaisuuksiin) liittyvät kysymykset järjestetään aikajärjestykseen. Kysymyksestä pääsee edelleen katsomaan vastauksia ja kommentteja kysymykseen erillisessä ikkunassa. Opiskelija voi tehdä omat kysymyksensä ja kommenttinsa viestieditorilla. - kysymyslista (otsikot) - tietokantahaku kaikista kokonaisuuteen liittyvistä viesteistä, kysymyksien poimiminen ja vastauksien laskeminen, kysymyksien järjestäminen aikajärjestykseen - tulosteet: kysymykset, kysymykseen liitetty vastauksien määrä - kysymysvalinta (viesti-ikkuna) - tietokantahaku kaikista kysymykseen liittyvistä viesteistä, vastauksien järjestäminen tyypin ja ajan mukaan
17 - tulosteet: kysymys, vastaukset ja kommentit aikajärjestyksessä - viestien poistaminen (kouluttaja, ylläpitäjä) - tietokantaoperaatiot - filtteri / viestien etsiminen hakusanalla - syötteet: hakusana - tietokantahaut - tulosteet: relevantit kysymykset 4.2.8 Viestieditori Viestien kirjoittaminen keskusteluryhmään. Viestiin voi liittää matemaattisen kaavan, joka tehdään erillisellä kaavaeditorilla. - syötteitä: otsikko, viesti, kaavan paikka - viestin vienti tietokantaan 4.2.9 Kaavaeditori / Kaava Kaavaeditorilla laaditaan tarvittavien matemaattisten kaavojen ulkoasu. Editori tuottaa lopuksi MathML:ää, joka talletetaan kaavatietokantaan. - WYSIWYG: kaava näkyy graafisesti, lopullisessa asussaan editoinnin aikana - kaavan vienti tietokantaan
18 4.2.10 Harjoitusikkuna Opiskelija suorittaa laskuharjoituksia monivalintatehtävinä vaiheittain. Joka vaiheesta pidetään kirjaa. Väärän valinnan jälkeen järjestelmä hakee kommentin/ korjausehdotuksen (faktan) kouluttajan määrittelyn mukaisesti. Tulokset lisätään käyttäjäprofiiliin. 4.2.11 Harjoitus Harjoituksen määrittelyyn ja suoritukseen tarvittavat tietokantatoiminnot. Huolehtii myös harjoituksen suorittamisen kirjaamisesta käyttäjäprofiiliin. -syötteet: valinnat - harjoituksen kulun määrittely tietokannassa - tulosten analysointi / raportointi käyttäjäprofiiliin 4.2.12 Käyttäjäprofiilin tulostus Profiili sisältää henkilötietojen lisäksi tietoja keskusteluryhmän käytöstä, materiaalin läpikäynnistä ja harjoituksien suorittamisesta. Vain rekisteröityneillä käyttäjillä (opiskelijoilla) on profiili. Toisin kuin tavallinen käyttäjä (opiskelija), kouluttaja voi katsoa kaikkien käyttäjien profiilit (kurssiraportti). - syötteet: käyttäjätunnus (vain kouluttajan määriteltävissä) - tietokantahaut - tulosteet: käyttäjäprofiili, kurssiraportti (yhteenveto kurssin opiskelijoista)
19 4.2.13 Kurssin luonti (kurssin kouluttaja) Kouluttaja luo kurssimateriaalin harjoituksineen. - laajennettu viestieditori (+kaavaeditori) + upload-mahdollisuus - materiaalit / otsikot (kysymyksissä viitataan) - kaavat - tietokantayhteys - laskuharjoituksien määrittely - ratkaisuvaiheet / vaihtoehdot - tulokset - väärät vastaukset, viittaukset vastaavaan materiaaliin (faktat) 4.2.14 Käyttäjähallintasivu (ylläpitäjä) Ylläpitäjä hoitaa opiskelijoiden tietojen muuttamisen ja poiston sekä uusien (kouluttajien) käyttäjätunnusten teon käyttäjähallintasivulla. - syötteitä: käyttäjätunnus, salasana, henkilötiedot - käyttäjäprofiilin luonti - tietokantahaut - tietojen vienti tietokantaan - tulosteita: käyttäjäprofiili (tietokantaan) 5. Käyttöliittymä (JK) 5.1 Rajoitukset Järjestelmän käyttö tapahtuu WWW-selaimen avulla, joten selainten vaatimukset on otettu suunnittelussa huomioon. Järjestelmän käyttöliittymän suunnittelussa
20 lähdetään liikkeelle olettamuksesta, jossa loppukäyttäjällä on käytössään monitori, jonka resoluutio on 800x600 pikseliä. Selaimen ja käyttöjärjestelmän eri osien viemän tilan jälkeen varsinaiselle verkkosovellukselle jäävä - käyttäjälle kerralla näkyvä alue - on kooltaan noin 790x440 pikseliä. Kaiken tämän alueen ulkopuolella olevan materiaalin nähdäkseen käyttäjän on vieritettävä selainikkunaa. Käytettävyyden takia on tärkeää, että kaikki käyttäjän kannalta tärkeä informaatio sijoitetaan heti näkyvälle alueelle. Seuraavissa kappaleissa on esitelty matematiikan oppifoorumin käyttöliittymähahmotelmia pääasiassa oppilaan näkökulmasta. Hahmotelmissa esitetään järjestelmän eri osien alustavaa sijoittelua näytöllä. Järjestelmän komponentit on esitelty kuvissa yksinkertaisimmissa muodoissaan, eikä esimerkiksi lopulliseen graafiseen ulkoasuun tai väritykseen ole otettu mitään kantaa. 5.2 Opiskelija 5.2.1 Pääikkuna Jokainen järjestelmän kurssi avautuu käyttäjälle samanlaiseen pääikkunaan (kuva 5.1), joka koostuu neljästä HTML:llä määritetystä frame-osiosta. Pääikkunan vasemmassa reunassa on kurssin oppimateriaalin sisällysluettelo, jonka avulla käyttäjä voi selata kurssimateriaalia haluamassaan järjestyksessä. Tekstit toimivat linkkeinä, joiden painallus tuo kyseisen kohdan oppimateriaalin näytön keskellä olevaan materiaali-osioon. Sisällysluettelon vasemmassa reunassa näytettävällä graafisella elementillä (tässä tapauksessa kolmio) osoitetaan käyttäjän valitsema kohta oppimateriaalissa. Keskellä näyttöä olevassa frame-osiossa on aina esillä varsinainen opiskeltava materiaali. Osio voi sisältää tekstin lisäksi kuvia, kaavoja ja Java appletteja. Materiaalia on esillä aina tietty looginen osio alilukujen tai vastaavan jaottelun perusteella. Jokaisen oppikokonaisuuden lopussa on kuvakkeet, joiden avulla
21 käyttäjä voi tehdä aiheeseen liittyvän kysymyksen (kysymysmerkki) tai lähettää materiaalista kirjallista palautetta. Materiaalin oikeassa laidassa olevilla kolmella hymiö-kuvakkella käyttäjä voi antaa nopeaa positiivista, neutraalia tai negatiivista palautetta. Hymiö-kuvakkeiden painaminen ei avaa käyttäjälle erillistä palauteikkunaa kuten kirjallisen palautteen kuvake. Oppikokonaisuuden lopusta löytyy myös mahdollisesti linkkejä, jota kautta käyttäjä pääsee tekemään kyseiseen materiaaliin liittyviä harjoituksia. Kuva 5.1: pääikkuna Näytön oikeassa ylänurkassa on kysymysosio, josta käyttäjä löytää oppimateriaalin esillä olevaan aiheeseen liittyvät kysymykset. Kysymysten otsikot ovat linkkejä, joita painamalla avautuu varsinainen kysymysikkuna (kuva 5.3). Kysymyksen yhteydessä on lisäksi tieto, joka ilmoittaa, onko kysymykseen olemassa vastauksia. Uusien kysymysten edessä on lisäksi graafinen elementti (tässä tapauksessa tähti), jolla ilmaistaan, ettei kysymykseen vielä ole vastattu.
22 5.2.2 Kysymykset Uusi kysymys luodaan oppimateriaalin yhteydessä olevan kysymys-kuvakkeesta avautuvaan uusi kysymys -ikkunaan (kuva 5.2). Käyttäjän täytyy määritellä kysymykselle otsikko, joka tulee näkyviin kysymysosioon linkiksi. Tekstin lisäksi käyttäjä voi liittää kysymyksen loppuun myös yhden tai useamman kaavan. Kaavan lisääminen tapahtuu painamalla lisää kaava -linkkiä. Linkistä avautuu kaavaeditori, jolla kaavoja luodaan (kuva 5.2). Kuva 5.2: uusi kysymys Keskusteluikkuna (kuva 5.3) avautuu omaksi ikkunakseen pääikkunan päälle. Ikkunan vasemmassa reunassa on oma frame-osio kysymysnavikolle, jossa esitettävät kysymykset liittyvät aina samaan esillä olevaan oppimateriaaliin. Tässä navikossa olevat kysymysten otsikot avaavat kysymyksen oikeaan frame-osioon. Kysymys voi sisältää tekstin lisäksi yhden tai useamman kaavan. Vastaaminen tapahtuu painamalla kysymyksen jäljessä olevaa vastaa-linkkiä. Linkistä avautuvaan vastausikkunaan (kuva 5.4) käyttäjä voi tekstin lisäksi liittää kaavoja, joiden lisääminen tapahtuu kaavaeditorilla (kuva 5.5). Kysymyksen alapuolella ovat
23 vastaukset aikajärjestyksessä. Vastauksia voidaan kommentoida samaan tapaan kuin kysymykseen vastataan. Kuva 5.3: keskusteluikkuna Kuva 5.4: vastausikkuna
24 5.2.3 Kaavaeditori Kaavaeditorilla (kuva 5.5) käyttäjä voi liittää kysymykseen, vastaukseen tai kommenttiin yhden tai useamman kaavan. Kaavaeditorin toteutus on vielä päättämättä, eikä sen kaikkia ominaisuuksiakaan vielä ole kartoitettu. Editorin tulisi olla helppokäyttöinen, jolloin käyttäjän vain tarvitsisi valita merkkivalikosta haluamansa symbolit. Numerot ja yksinkertaiset merkit, kuten plus- ja miinusmerkit, tulisi pystyä antamaan suoraan näppäimistöltä. Myös esikatselumahdollisuus olisi käyttäjälle annettava. Kuva 5.5: kaavaeditori 5.2.4 Harjoitukset Pääikkunan (kuva 5.1) oikeassa alanurkassa on harjoitukset -osio, josta löytyvät kaikki sillä hetkellä esillä olevaan materiaaliin liittyvät harjoitukset. Harjoitusten otsikot toimivat linkkeinä erilliseen harjoitusikkunaan (kuva 5.6).
25 Kuva 5.6:harjoitusikkuna - vaihe1 Harjoitusikkunan vasemmassa reunassa on navikko, jonka avulla käyttäjä voi valita suoritettavan harjoituksen tai siirtyä seuraavan oppimateriaalikokonaisuuden harjoituksiin. Itse harjoitus näkyy ikkunan oikeassa osassa. Tekstin lisäksi ikkunassa voi olla myös kaavoja tai kuvia. Lisäksi linkin avulla käyttäjä voi avata pääikkunaan harjoitukseen liittyvän materiaalin. Ikkunan alalaidassa on kuvakkeita, joiden avulla harjoituksen kustakin vaiheesta voidaan antaa joko kirjallista tai pikapalautetta. Harjoitukset etenevät käyttäjän tekemien monivalintojen perusteella. Valinnan tehtyään käyttäjä painaa etene-kuvaketta. Tämän jälkeen harjoituksessa siirrytään uuteen vaiheeseen ja harjoitusikkuna päivittyy (kuva 5.7). Jos valinta on ollut väärä, käyttäjälle annetaan tarkka selvitys virheen syystä, mahdollisia lisätietoja ja uusi valintamahdollisuus. Oikean valinnan tapahduttua vastausta vielä perustellaan lisätiedoilla. Perusajatuksena on tarjota käyttäjälle opettavia harjoitustehtäviä.
26 Kuva 5.7: harjoitusikkuna - vaihe 2 5.3 Kouluttaja Kouluttajalla eli kurssin vastuuhenkilöllä on oma käyttöliittymänsä. Sen avulla kouluttajan pystyy tuomaan järjestelmään luotuun kurssiin oppimateriaalia ja harjoitusketjuja. Lisäksi olemassa olevaa materiaalia pitää pystyä päivittämään ja korjaamaan. Kouluttaja käyttää kaavojen tuottamiseen samaa kaavaeditoria kuin opiskelijatkin. 6. Järjestelmän muut ulkoiset liittymät (CJ) Tuote käynnistetään syöttämällä tuotteen WWW-osoite selaimelle, joka puolestaan kutsuu WWW-palvelinta. Jos palvelimessa ei ole Java-tukea se kutsuu lisämoduulin, joka käsittelee käyttäjän kutsun. Kutsun seurauksena käännetään ja suoritetaan palvelinsovelma, joka käsittelee kutsuun liittyvät tietokantahaut ja muut toimenpiteet. Palvelinsovelma on Java-tavukoodia. Kun kutsu on käsitelty, palautetaan käyttäjän selaimelle kutsun tuloksena syntynyt HTML-sivu.
27 Palvelinsovelma toimii samalla periaatteella kuin yleisesti käytössä olevat CGIskriptit. Annetaan parametrejä ja saadaan vastauksena uusi HTML-sivu, mutta Javaohjelmana se on laiteriippumaton. Tuote käyttää Solid Server tietokantaa JDBC-ajurin kautta. Tämä mahdollistaa sen, että tietokanta voi sijaita toisessa koneessa kuin sitä kutsuva palvelinsovelma, JDBCajuri huolehtii verkkoyhteydestä. 7. Muut ominaisuudet (CJ) 7.1 Suorituskyky Kuten kohdassa 3.2 on mainittu, pitäisi tuotteen pystyä palvelemaan vähintään kymmenen samanaikaista käyttäjää. Suorituskyky riippuu enimmäkseen tuotteesta riippumattomista tekijöistä, kuten WWW-palvelimen ja tietokannan kapasiteetista sekä Java-kääntäjän optimointikyvystä. Tämän lisäksi Java on tätä kirjoittaessa huonon suorituskyvyn maineessa, joten tuotteen suorituskykyvaatimukset eivät ole tärkeässä asemassa. 7.2 Virheistä toipuminen ja turvallisuus Ohjelma ei pysty toipumaan virheistä, virheen sattuessa näyttää WWW-palvelin käyttäjälle joko HTTP virheilmoitus 500 eli Internal Server Error tai ohjelman tuottama virheilmoitus. Käyttäjiltä vaaditaan vähintään kuuden merkin pituisia käyttäjätunnuksia ja salasanoja ilmoittautumisen yhteydessä, salasana ja tunnus eivät saa olla samoja. Käyttäjätunnus ja salasana lähetetään (ainakin tässä versiossa) verkon yli sellaisinaan sisäänkirjoittautumisen yhteydessä. Koska tuote ei sisällä arkaluontoista tietoa, niin
28 ei vaadita että sillä olisi täydelliset suojaukset verkkohyökkäysten varalta. Mutta ei pitäisi esiintyä helposti huomattavia turvallisuusaukkoja joiden kautta järjestelmän toiminta voi häiriintyä. 7.3 Ylläpidettävyys Tuotteen ylläpidon helpottamiseksi käytetään ohjelmoinnissa Sun Microsystemsin julkaisemia ohjelmointityyliohjeita. Tuotteen ylläpidettävyyttä parantaa myös tiukka modulaarinen rakenne, eli HTML-koodin, JSP-koodin ja Java-koodin pitäminen erillään. HTML-koodi liittyy tuotteen ulkonäköön ja käyttöliittymään, JSP-koodi sen seassa luo dynaamista sisältöä WWW-sivuille, ja Java-koodi on tallennettu JavaBeans-moduuleihin joiden metodeja JSP-koodi kutsuu. Ylläpidettävyyden kannalta on suositeltavaa että ei turhaan optimoida ohjelmakoodia sen ymmärrettävyyden kustannuksella. 8 Testaus (HV) Järjestelmä on ennen tuotantokäyttöä testattava toiminnallisuuden varmistamiseksi käymällä läpi ainakin kaikki peruskäyttötapaukset. Opiskelijan käyttötapausten läpikäynnissä on kiinnitettävä erityistä huomiota käyttöliittymän helppokäyttöisyyteen ja selkeyteen. Testaus edellyttää vähintään kahta kolmen kappaleen mallikurssia, jonka pariin osaan liittyy tehtäviä monivalintavastauksineen. Kurssien laatijoina pitää olla eri kouluttajia. Opiskelijan antaman kurssi- ja kouluttajapalaute on testattava, samoin kysymys-, vastaus- sekä kommentointitoiminto kaavaeditorin käyttöineen. Opiskelijan istuntojen hallinta ja opiskelutietojen keruun oikeellisuus on varmistettava analysoimalla kahden eri päivänä tehdyn istunnon tilastotiedot. Toinen istunnoista voisi jatkua vuorokausirajan yli. Istuntojen pitää sisältää aineiston lukua ja harjoituksia, joista osaan on vastattu väärin ja osaan oikein.
29 Kouluttajan toiminnoista testataan kurssin luonti-, kommentointi- ja vastaus- sekä opiskelunseurantaominaisuudet. Testaus edellyttää vähintään kahta testikouluttajaa, joista toinen luo vähintään kaksi kurssia. Kurssiin pitää sisältyä kaikkia opiskeluelementtejä, muutama kappale kutakin. Kaavaeditorin käyttö ja kaavojen tulkkauksen toimivuus on syytä testata sekä koulutusmateriaalissa että keskustelupalstalla. Käyttövaltuuksien asetus ja niiden toimivuus on varmistettava. Järjestelmälle asetetut suorituskykyvaatimukset on varmistettava erillisellä kuormitustestauksella, jonka materiaalin on vastattava rakenteeltaan todellista aineistoa. Asiakas hyväksyy testauksen käytettyjen testitapausten ja syntyneen dokumentaation perusteella. 9. Rajoitteet suunnittelulle ja toteutukselle (CJ) 9.1 Noudatettavat standardit Järjestelmän yleisarkkitehtuurin kuvaamiseen käytetään UML-standardia ja tietosisällön mallintamiseen ER-mallia. Ohjelmoinnissa tulisi noudattaa yleisesti Java-yhteisössä hyviksi havaittuja ohjelmointitapoja, päämääränä ohjelmakoodin ymmärrettävyys ja ylläpidettävyys. 9.2 Laitteistorajoitteet Tuotetta pitäisi pystyä käyttämään keskitasoisessa palvelinkoneessa, jossa on 64-128 megatavua muistia. Asiakaspäässä Pentium-tasoinen kone on riittävä tuotteen
30 käyttöön, muistimäärä riippuu selaimesta. Tuote toimii Internet Explorer ja Netscape Navigator -selaimissa alkaen niiden nelosversioista. V.34 modeemi on riittävä tuotteen käyttöön asiakaspäässä (olettaen, että verkkoyhteys puhelinkeskuksesta Internetin yli järjestelmään ei rajoita nopeutta). 9.3 Ohjelmistorajoitteet Tuotteessa käytetään Java Server Pages (JSP) ja JavaBeans tekniikkaa, joten palvelinpuolella täytyy löytyä tukea niille. Java-teknologian ansiosta tuotetta pystyy ajamaan kaikissa laiteympäristöissä, joille on saatavilla Java-tuella varustettu WWW-palvelin. Asiakaspuolella täytyy olla Javascript- ja Java-yhteensopiva selain. Sen täytyy tukea näitä kieliä samassa määrin kuin edellisessä osassa mainitut vähimmäisselaimet. Selaimen täytyy myös pystyä näyttämään MathML:ää, joko sisäänrakennettuna ominaisuutena tai erillisen lisäosan (esim. IBM TechExplorer) avulla.