Graafinen käyttöliittymä lintujen rengastusjärjestelmään Vaatimusdokumentti Versiohistoria: 0.1 28.01.2002 Ensimmäinen luonnos. Tarja Rauste, Simo Salmensuu 0.2 31.01.2002 Toinen luonnos. Tarja Rauste, Simo Salmensuu 0.3 05.02.2002 Kolmas luonnos. Tarja Rauste, Simo Salmensuu 1.0 08.02.2002 Ensimmäinen versio. Tarja Rauste, Simo Salmensuu 1.1 13.02.2002 Versiot, viitteet. liitteet korjattu Tarja Rauste, Simo Salmensuu 1.2 14.02.2002 Kursivointi-virhe korjattu Tarja Rauste, Simo Salmensuu Helsinki, 14. helmikuuta 2002 Markus Päivinen Mari Jaakkola Peter Lindroos Tarja Rauste Simo Salmensuu Vesa Teikari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti Haukka
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 Toimintaympäristö......................... 3 2.3 Käyttäjäkunta............................ 3 3 Tietokuvaus 4 3.1 Tietosisältö............................. 4 3.2 Tietokannan kuvaus......................... 7 4 Toimintokuvaus 8 4.1 Tiedon hakeminen.......................... 8 4.2 Tiedon lisääminen.......................... 9 4.3 Tiedon muuttaminen........................ 10 4.4 Tiedon poistaminen......................... 10 5 Järjestelmän ulkoiset liittymät 11 5.1 Asiakasyhteys............................ 11 5.2 Järjestelmäyhteys.......................... 12 5.3 Alustatiedot............................. 12 6 Muut ominaisuudet 13 6.1 Suorituskyky............................ 13 6.2 Käytettävyys ja ylläpidettävyys................... 13
2 7 Testaus 13 8 Rajoitteet suunnittelulle ja toteutukselle 14 8.1 Noudatettavat standardit...................... 14 8.2 Laitteistorajoitteet.......................... 15 Viitteet 16
1 1 Johdanto 1.1 Tuotteen tausta ja tarkoitus Helsingin yliopiston Luonnontieteellisen keskusmuseon Rengastustoimisto organisoi lintujen rengastuksen Suomessa. Rengastuksia ja rengastettujen lintujen havaintoja koskevat tiedot talletetaan tietokantaan, joka liittyy suurempaan tietokantajärjestelmään. Tämän avulla sekä tulostetaan rengastajille, maallikoille ja ulkomaisille rengastuskeskuksille kirjeitä että tuotetaan raportteja ja tutkimusdataa tutkijoille, päättäjille ja valistajille.rengastustoimistossa on käytössä SQL*Forms kehittimellä toteutettu merkkipohjainen käyttöliittymä rengastustietokantaan. Tämä vanhentunut käyttöliittymä on tarkoitus vaihtaa nykyaikaisempaan. Projektin tarkoituksena on jatkaa aikaisempien ohjelmistotuotantoprojektien, Tipu4:n ja Tintin,aloittamia graafisen käyttöliittymän suunnittelua ja toteuttamista.käyttöliittymä muodostuu interaktiivisista WWW-lomakkeista, joilla Rengastustoimiston väki voi syöttää tietokannan tauluihin suoraan tietoja. Käyttöliittymä tarjoaa rajapinnan tietokannan tauluihin, tarkistaa syötetyt tiedot ja tallentaa tiedot tietokantaan. Tuotantokäytössä olevan järjestelmän osia käytetään toteutuksessa hyväksi soveltuvin osin. Tipu4:n ja Tintin tuottama suunnittelu ja toteutus tarjoavat valmiin mallin lopulliselle tuotteelle. Nämä olemassaolevat materiaalit hyödynnetään Haukkaprojektissa ja käyttöliittymä toteutetaan pääosin Tipu4:n ja Tintin tekemien käyttöliittymäsuunnitelmien mukaan. 1.2 Erikoissanasto ja käytetyt lyhenteet HTML Hypertext Markup Language on internetissä käytetty tiedon esitystapa, jota client-pään selaimet osaavat tulkata.
2 JDBC-ajuri Java DataBase Connectivity - ajuri, mahdollistaa tietokantakutsut palvelinsovelmista. HTTP Hypertext Transfer Protocol on WWW-liikenteen protokolla. Kontrolli Rengastajien suorittama lintuhavainto. Kontrollit tehdään pesiltä lintuja pyydystämällä tai esimerkiksi kiikaroinnilla. Rengastaja on lintuharrastaja joka on oikeutettu ja koulutettu merkitsemään lintuja virallisilla linturenkailla. Rengastus Uuden renkaan laittaminen linnulle, jolla ei ennestään ole rengasta. Löytö Ennestään rengastetun linnun kohtaaminen. Lintu voi olla elävä tai kuollut. Tapaaminen Ennestään rengastetun, elävän linnun kohtaaminen. Servlet on Javalla koodattu ohjelmamoduuli, joka suoritetaan palvelimella, palvelinsovelma. Tipukanta Eläinmuseossa käytettävä SQL-tietokanta rengastustietojen säilyttämiseen. WWW-Tipu Tässä dokumentissa kuvattu graafinen käyttöliittymä lintujen rengastustietokannalle. 2 Yleiskuvaus 2.1 Yleinen toiminta Ohjelmisto tarjoaa WWW-käyttöliittymän Helsingin yliopiston eläinmuseossa käytössä olevaan lintujen rengastusjärjestelmään ja se korvaa aiemman SQL*Formsilla kehitetyn merkkipohjaisen käyttöliittymän. Erityistä huomiota kiinnitetään käyttöliittymän modernisoinnin lisäksi käytettävyysnäkökohtiin. WWW-tipu ohjelmaa
3 täytyy päästä käyttämään miltä tahansa verkkoon liitetyltä tietokoneelta, jossa on tarkoitukseen sopiva selain. Merkkipohjaisen järjestelmän käyttöliittymä käyttöohjeineen [7] toimii uuden version suunnittelun pohjana. Uudet käyttöliittymän näytöt noudattavat Tipu4- ja Tintti-projektien suunnittelu- ja toteutusvalintoja niin, että pyrkimys on yhteinäiseen linjaan. 2.2 Toimintaympäristö Ohjelmisto toteutetaan Java Servlet -tekniikalla Unix-ympäristössä. Servletit käyttävät järjestelmässä valmiina olevia tietokantakomponentteja. Projektin aikana käytettävät Java servlet -moottori (Apache JServ 1.1.2) ja Java-kääntäjä (Sun J2SE 1.2.2) sijaitsevat TKTL:n Unix-palvelimella alkokrunni alias db.cs.helsinki.fi. Valmis WWW-tipu ohjelma tullaan sijoittamaan ATK-keskuksen palvelimeen. Webkantasivu ladataan eläinmuseon käyttämältä Apachen (versio 1.3.12) Web-palvelimelta ja loput sivuista luodaan käyttäjän valintojen mukaan Unix-palvelimelle sijoitettavien servlettien avulla. Web-lomakkeiden tiedot lähetetään Java servleteille HTTP-protokollan GET- ja POST-toiminnoin, tulosteet generoidaan asiakkaan selaimelle. HTML sivuissa tullaan käyttämään JavaScriptiä. Järjestelmän käyttö vaatii Internet Explorer-selaimen. 2.3 Käyttäjäkunta Järjestelmää käyttää eläinmuseon rengastustoimiston henkilökunta. Uusi käyttöliittymä on vanhan liittymän kaltainen, joten se ei edellytä käyttäjien uudelleenkoulutusta.
4 3 Tietokuvaus 3.1 Tietosisältö Ohjelmiston tietosisältö voidaan jakaa kuuteen ryhmään: renkaisiin, rengastuksiin ja tapaamisiin liittyviin tietoihin, lisä- ja projektitietoihin sekä apurekisterien tietohin. Käyttäjä lähettää nämä tiedot järjestelmään WWW-käyttöliittymän kautta. Osa tiedoista on laskennallisia ja laskenta suoritetaan Java Servleteissä tarkistuksessa. Käyttöliittymä jakaantuu seuraaviin näyttöihin: 1. Renkaisiin liittyvät tiedot: 1.1 Renkaiden jakelu, 1.2 Renkaiden palautus, 1.3 Rengastyyppien ylläpito ja 1.4 Lajille sallitut rengassarjat. 2. Rengastuksiin liittyvät tiedot: 1.1 Rengastuksen syöttö, 2.2 Rengastuksen ylläpito, 1.2 Renkaan merkitseminen hävinneeksi/tuhoutuneeksi, 2.4 Käytettyjen renkaidenselaus ja 2.5 Rengasvälin hajoitus. 3. Tapaamiset: 3.1 Tapaamisten syöttö,
5 3.2 Tapaamisten ylläpito, 3.3 Kirjeiden tulostus ja 3.4 Roskien ylläpito. 4. Lisätiedot: 4.1 Värirengastusten ylläpito, 4.2 Väritapaamisten ylläpito, 4.3 Rengastusten hirrustietojen ylläpito ja 4.4 Tapaamisten hirrustietojen ylläpito. 5. Apurekisterit (ylläpito): 5.1 Rengastajat, 5.2 Maallikot, 5.3 Maatiedot, 5.4 Läänit, 5.5 Kunnat, 5.6 LYL-alueet, 5.7 Euring provinssit, 5.8 Rengastuskeskukset, 5.9 Lajit, 5.10 Sanasto ja 5.11 Lintuasemat. Näistä näytöistä Tipu 4 ja Tintti ovat uuden käyttöliittymäsuunnitelman mukaisesti toteuttaneet seuraavat näytöt:
6 1.1 Renkaiden jakelu, 2.1 Rengastuksen syöttö, 2.2 Rengastuksen ylläpito, 3.1 Tapaamisten syöttö, 3.2 Tapaamisten ylläpito, 3.3 Kirjeiden tulostus, 3.4 Roskien ylläpito, 4.1 Värirengastusten ylläpito, 4.3 Väritapaamisten ylläpito, 4.4 Tapaamisten hirrustietojen ylläpito, Projektien ylläpito (ei käyt.), Muuttujien ylläpito (ei käyt.), 5.2 Maallikkojen ylläpito ja 5.5 Kuntien ylläpito. Haukka-projektissa on tarkoitus toteuttaa puuttuvat näytöt: 1.2 Renkaiden palautus, 1.3 Rengastyyppien ylläpito, 1.4 Lajeille sallitut sarjat, 2.3 Renkaan merkitseminen hävinneeksi/tuhoutuneeksi, 2.4 Käytettyjen renkaiden selaus, 2.5 Rengasvälin hajoitus, 4.3 Rengastusten hirustietojen ylläpito,
7 5.1 Rengastajien ylläpito, 5.3 Maatietojen ylläpito, 5.4 Läänien ylläpito, 5.6 LYL-alueiden ylläpito, 5.7 Euring provinssien ylläpito, 5.8 Rengastuskeskusten ylläpito, 5.9 Lajien ylläpito, 5.10 Sanaston ylläpito ja 5.11 Lintuasemien ylläpito. 3.2 Tietokannan kuvaus 1.1 Renkaiden jakelu JAKELU 1.2 Renkaiden palautus JAKELU 1.3 Rengast. yp. RENGAS 1.4 Lajille sal.reng.s. LSARJA 2.1 Rengast. syöttö VRGS 2.2 Rengastuksen yp. RENGASTUS 2.3 Renk. merk. häv/tuh RENGASTUS 2.4 Käyt. renk. sel. RENGASTETTU 2.5 Rengasvälin haj. RENGASTUS 3.1 Tapaamisten syöttö PARITON 3.2 Tapaamisten yp. TAPAAMINEN 3.3 Kirjeiden tulostus TOHJAUS 3.4 Roskien yp. ROSKA
8 4.1 Värireng. yp. VRENGASTUS 4.2 Väritapaa. yp. VTAPAAMINEN 4.3 Reng. hir.t. yp. RHIRRUS 4.4 Tapaamisten hir.t.yp. THIRRUS 5.1 Rengastajat RENGASTAJA 5.2 Maalikkot MAALIKKO 5.3 Maatiedot ULKOMAINEN_PAIKKA 5.4 Läänit LAANI 5.5 Kunnat KUNTA 5.6 LYL-alueet LYLALUE 5.7 Euring provinssit PROVINSSI 5.8 Rengastuskeskukset RENGASTUSKESKUS 5.9 Lajit LAJI 5.10 Sanasto SANASTO 5.11 Lintuasemat LINTUASEMA 4 Toimintokuvaus Seuraavassa on esitelty järjestelmän toimintaa pääpiirteittäin eri käyttötapauksissa. 4.1 Tiedon hakeminen Kuva 1: Tiedon hakeminen
9 Jotta selaimelle saataisiin haettua haluttu tieto tietokannasta, tulee käyttäjän täyttää haluamansa hakukriteerit Java-servletin tulostamalle lomakkeelle ja painaa "haku-painiketta". Järjestelmässä on huomioitava, että tietokannasta löytyy useampia hakuehdot täyttäviä tietueita. Haun tulokseen voidaan tehdä lisähakuja. 4.2 Tiedon lisääminen Kuva 2: Tiedon lisääminen Uuden tiedon lisääminen tapahtuu "lisää-painikkeella"sen jälkeen, kun käyttäjä on täyttänyt tiedot Java-servletin tulostamalle lomakkeelle. Mikäli servlet hyväksyy tiedot (pakolliset kentät on täytetty ja oikeellisuus tarkistettu), välitetään ne JDBC-yhteydellä tietokantaan. Muutoin käyttäjän ruudulle tulostetaan sama täytetty lomake ja huomautus väärin täytetystä tiedosta. Tällöin käyttäjä voi korjata väärin täytettyjä kenttiä ja yrittää lisäystä uudelleen. Ohjelmassa on mahdollisuus pakottaa tietokantaan tietoa, joka ei välttämättä ole täysin oikeellista. 4.3 Tiedon muuttaminen Kuva 3: Tiedon muuttaminen Lomaketietojen muuttaminen tapahtuu Java-servletin tulostaman lomakkeen "muutapainikkeella"lisäys- tai hakutoiminnon jälkeen. Tällöin servlet tarkistaa lomakkeelle syötetyt tiedot vastaavasti kuin tietoa lisättäessä, minkä jälkeen suoritetaan päivitysoperaatio tietokantaan. 4.4 Tiedon poistaminen Lisäys- tai hakutoiminnolla haetut lomakkeen tiedot voidaan poistaa tietokannasta "poista-painikkeella". Poistaminen tulee varmentaa käyttäjältä erikseen ja sa-
10 Kuva 4: Tiedon poistaminen massa yhteydessä on myös näytettävä, mitä muuta tietoa kyseiseen tietueeseen liittyy. Tällaisia tietoja ovat rengastuksen yhteydessä HIRRUS-projektitiedot ja lintujen tapaamiset sekä tapaamisen yhteydessä havaitut HIRRUS-tiedot. Vahvistuksen jälkeen suoritetaan tietokannassa JDBC-yhteyden kautta poisto-operaatio. 5 Järjestelmän ulkoiset liittymät Käyttöliittymän funktio on toimia ulkoisena liittymänä varsinaiselle rengastusjärjestelmälle, joten se sisältää käytännössä kaksi tärkeää rajapintaa: asiakasyhteys ja järjestelmäyhteys. 5.1 Asiakasyhteys Kommunikointi asiakkaan (so. käyttäjän) suuntaan toteutetaan request-response - keskusteluna HTTP-protokollaa käyttäen. Asiakkaalla on pääteohjelmanaan HTMLselain (Microsoft Internet Explorer 4.0 tai uudempi versio) jolla käyttäjä suorittaa pyyntöjä. Näihin vastataan pääasiassa HTML-sivuina. Apuna voidaan käyttää myös kuvia ym. yleisesti WWW:ssä hyödynnettyjä havainnollistamiskeinoja. Käyttöliittymä tullaan rakentamaan lomakkein, jotka voivat näkyä asiakkaalle tyhjinä (tietojen syöttö) tai valmiiksi täytettyinä (tietojen muokkaus). 5.2 Järjestelmäyhteys Kuva 5: Kaavakuva järjestelmäyhteydestä
11 Rengastustietokannan graafinen käyttöliittymä (WWW-tipu) ei kommunikoi suoraan itse tietokannan kanssa, vaan lähettää tiedot WWW-lomakkeella JavaServleteille, josta otetaan JDBC:tä käyttäen yhteys itse Oracle 8 -tietokantaan. 5.3 Alustatiedot Käyttöliittymän web-palvelimena toimii Apache [8]. Apacheen on asennettu Apache JServ -moduli [4], joka tarjoaa Servlet 2.0 -spesifikaation [6]mukaisen käyttöympäristön. 6 Muut ominaisuudet 6.1 Suorituskyky Ohjelmiston käyttäjälle suorituskyky tulee näkymään lähinnä HTTP-yhteyden ja tietokantaoperaatioiden nopeuden mukaisena, sillä käyttöliittymä ei tule olemaan raskas. Valitun toteutustekniikan vuoksi on kuitenkin odotettavissa, että järjestelmän kokonaissuorituskyky ei ole yhtä hyvä kuin vanhassa merkkipohjaisessa versiossa. 6.2 Käytettävyys ja ylläpidettävyys Ohjelmakoodin ylläpidettävyydestä pidetään huolta käyttämällä Java-koodin tyylioppaana Sunin kokoamaa ohjetta, Code Conventions for the Java Programming Language [1]. Dokumenttien ylläpidettävyys puolestaan taataan tekemällä dokumentit LaTeX:lla.
12 Koodissa jokainen metodi kommentoidaan huolellisesti. Kommenteista täytyy ilmetä vähintään metodin tarkoitus, mahdollisten parametrien selvitys ja version tekijä sekä toteutuspäivämäärä. Koodin dokumentoinnissa käytetään Sunin Javadoc 1.2 -työkalua [5]. Erityisesti on kommentoitava poikkeavat tai erikoisemmat ratkaisut toteutuksessa. Kommentit kirjoitetaan suomeksi, muu koodi (luokkanimet, metodit,ym.) englanniksi. 7 Testaus Testauksen päätavoitteena on varmistaa, että rengastusjärjestelmän käyttöliittymä toimii suunnitteludokumentissa kuvatun toteutettavan käyttöliittymän mukaisesti. Tämän lisäksi tavoitteena on todeta, että ohjelmiston komponentit toimivat virheettömästi sekä kaikki lomakkeet toimivat oikein sekä sisäisesti että yhteistyössä muiden lomakkeiden kanssa. Käyttöliittymä testataan järjestelmällisesti käyttötapauksittain. Kaikkia ohjelman toimintoja kokeillaan. Virheellisiä syötteitä ja niistä toipumista täytyy testata erityisen huolella, sillä tietokantaan ei saa päästä virheellistä tietoa. Muita tärkeitä testattavia asioita ovat lomakkeiden käyttäytyminen eri selaimissa sekä tarkistusten toimivuus. Testaaminen aloitetaan jo koodausvaiheessa. Käyttöliittymän osia testataan sitä mukaan kun niitä saadaan valmiiksi. Testaus jaetaan testauksen V-mallin mukaisesti moduulitestaukseen, integrointitestaukseen ja järjestelmätestaukseen. Moduulitestauksessa testattavia yksiköitä ovat ohjelman globaalit proseduurit sekä käyttäjille näkyvät lomakkeet. Järjestelmätestauksessa tarkastellaan ohjelman toimivuutta ja käytettävyyttä kokonaisuutena, jolloin ohjelman tarjoamia toimintoja käydään läpi todellisia käyttötilanteita simuloiden. Integraatiotestauksessa keskitytään lomakkeiden ja tietokantaoperaatioden väliseen tiedonsiirtoon sekä toimivuuteen.
13 8 Rajoitteet suunnittelulle ja toteutukselle 8.1 Noudatettavat standardit Servlet-ohjelmamoduuli kommunikoi käyttäjän kanssa HTTP 1.1 -protokolla [3] mukaisesti. Client-päässä näkyvät HTML-dokumentit kirjoitetaan HTML 3.2 - spesifikaation [2] mukaisesti. Java-ohjelmakoodin ulkoasu on Sun Microsystemsin Java Code Conventions -spesifikaation [1] mukainen. 8.2 Laitteistorajoitteet Servlet tulee ajaa Compaqin Unix-palvelimella, jossa on vähintään yksi 400 megahertsin prosessori ja 128 megatavua keskusmuistia Tipu4:n käyttöön.
14 Viitteet 1 Code conventions for the java programming language http://java.sun.com/docs/codeconv/html/codeconvtoc.doc.html 2 Hypertext markup language 3.2 specification http://www.w3.org/tr/rec-html32 3 Hypertext transfer protocol 1.1 specification http://www.ietf.org/rfc/rfc2616.txt 4 Java servlet engine apache jserv http://java.apache.org/jserv/ 5 Javadoc 1.2 http://java.sun.com/products/jdk/1.2/docs/tooldocs/javadoc/ 6 Danny Coward James Duncan Davidson Java servlet specification 2.2 http://java.sun.com/products/servlet/ 7 Jan Lindström Tipu käyttöohje http://www.cs.helsinki.fi/group/haukka/kaytto.ps 8 Apache homepage http://www.apache.org Tietokantataulut Tietokantataulut liitteenä erillisessä tiedostossa osoitteessa: ă /home/group/haukka/public_html/dokumentit/tietokantataulut.txt