Sampsa Lintunen
Tiina Pöyhönen
Teemu Vähä-Ruka
Timo Ylönen
Sovellussuunnitelma 14.4.2003
Jyväskylän yliopisto
Tekijät: Sampsa Lintunen ( sampsa@cc.jyu.fi),
Tiina Pöyhönen ( tmpoyhon@cc.jyu.fi),
Teemu Vähä-Ruka ( teemuvr@cc.jyu.fi) sekä
Timo Ylönen ( tylonen@cc.jyu.fi).
Työ: Sovellussuunnitelma tietotekniikan sovellusprojektiin
Tiivistelmä: Kottarainen-projekti toteuttaa WWW-pohjaisen kyselysovelluksen, jonka osiot mahdollistavat kyselyiden luomisen WWW-ympäristöön, vastausten hallinnan sekä tulosten muodostamisen ja esittämisen. Kottarainen-sovellus tulee olemaan yksi aiemmin toteutetun Korppi-järjestelmän moduuleista. 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 Jussi Mäkinen ja Vesa Lappalainen.
Yhteystiedot: Agora, huone C223.2, puh.nro. 014-260 4964, projektiorganisaation sähköpostilista kottarainen@korppi.jyu.fi.
Avainsanat: Tiedonkeruu, kyselyt, palaute, tiedon esittäminen, WWW-sovellus, Kotka-järjestelmä
Versio
|
Päiväys
|
Tehnyt
|
Muutokset
|
1.0
|
10.3.
|
Tiina
Pöyhönen
|
Suunnitelmanteko
alulle, otsikkojen suunnittelu.
|
1.3
|
10.3.-19.3.
|
Tiina
Pöyhönen
|
Otsikoiden
alle tekstiä. Työkalujen ja käyttöympäristöjen
faktoja selville. Käyttötapauksien suunnittelu alkuun.
|
1.4
|
20.3.
|
Tiina
Pöyhönen
|
Sampsan
ehdottamien muutosten korjaus.
|
1.41
|
24.3.
|
Tiina
Pöyhönen
|
Timon
ehdottamien muutosten korjaus.
|
1.42
|
25.3.
|
Tiina
Pöyhönen
|
Idea
vaatimusmäärittelyn tiivistelmän lisäämisestä
hylätty. Tyylejä muokattu. Käyttötapauksia paranneltu.
|
1.5
|
25.3.
|
Sampsa
Lintunen
|
Käyttötapauksiin
lisää se selostuksia. Hienosäätöä.
|
1.51
|
26.3.
|
Tiina
Pöyhönen
|
Teemun
tekemien käyttöliittymäkuvien lisääminen ja
selostuksia. Viimeistely ensimmäisen version esittämiskuntoon.
|
2.0
|
31.3.
|
Tiina
Pöyhönen
|
Lisätty
tietoa koodin kommentointikäytännöstä. Korjattu Santasen
ehdottamia korjauksia.
|
2.1
|
1.4.
|
Tiina
Pöyhönen, Timo Ylönen
|
Korjattu
Santasen ehdottamia korjauksia.
|
2.2
|
2.4.
|
Tiina
Pöyhönen
|
Korjattu
Santasen ehdottamia korjauksia. Käyttötapaukset siirretty
vaatimusmäärittelyyn.
|
2.3
|
7.4.
|
Sampsa
Lintunen
|
Lisätty
tietokannan määrittely.
|
2.4
|
14.4.
|
Teemu
Vähä-Ruka
|
Santasen
ehdottamia korjauksia.
|
2.45
|
10.6.
|
Teemu
Vähä-Ruka
|
Hiomista
kansiota varten.
|
Kottarainen on Jyväskylän yliopiston tietotekniikan laitoksen kevään 2003 sovellusprojekti, joka toteuttaa WWW-pohjaisen kyselyjen laatimis-, hallinta- ja analysointisovelluksen Jyväskylän yliopiston käyttöön. Kyseisen Kottarainen-sovelluksen osia ovat kyselyiden luominen WWW-ympäristöön, vastausten hallinta sekä tulosten muodostaminen ja esittäminen.
Kottarainen-sovellus tulee toimimaan yhtenä moduulina jo olemassa olevaa Korppi-nimistä opetushallintajärjestelmää. Tämän järjestelmän edeltäjä, Kurki, toteutettiin opiskelijaprojektina vuonna 1998. Sitä ovat seuranneet projektit, Kotka, Korppi, Halko, Kolibri, Koppelo ja Kiuru.
Kevään 2003 Kottarainen-ryhmään kuuluvat tietotekniikan opiskelijat Sampsa Lintunen, Tiina Pöyhönen, Teemu Vähä-Ruka ja Timo Ylönen. Tilaajana toimivat Jyväskylän yliopiston organisaatioista avoin yliopisto edustajanaan Eija Ihanainen, hallinto edustajanaan Mauno Väisänen, opetuksen laadunkehittämishanke OPLAA! edustajanaan Jari Rantamäki sekä virtuaaliyliopisto-hanke, jota edustaa Antti Auer. Kottarainen-projektin vastaavana ohjaajana toimii Jukka-Pekka Santanen sekä teknisinä ohjaajina Jussi Mäkinen ja Vesa Lappalainen.
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ä.
Lukuun 2 on kerätty projektissa ja sen dokumenteissa käytettäviä termejä. Luku 3 käsittelee sovellukselle asetettuja tavoitteita ja sovelluksen ominaisuuksia. Luvussa 4 käsitellään Kottarainen-projektin palvelinratkaisuja ja valotetaan projektissa käytössä olevia sovellusympäristöjä. Luku 5 esittelee tuotettavan sovelluksen käyttöliittymänäkymiä. Luku 6 kuvaa tietokannan rakennetta sekä etenkin Kotka-kantaan tulevia muutoksia ja lisäyksiä. Luku 7 käsittelee ohjelmakoodin kommentointia ja luvussa 8 kerrotaan testauksen pääperiaatteista.
Luvussa on selvennetty Kottarainen-projektissa käytettävää termistöä. Kottarainen-projektin aiheeseen ja Korppi-järjestelmään liittyviä termejä ovat seuraavat:
Benchmarking on arviointitapa, jossa useampi organisaatio suorittaa matriisimuotoisen laadunarviointikyselyn ja vertailee saamiaan tuloksia keskenään.
Kohde on tässä dokumentissa käytetty lyhenne, jolla tarkoitetaan kysymystä, kysymysryhmää ja kyselyä yhdessä.
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ä.
Kysymyspankki on kokoelma kysymyssarjoja, joista voi valita uuden kyselynsä pohjaksi kokonaisia kyselyjä, kysymysryhmiä tai yksittäisiä kysymyksiä.
Kysymysryhmä käsittää yhden tai useampia samaan aihepiiriin liittyviä kysymyksiä.
Kysymyssarja on kysymyspankkiin saataville sijoitettu kysely.
Looginen ryhmittely on kysymysten ryhmittely analysointia varten asiasisällön mukaan.
SAS on tilastollinen ohjelma.
SPSS on yliopistolla laajasti käytetty tilastollinen analysointi-ohjelma.
SPSS Data Entry on WWW-kyselyiden tekemiseen tarkoitettu ohjelma.
Survo on käyttöympäristö tekstin ja numeerisen tiedon luovaan käsittelyyn.
Visuaalinen ryhmittely on kysymysten ryhmittely visuaalisesti eri ryhmiin niin, että käyttäjältä piilotetaan loogiset ryhmät.
Projektin toteutusympäristöön sekä käytettäviin työkaluihin ja tekniikoihin liittyviä termejä ovat seuraavat:
Apache on ilmainen HTTP-palvelinohjelmisto.
CSS eli Cascading Style Sheets on WWW-sivujen ulkoasua kuvaava kieli.
CSV (Comma Separated Values) on tiedon esitysmuoto, jossa eri muuttujien arvot erotetaan toisistaan pilkulla.
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.
IMS-standardi on Global Learning Consortiumin määrittely kysymysten esittämiselle XML-muodossa.
Java on Sunin kehittämä laitteistoriippumaton olio-ohjelmointikieli.
Java-pavut (engl. JavaBeans) ovat Java-ohjelmointikielellä luotuja komponentteja, joita voidaan kutsua JSP-sivuilla.
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.
PostgreSQL on ilmainen tietokannanhallintajärjestelmä.
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.
SSL-salaus on eräs Internetissä käytössä oleva salausmenetelmä.
TomCat on ilmainen servletti- ja JSP-moottori.
XML on rakenteisten dokumenttien määrittely- ja kuvauskieli.
Kottarainen-sovelluksesta toteutetaan tilaajien ja Jyväskylän yliopiston käyttöön helppokäyttöinen sovellus kyselyiden laatimiseen, suorittamiseen, hallintaan ja analysointiin. Kyselyn teko tapahtuu WWW:ssä selaimella ja kysely tulee heti valmistuttuaan näkyviin palvelimelle. Jonkun vastattua kyselyyn, vastaukset tallentuvat tietokantaan ja tulevat myös näkyviin selaimelle raporttina.
Kysymysten, kysymysryhmien ja kyselyiden (myöhemmin näihin viitataan kohteina) luomisen käyttöliittymä toteutetaan mahdollisimman helppokäyttöiseksi. Kyselyn luoja voi valita kysymyksiä, kysymysryhmiä tai kysymyssarjoja kysymyspankista ja muokata niistä itselleen sopivan kyselyn. Kyselyn laatija voi myös tehdä lisää omia kysymyksiä. Laaditut kyselyt voidaan asettaa kaikkien kyselyjen laatijoiden nähtäväksi kysymyspankkiin kysymyssarjoiksi tai pitää saatavilla vain itsellään.
Kyselyä laatiessa voi koko ajan tarkastella, miltä syntyvä kysely näyttää. Kysymyksiä, kysymysryhmiä ja kysymyssarjoja voi helposti lisätä, poistaa tai siirtää mihin tahansa kohtaan kyselyä. Kysymykset voivat muodostaa loogisesti erilaisia kokonaisuuksia kuin visuaalisesti. Näin voidaan pitää kysymysten laatimisvaiheessa kysymykset lajiteltuna loogisesti oikeisiin ryhmiin ja toisaalta sijoitella ne visuaalisesti erilleen loogisista yhteyksistään. Tällä saavutetaan etua esimerkiksi, jos on odotettavissa, että kysymykset vaikuttavat toistensa vastauksiin.
Kun kysely on valmis, se talletetaan palvelimelle ja on nähtävissä ja täytettävissä Kottarainen-sovelluksessa tietyn, laatijan määrittelemän, ajanjakson.
Kaikilla Korppi-järjestelmän käyttäjillä, joilla on oikeus laatia kyselyitä, on myös oikeus ottaa kohteita kysymyspankista ja tallentaa tekemänsä kohteet sinne esimerkiksi sihteerin hyväksyminä.
Kysymykset, kysymysryhmät ja kysymyssarjat tallennetaan kysymyspankkiin niin, että niissä säilyy tiettyjä metatietoja, kuten tekijä, luontipäivämäärä ja tarkoitus sekä kurssikyselyiden tapauksessa kurssin nimi.
Kohteita voidaan hakea kysymyspankista kysymyksessä olevan sanan tai tekijän, päivämäärän sekä muiden kohteeseen liittyvien metatietojen perusteella. Jos kysymys on liitetty nimenomaan kurssikyselyyn, voidaan se hakea myös kurssin nimen perusteella.
Laatija voi halutessaan julkaista kysymyspankkiin tallentamansa kohteet. Julkaisuun käytetään erilaisia julkaisuasteita, joiden perusteella määritellään kuka saa ottaa niitä käyttöönsä (kysely voi olla käytettävissä esimerkiksi organisaation sisällä). Julkaisuasteen valitessaan laatija antaa samalla käyttöoikeudet luomiinsa kohteisiin. Pankkiin julkaistuja kohteita ei voi muokata, vaan muokkaaminen luo kohteesta uuden ilmentymän.
Kyselyjen vastaukset tallennetaan Kotka-tietokantaan. Olemassa olevaa tietokantaa laajennetaan ja muutetaan Kottarainen-sovelluksen tarpeiden mukaan. Tätä kuvataan tarkemmin luvussa 6.
Vastaukset tallennetaan tietokantaan niin, että niissä säilyy tieto kyselystä ja ajanhetkestä. Näin voidaan vertailla saatuja tuloksia esimerkiksi eri vuosien välillä. Lisäksi vastaukset on mahdollista tallentaa liittäen niihin tieto vastaajasta, tai siten, ettei vastaajaa tiedetä (anonyymikyselyt). On myös mahdollista, että vastaajasta tallennetaan ainoastaan joitakin kyselylle oleellisia metatietoja, kuten opintojen aloitusvuosi tai sukupuoli, mutta ei hänen henkilöllisyyttään.
Tallentamisessa otetaan huomioon tietojen jatkokäytön vaatimukset (kuten vastausten tarkempi analysointi) joita kuvataan tarkemmin Vaatimusmäärittelyssä.
Kyselyiden tulokset tullaan esittämään numeerisista ja luokitteluasteikollisista vastauksista laskettavina yksinkertaisina tunnuslukuina WWW-selaimella. Tuloksia voidaan havainnollistaa numeerisesti muun muassa keskiarvoina ja jakaumina, sekä myös graafisesti. Toteutettavia graafisia esitysmuotoja ovat pylväskaaviot ja jakaumat.
Avoimet kysymykset kasataan kysymyksittäin yhteen kokonaisuuksiksi. Vastausten käsittelijä voi halutessaan kommentoida ja muokata tuloksia ja vastauksia. Muokkaukset tulevat näkyviin tulossivulle.
Edellisen lisäksi vastauksista voidaan muodostaa tiedosto muun muassa analysointityökalu SPSS:n ymmärtämään formaattiin. Tällöin käyttäjillä on mahdollisuus tehdä tiedoilla myös monimutkaisempiakin tilastollisia analyysejä.
Aikataulun salliessa toteutetaan kysymystyypit IMS-standardin mukaisessa XML-formaatissa. Tällöin ne ovat siirrettävissä erilaisiin ympäristöihin, kuten esimerkiksi OPTIMA-oppimisympäristöön. Myös tulosten tallentaminen XML-muodossa on alemman prioriteetin vaatimuksia.
Jos aikaa jää, toteutetaan mahdollisuus Jari Rantamäen ja Antti Auerin esittelemän matriisimuotoisen kyselyn luomiseen sekä myös näillä kyselyillä saadun palautteen esityttäminen matriisimuodossa.
Aikataulun tiukkuudesta ja projektin jäsenten työtuntien rajallisuudesta johtuen kaikkien ideoita ja vaatimuksia ei pystytä toteuttamaan tämän projektin puitteissa. Jatkokehitykseen jää muun muassa tarkempien analyysien tuottaminen saadusta palautteesta. Tämä pyritään ottamaan huomioon tiedon tallentamisessa, jotta jatkokehitys tulisi olemaan mahdollisimman kivutonta.
Tulosten teko ja visualisointityökalujen toteutus jäävät toivottaviksi tai myöhemmin toteutettaviksi vaatimuksiksi. Kyselyn käyttäjä- ja käyttöoikeuksien hallinta jää myös ainakin osin jatkokehityksen hoidettavaksi. Toteutusvaiheen aikataulu käy ilmi Projektisuunnitelmasta.
Luvussa kuvataan Kottarainen-sovelluksen toteuttamiseen käytettäviä työkaluja ja ohjelmointiympäristöjä. Ryhmällä on ohjelmointityökaluna käytössään NetBeans 3.4.1. Käyttöjärjestelminä kahdella projektin koneista on Windows 2000 ja kahdella RedHat Linux 7.3.
Kotka-projektin valitsemaa palvelinratkaisua tullaan käyttämään myös Kottarainen-sovelluksessa, koska Kottarainen tulee hyvin pitkälti toimimaan yhdessä Korppi-opetushallintajärjestelmän kanssa, jossa Kotka-tietokanta on käytössä. Kuvassa 1 esitetään Kottarainen-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 1). 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 2 esitetään luvussa käsiteltyjen palvelinohjelmistojen suhteita toisiinsa.
Kuva 2: 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 Kottarainen-sovelluksen käyttöliittymän ulkoasua.
Korppi-järjestelmän navigointipalkkiin lisätään Kyselyiden hallinta -linkki, josta avautuu näkymä Kottarainen-sovelluksen aloitussivulle.
Kuvassa 3 on näkymä kyselyn laatimisen aloitussivusta, johon on täytettävä kyselyyn liitettävät yleiset tiedot. Käyttäjä ei pääse luomaan varsinaista kyselyä, mikäli kyseisiä tietoja ei ole täytetty.
Hae valmis kysymysryhmä -painikkeesta pääsee noutamaan kysymyspankissa valmiina olevia kohteita.
Luo kysymysryhmä -painikkeesta laatija pääsee tekemään kysymysryhmää.
Näytä lisäominaisuudet -linkistä saa esiin tavallisesti piilossa olevat lisäominaisuudet, kuten kyselyn käyttöoikeusasetukset. Sivusta on olemassa laajennettu näkymä, joka edellä mainittua painiketta painamalla tulee kyselyn laatijalle. Lisäominaisuudet saa piilotettua laajennetusta näkymästä linkistä Piilota lisäominaisuudet .
Kysymysryhmän luominen alkaa kuvan 4 esittämässä näkymässä. Laatija voi mennä hakemaan kohteita kysymyspankista painamalla Hae valmis kysymysryhmä -painiketta.
Laatija voi myös aloittaa luomaan uutta ryhmää täyttämällä ryhmälle otsikkotiedot sekä valitsemalla alustavasti kysymysten lukumäärän.
Kysymysryhmän laatimisessa on myös laajennettu sivu. Kyseisiin lisäominaisuuksin voi muun muassa määrittää kysymysten visuaalisen järjestyksen kyselylomakkeelle. Näkymän saa esiin klikkaamalla Näytä lisäominaisuudet -painiketta.
Kuva
4: Kysymysryhmän luominen.
Kysymyksien muokkaaminen tapahtuu kuvan 5 esittämällä sivulla. Ryhmään kuuluu niin monta kysymystä kuin laatija on edellisellä sivulla valinnut luotavaksi, mutta ryhmään saa haettua pankista lisää kysymyksiä tai luotua itse uusia. Kysymyksiä saa myös helposti poistettua ryhmästä valitsemalla poistettavat kysymykset ja painalla painiketta Poista merkityt .
Kysymysryhmän laatimisessa on myös laajennettu sivu. Kyseisiin lisäominaisuuksin voi muun muassa määrittää kysymysten visuaalisen järjestyksen kyselylomakkeelle. Näkymän saa esiin klikkaamalla Näytä lisäominaisuudet -painiketta.
Kun kysymysryhmälle on luotu otsikko ja kysymyksille valittu tyypit, pongahtaa laatijalle näkyviin kuvan 6 laajempi kyselyn laadintanäkymä. Laajempi näkymä tarkoittaa sitä, että käyttäjä pääsee määrittämään esimerkiksi alasvetovalikkojen vastausvaihtoehtotekstejä.
Laatija pääsee koska tahansa kyselyä, kysymysryhmää tai kysymystä luodessaan tarkastelemaan kyseisen kohteen näkymää vastaajan näkökulmasta valitsemalla Lomakkeen esikatselu -linkin. Kuva 7 esittää esikatselunäkymää.
Kotka-tietokantaan tehtiin Kottarainen-sovellusta varten kokonaan oma osio, koska olemassa oleva rakenne ei soveltunut kaikkien haluttujen ominaisuuksien toteuttamiseen.
Tässä luvussa esitellään sovellusta varten luodut uudet tietokantataulut ja tietokannan rakennekaavio. Tietokannan ER-kaavio ja tarkennetut kuvaukset löytyvät tietokantaraportista.
Tietokannan rakennekaaviosta (kuva8) käy ilmi projektia varten luodut uudet taulut ja niiden sisältämät kentät.
Nimi |
questionnaire
|
|
Tarkoitus |
Sisältää
kyselyn perustiedot.
|
|
Avainkenttä |
questionnaireid
|
|
Viiteavaimet |
bankgroupid
|
Osoittaa
tauluun questionbankgroup. Viitteen arvo kertoo kyselyn ryhmittelyn
kysymyspankissa, tai sen ettei se näy pankissa ollenkaan.
|
bankuserightid
|
Osoittaa
tuluun question_bankuseright. Viitteen arvo kertoo kyselyn kopiointioikeuden
kysymyspankista.
|
|
personid
|
Osoittaa
tauluun person. Viitten arvo kertoo, kuka on luonut kyselyn (kyselyn omistaja).
|
Nimi |
question
|
|
Tarkoitus |
Sisältää
yksittäisen kysymyksen perustiedot. Käyttöliittymätasolla
kysymys on teksti, joka esittää kysyttävän asian
|
|
Avainkenttä |
questionid
|
|
Viiteavaimet |
questiontypeid
|
Osoittaa
tauluun questiontype. Viitteen arvo kertoo kysymystyypin.
|
bankgroupid
|
Osoittaa
tauluun questionbankgroup. Viitteen arvo kertoo kysymyksen ryhmittelyn
kysymyspankissa, tai sen ettei se näy pankissa ollenkaan.
|
|
bankuserightid
|
Osoittaa
tuluun question_bankuseright. Viitteen arvo kertoo kysymyksen kopiointioikeuden
kysymyspankista.
|
|
personid
|
Osoittaa
tauluun person. Viitten arvo kertoo, kuka on luonut kysymyksen (kysymyksen
omistaja).
|
Nimi |
questiongroup
|
|
Tarkoitus |
Sisältää
kysymysten ryhmittelytiedot. Taulun rakenne on rekursiivinen, joten alkiot
muodostavat puurakenteen, jossa kysymysryhmät voivat sijaita toistensa
sisällä. Huomioitava seikka on, että kysymysryhmän
sisällä voi olla sekä kysymyksiä että muita
kysymysryhmiä
|
|
Avainkenttä |
questiongroupid
|
|
Viiteavaimet |
parentid
|
Osoittaa
saman taulun questiongroupid-kenttään. Mikäli kentällä
ei ole arvo (null), kysymysryhmä on suoraan kyselyn alainen
kysymysryhmä. Muutoin arvo kertoo kysymysryhmän isäryhmän.
|
bankgroupid
|
Osoittaa
tauluun questionbankgroup. Viitteen arvo kertoo kysymysryhmän ryhmittelyn
kysymyspankissa, tai sen ettei se näy pankissa ollenkaan.
|
|
bankuserightid
|
Osoittaa
tuluun question_bankuseright. Viitteen arvo kertoo kysymysryhmän
kopiointioikeuden kysymyspankista.
|
|
personid
|
Osoittaa
tauluun person. Viitten arvo kertoo, kuka on luonut kyselymysryhmän
(kysymysryhmän omistaja).
|
Nimi |
questionfield
|
|
Tarkoitus |
Sisältää
kysymyksen kenttään/kenttiin liittyvät tiedot.
Käyttöliittymätasolla kenttä edustaa html-komponenttia
(radiopainike,valintaruutu,tekstirivi, tekstialue, valintalistan alkio).
|
|
Avainkenttä |
questionfieldid
|
|
Viiteavaimet |
questionid
|
Osoittaa
tauluun question. Kertoo mihin kysymykseen kenttä liittyy.
|
Nimi |
questionnaire_group
|
|
Tarkoitus |
Yhdistää
kyselyn tiettyyn käyttäjäryhmään. Taulussa
määritellään myös toiminto, joka ryhmälle
kyseiseen kyselyyn annetaan.
|
|
Avainkenttä |
questionnaireid,
usergroupid, questionnaireactionid
|
|
Viiteavaimet |
questionnaireid
|
Osoittaa
tauluun questionnaire ja kertoo mihin kyselyyn viitataan.
|
usergroupid
|
Osoittaa
tauluun usergroup ja kertoo mille ryhmälle toiminto-oikeus annettaan.
|
|
questionnaireactionid
|
Osoittaa
tauluun questionnarieaction ja kertoo mikä oikeus ryhmälle annetaan.
|
Nimi |
questionnaire_question
|
|
Tarkoitus |
Yhdistää
kysymyksen kyselyyn/kyselyihin. Taulussa kerrotaan myös mihin
kysymysrymään kysymys kuuluu.
|
|
Avainkenttä |
questionnaireid,
questionid
|
|
Viiteavaimet |
questionnaireid
|
Osoittaa
tauluun questionnaire ja kertoo mihin kyselyyn kysymykset liitetään.
|
questionid
|
Osoittaa
tauluun question ja kertoo mikä kysymys kyselyyn liitetään.
|
|
questiongroupid
|
Osoittaa
tauluun questiongroup ja kertoo mihin kysymysryhmään kysymys liittyy.
Mikäli kentän arvo on tyhjä (null) kysymys liittyy suoraan
kyselyyn.
|
Nimi |
questionnaireaction
|
Tarkoitus |
Sisältää
eri toiminnot, joita kyselylle voidaan suorittaa. Toimintoja ovat luonti,
muokkaus, vastaus, tulosten luonti ja katselu.
|
Avainkenttä |
questionnaireactionid
|
Nimi |
questionstatus
|
Tarkoitus |
Sisältää
määrittelyt kyselyn osien mahdollisisista tiloista. Eri tiloja voi
olla piilotettu, auki ja luku.
|
Avainkenttä |
questionstatusid
|
Nimi |
questiontype
|
Tarkoitus |
Sisältää
kysymyksille mahdolliset tyypit. Näitä ovat tekstirivi, tekstialue,
monivalinta, radiopainike ja alasveto.
|
Avainkenttä |
questiontypeid
|
Nimi |
question_bankgroup
|
Tarkoitus |
Sisältää
ryhmittelyt, joita kysymyspankissa voi eri kohteille olla.
Sisältää myös alkion salattu, jolloin kohde ei ole muiden
saatavilla.
|
Avainkenttä |
bankgroupid
|
Nimi |
question_bankuseright
|
Tarkoitus |
Sisältää
määrittelyt oikeuksille, joilla kohde on mahdollista
uudelleenkäyttää. Eri oikeuksia on viite, viite lukuoikeuksin ,
kopio ja kopio vastauksin.
|
Avainkenttä |
bankuserightid
|
Metatietotaulurakenne on tehty määrittelemään eri kohteiden ominaisuuksia. Tarkoituksena on, että ominaisuuksia voi lisätä jo valmiiseen sovellukseen. Rakenne on sellainen, että kohteeseen liitetyn tiedon typpi ilmaistaan viitteellä, jolloin uuden tyypin lisääminen ei aiheuta muutoksia tietokannan rakenteeseen.
Nimi |
question_parametertype
|
Tarkoitus |
Sisältää
määritykset eri metatietotyypeille. Tyyppejä voi
lisätä valmiin sovelluksen julkaisun jälkeen.
|
Avainkenttä |
parametertypeid
|
Nimi |
questionnaire_parameter
|
|
Tarkoitus |
Yhdistää
metatiedon kyselyyn. Alkio sisältää tiedon metatiedon
tyypistä sekä tiedon varsinaisen sisällön
|
|
Avainkenttä |
questionnaireid,
parameterid
|
|
Viiteavaimet |
questionnaireid
|
Osoittaa
tauluun questionnaire ja kertoo mihin kyselyyn metatieto liitetään.
|
parameterid
|
Osoittaa
tauluun question_parametertype ja kertoo minkä tyyppinen metatieto on
kyseessä.
|
Nimi |
question_parameter
|
|
Tarkoitus |
Yhdistää
metatiedon kysymykseen. Alkio sisältää tiedon metatiedon
tyypistä sekä tiedon varsinaisen sisällön
|
|
Avainkenttä |
questionid,
parameterid
|
|
Viiteavaimet |
questionid
|
Osoittaa
tauluun question ja kertoo mihin kysymykseen metatieto liitetään.
|
parameterid
|
Osoittaa
tauluun question_parametertype ja kertoo minkä tyyppinen metatieto on
kyseessä.
|
Nimi |
questiongroup_parameter
|
|
Tarkoitus |
Yhdistää
metatiedon kysymysryhmään. Alkio sisältää tiedon
metatiedon tyypistä sekä tiedon varsinaisen sisällön
|
|
Avainkenttä |
questiongroupid,
parameterid
|
|
Viiteavaimet |
questiongroupid
|
Osoittaa
tauluun questiongroup ja kertoo mihin kysymysryhmään metatieto
liitetään.
|
parameterid
|
Osoittaa
tauluun question_parametertype ja kertoo minkä tyyppinen metatieto on
kyseessä.
|
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: 31.3.2003
* PURPOSE: Demostrates commenting..
* AUTHOR: Tiina Pöyhönen, Jyväskylän yliopisto
*
*********************************************************************
* COPYRIGHT (C) KOTTARAINEN-PROJEKTIRYHMÄ
* Limited rights granted. Please refer to license
*********************************************************************
*********************************************************************
* UPDATES
*********************************************************************
*
* 30.3.2003 Initial release
* 31.3.2003 Added something.. (Tiina Pöyhönen)
*
********************************************************************/
/** 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) KOTTARAINEN-PROJEKTIRYHMÄ
* Limited rights granted. Please refer to license
********************************************************************/
Testausta suoritetaan koko ajan sovellusta kehitettäessä niin, että jokainen sovelluksen komponentti on toimiva ennen yhdistämistä muihin osiin. Sovelluksen osien valmistuttua ne yhdistetään yksi kerrallaan isommaksi kokonaisuudeksi. Tällöin pyritään löytämään kaikki mahdolliset ongelmakohdat sovelluksessa sehä testaamaan ja korjaamaan toiminta.
Sovellus pyritään testaamaan toimivaksi kaikilla Kottarainen-ryhmällä käytössä olevilla selaimilla sekä Windows- että Linux-ympäristössä. Käytössä olevia selaimia Linuxissa ovat Opera 6.1, Netscape Communicator 4.79 ja Mozilla 1.0.1. Windowsissa puolestaan on käytössä Netscape Navigator 7.01, Internet Explorer 6.0, Opera 7.03 ja Mozilla 1.3.
Kottarainen-projektin osalta tärkein toteutettava osa sovelluksesta on helppokäyttöinen kyselynlaadintaosio, joten sen osion käyttöliittymän prototyyppi pyritään saamaan ajoissa valmiiksi ja testattavaksi. Protyypistä pyydetään palautetta tilaajilta ja tulevilta käyttäjiltä jo ennen sovelluksen valmistumista, jotta kaikkien mielipide käytettävyydestä saadaan varmasti huomioitua.
Testaukseen osallistuvat ryhmän jäsenten lisäksi ainakin tilaajien edustajat ja ohjaajat. Toivottavaa olisi, että ainakin käyttöliittymään saataisiin mielipiteitä myös ihmisiltä, jotka eivät ole ottaneet osaa sovelluksen suunnitteluun projektin kuluessa. Näin saataisiin tuoreita mielipiteitä ja ehkä havaittaisiin ongelmakohdat, joille sovelluksen kehittämiseen osallistuneet eivät havaitse.
Kottarainen-projektiryhmä toteuttaa WWW-pohjaisen kyselyjen laatimis-, hallinta- ja analysointisovelluksen Jyväskylän yliopiston käyttöön. Sovelluksen osia ovat kyselyiden luominen WWW-ympäristöön, kyselyyn vastaaminen, vastausten hallinta sekä tulosten muodostaminen ja esittäminen.
Tässä dokumentissa kuvataan Kottarainen-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ä.
[1] Hillebrand Minna, Silván Markus, Vanhanen Antti ja Ylitalo Marko, "Koppelo-projektin projektikansio", Jyväskylän yliopisto, tietotekniikan laitos, 2002.
[2] Hilpinen Toni, Koivuniemi Marko, Mäkinen Jussi ja Nurminen Miika, "Kiuru-projektin projektikansio", Jyväskylän yliopisto, tietotekniikan laitos 2002.
[3] Kyppö Jorma ja Vesterholm Mika, "Java-ohjelmointi", Talentum Media Oy, 2001.
[4] Antti Auerin, Eija Ihanaisen ja Jari Rantamäen toimittamat esimerkit heidän tarpeistaan.
[5] Sähköpostikeskustelu Harri Tuomen kanssa, liittyen Tomcat:in tekniseen toimintaan, 13.3.2003.