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. 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

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

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

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

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

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

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

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

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

ELM GROUP 04. Teemu Laakso Henrik Talarmo

T Testiraportti - järjestelmätestaus

Ohjelmoinnin jatkokurssi, kurssikoe

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

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

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

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

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

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

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

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

OHJE ATERIAPÄIVÄKIRJAN MUOKKAUKSEEN

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

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Käyttöohje. Tiput-ryhmä Ohjelmistotuotantoprojekti

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

Kanta. Potilastiedon arkiston arkistonhoitajan opas

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

Testaussuunnitelma Labra

Tietokannan luominen:

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

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

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

Mainosankkuri.fi-palvelun käyttöohjeita

Käyttöohje. Visy Access Net UPM

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

5. HelloWorld-ohjelma 5.1

Järjestelmäarkkitehtuuri (TK081702)

Asiointipalvelun ohje

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

Ylläpitodokumentti Mooan

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

Vaatimusmäärittelydokumentti Osatehtävä Jokeri

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

Hakemistojen sisällöt säilötään linkitetyille listalle.

Ohjelmoinnin perusteet Y Python

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

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

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Tietokannat II -kurssin harjoitustyö

Action Request System

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

INTINU13A6 Java sovellukset

Ohjelmoinnin perusteet Y Python

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Omapalvelu. Omapalvelussa voit

EURA 2007 EU:N RAKENNERAHASTOJEN HALLINTAJÄRJESTELMÄ. Projektin toteuttajan yhteystietojen ylläpito ja salasanan vaihtaminen

Toimittajaportaalin pikaohje

Projektinhallintaa paikkatiedon avulla

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

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

Ohjeita Omapalvelun käyttöön

Fakta versio Forecast versio

Tikon kassamaksujen käsittely

Titta-palvelun käyttöohje

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

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

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

UTIFLEET-VARAUSJÄRJESTELMÄ KÄYTTÄJÄN OHJE. Gospel Flight ry

ASENNUS- JA KÄYTTÖOHJE

Ohjelmoinnin perusteet Y Python

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

Yhteenvetodokumentti. Halaan-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tikon Web-sovellukset

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

ASENNUS JA KÄYTTÖOHJE

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Tikon ostolaskujen käsittely

Toimittajaportaalin pikaohje

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 Helsinki, 22. 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 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ö......................... 5 4 Moduulikuvaukset 5 4.1 Näytöt................................ 6 4.1.1 Renkaiden palautus..................... 7 4.1.2 Rengastyyppien ylläpito.................. 8 4.1.3 Lajeille sallitut sarjat.................... 8 4.1.4 Renkaan merkitseminen hävinneeksi/tuhoutuneeksi.... 8 4.1.5 Käytettyjen renkaiden selaus................ 8 4.1.6 Rengasvälin hajoitus.................... 9 4.1.7 Rengastusten hirrustietojen ylläpito............ 10 4.1.8 Rengastajien ylläpito.................... 10 4.1.9 Maatietojen ylläpito.................... 11 4.1.10 Läänien ylläpito...................... 11 4.1.11 LYL-alueiden ylläpito................... 12

2 4.1.12 Euring-provinssien ylläpito................. 13 4.1.13 Rengastuskeskusten ylläpito................ 13 4.1.14 Lajien ylläpito....................... 13 4.1.15 Sanaston ylläpito...................... 13 4.1.16 Lintuasemien ylläpito................... 13 4.1.17 KORJAA: Näyttöjen toimintokuvaukset.......... 16 4.2 Servlet-luokat............................ 19 4.3 Mallipohjat............................. 24 4.3.1 Mallipohjan rakenne.................... 25 4.3.2 Näytön tilat......................... 26 5 Testaussuunnitelma 26 5.1 Komponenttitestaus......................... 26 5.2 Integrointitestaus.......................... 27 5.3 Validointitestaus........................... 27 Viitteet 28

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 tutkijoile, 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, Rengastyyppien ylläpito, Lajeille sallitut sarjat, Renkaan merkitseminen hävinneeksi/tuhoutuneeksi, Käytettyjen renkaiden selaus, Rengasvälin hajoitus, Rengastusten hirrustietojen ylläpito, Rengastajien ylläpito, Maatietojen ylläpito, Läänien ylläpito, LYL-alueiden ylläpito, Euring-provinssien ylläpito, Rengastuskeskusten ylläpito, Lajien ylläpito, Sanaston ylläpito ja Lintuasemien ylläpito. 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 [1].

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 Kuva 1: Järjestelmän servlet-luokkien luokkakaavio Haukka-projektissa käytetään Tipu4- ja Tintti-projekteissa kehitettyjä tietokannan käsittelyluokkia, TipuServlet- ja Popup-luokkia sekä apuluokkaa ja 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.

5 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 J2SE 1.2.2 ) sijaitsevat TKTL:n Unix-palvelimella alkokrunni alias db.cs.helsinki.fi.valmis WWW-tipu-ohjelma tullaan sijoittamaan ATK-osaston 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 4.0 tai uudemmalla. 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*Formsnä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, joi-

6 Kuva 2: Näyttö Tapaamisten ylläpito, alkuosa Kuva 3: Näyttö Tapaamisten ylläpito, loppuosa den arvot haetaan SANASTO-taulusta. Liitteessä on listattu myös koodit, joiden perusteella haku suoritetaan. Renkaiden palautus, Rengastyyppien ylläpito, Lajeille sallitut sarjat, Renkaan merkitseminen hävinneeksi/tuhoutuneeksi, Käytettyjen renkaiden selaus, Rengasvälin hajoitus, Rengastusten hirrustietojen ylläpito, Rengastajien ylläpito, Maatietojen ylläpito, Läänien ylläpito, LYL-alueiden ylläpito, Euring-provinssien ylläpito, Rengastuskeskusten ylläpito, Lajien ylläpito, Sanaston ylläpito ja Lintuasemien ylläpito. 4.1.1 Renkaiden palautus Renkaiden palautusnäyttö (Kuva 2, 3) vastaa vanhan järjestelmän näyttöjä tap03 ja tap03/2. KORJAA:Kenttiin liittyvät haut ja tarkistukset

7 Kuva 4: Näyttö Käytettyjen renkaiden selaus Kuvaukset vastaavat Tapausten syöttönäytön kenttien kuvauksia. Poikkeuksina ovat Ilmtap- ja Kirpvm-kentät. Kirpvm on syöttönäytöllä piilokenttänä. Ylläpitonäytöllä se kuitenkin näkyy, mutta ei ole ylläpidettävissä. Ilmtap- alasvetovalikossa on syöttösivun arvojen lisäksi myös arvo 3, koska vanhoissa tiedoissa tämä arvo voi esiintyä. Huomattakoon lisäksi, että Uusirg-kenttään liittyvä tarkistuksessa käytetäänkin Tapaaminen-taulun TA_RLUJALKAR- ja TA_RENROTA-kenttiä VROSKA-taulun kenttien sijaan. KORJAA: Näytön toiminnot Ei sisällä tietojen lisäys- ja kopiointi-toimintoja. Muuten toteuttaa samat toiminnot kuin Tapaamisten syöttö -sivu. Näytön tietokantatoiminnot kohdistuvat TAPAAMINENtauluun. 4.1.2 Rengastyyppien ylläpito 4.1.3 Lajeille sallitut sarjat 4.1.4 Renkaan merkitseminen hävinneeksi/tuhoutuneeksi 4.1.5 Käytettyjen renkaiden selaus Käytettyjen renkaiden selausnäyttö (kuva 4) vastaa vanhan järjestelmän näyttöä 2.5. Kenttiin liittyvät haut ja tarkistukset Kaikki muut, paitsi Renkaan tila-kenttä ovat tekstikenttiä. Renkaan tila-kenttä voidaan toteuttaa pudotusvalikkona, koska mahdollisia vaihtoehtoja on vähän.

8 Kuva 5: Näyttö Rengasvälin hajoitus Tietokantatoiminnot kohdistuvat RENGASTETTU-tauluun. Otsikko kenttä tyyppi pituus Jalkarengas rlujalkar varchar2 12 Nimirengas rlnimir varchar2 12 Renkaan tila rltila varchar2 1 Vanha rengas rlvjalkar varchar2 12 Poisto pvm rlvpvm date 7 Rengastunnus rstunnus varchar2 12 Näytön toiminnot Näyttö sisältää haku-, -tyhjennys- ja ohje-toiminnot. 4.1.6 Rengasvälin hajoitus Rengasvälin hajoitus -näyttö (kuva 5) vastaa vanhan järjestelmän näyttöä 2.6. Näytön molemmat kentät ovat tekstikenttiä. Kenttiin liittyvät haut ja tarkistukset Tietokantatoiminnot kohdistuvat?????-tauluun. Otsikko kenttä tyyppi pituus Ensimmäinen rengas????? varchar2???? Viimeinen rengas????? varchar2???? Näytön toiminnot Näyttö sisältää haku-, pilko-, tyhjennys- ja ohje-toiminnot. 4.1.7 Rengastusten hirrustietojen ylläpito 4.1.8 Rengastajien ylläpito Rengastajien ylläpitonäyttö (kuva 6) vastaa vanhan järjestelmän näyttöä apu01.

9 Kuva 6: Näyttö Rengastajien ylläpito Kuva 7: Näyttö Läänien ylläpito Kenttiin liittyvät haut ja tarkistukset 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. 4.1.9 Maatietojen ylläpito 4.1.10 Läänien ylläpito Läänien ylläpitonäyttö (kuva 7)vastaa vanhan järjestelmän näyttöä apu04. Kenttiin liittyvät haut ja tarkistukset 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ää-

10 Kuva 8: Näyttö LYL-alueiden ylläpito nin nimi ja ruotsinkielinen nimi haetaan. Kenttien arvot LNNRO, LNNIMI ja LN- NIMIR haetaan LAANI-taulusta. Käyttäjä ei voi suoraan ylläpitää nimi-kenttiä. 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-, ylläpito-, poisto-, palautus-, tyhjennys- ja ohjetoiminnot. 4.1.11 LYL-alueiden ylläpito LYL-alueiden ylläpitonäyttö (kuva 8)vastaa vanhan järjestelmän näyttöä 6.6. Kenttiin liittyvät haut ja tarkistukset LYL-alue-kenttä voidaan toteuttaa editoitavana pudotusvalikkona. Näin käyttäjä voi päivittää tai lisätä uuden LYL-alueen. Numeerisen arvon sisältävät kentät: LYL-alue Tietokantatoiminnot kohdistuvat LYL-ALUE-tauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, ylläpito-, poisto-, tyhjennys- ja ohje-toiminnot. 4.1.12 Euring-provinssien ylläpito Euring-provinssien ylläpitonäyttö (Kuva 9) vastaa vanhan järjestelmän näyttöä apu07.

11 Kuva 9: Näyttö Euring-provinssien ylläpito Kuva 10: Näyttö Lintuasemien ylläpito Kenttiin liittyvät haut ja tarkistukset Pakollisina täytettävänä olevat kentät: KORJAA: 4.1.13 Rengastuskeskusten ylläpito 4.1.14 Lajien ylläpito 4.1.15 Sanaston ylläpito 4.1.16 Lintuasemien ylläpito Lintuasemien ylläpitonäyttö (Kuva 10)vastaa vanhan järjestelmän näyttöä apu11. Kenttiin liittyvät haut ja tarkistukset Asema: Aseman lyhenne, jonka perusteella käyttäjä suorittaa haun tietokannasta. Käyttäjä voi suoraan kirjoittaa aseman lyhenteen kenttään, jonka perusteella aseman nimi haetaan. Tai molemmat tiedot voidaan hakea popup-valikosta, jonka arvot LTASEMALYH ja LTNIMI haetaan LINTUASEMA-taulusta. Käyttäjä ei voi suoraan ylläpitää nimi-kenttää. Kunta: Kenttä, johon käyttäjä voi suoraan kirjoittaa kuntalyhenteen tai hakea sen pop-up valikosta. Valikon arvot haetaan KUNTA-taulusta.(KULYH ja KUNIMI) Pakollisina täytettävänä olevat kentät: Aseman lyhenne Numeerisen arvon sisältävät kentät: Rengastajanro, säde sekä koordinaattikentät Kentät, joita käyttäjä ei

12 voi ylläpitää: Aseman lyhenne Tietokantatoiminnot kohdistuvat LINTUASEMAtauluun. Näytön toiminnot Näyttö sisältää lisäys-, haku-, ylläpito-, poisto-, palautus-, tyhjennys- ja ohjetoiminnot. 4.1.17 KORJAA: Näyttöjen toimintokuvaukset KORJAA: Tapaamistietojen 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 VROSKA-tauluun. Ja suoritetaan commit-käsky. 4. Jos tietojen tallennus VROSKA-tauluun onnistui, kutsutaan Fortran-ohjelmaa, joka tarkistaa tiedot. Jos tiedot hyväksytään, tallentaa ohjelma ne automaattisesti oikeisiin tietokantatauluihinsa. 5. Fortran-ohjelma tallentaa VTXT-tauluun tiedon siitä, onnistuiko tietojen tarkistus ja tallennus. Jos se onnistui, tallentaa se tauluun yhden rivin, jossa RETCODE-kentän arvo on 0. Muuten se kirjoittaam yhden tai useamman virheilmoitusrivin VTXT-tauluun. 6. Luetaan VTXT-taulusta Fortran-ohjelman tallentamat tiedot. 7. Palautetaan käyttäjän tallentamat tiedot näytölle ja ilmoitetaan tallennuksen onnistumisesta tai näytetään mahdollinen virheilmoitus. 8. Käyttäjä voi yrittää tallennusta uudelleen korjaamalla tietoja.

13 KORJAA: Muiden tietojen lisäys Kuten tapaamistietojen lisäys, mutta Fortrantarkistusohjelmaa ei kutsuta vaan kaikki tarkistukset tehdään joko javascriptillä tai servletissä ja tiedot tallennetaan suoraan oikeaan tauluunsa. 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. KORJAA: Tapaamistietojen 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 TAPAAMINEN-tauluun ja suoritetaan commit-käsky. 4. Jos tallennus onnistui, kutsutaan Fortran-ohjelmaa, joka tarkistaa tiedot. 5. Fortran-ohjelma kirjoittaa VTXT-tauluun tiedon tarkistuksen ja tallennuksen onnistumisesta kuten Tapaamistietojen lisäyksessäkin. 6. Luetaan mahdollinen virheilmoitus VTXT-taulusta. 7. Palautetaan käyttäjän tallentamat tiedot näytölle ja ilmoitetaan tallennuksen onnistumisesta tai näytetään mahdollinen virheilmoitus. 8. Käyttäjä voi yrittää tallennusta uudelleen.

14 KORJAA: Muiden tietojen ylläpito Kuten tapaamistietojen ylläpito, mutta Fortrantarkistusohjelmaa ei kutsuta vaan kaikki tarkistukset tehdään joko javascriptillä tai servletissä. KORJAA: Pakotus Pakotus-toiminto on käytössä vain tapaamistietojen syötössä ja ylläpidossa. Toiminto käynnistetään muista toimintopainikkeista hieman erilleen sijoitettavasta, punaisesta Pakota-painikkeesta. Painikkeen väri ja sijainti muutetaan vastaavaksi myös Tipu4:n rengastusten syöttö- ja ylläpitonäyttöihin. Pakotus-toiminnossa ei suoriteta tietojen tarkistuksia vaan tallennetaan tiedot suoraan tietokantaan (Tapaamistietojen lisäyksessä VROSKA-tauluun ja ylläpidossa TAPAAMINEN-tauluun). Fortran-tarkistusohjelmaa kutsutaan parametreilla, jotka kertovat kyseessä olevan pakotuksen. Ohjelma kirjoittaa tiedot toiminnon onnistumisesta tai epäonnistumisesta VTXT-tauluun samaan tapaan kuin esimerkiksi Tapaamistietojen lisäyksessä. Poisto Kun näytölle on haettu yhden tietueen tiedot, voidaan ne poistaa tietokannasta painamalla Poista-painiketta. Ainoastaan yhden tietueen tiedot voi kerrallaan poistaa. Kullakin sivulla varmistetaan käyttäjältä tämän halukkuus poistoon ennen varsinaista tietojen poistamista. Lisäksi Tapaamisten ylläpitonäytössä tarkistetaan löytyykö samalla Diario-kentän arvolla rivi VTAPAAMINEN -taulusta, ja Maallikkojen ylläpitonäytössä tarkistetaan, löytyykö TAPAAMINEN -taulusta rivejä, joissa TA_MANRO = Maallikkonumero-kentän arvo. Molemmissa tapauksissa, jos kyselyllä rivejä löydetään, ilmoitetaan näistä käyttäjälle. Poistaminen sallitaan kuitenkin eikä liittyviä tietoja poisteta. Kopiointi Kopioinnin yhteydessä kasvatetaan Diario-kentän arvoa yhdellä Tapaamisten syöttönäytöllä sekä Väritapaamisten ja Tapaamisten hirrustietojen yllä-

15 pitonäytöllä. Tapaamisten syöttönäytöllä lisäksi tyhjätään Rengas- ja Nimir-kentät. Vastaavasti tyhjätään Värirengas-kenttä Väritapaamisten ylläpitonäytöllä. Värirengastusten ylläpito-näytöllä tyhjätään Jalkarengas- ja Värirengas-kentät. Muiden kenttien arvot säilytetään ennallaan. Palautus Toiminto palauttaa näytöllä olevat tiedot samoiksi kuin ne ovat tietokannassa. Tämä toteutetaan selainten ymmärtämällä valmiilla javascript-funktiolla reset(). Tyhjennys Painikkeesta asetetaan kaikki näytön kentät tyhjiksi. Ohje Painikkeesta avataan näytön käyttöohje. 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.

16 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 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

17 TAPAAMINEN THIRRUS MAALLIKKO VRENGASTUS VTAPAAMINEN Alustettava template TEMPLATE_TASYOTTO TEMPLATE_TAYLLAPITO 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. */

18 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. * * @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) {}

19 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. */ 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.

20 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 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.

21 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: Muuttuja action errors noticeheading notices result.* rowid static_url success Sisä Ede Ede Mui Mui Sisä Lom Staa Tosi 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.

22 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 normal, kun se ei ole missään muussa tilassa. Näyttö on 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. Näytön tila on 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. Tilaa record_added käytetään 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

23 tulee suoritettua ainakin kerran. Jokaiselle komponentille määrätään erityinen testaaja, joka on eri henkilö kuin kyseisen komponentin tekijä. 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.

24 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