Koskikara-projekti
Ville Laitila
Pekka Moisio
Aapo Mäkinen
Harri Pölkki
Sovellussuunnitelma 18.11.2003
Jyväskylän yliopisto
Tietotekniikan laitos
Tekijät: Ville Laitila ( vimalait@cc.jyu.fi).
Pekka Moisio ( pejumois@cc.jyu.fi),
Aapo Mäkinen ( ajmakinen@cc.jyu.fi) ja
Harri Pölkki (hepolkki@cc.jyu.fi),
Työ: Sovellussuunnitelma tietotekniikan Sovellusprojektiin
Tiivistelmä: Sovellusprojektissa kehitetään Kottarainen-projektin luomaa kyselyjen luomis- ja hallintajärjestelmää. Kehitystyössä keskitytään vastausten analysointiin, tulosten esittämiseen ja kyselypankkiin. Sovellussuunnitelmassa kuvataan sovellusta tekniseltä toteutukseltaan sekä sen toimintojen ja ominaisuuksien priorisointi. Suunnitelmassa esitetään myös hahmotelmat sovelluksen sivustokartasta sekä kuvataan koodin kommentointia.
Tilaajat ja muut projektiin liittyvät henkilöt:
Sovelluksen tilaajia ovat yliopiston organisaatioista avoin yliopisto edustajanaan Eija Ihanainen, hallinto edustajanaan Mauno Väisänen, opetuksen laadun kehittämishanke OPLAA! edustajanaan Jari Rantamäki sekä virtuaaliyliopisto, jota edustaa Antti Auer. Laitoksen vastaavana ohjaajana toimii Jukka-Pekka Santanen sekä teknisinä ohjaajina Teemu Vähä-Ruka ja Vesa Lappalainen.
Yhteystiedot: Agora, huone C222.2, puh.nro. 014-260 4963, projektiorganisaation sähköpostilista koskikara@korppi.jyu.fi.
Avainsanat:
Koskikara, Kysely, kyselyiden hallinta, vastausten analysointi, tulosten esittäminen, raportointi, WWW-sovellus, Korppi-järjestelmä
Versio
|
Päiväys
|
Tehnyt
|
Muutokset
|
0.1alpha
|
13.10.
|
Aapo
Mäkinen
|
Tiedosto
luotu.
|
0.1beta
|
13.10
|
Aapo
Mäkinen
|
Lisätty
sisältöä joihinkin triviaalieheihin lukuihin
|
0.1
|
16.10
|
Pekka
Moisio
|
käyttöliittymän
kuvia lisää
|
0.2
|
20.10
|
Pekka
Moisio
|
Testausperiaatteet
kirjattu
|
0.3
|
22.10
|
Aapo
Mäkinen
|
Tietokantamäärittelyä
aloitettu
|
0.4
|
27.10
|
Pekka
Moisio
|
Yhteenveto
ja muut osiot
|
0.5
|
28.10
|
Pekka
Moisio
|
Käyttöliittymä
luvun päivitystä
|
0.6
|
29.10
|
Pekka
Moisio
|
Lukujen
täydennystä
|
0,7
|
19.11
|
Pekka
Moisio
|
|
|
|
|
|
Koskikara-niminen tietotekniikan Sovellusprojekti jatkokehittää WWW-pohjaista Korppi-järjestelmän kyselysovellusta Jyväskylän yliopiston käyttöön. Koskikara-sovellus tulee toimimaan osana jo olemassa olevaa, Kottarainen-nimistä sovellusta, jolla pystyy luomaan ja suorittamaan kyselyitä. Koskikara käyttää edellisen sovelluksen tietorakennetta. Toteuttavan sovelluksen tehtävät ovat kyselyjen vastausten analysointi ja kyselypankki. Kyselypankki varastoi kyselyt analysointia ja uusien kyselyiden luontia varten. Kottarainen on yksi Korppi-opetushallintajärjestelmän sovelluksista. Järjestelmään ovat aiemmin toteuttaneet sovelluksia Kotka-, Korppi-, Halko-, Kolibri-, Koppelo-, Kiuru- ja Kottarainen-projektit.
Tämä dokumentti on suunnitelma toteutettavalle sovellukselle ja sitä tullaan tarkentamaan sovelluksen loppuraportiksi projektin aikana. Dokumentti määrittää toteutettavan sovelluksen tavoitteita, ominaisuuksia ja toimintoja sekä käyttöliittymän ja muiden sovelluksen osien toteutusta. Lisäksi dokumentissa esitellään käytettäviä tekniikoita. Projektin taustoja, tavoitteita ja resursseja kuvataan tarkemmin Projektisuunnitelmassa. Sovellukselta vaadittavat ominaisuudet on esitetty Vaatimusmäärittelyssä.
Luvussa 2 selitetään projektiin liittyviä termejä. Luvussa 3 kuvataan sovelluksen taustaa, tavoitteita ja ominaisuuksia. Neljännessä luvussa kuvataan kyselypankin toimintaa sovelluksen kannalta. Viidennessä luvussa kuvataan sovelluksen toteutustekniikoita ja työkaluja. Luvussa 6 kuvataan käyttäjälle näkyvää käyttöliittymää sovelluksessa. Seitsemännessä luvussa on Koskikara-sovelluksen tietokantasuunnitelma tietorakenne kuvineen. Kahdeksannessa luvussa on määritelty sovelluksen ohjelmakoodin ulkoasurakenne. Viimeisessä luvussa 10 on yhteenveto sovellussuunnitelmasta.
Luvussa on selvennetty Koskikara-projektissa käytettävää termistöä. Koskikara-projektin aiheeseen ja Korppi-järjestelmään liittyviä termejä ovat seuraavat:
Analysointi on kyselyn vastausten prosessointi raporttia varten
Benchmarking on arviointitapa, jossa useampi organisaatio suorittaa matriisimuotoisen laadunarviointikyselyn ja vertailee saamiaan tuloksia keskenään.
Keskiarvo on havaintojen summa jaettuna havaintojen lukumäärällä.
Keskihajonta on varianssin neliöjuuri, joka on perusjakaumalle määritelty havaintojen keskiarvosta mitattujen poikkeamien neliöitten keskiarvojen raja-arvona:
Korppi on Jyväskylän yliopistossa kehitetty opetushallintajärjestelmä.
Kotka on Korppi-järjestelmän tietokanta ja henkilötietojen hallintaosio.
Kysely käsittää koko kyselyn ja voi koostua yhdestä tai useasta kysymysryhmästä.
Kyselypankki varastoi kyselyt julkisuusasteen mukaan kyselyjen analysointia ja uusien kyselyiden luontia varten.
Kyselytieto yksittäisen kyselyn tuottamaa dataa.
Kysymysryhmä käsittää yhden tai useampia loogisesti tai visuaalisesti samaan aihepiiriin liittyviä kysymyksiä.
Kysymystyyppi luokittelee kysymykset vastausvaihtoehtojen mukaan.
Maksimi on havaintoaineiston suurin arvo.
Mediaani jakaa todennäköisyystiheysfunktion pinta-alan puoliksi.
Metatieto on kohteisiin liitettävää tarkoitusta, käyttömuotoa ja laatimista kuvaavaa lisätietoa, joka helpottaa kyselyitä haettaessa ja vastauksia analysoitaessa eri kohteiden liittämistä toisiinsa. Mahdollisia metatietoja ovat esimerkiksi kyselyn laatija ja laatimisajankohta.
Minimi on havaintoaineiston pienin arvo.
Moodi on havaintoaineiston todennäköisin arvo.
Raportti on analyysin esitettävä tulos
Vastattava kysely on kysely, jonka voimassaoloaika ei ole vielä ohi, eikä siihen ole vielä annettu vastausta.
Projektin toteutusympäristöön sekä käytettäviin työkaluihin ja tekniikoihin liittyviä termejä ovat seuraavat:
Bugzilla on WWW-pohjainen monipuolinen virheiden korjausten hallintajärjestelmä.
CSS eli Cascading Style Sheets on WWW-sivujen ulkoasua kuvaava kieli.
CVS (Concurrent Version System) on ohjelmistokehityksessä käytettävä versionhallintajärjestelmä.
Eväste: (engl. cookie) on Netscapen luoma, mutta nykyään jo standardoitu menetelmä saada WWW-sivuista vuorovaikutteisempia. Palvelin lähettää pieniä tietopaketteja selaimelle, jonka perusteella käyttäjä asetuksineen tunnistetaan jatkossa.
HTML on WWW-sivujen sisältöä kuvaava kieli.
HTTP on WWW-arkkitehtuurin käyttämä tiedonsiirtoprotokolla.
Java on Sunin kehittämä laitteistoriippumaton olio-ohjelmointikieli.
Java-pavut (engl. JavaBeans) ovat Java-ohjelmointikielellä luotuja komponentteja, joita voidaan kutsua JSP-sivuilla.
JBuilder on ohjelmistonkehitystyökalu mm. Java- ja JSP-ohjelmointiin.
JDBC eli Java Database Connectivity on Java-teknologian käyttämä tietosilta erilaisiin tietokantoihin.
JSP eli Java Server Pages on ohjelmointikieli, jossa HTML-koodin sekaan on mahdollista lisätä Java-koodia.
Palvelin on WWW-sovellusten tapauksessa ohjelmisto, joka palvelee asiakkaana toimivien selainten hakupyyntöjä.
Selain on ohjelma, joka käyttäjän koneella tulkkaa HTML-kieliset sivut kuvaruudulla esitettävään muotoon.
Servletti on palvelimella sijaitseva sovelma (engl. applet), joka toteuttaa HTTP-palvelimen pyynnöstä tietyn toiminnon.
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.
SQL eli Structured Query Language on tietokantojen hallintaan kehitetty standardi kieli.
TomCat on ilmainen servletti- ja JSP-moottori.
XML on rakenteisten dokumenttien määrittely- ja kuvauskieli.
Luvussa on kuvattu sovellukselle tavoitteet, kuten ne on vaatimusmäärittelyssä määritelty.
Koskakara-sovelluksen vaatimusmäärittelyssä on kuvattu vaatimukset kyselylle. Sovelluksessa oltava Kottarainen-sovelluksen kyselyjen luontiin lisää Koskakara-projekti kyselyn ja sen osien uudellenkäytettävyyden sekä virallistamisprosessin.
Koskikara-sovellukseen on mahdollista lisätä resurssien puitteeissa lisäominaisuuksia, kuten viivagraafi esitystavan toteutus, avoimien vastausten analysointi ja raportin optimointi ohjelmallisesti
Kyselypankin päämääränä on varastoida kyselyt julkaisuasteen mukaan kyselyjen aineiston analysointia ja uusien kyselyjen luontia varten. Kyselyjen analysointia, kopiointia ja valintaa sekä uusien kyselyjen luontia varten sovellus tarjoaa WWW-pohjaisen käyttöliittymän.
Sovelluksessa on yksinkertaiset hakutoiminnot, (avainsanahaku ja haku julkaisijan perusteella) joilla kyselypankkiin tallennettuja kyselyitä voidaan hakea. Kohdennetussa haussa on määritelty olevan hakutoiminnot joilla pystyy hakemaan kysymystä kysymysryhmää ja kyselyä. Valitsemalla metatietoja pystyy hakemaan määritellyistä metatiedoista. Kohteen luojan nimellä haku on myös sovelluksessa. Aikakohta haku on myös sovelluksessa.
Haun tuloksena syntyy taulukkomainen tuloslista. Jokaisesta kohteesta näkyy otsikko ja kysymystyyppi. Jokaista tulosta voidaan esikatsella. Esitysmuodosta joka on kuvattu alla olevassa kuvassa, pitää olla kuvassa näkyvät ominaisuudet.
Analysointityökalun käyttöliittymä on kuvattu kuvassa 4. Työkalun ominaisuuksiin kuluu. esitellä kyselyn osiot analysointia varten mieleisessä muodossa. Kyselyn kysymyksestä näkee kohteen tyypin, jolloin sille voi valita mieleisensä esitystavan,
Luvussa kuvataan Koskikara-sovelluksen toteuttamiseen käytettäviä työkaluja ja ohjelmointiympäristöjä. Ryhmällä on ohjelmointityökaluna käytössään Borland Jbuilder 9-ohjelmistokehitysympäristö. Käyttöjärjestelminä kahdella projektin koneista on Microsoft Windows XP ja kolmella RedHat Linux 9.
Kotka-projektin valitsemaa palvelinratkaisua tullaan käyttämään myös Koskikara-sovelluksessa, koska Kottarainen-sovellus toimii pitkälti yhdessä Korppi-opetushallintajärjestelmän kanssa, jossa Kotka-tietokanta on käytössä. Kuvassa 2 esitetään Koskikara-sovelluksen suhde muihin olemassa oleviin järjestelmiin.
JSP-sivuilla on tavallisen HTML-koodin sekaan mahdollista lisätä Java-koodia. Kun WWW-palvelin vastaanottaa pyynnön selaimelta, se päättelee, onko kyseessä staattinen HTML-sivu vai JSP-sivu (katso kuva 2). Apache palauttaa pyydetyt staattiset sivut suoraan takaisin selaimeen.
JSP-sivun pyyntö välittyy servlettimoottorille, joka Korppi-järjestelmässä on TomCat. Se tutkii onko kyselyä vastaava servletti jo olemassa. Olemassa oleva servletti suoritetaan ja se palauttaa selaimelle tuloksen HTML-muodossa. Jos servlettiä ei löydy, pyyntö ohjautuu JSP-moottorille, joka generoi servletin. Kuvassa 3 esitetään luvussa käsiteltyjen palvelinohjelmistojen suhteita toisiinsa.
Kuva 3: Palvelinohjelmistojen suhteet toisiinsa .
Java-pavut (engl. JavaBeans) ovat uudelleen käytettävien komponenttien luontiin tarkoitettu standardi, joka on luotu erityisesti visuaalisia kehitysvälineitä ajatellen. Ne ovat Javalla toteutettuja luokkia, joihin Java-koodi pyritään keskittämään. Tällä tavoin varsinaiset JSP-sivut säilyvät helposti ylläpidettävinä sisältäen vain HTML-rakenteen ja staattiset tekstit.
Aikaisempien Korppi-järjestelmään moduleita toteuttaneiden projektien tavoin Kottarainen-projektin tavoitteena on tuottaa yleiskäyttöisiä ja hyvin kommentoituja Java-papuja, joita järjestelmän jatkokehittäjät voivat hyödyntää.
Kottarainen-projekti tulee käyttämään Kotka-tietokantaa toteutettavan sovelluksen tietokannan pohjana. Vanha tietokanta ei aivan sellaisenaan taivu Kottarainen-sovelluksen tarpeisiin, joten lisäyksiä tarvitaan sekä uusien taulujen että kenttien osalta. Näitä on kuvattu tarkemmin luvussa 10. Tietokannanhallintajärjestelmänä Kotka-kannassa on ollut PostgreSQL, joten Kottarainen-sovelluskin käyttää sitä.
PostgreSQL on vuonna 1986 alkunsa saanut avoimen lähdekoodin relaatiotietokannan hallintaohjelmisto, joka on käytössä Kotka-tietokannassa. Koska Kottarainen-sovelluksessa päätettiin käyttää Kotka-tietokantaa, sekin tulee käyttämään kyseistä ohjelmistoa.
Apache on HTTP-palvelin, joka toimittaa JSP-sivupyynnöt TomCatille ja palauttaa selaimelle sen pyyntöjä koskevat HTML-dokumentit. Sen avulla on mahdollista käyttää SSL-salattua yhteyttä tietojen välittämiseen. Korppi-järjestelmän HTTP-palvelimena on Apache, joten Kottarainen-projekti tulee myös käyttämään tätä palvelinohjelmistoa.
Apache Sofware Foundationin TomCat on ilmainen palvelin joka ajaa JSP-sivujen toiminnallisuutta ja kääntää ne sellaiseen muotoon, että ne voidaan selaimella esittää kuten tavalliset HTML-sivut. Tarkemmin ilmaistuna se on palvelinsovelmasäiliö, johon on sisällytetty mukaan myös WWW-palvelimen toiminnallisuus. Kottarainen-projektissa TomCatia käytetään kuitenkin vain JSP-sivujen ja servlettien käsittelemiseen.
Luvussa kuvataan Koskikara-sovelluksen käyttöliittymän ulkoasua ja toimintaa. Nämä kuvankaappaukset ovat alustavia versioita ja ne tulee muuttumaan projektin edetessä.
Kottarainen-sovelluksen luomaan kyselyn luomis-sivuun Koskikara-sovellukseen tekemät muutokset ovat pieniä. Muutoksia tulee vain "Julkaisuaste pankissa"-kohtaan. Johon määritellää uudestaan kohdat.
Kuvassa 4 on analysointityökalun käyttöliittymän ulkoasu. Kysymysjako kohdan perusteella voidaan määritellä kysymys jonka perusteella saadaan raportissa jakaa kyselyn vastausten analysointi.
Esitystapa kohdassa voidaan valita kysymykselle esitystapa alasvetolistasta. Esikatselu painikkeella on mahdollisuus jokaista analysointikohtaa tukia. Tällöin tulee esimerkki esitystavasta jolloin käyttäjä voi visuaalisesti tarkastella tuloksien mielekkyyttä. Graafiset kyvat eivät esikatselussa muodostu vaan ennakkoon luodut kuvat haetaan tietokannasta.
Tallenna analysointi malli tallentaa sivun kaikki asetukset ja kysymykset joita yritetään analysoida.
Raportti luodaan painamalla luo raportti -painiketta.
Kuvassa 5 on kysymyspankin haku toiminnon käyttöliitymä yksinkertaisessa muodossa. Julkasuasteen alla olevilla määrityksillä voidaan ahkua rajata. Virallisuusasteella voidaan myös rajata hakua.
Luotuaan raportin, joka on kuvassa 7, käyttäjä voi tallentaa raportin painiketta Tallenna raportti -painamalla. Myös paluu takaisin analysointi tilanteeseen on mahdollista painamalla Takaisin muokkaukseen -painiketta.
Tässä luvussa esitellään sovellusta varten luodut uudet tietokantataulut ja tietokannan rakennekaavio.
Kottarainen-projekti teki Kotka-tietokantaan monia lisäyksiä johtuen siitä '
Nimi |
Analyze
|
|
Tarkoitus |
Sisältää
analyysin perustiedot.
|
|
Avainkenttä |
Analyzeid
|
|
Viiteavaimet |
questionnaireid
|
Osoittaa
tauluun questionnaire. Viitteen arvo kertoo mihin kyselyyn analyysi liittyy.
|
|
|
|
Personid
|
Osoittaa
tauluun person. Viitten arvo kertoo, kuka on luonut analyysin (analyysin
omistaja).
|
Nimi |
Analyzequestiongroup
|
|
Tarkoitus |
Sisältää
analyysin liittyvän kysymysryhmän tiedot.
|
|
Avainkenttä |
Analyzequestiongroupid
|
|
Viiteavaimet |
analyzeid
|
Osoittaa
tauluun questionnaire. Viitteen arvo kertoo mihin kyselyyn analyysi liittyy.
|
|
|
|
questiongroupid
|
Osoittaa
questiongroup-tauluun. Kertoo kysymysryhmän, joka liittyy analyysiin.
|
Nimi |
Analyzequestion
|
|
Tarkoitus |
Sisältää
analysoitavaan kysymysryhmään kuuluvan kysymyksen
|
|
Avainkenttä |
Analyzequestionid
|
|
Viiteavaimet |
analyzequestiongroup
id
|
Osoittaa
tauluun analyzequestiongroup. Viitteen arvo kertoo mihin
analyysikysymysryhmään analysoitava kysymys liittyy.
|
|
|
|
questionid
|
Osoittaa
question-tauluun. Kertoo analysoitavan kysymyksen, joka liittyy analyysiin.
|
Nimi |
Analyzequestionfield
|
|
Tarkoitus |
Sisältää
analysoitavaan kysymykseen kuuluvan kysymyskentän
|
|
Avainkenttä |
Analyzequestionfieldid
|
|
Viiteavaimet |
analyzequestionid
|
Osoittaa
tauluun analyzequestion. Viitteen arvo kertoo mihin analyysikysymykseen
kysymyskenttä kuuluu.
|
|
|
|
questionidfield
|
Osoittaa
questionfield-tauluun. Kertoo analysoitavan kysymyskentän.
|
Nimi |
Analyzequestiontype
|
|
Tarkoitus |
Sisältää
analysoitavan kysymyskentän esitystyypin
|
|
Avainkenttä |
Analyzequestiontype
|
|
Viiteavaimet |
analyzequestionid
|
Osoittaa
tauluun analyzequestion. Viitteen arvo kertoo mihin analyysikysymykseen
analyysiesitystapa kuuluu.
|
|
|
|
|
|
Ohjelmakoodin kommentoinnissa käytetään yhtenäisyyden vuoksi samantyylistä ratkaisua kuin aiemmat Korppi-järjestelmää kehittäneet projektit ovat käyttäneet.
Seuraavassa on esimerkki kommenttilohkosta sekä luokan ja funktioiden kommentoinnista.
/********************************************************************
* PAGE DESCRIPTION
*********************************************************************
*
* NAME: kommentointi.jsp
* LANGUAGE: jsp
* DATE: 23.10.2003
* PURPOSE: Demostrates commenting..
* AUTHOR: Ville Laitila, Jyväskylän yliopisto
*
*********************************************************************
* COPYRIGHT (C) KOSKIKARA-PROJEKTIRYHMÄ
* Limited rights granted. Please refer to license
*********************************************************************
*********************************************************************
* UPDATES
*********************************************************************
*
* 30.3.2003 Initial release
* 31.3.2003 Added something.. (Ville Laitila)
*
********************************************************************/
/** Function does this and that...
* @param param1 is parameter which is given to function
* @param param2 is second parameter given to function
* @throws SomeException which is some kind of an exception
* @return Return value
*/
public String ThisAndThat(int param1, param2) throws SomeException {
if (param1 != param2) {
throw new SomeException("Some kind of exception..");
}
else {
//do this and that..
}
return value;
}
/********************************************************************
* COPYRIGHT (C) KOSKIKARA-PROJEKTIRYHMÄ
* Limited rights granted. Please refer to license
********************************************************************/
Testausta suoritetaan koko ajan sovellusta kehittäessä. Niin ,että jokainen sovelluksen komponentti on toimiva enne yhdistämistä muihin osiin.
WWW-testaus Koskikara-sovellukselle suoritetaan kaikilla projektiryhmän käytettävissä olevilla selaimilla. Seuraavat selaimet ovat käytössä Windows-koneissa. Netscape 7.0, Mozilla 1.4, Opera 7.20 ja Internet Explorer 6.0. Linuxissa ovat selaimina Mozilla 1.2.1 ja Opera 6.11.
Tovottavaa on testaus vaiheessa saada kommentteja myös tilaajien edustajilta käyttöliittymän toteutuksesta mielekkyydestä. Projektin ulkopuolisen mielipiteet käytettävyydestä ja käyttöliittymästä on hankitava testausvaiheessa. Tällä toimenpiteellä yritetään havaita ongelmakohdat käytettävyydessä.
Koskikara-sovelluksen protyypin (versio 0.1) valmistuttua se esitellään projekti palaverissä tilaajille ja samalla pyydetään tilaajien kommentteja käytettävyydestä ja ohjelman toiminnoista.
Koskikara-projektiryhmä toteuttaa WWW-pohjaisen sovelluksen, jonka tehtävänä on kyselyjen vastausten analysointi ja kyselypankki Jyväskylän yliopiston käyttöön. Sovelluksen osia ovat kyselyiden kysymysten analysointi, kyselyn, kysymysryhmien, kysymysten haku sekä tulosten muodostaminen ja esittäminen.
Tässä dokumentissa kuvataan Koskikara-sovellukselle asetetut tavoitteet sekä toimintojen ja ominaisuuksien priorisointi. Suunnitelmassa kuvataan projektissa käytettäviä työkaluja sekä sovellusympäristöjä. Lisäksi dokumentissa on kuvattuna sovelluksen tietokanta ja käyttöliittymä.
Lintunen Sampsa, Pöyhönen Tiina, Vähä-Ruka Teemu, Ylönen Timo, "Kottarainen projektin projektikansio", Jyväskylän yliopisto, tietotekniikan laitos, 2003