Matematiikan oppifoorumi Ylläpito-ohje Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Ohjelmistotuotantoprojekti 17.12.1999 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Sisällys 1 Johdanto 1 1.1 Tuotteen identifionti 1 1.2 Erikoissanasto ja käytetyt lyhenteet 1 2 Toiminnallinen yleiskuvaus 2 2.1 Tuotteen tarkoitus ja tavoitteet 2 2.2 Yleisarkkitehtuuri 2 2.3 Looginen tietokantaratkaisu 2 2.4 Käyttöliittymän kuvaus 2 3 Toimintaympäristö 3 3.1 Laitteisto 3 3.2 Ohjelmointikielet, kääntäjät ja tulkit 3 4 Toteutuksen kuvaus 4 5 Ylläpidossa tarvittavat apuvälineet 4 5.1 Testaus- ja ylläpitotyökalut 4 5.2 Dokumentointityökalut 5 6 Noudatettavat standardit 5 6.1 Ohjelmointityyli 5 7 Ylläpito-ohjeita 6 7.1 Yleisiä ohjeita MatWO:n jatkokehittäjille 6 Lähteet 8 Liitteet Liite A Lähdekooditiedostojen ja dokumentaation sijainti Versio 0.1 Jukka Kariola 17.12.1999
1 1 Johdanto (JK) 1.1 Tuotteen identifionti 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. Oppimateriaali muodostuu tekstistä ja harjoituksista. MatWO:sta on toteutettu prototyyppi-versio 1.0, sisältää vain hyvin pienen osan tuotteen lopullisista ominaisuuksista ja toiminnallisuudesta. 1.2 Erikoissanasto ja käytetyt lyhenteet HTML, Hypertext Markup Language on Internetissä käytetty tiedon esitystapa, jota client-pään selaimet 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. WWW-palvelin on keskitetty palvelintietokone, joka sisältää Internet-verkkoon toimitettavia HTML/JSP-sivuja, sivuille dynaamisesti ladattavat tiedot sisältävän
tietokannan sekä aineiston käsittelyyn tarvittavan ohjelmiston. Tietokanta voi olla myös omalla palvelimella. 2 2 Toiminnallinen yleiskuvaus (JK) 2.1 Tuotteen tarkoitus ja tavoitteet 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 www-selaimilla, joten sen käyttö ei ole paikkaan sidottua. 2.2 Yleisarkkitehtuuri Järjestelmän arkkitehtuuri ja toimintaperiaate on kuvattu 11.11.1999 päivätyssä dokumentissa Matematiikan oppifoorumi, Suunnitteludokumentti [JKM99b]. 2.3 Looginen tietokantaratkaisu Järjestelmän tietokantaratkaisu on kuvattu 11.11.1999 päivätyssä dokumentissa Matematiikan oppifoorumi, Suunnitteludokumentti [JKM99b]. 2.4 Käyttöliittymän kuvaus Järjestelmän käyttöliittymä on kuvattu 1.11.1999 päivätyssä dokumentissa Matematiikan oppifoorumi, Vaatimusdokumentti [JKM99a]. ja 11.11.1999 päivätyssä dokumentissa Matematiikan oppifoorumi, Suunnitteludokumentti [JKM99b].
3 3 Toimintaympäristö (JK) 3.1 Laitteisto MatWO toimii client-server periaatteella Internetin tai intranetin kautta. Ohjelmisto ja tietokanta sijaitsevat palvelimella, johon opiskelijat ja kouluttajat ovat yhteydessä WWW-selainten avulla (kuva 3.1). Ohjelmisto tarvitsee JSP-yhteensopivan WWWpalvelimen toimiakseen. Toteutuksessa käytetään Apache WWW-palvelimen versiota 1.3.9. Tämä palvelin ei kuitenkaan ole JSP-yhteensopiva sellaisenaan, vaan se tarvitsee myös Jserv versio 1.0 lisämoduulin sekä Gnujsp 1.0 palvelinsovelmat tarjoakseen JSP-tuen. Ohjelmisto käyttää myös Solid Information Technologyn JDBC-ajuria tietokannan käsittelyssä. Käyttäjä tarvitsee Java-yhteensopivan selaimen. MatWO- toimintaympäristö Palvelin Internet/Intranet WWW-selain HTML-sivut JSP-sivut Tietokanta JSP-kääntäjä Kuva 3.1 MatWO-toimintaympäristö 3.2 Ohjelmointikielet, kääntäjät ja tulkit Toteutus käyttää myös Java-kielen versiota 1.1 ja SQL-ohjelmoinnissa SOLID SQL API. MathML-kieltä käytetään siinä määrin kuin IBM Techexplorer 2.0 Introductory Edition niitä tukee. Javan kääntämiseen käytetään Java Development Kit versiota 1.1.
4 4 Toteutuksen kuvaus (JK) Järjestelmän toteutusratkaisut on kuvattu 11.11.1999 päivätyssä dokumentissa Matematiikan oppifoorumi, Suunnitteludokumentti. 5 Ylläpidossa tarvittavat apuvälineet (JK) 5.1 Testaus- ja ylläpitotyökalut SOLID-tietokannan apuvälineiden käyttö on tarkemmin ohjeistettu db.cs.helsinki.fisivuilta linkin takaa löytyvässä SOLID Administrator Guide - manuaalissa.. Projektissa on käytetty kannan taulujen ja sen sisällön luontiin pelkästään SOLID SQL Editor (Teletype) ohjelmistoa, jonka käyttö on ohjeistettu manuaalin sivulta 4 16 alkaen. Ohjelmistolle voidaan antaa suoritettavat SQL-lauseet joko parametrina komentorivillä tai käyttämällä sitä interaktiivisesti. Käynnistyslause MatWO-toteutusympäristössä on: /opt/solid/bin/solsql -a TCP/IP db 1313 [username] [password] [filename] Valinnaiset parametrit ovat : - a = lauseiden automaattinen vahvistus (commit) [username] = matwo [password] = gnu10jsp [filename] = suoritettavat SQL-lauseet sisältävän tiedoston nimi. Solsql-editori lopetetaan exit; - komennolla.
5 Toteutettujen osien järjestelmätestausta varten on tehty kannan luontilauseet, testisisällön insert-lauseet, koko sisällön listaus sekä kannan taulujen vapautus - lauseet. Nämä löytyvät järjestelmän dokumenttien joukosta (Liite A). Muuten järjestelmän testaamiseen ei ole olemassa mitään erityisiä työkaluja. Javakoodin kehityksen osalta yleisesti käytettävät ohjelmointityökalut ovat käyttökelpoisia myös testauksessa. 5.2 Dokumentointityökalut Projektin hallinnolliset dokumentit kuten esimerkiksi kokouspöytäkirjat ovat HTMLmuodossa. Projektisuunnitelma, vaatimusdokumentti, suunnitteludokumentti, toteutusdokumentti, käyttöohje ja ylläpitodokumentti ovat sekä Word 97 että PDFmuodossa ryhmän kotihakemistossa Tietojenkäsittelytieteen laitoksen melkki-koneen /home/group/matwo/ -hakemistossa. 6 Noudatettavat standardit (JK) 6.1 Ohjelmointityyli Java-ohjelmoinnissa käytetään soveltuvin osin Sun Microsystemsin Java-tyyliopasta (saatavilla osoitteessa http://java.sun.com/docs/codeconv). Ohjelmakoodin muuttujien nimeämisessä ja kommentoinissa on käytetty suomea.
6 7 Ylläpito-ohjeita (JK) 7.1 Yleisiä ohjeita MatWO:n jatkokehittäjille Ensimmäinen jatkokehittäjän tehtävä on tutustua huolellisesti järjestelmästä sen suunnittelu- ja kehitysvaiheessa tuotettuihin dokumentteihin. Vain niihin tutustumalla voi päästä selville järjestelmän arkkitehtuurista. MatWO:n ensimmäiseen versioon 1.0 suunniteltiin koko järjestelmän rakenne aina tietokantaa ja kaikkia tarvittavia Java-luokkia myöten. Järjestelmästä toteutettiin kuitenkin vain murto-osa. Tämä koskee sekä tietokantaa, JSP-sivuja että Java-luokkia. Järjestelmän jatkokehittelyn kannalta onkin otettava huomioon, että jo olemassa olevissa järjestelmän osissa on käytetty ratkaisuja, jotka on tarkoitettu vain testi- ja demoamistarkoituksiin. Seuraavassa listattuna suunniteltuja ominaisuuksia joita ei toteutettu sekä ideoita joita demoversion kehittämisen yhteydessä syntyi: Käyttötapauksista ei toteutettu ajanpuutteen takia lainkaan ylläpitäjän eikä kouluttajan käyttötapauksia. Opiskelijan käyttötapauksista jäi kokonaan toteuttamatta kurssin valinta sekä palautteen antaminen. Kurssin ja harjoitusten suorittamisesta rajattiin pois OpintoSuoritus- sekä KurssiKayttaja -taulujen käyttö sekä Luku-taulun julkaisupäivän tutkiminen. Harjoitusten toteutuksessa ei käytetty Vastaus-taulun SeuraavaKysymysattribuuttia. MathML- kaava-editorista toteutettiin vain prototason versio. Kuvatiedoston tai appletin käsittelyä ei toteutettu. Projekti ei myöskään miettinyt kannan siivousta, varmistuksia eikä uudelleenorganisointia, tuotantoympäristössä nämä ovat lähes välttämättömiä.
7 Julkaisujärjestelmässä tarvitaan ilmeisesti suunniteltua parempi menettely oppimateriaalin julkaisuajankohdan ja versioinnin hallintaan. Projekti ei suunnitellut kannan yhtäaikaisen päivityksen hallintaa. Samannimisten käyttäjien rekisteröitymistä ei ole estetty, tästä voi tulla ongelmia esimerkiksi viestien haussa kirjoittajan mukaan. Kaavojen nimeämistä tai hallintaa ylipäänsä ei suunniteltu kovin tarkasti. Tämä on kuitenkin tarpeen, jotta samaa kaavaa voisi helposti käyttää uudelleen hyödyksi kurssin sisällä, palautteissa tai viesteissä.
8 Lähteet [JKM99a] Johansson C., Kariola J., Marttila O., Venäläinen H., Virtanen S., Vaatimusdokumentti. MatWO-projektin julkaisematon dokumentti, Helsingin yliopisto, Tietojenkäsittelytieteen laitos, 1999. [JKM99b] Johansson C., Kariola J., Marttila O., Venäläinen H., Virtanen S., Suunnitteludokumentti. MatWO-projektin julkaisematon dokumentti, Helsingin yliopisto, Tietojenkäsittelytieteen laitos, 1999.
Liite A MatWO-järjestelmän kaikki dokumentit ja lähdekoodit on koottu matwo.zip paketiksi. Paketti sijaitsee ryhmän kotihakemistossa Tietojenkäsittelytieteen laitoksen melkki-koneen /home/group/matwo/touteutus hakemistossa.