Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Samankaltaiset tiedostot
Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään. Vaatimusdokumentti

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Graafinen käyttöliittymä lintujen rengastusjärjestelmään Projektisuunnitelma

Käyttöohje. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lohtu-projekti. Testaussuunnitelma

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Convergence of messaging

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Käyttöohje. Tiput-ryhmä Ohjelmistotuotantoprojekti

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Tietokannan luominen:

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi

T Testiraportti - järjestelmätestaus

Ylläpitodokumentti. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Fingridin säätösähkötarjousohje. Vaksin käyttöohjeet

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Ohjelmoinnin jatkokurssi, kurssikoe

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

5. HelloWorld-ohjelma 5.1

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Lohtu-projekti. Testiraportti. Versiohistoria: syklin toteutuksen testit. 1. ajo Virve

Testaussuunnitelma Labra

EVTEK-PROJEKTORI KÄYTTÖOHJE Tekijä: Teemu Tammivaara VBP04S

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Järjestelmäarkkitehtuuri (TK081702)

Action Request System

Asiointipalvelun ohje

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Fakta versio Forecast versio

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Tietokannat II -kurssin harjoitustyö

Kuva: Ilpo Okkonen

Ohjelmiston testaus ja laatu. Testausmenetelmiä

OHJE ATERIAPÄIVÄKIRJAN MUOKKAUKSEEN

T Testiraportti - integraatiotestaus

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Käyttöohje. Visy Access Net UPM

Työpalvelupaikat. Xwiki Admin 2016/07/06 16:35

Tietokannat II -kurssin harjoitustyö

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Kanta. Potilastiedon arkiston arkistonhoitajan opas

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

Opintokohteiden muokkaus

Toimittajaportaalin pikaohje

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Mainosankkuri.fi-palvelun käyttöohjeita

Ohjelmoinnin perusteet Y Python

Käyttötapauksen nimi Lukija: pääsivu

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Tiedonlähteille NELLIn kautta -

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Käyttötapauksen nimi Lukija: pääsivu

NAVIGAATTORIN ASENNUS JA MUOKKAUS

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

Asko Ikävalko, k TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

CINAHL(EBSCO) käyttöohjeita (10/2010)

INTINU13A6 Java sovellukset

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti Mooan

Toimittajaportaalin pikaohje

206 Verkkosivun tuottaminen finaalitehtävät


Maali Esiehdot Toimijat Testitapauksen suoritus ja hyväksytyt lopputilat. Käyttäjä. Käyttäjä. Käyttäjä

Opintokohteiden muokkaus

Testidatan generointi

UUDEN NETTIJÄSENREKISTERIN OHJEET. Kirjaudu sisään antamalla käyttäjätunnus ja salasana

Käyttötapauksen nimi Lukija: pääsivu Osallistujat Lukija Tuloehdot Käyttäjä on avannut sivuston pääsivun Kuvaus Ruudulle tulostuvat kirjoittajat ja

Veronumero.fi Tarkastaja rajapinta

Transkriptio:

Graafinen käyttöliittymä lintujen rengastusjärjestelmään Suunnitteludokumentti Versiohistoria: 0.1 21.02.2002 Ensimmäinen luonnos. Tarja Rauste, Simo Salmensuu 0.2 22.02.2002 Toinen luonnos. Näyttöjä lisätty. Tarja Rauste, Simo Salmensuu 0.3 26.02.2002 Kolmas luonnos. Näyttöjä lisätty. Tarja Rauste, Simo Salmensuu 0.4 28.02.2002 Neljäs luonnos. Näyttöjä lisätty. Tarja Rauste, Simo Salmensuu 0.5 04.03.2002 Viides luonnos. Paljon erinäisiä korjauksia Tarja Rauste, Simo Salmensuu 1.0 05.03.2002 Ensimmäinen versio. Pieniä korjauksia. Tarja Rauste, Simo Salmensuu 1.1 05.03.2002 Korjattu versio. Korjaus lukuun 4.1.8 Tarja Rauste, Simo Salmensuu 1.2 12.03.2002 Korjattu versio. Korjattu näyttöjä, tekstiä. Tarja Rauste, Simo Salmensuu 1.3 18.03.2002 Korjattu versio. Korjattu näyttöjä, tekstiä. Tarja Rauste, Simo Salmensuu 1.4 20.03.2002 Korjattu versio. Korjattu näyttöjä, tekstiä. Tarja Rauste, Simo Salmensuu Helsinki, 20. maaliskuuta 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 Tärkeimmät vaatimukset...................... 2 2 Suunnittelun ja toteutuksen rajoitukset 3 2.1 Yhdenmukaisuus aiemmin toteutettuihin käyttöliittymän osiin.. 3 2.2 Noudatettavat standardit...................... 3 2.3 Muut tarvittavat ohjelmat...................... 3 2.4 Ohjelmointityyli........................... 4 3 Järjestelmän yleiskuvaus 4 3.1 Toimintaympäristö......................... 4 4 Moduulikuvaukset 6 4.1 Näytöt................................ 6 4.1.1 Renkaiden palautus..................... 6 4.1.2 Rengastyyppien ylläpito.................. 7 4.1.3 Lajeille sallitut sarjat.................... 9 4.1.4 Renkaan merkitseminen hävinneeksi/tuhoutuneeksi.... 10 4.1.5 Käytettyjen renkaiden selaus................ 11 4.1.6 Rengasvälin hajoitus.................... 12 4.1.7 Rengastajien ylläpito.................... 12 4.1.8 Rengastusten hirrustietojen ylläpito............ 14 4.1.9 Maatietojen ylläpito.................... 15 4.1.10 Läänien ylläpito...................... 16 4.1.11 LYL-alueiden ylläpito................... 17

2 4.1.12 Euring-provinssien ylläpito................. 19 4.1.13 Rengastuskeskusten ylläpito................ 20 4.1.14 Lajien ylläpito....................... 21 4.1.15 Sanaston ylläpito...................... 23 4.1.16 Lintuasemien ylläpito................... 23 4.1.17 Värirenkaiden jakelu.................... 26 4.1.18 Näyttöjen toimintokuvaukset................ 27 4.2 Servlet-luokat............................ 31 4.3 Mallipohjat............................. 36 4.3.1 Mallipohjan rakenne.................... 36 4.3.2 Näytön tilat......................... 37 5 Testaussuunnitelma 38 5.1 Komponenttitestaus......................... 38 5.2 Integrointitestaus.......................... 39 5.3 Validointitestaus........................... 39 Viitteet 40

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 tuotantokä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, aloittamaa 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 kantaan. Tuotantokäytössä olevan järjestelmän osia on tarkoitus käyttää toteutuksessa hyväksi soveltuvin osin. Tipu4:n ja Tintin tuottama suunnittelu ja toteutus tarjoavat valmiin mallin lopulliselle tuotteelle. Nämä materiaalit ovat suoraan hyödynnettävissä tässä projektissa, ja käyttöliittymä on tarkoitus toteuttaa pääosin Tipu4:n tekemän käyttöliittymäsuunnitelman mukaan.

2 1.2 Tärkeimmät vaatimukset Projektin aikana on tarkoitus toteuttaa lintujen rengastusjärjestelmän puuttuvat näytöt: Renkaiden palautus, (Luku 4.1.1) Rengastyyppien ylläpito, (Luku 4.1.2) Lajeille sallitut sarjat, (Luku 4.1.3) Renkaan merkitseminen hävinneeksi/tuhoutuneeksi, (Luku 4.1.4) Käytettyjen renkaiden selaus,(luku 4.1.5) Rengasvälin hajoitus, (Luku 4.1.6) Rengastajien ylläpito,(luku 4.1.7) Rengastusten hirrustietojen ylläpito (Luku 4.1.8) Maatietojen ylläpito,(luku 4.1.9) Läänien ylläpito,(luku 4.1.10) LYL-alueiden ylläpito,(luku 4.1.11) Euring-provinssien ylläpito, (Luku 4.1.12) Rengastuskeskusten ylläpito,(luku 4.1.13) Lajien ylläpito,(luku 4.1.14) Sanaston ylläpito (Luku 4.1.15) Lintuasemien ylläpito (Luku 4.1.16) ja Värirenkaiden jakelu. (Luku 4.1.17) Uusien näyttöjen ulkomuodon ja toiminnallisuuden tulisi olla yhteneväinen projektiryhmien Tipu4 ja Tintti toteuttamien näyttöjen kanssa. Näin käyttöliittymästä muodostuu yhdenmukainen kokonaisuus. Ohjelmiston vaatimukset on kuvattu tarkemmin Määrittelydokumentissa.

3 2 Suunnittelun ja toteutuksen rajoitukset 2.1 Yhdenmukaisuus aiemmin toteutettuihin käyttöliittymän osiin Jotta lopullisen käyttöliittymän yhdenmukaisuus voidaan varmistaa, noudattavat myös uusina toteutettavat näytöt Tipu4-projektin suunittelu- ja toteutusvalintoja. Koska ratkaisut on testattu ja todettu toimiviksi ja asiakas on niihin tyytyväinen, voidaan Haukka-projektissa hyödyntää myös projektiryhmien Tipu4 ja Tintti kehittämiä yleiskäyttöisiä moduuleja (esimerkiksi tietokantayhteyden luomiseen) joko suoraan tai periyttämällä. Haukka-projektin suunnittelun osuus käsittää lähinnä toteutettavien näyttöjen sisällön selvittämisen, käytettävien tietokannan osien määrittelemisen sekä tarvittavien moduulien valitsemisen. 2.2 Noudatettavat standardit Servlet-ohjelmamoduuli kommunikoi käyttäjän kanssa HTTP 1.1 -protokollan mukaisesti. Asiakaspäätteellä näkyvät uudet HTML-dokumentit kirjoitetaan HTML 4.01 -spesifikaation mukaisesti. Java-ohjelmakoodin ulkoasu on Sun Microsystemsin Java Code Conventions -spesifikaation mukainen. 2.3 Muut tarvittavat ohjelmat WWW-Tipu tarvitsee toimiakseen Oracle 8-tietokannanhallintajärjestelmän sekä Apache Web Server (versio 1.3.12) -www-palvelimen, jossa on Apache JServ (versio 1.1.2) -moduuli.

4 2.4 Ohjelmointityyli WWW-Tipu kirjoitetaan Sun Microsystemsin kehittämällä Java 1.2 -kielellä. Kielen syntaktinen ulkoasu (mm. sisennystyyli, isojen ja pienten kirjainten käyttö) on Java Code Conventions -spesifikaation mukainen. Luokkien, metodien ja muuttujien nimet kirjoitetaan englanniksi, jotta niistä tulisi johdonmukaisia Java-kielen varattujen sanojen ja valmiiden luokkakirjastojen nimien kanssa. Tulostettava teksti ja kommentit kirjoitetaan suomeksi, jotta ne olisivat yhdenmukaisia aikaisemman järjestelmän tulostamien tekstien kanssa. 3 Järjestelmän yleiskuvaus Haukka-projektissa käytetään Tipu4- ja Tintti-projekteissa kehitettyjä tietokannan käsittelyluokkia, TipuServlet- ja Popup-luokkia sekä apuluokkaa Coords (Kuva 1). TipuServlet on abstrakti luokka josta jokainen WWW-Tipu-järjestelmän servletti periytyy. Popup toimii apuluokkana servleteille. Coords on koordinaattien käsittelyyn tarvittava apuluokka. TipuProperties sisältää tipu-järjestelmän properties-tiedot. 3.1 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 -ajoympäristö (Apache JServ 1.1.2 ) ja Java-kääntäjä (Sun

5 DatabaseOperations ConnectionPool OperationResults DeleteOperation SearchOperation InsertOperation UpdateOperation SearchResults Table Table.FieldInfo 1 * HttpServlet Coords Check Properties Popup TipuServlet TipuProperties ReSyotto Kunnat ReJakelu ReYllapito Kuva 1: Järjestelmän servlet-luokkien luokkakaavio. J2SE 1.2.2 ) sijaitsevat TKTL:n Unix-palvelimella alkokrunni alias db.cs.helsinki.fi. Valmis WWW-tipu-ohjelma tullaan sijoittamaan ATKosaston palvelimeen. WWW-etusivu ladataan eläinmuseon käyttämältä WWW-palvelimelta ja loput sivuista luodaan käyttäjän valintojen mukaan Unix-palvelimelle sijoitettavien servlettien avulla. WWW-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ä yksinkertaisten tarkistusten suorittamiseen. Järjestelmä on ensisijaisesti suunniteltu käytettäväksi Internet Explorer- selaimen versiolla 6.0.

6 4 Moduulikuvaukset Tässä dokumentissa kuvataan toteutettaviksi valittujen näyttöjen sisältö ja niihin suoraan liittyvät servlet-moduulit. Muut toteutuksessa käytetyt luokat on kuvattu Tipu4-projektin suunnittelu- ja toteutusdokumenteissa. 4.1 Näytöt Toteutettavien näyttöjen ulkonäkö tulee noudattamaan Tipu4:n ja Tintin suunnitteluja toteutusvalintoja. Näyttöjen sisältämät kentät määräytyvät pitkälti vanhojen SQL Forms-näyttöjen kenttien mukaan. Tiedot siitä, mihin tietokannan kenttiin mitkäkin näyttöjen kentät tallennetaan, ovat liittessä 1. Liitteestä 2 löytyy myös lista niistä käyttöliittymän valikoista, joiden arvot haetaan SANASTO -taulusta. Liitteessä on listattu myös koodit, joiden perusteella haku suoritetaan. 4.1.1 Renkaiden palautus Renkaiden palautus -näyttö (Kuva 2) vastaa vanhan järjestelmän näyttöä 1.2. Kenttiin liittyvät haut ja tarkistukset Rengasvälin renkaat jaettu kyseiselle rengastajalle. Rengasvälin renkaille ei löydy rengastuksia. Päivitetään JAKELU taulua poistamalla palautetut renkaat. Muutokset tehdään JAKELU-tauluun ja tarkistuksia tehdään JAKELU-tauluun (kyseiset renkaat on jaettu palauttavalle rengastajalle), RENGASTAJA-tauluun (palauttava rengastaja on olemassa) ja RENGASTETTU-tauluun (palautettuja renkaita ei saa olla käytetty). Tietokantatoiminnot kohdistuvat JAKELU JA RENGASTAJA-tauluun.

7 Kuva 2: Renkaiden palautus. Näytön toiminnot Näyttö sisältää haku-, lisäys- ja peruuta-toiminnot. 4.1.2 Rengastyyppien ylläpito Rengastyyppien ylläpitonäyttö (kuva 3) vastaa vanhan järjestelmän näyttöä 1.3. Kenttiin liittyvät haut ja tarkistukset Korjatut rengasvälit tarkistetaan. Jo kirjattuja rengasvälejä ei voi kirjata. Jo jaettuja tai käytettyjä renkaita ei voi poistaa. Numeerisen arvon sisältävät kentät: Läpimitta ja korkeus. Rengasväli: Kenttä koostuu kahdesta kentästä (RGTUNNUS1 ja RGTUNNUS2) joiden avulla käyttäjä voi hakea jo olemassaolevia rengasvälejä. Kun käyttäjä

8 Kuva 3: Rengastyyppien ylläpito. syöttää ensimmäiseen kenttään jonkin arvon ja siirtyy seuraavaan kenttään, ensimmäisen kentän tieto kopioidaan valmiiksi ko. toiseen kenttään. Tarkistetaan, että jo kirjattuja (RENGAS-taulusta), jaettuja (JAKELU-taulusta) tai rengastettuja (RENGASTETTU-taulusta) rengasvälejä ei voi enää kirjata. Numeerisen arvon sisältävät kentät: RGKORKEUS ja RGLAPIM Tietokantatoiminnot kohdistuvat RENGAS-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, palautus-, tyhjennys- ja ohje-toiminnot.

9 Kuva 4: Lajeille sallitut sarjat. 4.1.3 Lajeille sallitut sarjat Lajeille sallitut sarjat (kuva 4) vastaa vanhan järjestelmän näyttöä 1.4 Kenttiin liittyvät haut ja tarkistukset Laji: Koostuu lajin lyhennekentästä sekä popup-valikosta. Käyttäjä voi suoraan kirjoittaa lajin lyhenteen kenttään, jonka perusteella lajin sallitut sarjat haetaan näytölle. Tai lajitieto voidaan hakea popup-valikosta, jonka arvo (LALYH) haetaan LAJI-taulusta. Sarja: Renkaan sarjan tunniste, joka haetaan RENGAS-taulusta attribuutista RG- TUNNUS1. Sarjan tunniste on RGTUNNUS1:n kaksi ensimmäistä merkkiä. Tyyppi: Kenttä saa arvot NULL (sallittu) tai H (hyväksyttävä). Tietokantatoiminnot kohdistuvat RSARJA-tauluun. Näytön toiminnot

10 Kuva 5: Renkaan merkitseminen hävinneeksi/tuhoutuneeksi. Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, palautus-, tyhjennys- ja ohje-toiminnot. 4.1.4 Renkaan merkitseminen hävinneeksi/tuhoutuneeksi Renkaiden merkitseminen hävinneeksi/tuhoutuneeksi -näyttö (kuva 5) vastaa vanhan järjestelmän näyttöä 2.3. Kenttiin liittyvät haut ja tarkistukset Tietokantatoiminnot kohdistuvat RENGASTUS JA RENGASTETTU-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, ylläpito-, poisto-, ja peruuta-toiminnot.

11 Kuva 6: Käytettyjen renkaiden selaus. 4.1.5 Käytettyjen renkaiden selaus Käytettyjen renkaiden selausnäyttö (kuva 6) vastaa vanhan järjestelmän näyttöä 2.5. Kenttiin liittyvät haut ja tarkistukset Kaikki kentät ovat tekstikenttiä. Näytöissä ei ole tarkistuksia. Tietokantatoiminnot kohdistuvat RENGASTETTU-tauluun. Näytön toiminnot Näyttö sisältää haku-, -tyhjennys- ja ohje-toiminnot.

12 Kuva 7: Rengasvälin hajoitus. 4.1.6 Rengasvälin hajoitus Rengasvälin hajoitus -näyttö (kuva 7) vastaa vanhan järjestelmän näyttöä 2.6. Näytön molemmat kentät ovat tekstikenttiä. Kenttiin liittyvät haut ja tarkistukset Näytön kaksi kenttää ovat tekstikenttiä. Näytössä on tarkistettava, että syötetty rengasväli löytyy RENGASTUS-taulusta. Tietokantatoiminnot kohdistuvat RENGASTUS- ja RENGASTETTU-tauluihin. Näytön toiminnot Näyttö sisältää haku-, pilko-, tyhjennys- ja ohje-toiminnot. 4.1.7 Rengastajien ylläpito Rengastajien ylläpitonäyttö (kuva 8) vastaa vanhan järjestelmän näyttöä apu01. Kenttiin liittyvät haut ja tarkistukset

13 Kuva 8: Rengastajien ylläpito. Rengastaja: Rengastajan numero, jonka perusteella käyttäjä suorittaa haun tietokannasta. Käyttäjä voi kirjoittaa suoraan rengastajan numeron kenttään, jonka perusteella rengastajan nimi haetaan. Tai molemmat voidaan hakea popupvalikosta, jonka arvot RENGASTAJA, REETUNIMI JA RESUKUNIMI haetaan RENGASTAJA-taulusta. Käyttäjä ei voi suoraan ylläpitää nimi-kenttiä. Pakollisina täytettävänä olevat kentät: Rengastajanumero. Lisäyksessä arvo saadaan kyselyllä SELECT MAX RENRO+1 FROM RENGASTAJA. Numeerisen arvon sisältävät kentät: Rengastajanumero. Kentät, joita käyttäjä ei voi ylläpitää: Rengastajanumero ja Päivitys pvm. Tietokantatoiminnot kohdistuvat RENGASTAJAtauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, ylläpito-, poisto-, palautus-, tyhjennys- ja ohjetoiminnot.

14 Kuva 9: Rengastusten hirrustietojen ylläpito. 4.1.8 Rengastusten hirrustietojen ylläpito Rengastusten hirrustietojen ylläpitonäyttö (kuva 9) vastaa vanhan järjestelmän Lisätiedot-valikon näyttöä 7.4. Kenttiin liittyvät haut ja tarkistukset Kentän NIMIR tarkistus on tehtävä RENGASTETTU-taulusta. Tietokantatoiminnot kohdistuvat RHIRRUS-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, ylläpito-, kopiointi-, poisto-, palautus-, tyhjennys-

15 Kuva 10: Maatietojen ylläpito. ja ohje-toiminnot. 4.1.9 Maatietojen ylläpito Maatietojen ylläpitonäyttö (kuva 10) vastaa vanhan järjestelmän näyttöä apu03. Kenttiin liittyvät haut ja tarkistukset Maatunnus: Koostuu osoitemaan maatunnuskentästä sekä popup-valikosta. Käyttäjä voi suoraan kirjoittaa maan lyhenteen kenttään, jonka perusteella maan nimi haetaan. Tai tieto voidaan hakea popup-valikosta, jonka arvo (OMLYH) haetaan OSOITEMAA-taulusta. Kieli: Alasvetovalikko, jonka arvot haetaan SANASTO-taulusta (SAKIELI).ă Tietokantatoiminnot kohdistuvat OSOITEMAA-tauluun.

16 Kuva 11: Läänien ylläpito. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, palautus-, tyhjennys- ja ohje-toiminnot. 4.1.10 Läänien ylläpito Läänien ylläpitonäyttö (kuva 11) vastaa vanhan järjestelmän näyttöä apu04. Kenttiin liittyvät haut ja tarkistukset Kenttiin ei liity tarkistuksia.

17 Lääninumero: Läänin numero, jonka perusteella käyttäjä suorittaa haun tietokannasta. Käyttäjä voi valita läänin numeron alasvetovalikosta, jonka perusteella läänin nimi ja ruotsinkielinen nimi haetaan. Kenttien arvot LNNRO, LNNIMI ja LN- NIMIR haetaan LAANI-taulusta. Pakollisina täytettävänä olevat kentät: Lääninumero. Lisäyksessä arvo saadaan kyselyllä SELECT MAX LNNRO+1 FROM LAANI. Numeerisen arvon sisältävät kentät: Lääninumero Kentät, joita käyttäjä ei voi ylläpitää: Lääninumero Tietokantatoiminnot kohdistuvat LAANI-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, palautus-, tyhjennys- ja ohje-toiminnot. 4.1.11 LYL-alueiden ylläpito LYL-alueiden ylläpitonäyttö (kuva 12)vastaa vanhan järjestelmän näyttöä 6.6. Kenttiin liittyvät haut ja tarkistukset Kenttiin ei liity tarkistuksia. LYL-alue-kenttä toteutetaan editoitavana pudotusvalikkona. Numeerisen arvon sisältävät kentät: LYL-alue. Tietokantatoiminnot kohdistuvat LYL-ALUE-tauluun.

Kuva 12: LYL-alueiden ylläpito. 18

19 Kuva 13: Euring-provinssien ylläpito. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, tyhjennys- ja ohje-toiminnot. 4.1.12 Euring-provinssien ylläpito Euring-provinssien ylläpitonäyttö (Kuva 13) vastaa vanhan järjestelmän näyttöä apu07. Kenttiin liittyvät haut ja tarkistukset Osoitemaan lyhenteen sallitut arvot haetaan OSOITEMAA-taulusta. Käyttäjä syöttää astekoordinaatit, säde lasketaan java-koodin avulla.

20 Kuva 14: Rengastuskeskusten ylläpito. Tietokantatoiminnot kohdistuvat ULKOMAINEN_PAIKKA-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, tyhjennys- ja ohje-toimin 4.1.13 Rengastuskeskusten ylläpito Rengastuskeskusten ylläpitonäyttö (Kuva 14) vastaa vanhan järjestelmän näyttöä apu08. Kenttiin liittyvät haut ja tarkistukset

21 Osoitemaan lyhenne rk_omlyh, sallitut arvot: SELECT omlyh into :lyhenteet from osoitemaa order by omlyh; Käyttäjä syöttää astekoordinaatit TAI yhtenäiskoordinaatit, muut lasketaan javakoodin avulla Kieli rkkieli, sallitut arvot: select distinct sakieli into :kielet from sanasto order by sakieli; Tietokantatoiminnot kohdistuvat RENGASTUSKESKUS-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, ylläpito-, poisto- ja peruuta-toiminnot. 4.1.14 Lajien ylläpito Lajien ylläpitonäyttö (Kuva 15) järjestelmän näyttöä apu09. Kenttiin liittyvät haut ja tarkistukset LASIIPIMERKKI -kentän sallitut arvot K tai E Numeerisen arvon sisältävät kentät: Lajinumero, siivenpituuden ala- ja yläraja, painon ala- ja yläraja, kolmannen käsisulan pituuden ala- ja yläraja, renkaan läpimitan rajat, rengaskorkeuden rajat, lajin EURING-koodi, poikasen siiven ala- ja yläraja, poikasen painon ala- ja ylärajat sekä poikasen 3. käsisulan ala- ja yläraja. Tietokantatoiminnot kohdistuvat LAJI-tauluun. Näytön toiminnot

Kuva 15: Lajien ylläpito. 22

23 Kuva 16: Sanaston ylläpito. Näyttö sisältää lisäys-, haku-, ylläpito-, poisto-, ja peruuta-toiminnot. 4.1.15 Sanaston ylläpito Sanasto vastaa (Kuva 16) vanhan järjestelmän näyttöä apua. Kenttiin liittyvät haut ja tarkistukset Numeerisen arvon sisältävät kentät: SATUNNUS Tietokantatoiminnot kohdistuvat SANASTO-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, palautus-, tyhjennysja ohje-toiminnot. 4.1.16 Lintuasemien ylläpito Lintuasemien ylläpitonäyttö (Kuva 17)vastaa vanhan järjestelmän näyttöä apu11. Kenttiin liittyvät haut ja tarkistukset

Kuva 17: Lintuasemien ylläpito. 24

25 Asema: Aseman lyhenne, jonka perusteella käyttäjä suorittaa haun tietokannasta. Käyttäjä voi valita lyhenteen alasvetovalikosta, minkä perusteella aseman muut tiedot haetaan. Alavetovalikon arvot (LTASEMALYH ja LTNIMI) haetaan LINTUASEMAtaulusta. Kunta: Kenttä, johon käyttäjä voi suoraan kirjoittaa kuntalyhenteen tai hakea sen pop-up valikosta. Valikon arvot haetaan KUNTA-taulusta.(KULYH ja KUNIMI) Kieli: Alasvetovalikko, jonka arvot haetaan SANASTO-taulusta (SAKIELI). Rengastajanro: Tarkistetaan, että syötetty rengastajanumero löytyy RENGASTAJAtaulusta.ă Koordinaattikentät: Käyttäjä syöttää astekoordinaatit tai yhtenäiskoordinaatit, muut lasketaan java-koodin avulla. Pakollisina täytettävänä olevat kentät: Aseman lyhenne. Numeerisen arvon sisältävät kentät: Rengastajanro, säde sekä koordinaattikentät. Tietokantatoiminnot kohdistuvat LINTUASEMA-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, palautus-, tyhjennys- ja ohje-toiminnot.

26 Kuva 18: Värirenkaiden jakelu. 4.1.17 Värirenkaiden jakelu Värirenkaiden jakelu -näyttö (Kuva 18) vastaa vanhan järjestelmän näyttöä 1.5. Kenttiin liittyvät haut ja tarkistukset Laji: Koostuu lajin lyhennekentästä sekä popup-valikosta. Käyttäjä voi suoraan kirjoittaa lajin lyhenteen kenttään, jonka perusteella lajin sallitut sarjat haetaan näytölle. Tai lajitieto voidaan hakea popup-valikosta, jonka arvo (LALYH) haetaan LAJI-taulusta. Rengastaja: Tarkistetaan, että syötetty rengastajanumero löytyy RENGASTAJAtaulusta. Jakopvm: Tarkistetaan, että jakopäivä ei ole tulevaisuudessa. Numeerisen arvon sisältävät kentät: Rengastaja.

27 Päivämäärätiedon sisältämät kentät: Jakopvm ja Päivityspvm. Kentät, joita käyttäjä ei voi ylläpitää: Päivityspvm. Tietokantatoiminnot kohdistuvat VRENGAS-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, korjaus-, poisto-, palautus-, tyhjennys- ja ohje-toiminnot. 4.1.18 Näyttöjen toimintokuvaukset Läänitietojen lisäys 1. Suoritetaan javascript-tarkistukset (kaikki pakolliset kentät on täytetty ja kenttien arvot ovat oikean tyyppisiä). 2. Lähetetään lomake servletille käsiteltäväksi. 3. Tiedot tallennetaan tietokantaan LAANI-tauluun. Ja suoritetaan commitkäsky. 4. Palautetaan käyttäjän tallentamat tiedot näytölle ja ilmoitetaan tallennuksen onnistumisesta tai näytetään mahdollinen virheilmoitus. 5. Käyttäjä voi yrittää tallennusta uudelleen korjaamalla tietoja. Muiden tietojen lisäys Kuten läänitietojen lisäys, kaikki tarkistukset tehdään joko javascriptillä tai servletissä ja tiedot tallennetaan suoraan oikeaan tauluunsa.

28 Haku 1. Suoritetaan javascript-tarkistukset käyttäjän syöttämille hakutekijöille 2. Lähetetään lomake servletille 3. Suoritetaan haku 4. Jos haun tuloksena on vain yksi tietue, näytetään sen sisältämät tiedot näytöllä. Muuten esitetään lista löydetyistä tietuesta, joita klikkaamalla käyttäjä pääsee näkemään kunkin yksityiskohtaiset tiedot. Läänitietojen ylläpito 1. Suoritetaan javascript-tarkistukset (kaikki pakolliset kentät on täytetty ja kenttien arvot ovat oikean tyyppisiä). 2. Lähetetään lomake servletille käsiteltäväksi 3. Tiedot tallennetaan LAANI-tauluun ja suoritetaan commit-käsky. 4. Palautetaan käyttäjän tallentamat tiedot näytölle ja ilmoitetaan tallennuksen onnistumisesta tai näytetään mahdollinen virheilmoitus. 5. Käyttäjä voi yrittää tallennusta uudelleen. Muiden tietojen ylläpito Kuten läänitietojen ylläpito, kaikki tarkistukset tehdään joko javascriptillä tai servletissä. Näyttöjen painikkeet Painikkeet sijaitsevat lyhyessä lomakkeessa sen lopussa ja pitkässä sekä alussa että lopussa.

29 Kunkin lomakkeen painikkeiden määrä ja kunkin painikkeen funktio määräytyvät sen mukaan, ollaanko uuden syötössä vai ylläpidossa. (Siis onko lomake tyhjä vai onko siihen haettu olemassaolevan tietueen tiedot.) Syöttölomakkeen painikkeet ja niiden funktiot: Painike Hae Lisää Tyhjennä Ohje Pakota Toiminto Suorittaa haun lomakkeella olevilla tiedoilla. Jos hakuehdoilla ei löydy yhtään tietuetta, ilmoitetaan siitä käyttäjälle. Jos haun tuloksena löytyy yksi tietue, tuodaan kyseisen tietueen tiedot suoraan lomakkeelle. Jos taas hakuehdoilla löytyy useita tietueita, tulokset näytetään listassa linkkeinä, joita klikkaamalla kyseisen tietueen arvot tuodaan lomakkeelle. Lisätään lomakkeella olevat tiedot kantaan. Jos niissä on virheitä, ilmoitetaan siitä käyttäjälle. Tyhjennetään kaikki lomakkeella olevat kentät. Avataan näytön käyttöohje. Pakotus-toiminto on käytössä vain tapaamis- ja rengastustietojen syötössä ja ylläpidossa. Pakota toiminnossa ei suoriteta tietojen tarkistuksia vaan talletetaan tiedot suoraan tietokantaan.

30 Ylläpitolomakkeen painikkeet ja niiden funktiot: Painike Hae Lisää Korjaa Poista Tyhjennä Palauta Ohje Pakota Toiminto Suorittaa haun lomakkeella olevilla tiedoilla. Jos hakuehdoilla ei löydy yhtään tietuetta, ilmoitetaan siitä käyttäjälle. Jos haun tuloksena löytyy yksi tietue, tuodaan kyseisen tietueen tiedot suoraan lomakkeelle. Jos taas hakuehdoilla löytyy useita tietueita, tulokset näytetään listassa linkkeinä, joita klikkaamalla kyseisen tietueen arvot tuodaan lomakkeelle. Lisätään lomakkeella olevat tiedot kantaan. Jos niissä on virheitä, ilmoitetaan siitä käyttäjälle. Lisää-painike voi toimia myös kopiontipainikkeena silloin kun näytöllä olevat tiedot on jo kertaalleen talletettu tietokantaan. Päivitetään lomakkeella olevat tiedot kantaan. Jos niissä on virheitä ilmoitetaan siitä käyttäjälle. Poistetaan lomakkeilla olevilla tiedoilla löytyvä tietue tietokannasta. Jos ei löydy tasan yhtä tietuetta, ilmoitetaan siitä käyttäjälle, eikä poisteta mitään. Jokainen poisto varmistetaan käyttäjältä kysymällä häneltä onko hän varma suoritettavasta poistosta. Tyhjennetään kaikki lomakkeella olevat kentät. Palautetaan lomakkeella olevat tiedot samoiksi, kun ne ovat tietokannassa. Avataan näytön käyttöohje. Pakotus-toiminto on käytössä vain tapaamis- ja rengastustietojen syötössä ja ylläpidossa. Pakota toiminnossa ei suoriteta tietojen tarkistuksia vaan talletetaan tiedot suoraan tietokantaan.

31 4.2 Servlet-luokat Lomakkeiden toiminnallisuus toteutetaan servlet-luokilla, joita on yksi kutakin lomakesivua (esim. tapaamisten syöttö) kohden. Lisäksi lomakkeilta avattavia popupvalikoita (esim. lista rengastajien nimistä) varten on oma Popup-luokkansa, joka on yhteiskäytössä eri näyttöjen kesken. Pääpiirteittäin luokat ovat toistensa kaltaisia, erot johtuvat lähinnä eri lomakesivujen sisältämistä kentistä. Servlet-luokan suoritus käynnistyy, kun servletiä kutsutaan WWW-selaimella ensimmäistä kertaa servlet-palvelimen käynnistyttyä. Tästä eteenpäin servlet on aktiivisena palvelimen muistissa niin kauan, kunnes palvelin suljetaan. Servlet käyttää säikeitä palvellakseen useita yhtäaikaisia pyyntöjä ja voi myös sisältää staattista, kaikkien pyyntöjen käytössä olevaa informaatiota. Servlet vastaanottaa informaatiota WWW-selaimelta HTTP-protokollan GET-ja POST-toiminnoilla ja voi istunnon lopuksi palauttaa selaimelle generoimansa WWWsivun. Lomakesivujen toiminnallisuuden toteuttavat servlet-luokat muodostavat WWW- Tipun ytimen. Servletit kutsuvat muita pakkauksien luokkia mm. tietokantaa käsitellessään ja properties-tiedostoja lukiessaan, sekä lisäksi ulkoisia kirjastoja esim. templatetiedostojen tulostamiseksi. TipuServlet on kaikkien kannan tauluja vastaavien servletien abstrakti kantaluokka. Muut servletit Popup:ia lukuunottamatta on periytetty tästä. TipuServlet tarjoaa alaluokille mahdollisuuden kiinnittyä metodein pääoperaatioidensa esi- tai jälkitarkasteluosaan, joissa voidaan ohjata pyynnön suoritusta haluttuun suuntaan tekemällä esim. ylimääräisiä tarkastuksia. Nämä metodit on oletusarvoisesti toteutettu tyhjinä. TipuServletin abstraktit metodit ja muuttujat: // näihin tulee *luokkakohtaisesti* staattinen mappi

32 protected Map searches = null; protected Map searchconditions = null; /** * Suoritetaan servletin käynnistyessä 1. kerran tai restartin * yhteydessä. * * 1. alustaa muuttuja <table> oikealla Table-instanssilla * 2. alustaa muuttuja <template> oikealla Template-instanssilla */ protected abstract void initialize(); Alustettavat taulut Tapaamisten syötölle ja ylläpidolle VROSKA VTXT TAPAAMINEN THIRRUS MAALLIKKO VRENGASTUS VTAPAAMINEN Alustettava template TEMPLATE_TASYOTTO TEMPLATE_TAYLLAPITO

33 Tapaamisten syötölle ja ylläpidolle haettavat sanastot ilmenevät liitteestä 2. Viitteiksi haetaan lintuasemat. Muiden servlettien tiedot näkyvät muista osista tätä dokumenttia, sekä Tietokantaliitteestä (nro 1). /** * Palauttaa avaimen nimen, jolla kohdetaulu hakuoperaatioissa järjestetään. */ protected abstract String getsearchkey(); /** * Palauttaa hakutuloslistan rivin SimpleHash-kenttinä. Tarvittavat arvot * voidaan lukea riviä vastaavasta parametrista values. */ protected abstract SimpleHash getindexrow(map values); /** * Suoritetaan juuri ennen modelrootin lähettämistä template-enginelle. */ protected void doposthook(map values, SimpleHash modelroot) {} /** * Tätä kutsutaan juuri ennen templaten tulostamista vastauksen * tulostevirtaan. Tarkoituksena on täällä asettaa modelroot:iin * kaikki juuri tälle lomakkeelle ominaiset kentät.

34 * * @param values lähettävät arvot * @param modelroot Templaten runko-objekti. */ protected void doposthook(map values, SimpleHash modelroot) { Liitetään sanasto, ja viite-oliot modelrootiin. /** Suoritetaan ennen SearchOperation:in suoritusta. */ protected void dosearchprehook(map values) {} /** Suoritetaan SearchOperation:in suorituksen jälkeen. */ protected void dosearchposthook(map values) {} /** Suoritetaan ennen InsertOperation:in suoritusta. */ protected void doinsertprehook(map values) {} Jos kyseessä on pakotustoiminto, haetaan avaimen mukainen rivi, jonka tarvittavat kentät päivitetään. Jos riviä ei avaimella löydy, luodaan uusi tietue. /** Suoritetaan InsertOperation:in suorituksen jälkeen. */ protected void doinsertposthook(map values) {} Ajetaan CHECK-ohjelma, Tarkistetaan VTXT-taulusta, löytyykö sieltä tarkistusohjelman kirjoittama virheilmoitusrivi. Jos löytyy näytetään käyttäjälle tiedot tapahtuneesta virheestä. /** Suoritetaan ennen DeleteOperation:in suoritusta. */

35 protected void dodeleteprehook(map values) {} /** Suoritetaan DeleteOperation:in suorituksen jälkeen. */ protected void dodeleteposthook(map values) {} /** Suoritetaan ennen UpdateOperation:in suoritusta. */ protected void doupdateprehook(map values) {} Kutsutaan ennen updatea, käytännössä kutsutaan doinsertprehook() metodia /** Suoritetaan UpdateOperation:in suorituksen jälkeen. */ protected void doupdateposthook(map values) {} protected abstract Map getsearchmap(); protected abstract Map getconditionmap(); Kaikki varsinaiset Insert, Update ja Delete-operaatiot tapahtuvat TipuServlet-luokassa. Tarkempaa koodiesimerkkiä voi katsoa esim. ReSyotto.java -tiedostosta. Kaikki tietokantametodit on abstrahoitu tipu.db-paketissa. Servletillä on yksi nimetty kohdetaulu, johon kaikki siltä pyydetyt operaatiot kohdistuvat. Servlet hakee käynnistyessään jokaisen kohdetaulunsa Table -objektin, ja säilyttää niitä jäsenmuuttujissaan elinkaarensa ajan. SearchOperation suorittaa SELECT -lauseella haun tietokannan tauluun annetuilla attribuuttimaskeilla. Kaikki vertailut tehdään LIKE -operaattorein, joten käyttäjät voivat itse syöttää jokerimerkkejä hakukenttiin. Tulokset palautetaan erillisessä SearchResults -objektissa. SearchOperation(Table table) -konstruktori luo uuden, tauluun table kohdistuvan hakuoperaation. ExecuteSearch(Connection con, Map values, String sortkey) -metodi suorittaa hakuoperaation kohdetauluun annetulla

36 yhteydellä con ja hakuarvoilla values. Tulokset järjestetään kohdetaulun sarakkeen sortkey mukaan. Kutsu palauttaa haun tuloksena SearchResults -instanssin. Luokka SearchResults periytyy luokasta OperationResults. Lisäksi se sisältää listan haussa löytyneiden kohdetaulun rivien ROWID:t, joita voidaan selata vapaassa järjestyksessä. Rivien varsinaiset tiedot haetaan vain pyydettäessä, eikä kursoreita pidetä suotta auki. Tarkemmat kuvaukset kaikista metodeista löytyy Tipu4:n toteusdokumentista. 4.3 Mallipohjat Näytöt laaditaan ilmaisen (GPL) FreeMarker-kirjaston avulla. Näin sivujen ulkoasun määrittely voidaan eriyttää varsinaisesta toiminnallisuudesta. Servlet-luokkien tuottama tieto tallennetaan mallipohjaan puumaiseen tietorakenteeseen. Mallipohja tuotaa asiakkaalle esitettävän HTML-sivun. Jokaista servlet-luokkaa varten on oma mallipohjansa. 4.3.1 Mallipohjan rakenne Mallipohja muodostuu HTML-koodista ja Freemarker-komennoista. Komentojen avulla toteutetaan ehtorakenteita ja luettelomuotoisen tiedon esitys. Mallipohjan tietorakenteeseen tallennetuilla tietokannan muuttujilla on sama nimi kuin tietokannassa. Näytön tila ohjataan muuttujalla formsate. Muuttujalla on neljä arvoa: detail, list, normal ja record_added. Näyttö on tilassa normal, kun se ei ole missään toisessa tilassa. Tilojen yhteiset muuttujat ovat Tipu4-ryhmän toteutusdokumentin mukaisesti:

37 Muuttuja action errors noticeheading notices result.* rowid static_url success Sisältö Edellinen toteutettu pyyntö Edellisen pyynnön aiheuttamien virheiden luettelo Muiden ilmoitusten otsikko Muiden ilmoitusten luettelo Sisältää hakutuloksen (detail-tila) tai hakuehdot Lomakkeella käsiteltävän olion tunniste Staattisten sivujen URL Tosi, jos edellisen pyynnön toteutus onnistui Mallipohja on jaettu seuraaviin osiin: Otsikko, staattinen. Sivun alustukset, JavaScript- ja tyylitiedostojen haku. Ilmoitukset, tiedot tietorakenteen haarassa errors, success tai notices. Tieto edellisen toiminnon onnistumisesta tai siitä syntyneistä ilmoituksista ja virheistä. Hakutulokset, tiedot tietorakenteen haarassa searchresults. Haun tulookset sekä viittaukset eteen- ja taaksepäin tuloslistassa. Näytetään kun näytön tila on list. Selaus, tiedot tietorakenteen haarassa searchresults. Viittaukset edelliseen ja seuraavaan tietueseen. Näytetään kun näytön tila on detail. Lomake, tiedot tietorakenteen haarassa result. Näytön tietueet ja toiminnenapit. Alarivi, staattinen. Sivun lopetus. 4.3.2 Näytön tilat Näytön tila on:

38 normal, kun se ei ole missään muussa tilassa. detail, kun näytetätään yksittäistä hakutulosta. Tietuetta voi päivittää tai poistaa ja jos haun tulosjoukossa on useampia tiedostoja, niitä voi selata eteen- ja taaksepäin. list, kun käyttäjälle näytetään haun tulokset. Käyttäjä voi valita yksittäisen tuloksen näytettäväksi tai tehdä uuden haun muokaamalla hakuehtoja. record_added kun käyttäjä on lisännyt uuden tietueen Lisää-painikkeella. Lisättyä tietuetta voi muokata, poistaa tai kopioida. 5 Testaussuunnitelma Tässä kuvataan yleisesti testauksen eri vaiheet. Tarkemmat kuvaukset ja testitapaukset tulevat erilliseen testausdokumenttiin. Tipu4n ja Tintti-projektien tekemiä ja testaamia osia ei testata uudelleen. Ainoastaan niiden toimiminen Haukkaprojektin tekemien osien kanssa testataan. 5.1 Komponenttitestaus Ohjelmiston jokainen moduuli testataan erillisenä komponenttina. Komponentit testataan white box -menetelmällä, jotta voidaan testata niiden sisäistä toimivuutta. Testauksessa on tarkoitus käyttää polkukattavuutta, eli jokainen mahdollinen suorituspolku testataan. Tämä takaa sen, että jokainen moduulin koodirivi tulee suoritettua ainakin kerran. Jokaiselle komponentille määrätään erityinen testaaja, joka on eri henkilö kuin kyseisen komponentin tekijä.

39 5.2 Integrointitestaus Integrointitestauksessa varmistetaan järjestelmän eri moduulien (luokkien) toiminta yhdessä mustalaatikkotestauksena. Kunkin luokan syötteiden ja tulosteiden oikeellisuus varmistetaan jakamalla niiden arvoalueet ekvivalenssiluokkiin, joista muodostetaan testiaineisto. Tämän jälkeen toteutetaan luokille testiaineiston mukaiset testitapaukset. WWW-Tipu testataan alhaalta ylös-menetelmällä. Tällöin ohjelmiston toteutus ja testaus aloitetaan luokkakaavion alimmista luokista. Järjestelmästä vielä puuttuvien alempia luokkia kutsuvien luokkien toimintaa simuloidaan erikseen koodattavilla ajuriluokilla. Näiden ajuriluokkien tulosteista voidaan todentaa kutsutun luokan tulosteen vastaavuus määriteltyyn. 5.3 Validointitestaus Validointitestaus tehdään kun integrointitestaus on valmis ja siinä havaitut virheet korjattu. Validointitestauksen tarkoituksena on tarkastaa täyttääkö WWW- Tipu sille vaatimusmäärittelyssä asetetut vaatimukset. Tämä tapahtuu suorittamalla joukko testitapauksia black box -menetelmällä, jotka osoittavat että ohjelmisto täyttää sille asetetut toiminnallisuus-, suorituskyky- ja muut vaatimukset sekä sen että dokumentaatio on oikeellinen.

40 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 Sanasto (A) ja Tietokantataulut (B) liitteenä erillisessä tiedostossa osoitteessa: ă /home/group/haukka/public_html/dokumentit/suunnitteluliite.txt

41