1. Johdanto
 
 
Bios –niminen tietotekniikan cum laude –työprojekti toteutti kevään 1998 aikana BioScope –laskentaohjelman. Ohjelmaa käytetään mikroskooppisten eliöiden laskemisessa vesistöistä otetuista näytteistä. BioScope hoitaa käyttäjän puolesta kirjanpidon ja varmistaa laskettujen tulosten tilastollisen hyväksyttävyyden. Näin se vapauttaa käyttäjän rasittavista laskutoimituksista ja parantaa laskennan luotettavuutta sekä ergonomisuutta.

Bios –projektiryhmän muodostavat Tero Harju, Juha Kurikkala ja Esa Launis. Projektin suorittamaa Delphi-ohjelmointia ohjasi Olli Tourunen. Tilaajaa, Jyväskylän yliopiston bio- ja ympäristötieteiden laitosta, edusti apulaisprofessori Kalevi Salonen. Matematiikan laitoksen puolesta projektista vastasi lehtori Jukka-Pekka Santanen.

Tämä projektikäsikirja on jaettu yhdeksään lukuun. Luvussa 2 kuvataan projektin taustoja ja tavoitteita. Luvussa 3 selvitetään projektin aiheen selkiytymistä projektilaisille. Luku 4 kertoo BioScope –ohjelman käytännöntoteutuksesta. Projektin aikana ilmenneet suurimmat ongelmat esitellään luvussa 5. Luvussa 6 verrataan ohjelman toteutumista ennen projektia laadittuun projektisuunnitelmaan. Luku 7 kertoo ohjelman testauksesta ja testauksen tuloksista. Kahdeksas luku antaa ohjeita ohjelman jatkokehittäjille. Projektilaisten painavat mielipiteet on kirjattu luvussa 9.

 

 

2. Tausta ja tavoitteet

 

Erilaisten vedestä otettujen näytteiden eliötiheyksien ja biomassojen laskenta mikroskoopin avulla on tärkeä osa vesistön tutkimusta. Mikroskoopin avulla näytteestä pyritään tunnistamaan eri lajien yksilöt. Jotta laskija voisi täydellisesti kiinnittää huomionsa tärkeinpään, eli eri lajien yksilöiden tunnistamiseen näytteestä, kannattaa suoritetaan kirjanpito ja tilastollinen laskenta tietokoneella.

Apulaisprofessori Kalevi Salonen on tehnyt kyseiseen tarkoitukseen laskentaohjelman. Nykyään sekä ohjelma että tietokone, jossa ohjelma toimii, ovat vanhentuneita. Vanha ohjelma oli aikoinaan suosittu ja käyttökelpoinen, joten oli ajankohtaista ohjelmoida samaan käyttöön tuleva ohjelma käyttäen hyväksi nykyaikaisia tehokkaita ohjelmointityökaluja ja Windows –ympäristön tarjoamia multimedia mahdollisuuksia. Bios-projekti sai siis tehtäväksi suunnitella yhdessä Kalevi Salosen kanssa laskentaohjelman 32-bittiseen Windows 95 –ympäristöön. Vanhaa ohjelmaa ei käytetty uuden ohjelman pohjalta muutoin kuin perusideoiden osalta, jotka nekin sovitettiin uudelleen Windows–ympäristöön.

Koska näytteitä käsiteltäessä tutkija katsoo suurimman osan aikaa mikroskoopin läpi, pyrittiin ohjelmasta tekemään sellainen, että kaikkien laskennanaikaisten toimintojen pitäisi onnistua katsomatta mitä näytöllä on. Tämän mahdollistamiseksi käytimme hyväksi Mikropuhe –nimistä ohjelmaa, jolla tuotetaan puhetta. Myös ohjelman käyttöliittymästä pyrittiin tekemään mahdollisimman pelkistetty, kuitenkin siten, että ohjelmasta löytyvät kaikki tarvittavat toiminnot. Koska yliopistoyhteisömme on varsin kansainvälinen, toteutettiin ohjelma englanninkielisenä.

Laskenta BioScopen –avulla alkaa ohjelman käynnistämisestä ja käyttäjäprofiilin valitsemisesta. Tämän jälkeen käyttäjä syöttää esitiedot näytteestä ja käytettävästä mikroskoopista. Näihin esitietoihin kuuluvat mm. näytteenottopaikan tietoa, tietoa laskennassa käytettävästä mikroskoopista sekä näytteen laskeutukseen käytetystä kyvetistä. Seuraavaksi käyttäjä valitsee tallennusnimen laskennalleen ja valitsee lajit laskentaa. Mikäli käyttäjä on valinnut useamman kuin yhden suurennoksen on seuraava vaihe lajien jakaminen suurennoksille. Tämän jälkeen käyttäjä on valmis suorittamaan varsinaisen laskennan. Laskenta tapahtuu siten, että käyttäjä katsoo mikroskoopin läpi ja käyttäen joko hiirtä tai näppäinkomentoja kirjaa lajien yksilöt. Jotta käyttäjä olisi mahdollista laskea nostamatta katsettaan mikroskoopista tuottaa BioScope Mikropuhe –nimistä ohjelmaa käyttäen puhetta. Näin se viestittää käyttäjälle tapahtumista. Kun käyttäjä on saavuttanut haluamansa tulostason, voi hän antaa BioScopelle komennon laskea tulokset tulostettavaksi. Tulokset avautuvat näytölle muokattavaksi. Käyttäjä voi ne ottaa tästä esimerkiksi tekstinkäsittelyohjelmaan tai tulostaa ne. Tarkempi kuvaus BioScopen käyttämisestä löytyy ohjelman ohjeesta (BiosHelp).
 

 
 

3. Tehtävän selkiytyminen

 

Projektin alkaessa yhdelläkään projektilaisista ei ollut taustanaan suoritettuja biologian opintoja, joten aihealue oli meille varsin outo. Näinollen meiltä puuttui selkeä käsitys siitä, mitkä asiat ovat mikroskoopin avulla näytteitä tutkittaessa tärkeitä. Parin ensimmäisen viikon aikana Kalevi Salonen perehdytti projektiryhmän mikroskooppilaskentaan ja näin ollen ryhdyimme vähitellen suunnittelemaan ohjelman ulkoasua ja toimintoja. Tämän pohjalta alkoi myös syntyä alustava työjako.

Projektiryhmän jäsenistä kahdella, Tero Harjulla ja Juha Kurikkalalla, oli jo aiempaa kokemusta Delphi-ohjelmoinnista. Näin ollen työnjako muodostui sitten, että Esa Launis jatkoi ohjelman yleistä suunnittelua ja Tero Harju sekä Juha Kurikkala ryhtyivät toteuttamaan ohjelmaa Delphi-sovelluskehittimellä. Näin projekti saatiin heti hyvin käyntiin ja kyettiin tuottamaan alustavia versioita ohjelmasta, joiden perusteella voitiin suunnitella jatkokehitystä. Kalevi Salonen poistui työmatkalle Tanzaniaan 8. maaliskuuta palaten vasta 21. huhtikuuta, joten tuona aikana oli joidenkin käytännön ongelmien ratkominen huomattavan hankalaa. Näistä sekä muista ongelmista kerrotaan myöhemmin tässä dokumentissa tarkemmin.
 
 
 
 

4. Käytännön toteutus

 

Työkaluna ohjelman tekemisessä käytettiin Borlandin Delphi 3.01:ä. Ohjeen toteutimme Objectsoftin HelpMaker 2.1:stä käyttäen. Ohjelman toteuttama puhe tuotettiin käyttäen Timehousen Mikropuhe 4.1:stä. Kalevi Salonen toimitti ohjelman syöttötiedoiksi eliö-, ryhmä-, mikroskooppi- sekä kyvettilistat tekstitiedostoina projektin käyttöön.
 
 
 
4.1. Tietorakenteet  

Ohjelman tietorakenteita ovat laskenta- ja mittaustulokset sekä tilastollisista laskentojen ja mittauksien luotettavuuksien arvot. Laskentatulokset säilytetään muistista dynaamisesti varatussa linkitetyssä listassa. Listan alkioilla on attribuutit value säilytettävä arvo kokonaislukuna, next_right osoitin seuraavana oikealla olevaan alkioon ja next_down osoitin seuraavana alaspäin olevaan alkioon. Listan jokaisen rivin oikeimman puoleisten alkioiden next_right -osoittimen arvoksi on asetettu nil. Lisäksi kaikien paitsi rivien vasemmanpuoleisimpien alkioiden next_down -osoittimien arvoksi on asetettu nil. Tietorakenteessa jokainen rivi kuvaa yhtä laskennan laji ja jokainen sarake näköaluetta. Lista tallennetaan levylle riveittäin. Seuraavassa kuva tietorakenteesta.
 

Kuva 1: Ohjelman käyttämästä laskentatietojen tallennus tietorakenne

 

Mittaustulokset sekä tilastolliset luotettavuuksien arvot säilytetään lähes vastaavassa tietorakenteessa. Ainoa ero edellä esitettyyn on, että arvo value on double.
 
 
 

4.2. Ohjelman rakenne

 
Ohjelman kokonaisuus muodostuu käyttöliittymästä, syöttötiedostoista ja tulostustiedostoista. Ohjelma on pääosittain toteutettu siten, että siinä voidaan työskennellä vain yhdessä ikkunassa kerrallaan. Tästä poikkeuksena on laskennan etenemistä ilmaiseva Statistic Information -ikkuna, joka voi olla avoinna laskennan aikana.

Ohjelman sisäinen rakenne muodostuu BioScope –päälomakkeesta ja sen alaisuudessa toimivista lomakkeista sekä Counting sekä Measuring –käännösyksiköistä. BioScope –lomakkeen alaisuudessa toimivat modaaliset lomakkeet About, Keyboard ja PrintUnit sekä ei-modalinen StatInfo lomake. Ohjelman rakennetta selvittävä kuva on liitteessä 2.

Counting –käännösyksikön alaisuudessa on laskennan suorittamiseen ja tallentamiseen liittyviä aliohjelmia ja lomakkeita. Se käyttää lisäksi SaveAndRead ja Statistics –käännösyksikköjä. Matrix –käännösyksikkö sisältää Countingin käyttämän tietorakenteen.

Measuringing –käännösyksikön alaisuudessa on mittauksen suorittamiseen ja tallentamiseen liittyviä aliohjelmia ja lomakkeita. Se käyttää lisäksi SaveAndRead ja Statistics –käännösyksikköjä. DMatrix –käännösyksikkö sisältää Measuringin käyttämän tietorakenteen.

 

4.2.1. Käyttöliittymä

 

Projektin käyttöliittymäluonteisuudesta johtuen on ohjelman käyttöliittymän suunnitteluun käytetty huomattavan paljon aikaa. Mikroskooppilaskennan ergonomia paranee huomattavasti, kun käyttäjän ei tarvitse välillä nostaa katsettaan mikroskoopista suorittaessaan kirjanpitoa laskennastaan. Tämä on asettanut erityisiä haasteita käyttöliittymän suunnitteluun. Lisäksi käyttöliittymä on pyritty pitämään mahdollisimman yksinkertaisena. Mikroskoopilaskennassa on kuitenkin paljon pieniä yksityiskohtia, jotka on täytynyt huomioida ohjelmassa erilaisina optioina. Näiden optioiden toteuttamisen ja ohjelman käyttöliittymän yksinkertaisuuden säilyttämisen kanssa tasapainottelu onkin usein ollut varsin haastava tehtävä.
Kuva 2: BioScopen aloitusikkuna.
 

Ohjelman käyttöliittymän runko muodostuu laskenta- ja mittausikkunoista. Tämän lisäksi ohjelmassa on modaalisia ikkunoita sekä dialogeja. Ohjelma käynnistyy kuvan 2 modaaliseen aloitusikkunaan. Käyttäjän on mahdollista valita käyttäjäprofiilinsa sekä aloittaa ohjelman käyttö.

Kuva 3: esitietojen syöttö -ikkuna.
 

Mikäli käyttäjä päättää aloittaa uuden laskennan, ohjelma sulkee aloitusikkunan ja avaa kuvan 3 modaalisen ikkunan. Tämän ikkunan kenttiin käyttäjä syöttää laskennan ja loppuraporttinsa kannalta tärkeät esitiedot. Nämä syötettyään käyttäjä pääsee kuvan 4 modaaliseen ikkunaan. Tästä ikkunasta käyttäjä valitsee lajit laskentaansa. Tämä ikkuna toimii myös lajien valinta ikkunana, mikäli käyttäjä haluaa lisätä lajeja laskentaan laskennan aikana.

Kuva 4: lajin valinta -ikkuna
 

Kun käyttäjä on valinnut lajit, siirrytään lajien jakamiseen eri suurennoksille. Mikäli laskennassa käytetään vain yhtä suurennosta, tämä vaihetta ei tarvitse suorittaa. Kuvan 5 modaalisessa ikkunassa käyttäjä jakaa lajit suurennoksille.

 

Kuva 5: lajien jako suurennoksille –ikkuna.
 

Tämän jälkeen käyttäjä pääsee aloittamaan varsinaisen laskennan. Laskenta ikkuna on kuvattu kuvassa 6. Laskennan aikana BioScope näyttää tilastollista tietoa laskennasta tilastotietoikkunassa, joka on kuvattu kuvassa 7. Tarkempaa tietoa BioScopen käyttöliittymästä ja toiminnasta saa BioScopen ohjeesta (Bioshelp.hlp).

Kuva 6: laskenta -ikkuna.
 
Kuva 7: tilastotieto -ikkuna
 

Ohjelmassa on edellä mainittujen lisäksi lisäksi muutamia Windows–ympäristölle varsin tyypillisiä modaalista dialogia. Open ja Save As–dialogit mahdollistavat vanhan laskennan avaamisen ja toiselle nimelle tallentamisen. About–dialogi antaa tietoja ohjelmasta. Lisäksi on varmistusdialogeja, jotka ohjelmaa suljettaessa ja uutta laskentaa kesken vanhan avattaessa kysyvät käyttäjältä varmistuksen kyseiselle toimenpiteelle.
 
 

4.2.2. Syöttötiedostot  

Ohjelma käyttää perusasetustensa säilyttämiseen ja palauttamiseen scope.ini –tiedostoa. Tänne ohjelma tallentaa toimintansa ja käyttömukavuuden kannalta tärkeät konekohtaiset tiedot. Tällaisia tietoja ovat esimerkiksi ikkunoiden paikat ruudulla. Esimerkki scope.ini –tiedostosta on liitteessä 3.

Laskennan lajilista luetaan lajit.lst –tiedostosta. Tämä tiedosto sisältää lajien laskennan ja biomassan määrittämisen kannalta oleelliset tiedot. Laskennan lajit jaetaan tuloksissa myös alalaji-ryhmiin. Tämä tapahtuu lajit.lst –tiedostosta saatavien ryhmänumeroiden pohjalta. Tämän tiedon avulla voidaan ryhmat.lst –tiedostosta hakea kullekin ryhmälle myös nimitieto. Mikroskooppien tiedot sijaitsevat mikrosk.lst –tiedostossa. Sieltä löytyvät mikroskoopin tekniset tiedot sekä laskennan kannalta merkittävät suurennoskertoimet. Kokonaisbiomassan määrittämiseen tarvitaan tarkkoja tilavuus sekä pinta-ala tietoja kyveteistä. Nämä tiedot löytyvät kyvetit.lst –tiedostosta. Kuvaukset tiedostojen rakenteesta löytyvät liitteestä 3.
 

4.2.3. Tulostustiedostot

 

Ohjelman yleiset asetukset ovat tallennettuina scope.ini –tiedostossa. Tällaisia asetuksia ovat mm. ohjelmaikkunoiden koot ja sijainnit viimeisellä käynnistyskerralla sekä käyttäjäkohtaiset asetukset eli käyttäjäprofiilit. Käyttäjäprofiilit liittyvät lähinnä näppäimistön asetuksiin laskennassa. Käyttäjän on myös mahdollista avata vanha laskenta pohjaksi uudelle laskennalle, tällöin aikaisempaan laskentaan syötetyt esitiedot, jotka ovat usein järvikohtaisia ja vaihtuvat näin ollen vähän, ovat jo valmiiksi asetettuna. Esimerkki scope.ini –tiedostosta on liitteessä 3.

Laskennan aikana ohjelma tallentaa laskennan tuloksia  .mea (mittauksen tulokset) ja .cal –tunnisteilla nimettyihin tiedostoihin. Näihin tallentuvat lajien nimet ja saadut numeeriset arvot. Tiedostossa kukin lajin tiedot muodostaa yhden rivin. .bio –tunnisteella nimitettyyn tiedostoon tallennetaan laskennan yleiset esitiedot, joita ei tarvita laskennan aikana vain ainoastaan tulostukseen.
 
 
 
 

5. Ongelmat

 

Ehkä suurin ongelma ohjelman toteuttamisessa oli koko projektin ajan yrittää ymmärtää mikroskooppilaskennan pieniä, mutta tärkeitä yksityiskohtia. Tätä tehtävää ei helpottanut tilaajan edustajan Kalevi Salosen puolentoista kuukauden ulkomaan matka. Toinen päänvaivaa aiheuttanut asia oli hiiren käyttäminen laskennassa.
 
 
 
5.1. Mikroskooppilaskenta käytännössä  

Projektimme käyttöliittymäluonteisuuden vuoksi koimme erityiseksi ongelmaksi sen, ettei meillä ollut käytännön kokemusta siitä, kuinka eliöiden laskenta ja mittaus mikroskooppia käyttäen käytännössä tapahtuu. Kalevi Salonen opasti meitä asiassa erittäin ansiokkaasti, mutta välillä asiat tuntuivat melkoisen monimutkaisilta. Kun kaikesta huolimatta jatkoimme sinnikkäästi ohjelman kehittämistä oman parhaan näkemyksemme mukaan, huomasimme usein puhuneemme aivan samoista asioista kuin Kalevi Salonenkin. Olimme vain käyttäneet niistä eri termejä. Onneksemme näistä terminologisista katkoksista ei aiheutunut suuria ongelmia.

Aivan oma lukunsa projektimme historiassa on Kalevi Salosen Tanzanian matka. Kalevi Salonen oli poissa maasta 8.3.-21.4. välisen ajan. Tänä aikana hän oli tavoitettavissa sähköpostitse. Kuitenkin – valitettavasti – vain erittäin satunnaisesti. Syynä tähän olivat Tanzanian päässä tapahtuneet pariviikkoiset sähkökatkokset sekä laitteistojen kestämättömyys: Bios -projekti onnistui epäsuorasti tuhoamaan kaksi Tanzaniassa sijaitsevaa modeemin virtalähdettä. Jonkinlaiseksi saavutukseksi kai sekin voitaneen laskea. Tuona kyseisenä aikana meidän oli vaikeaa saada kysymyksiimme vastauksia. Tämän vuoksi ohjelman kehitys jauhoi joiltakin osin paikoillaan. Samaan aikaan toisissa osuuksissa hiottiin kokonaisuuden kannalta mitättömän pieniä ja merkityksettömiä yksityiskohtia. Joidenkin ohjelman oleellisiin toimintoihin kuuluvien toimintojen käytännön ongelmien ratkaiseminen jäi siis odottamaan Kalevi Salosen paluuta ja projektin kahta viimeistä viikkoa. Tällöin ilmeni jo olemassa olevan koodin kannalta mullistava muutos: laskentaan otettiin käyttöön kolme mikroskooppia entisen yhden sijaan. Tämä aiheutti paljon yhteensopivuusongelmia jo olemassa olevassa koodissa. Näiden ongelmien korjaaminen aiheutti parin päivän viivästymisen projektin valmistumiseen.

 
 

5.2. Hiiren käyttö laskennassa

 

Normaaleissa pöytämikroissa hiiri tarjoaa varsin mainion apuvälineen laskemiseen. On mahdollista ohjelmoida kaksi tai kolme toimintoa helposti löydettävissä oleville näppäimille. Näinollen hiiren käyttäminen laskennassa tuntui meistä erityisen tärkeältä ominaisuudelta. Se ei kuitenkaan osoittautunut kovinkaan yksinkertaiseksi toimenpiteeksi. Kävi ilmeiseksi, että meidän täytyi jotenkin kaapata kaikki hiirelle tulevat viestit ohjelmallemme. Käyttäjä nimittäin katsoo laskiessaan mikroskooppiin, joten hän saattaa vahingossa siirtää hiiren kohdistimen ohjelmaikkunan ulkopuolelle ja painaa vaikkapa työpöytää tai aktivoida jonkun toisen käynnissä olevan ohjelman. Kumpikaan vaihtoehto ei ollut toivottava, sillä kyseisissä tapauksissa käyttäjä joutuisi turhaan kohottamaan katseensa mikroskoopista.

Kyselimme vinkkejä ongelman ratkaisemiseen mm. Vesa Lappalaiselta, jonka neuvoista olikin huomattavaa hyötyä. Päätimme kuitenkin ratkaista ongelman asettamalla näyttöön hiirellä laskennan ajaksi koko ruudun kokoinen punainen alue, joka estää käyttäjää painamasta työpöytää tai jotakin toista ohjelmaa. Tämä ei kuitenkaan estä käyttäjää painamasta tehtäväpalkkia. Tämän ongelman ratkaiseminen olisi edellyttänyt tarkempaa perehtymistä Windowsin sielunelämään. Tähän ei valitettavasti ollut aikaa, mutta ratkaisumme on kuitenkin varsin toimiva, vaikka ei täydellinen.
 
 
 
 

6. Ohjelman toteutuminen projektisuunnitelmaan verrattuna
 
  Projektisuunnitelmassa ja ensimmäisessä projektipalaverissa hyväksytyssä vaatimusmäärittelyssä mainitut ominaisuudet olemme pääpiirteittäin kyenneet toteuttamaan. Ensisijaiset tavoitteet saatiin kaikki toteutumaan ja toissijaisista tavoitteista jäi toteuttamatta ainoastaan keskitetty syöttötiedostojen päivitys FTP:tä käyttäen.

Projekti oli jaettu viiteen vaiheeseen, joiden projektisuunnitelman mukaiset valmistumisarviot ja toteutuneet valmistumispäivät on esitelty alla

Projektisuunnitelma toteutunut

I vaihe: 2.3. 26.2.

II vaihe: 23.3. 13.3.

III vaihe: 6.4. 20.4.

IV vaihe: 20.4. 27.4.

V vaihe: 4.5. 12.5.
 

Aikataulu ei siis ylittynyt yli viidelläkymmenellä prosentilla. Ohjelmistoprojektiksi projektiamme voidaan pitää hyvin aikataulussa pysyneenä. Projektin alussa olimme parhaimmillaan reilun viikon asettamastamme aikataulusta edellä ja kuten yleensä käy, viimeisen kuukauden aikana olimme tasaisesti noin viikon myöhässä. Projektin loppuesittely oli 12.5., joten projektimme valmistui viimeisen kahden viikon muutoksien vuoksi pari päivää myöhässä.
 
 
 
 

7. Testaus ja tulokset
 
  Tähän mennessä suurimman osan ohjelman testaamisesta ovat suorittaneet projektilaiset. Tämä on johtunut ohjelman viimeistelemisen viivästymisestä, joten testaus on pitkälti ollut komponenttien testausta. Näin ollen testauksessa havaitut ongelmat ovat olleet varsin tavallisia ohjelmistokehityksen alkuvaiheen ongelmia, joista useimmat ovat olleet lähinnä listojen indekseistä johtuvia ohjelman vikaantumisia.

Ohjelman käyttöliittymäluonteisuuden vuoksi olemme useaan otteeseen uudistaneet ohjelman käyttöliittymää testauksessa ilmenneiden käytettävyysongelmien poistamiseksi. Näiden ongelmien ratkaisemisessa Kalevi Saloselta, Jukka-Pekka Santaselta ja Olli Touruselta saadut kommentit ovat olleet kullan arvoisia.

Kalevi Salonen on myös pystynyt näyttämään ohjelmaa muutamalle henkilölle, jotka ovat tietoisia mikroskooppilaskennan käytännöstä. Nämä henkilöt ovat pystyneet esittämään arvioita ohjelman käyttökelpoisuudesta ja käytettävyydestä. Tuolloin ohjelma oli kuitenkin vielä varsin keskeneräinen, mutta silloiset kommentit viittasivat siihen, että ohjelma oli kehittymässä oikeaan suuntaan. Lopullista tietoa ohjelman käytettävyydestä ja toimivuudesta saadaan kuitenkin vasta, kun ohjelma saadaan vakinaiseen käyttöön mikroskoopin kanssa.
 
 
 
 

8. Jatkokehitys
 
  Ohjelmassa on jatkokehittäjälle vielä runsaasti työsarkaa, sillä muutamia käytännöllisiä yksityiskohtia jäi ohjelmoimatta kiireen vuoksi. Ohjelmaa ei myöskään ole päästy testaamaan käytännössä, joten sen toimivuudesta ja käytettävyydestä käytännön mikroskooppilaskennassa ei ole tarkkaa selvyyttä. Virheitä varmasti löytyy, sillä niitähän on jokaisessa vähänkin laajemmassa ohjelmakokonaisuudessa. Niiden korjaaminen jää kuitenkin valitettavasti jatkokehittäjien tehtäväksi.

Esittelemme tässä kuitenkin joitakin jatkokehitysideoita, jotka ovat meiltä jääneet ajan puutteen vuoksi toteuttamatta.

 
 
 
 

9. Projektilaisten kokemukset
 
 

9.1. Tero Harju  

Projektin alussa oli hieman vaikeuksia hahmottaa jonkinlaista kokonaisuutta projektin keskeisistä asioista. Onneksi projektin suuret linjat alkoivat hahmottua varsin pian ja pääsimme kehittämään ohjelman ensimmäisiä versioita. Ohjelman rakenteen suunnittelu jäi ehkä hieman vähäiseksi, mikä sitten ilmeni myöhemmin projektin viimeisinä viikkoina, kun ohjelma muuttui ratkaisevasti sekä ulkoisesti että sisäisesti.

Projektin tilaajan, Kalevi Salosen työmatka Tansaniaan, juuri kun projekti päässyt hyvään alkuun, vaikeutti myöskin ohjelman kehitystä.

Kaiken kaikkiaan projekti valmistui suhteellisen hyvin aikataulussa ja vaikka kaikki lupaamamme ominaisuudet löytyvät pääpiirteittäin ohjelmasta, jäi jatkokehitykseen vielä monia potentiaalisia ideoita. Projekti on ollut erittäin opettavainen kokemus.
 
 
 

9.2. Juha Kurikkala  

Projektin alku meni jotakuinkin uuteen aihealueeseen tutustuessa, mutta kun tämä tuli jotakuinkin selväksi alkoi projekti edetä mukavan tuntuisesti. Kuitenkin tilaajan Tanzanian matka hidasti projektia puolenvälin jälkeen ikävästi. Tänä puolenatoista kuukautena ei oikein tiennyt mitä ja miten pitäisi tehdä vaikka jonkin verran ohjeita ja kommentteja saatiinkin sähköpostin välityksellä. Tästä johtuen tuntui projektin lopussa muodostuvan kiire, koska muutoksia tuli niin paljon. Kokonaisuutena projekti on ollut opettavainen monella tapaa ja näin jälkeenpäin tuntuukin että monet asiat olisi voinut tehdä toisin. Lopuksi kiitos muille projektilaisille, tilaajalle ja ohjaajille.

 
 

9.3. Esa Launis  

Projekti oli varsin mielenkiintoinen kokemus, alun ymmärtämättömyydestä lopun kiireeseen. Alussa ihmeteltiin, että mitä sitä ollaan oikein tekemässä ja lopussa ihmeteltiin, että mihin se aika oikein meni? Niin se vain nopeasti aika meni värkkäillessä, kiitokset kavereille siitä!

Ja mitä jäi käteen? Ainakin jälleen kerran tuli projektin loppuaikana todistettua se, että jos ollaan koko ajan tehty ohjelmaa väärillä lähtökohdilla, niin ongelmia tulee. Kolmen mikroskoopin lisääminen laskentaan aiheutti mukavan loppukiireen. Seuraavalla kerralla varmasti tulee tarkkaan sovittua ennen aloittamista selville tarkasti mitä ollaan tekemässä ja siitä pidetään sitten kiinni.

Kuitenkin projekti oli kokonaisuutena mukava kokemus. Kavereiden kanssa eleltiin suurin piirtein yhteisymmärryksessä ja tulostakin syntyi. Hyvinhän se siis meni. Seuraavan kerran sitten varmaankin työelämässä.

 

 

10. Lähdeluettelo

 

[1] Becks Ari, ''Delphi: sovelluksen tekijän opas'', Suomen atk-kustannus, 1995.

[2] Calvert Charles, "Delphi 2 unleashed", Borland Press, 1996.

[3] Lappalainen Vesa, "Delphi –ohjelmointi", Jyväskylän yliopistopaino, 1997.

[4] Miller Todd and David Powell, ''Delphi 3, tehokäyttäjän opas'',  Suomen atk-kustannus, 1997.

 
 
 
 

Liitteet
 
 

Liite 1. Käytetty termistö

Eliötietokanta on syötetietokanta, josta valitaan laskentaan lajit. Siitä saadaan myös tilastollisten arvojen laskentaan tarvittavat tiedot.

Kyvetti on näytteen valmistelussa käytetty lieriö.

Kyvettitietokanta on syötetietokanta, josta saadaan biomassan laskemiseen tarvittava tarkka kyvetin tilavuustieto.

Laskenta mikroskoopin avulla suoritettava eliöiden määrien laskeminen.

Mikroskooppitietokanta on syötetietokanta, josta saadaan mikroskooppien tiedot ja tarkat suurennoskertoimet.

Mittaus mikroskoopin avulla suoritettava eliöiden tilavuuksien määrittämine.

Näköalue rajattu alue, joka nähdään mikroskoopista yhdellä katsomiskerralla tai voidaan rajata erillisellä kehikolla tai ruudukolla. Eliöiden laskemisessa ja mittauksessa näköaluetta käytetään perusyksikkönä.

 

 
 

Liite 2. Ohjelman rakenne

 
 

Kuva: BioScope –ohjelman rakenne
 
 
 
 
Liite 3. Syöttötiedostot  

Kaikki ohjelman käyttämät syöttötiedostot ovat muodoltaan tekstitiedostoja. Niissä yhtä yksikköä (kyvetti, laji, mikroskooppi, ryhmä) koskevat tiedot ovat yhdellä rivillä. Tiedostojen muodot ovat seuraavat.
 

kyvetit.lst, sisältää lista kyveteistä muodossa
 

numero;halkaisija;tilavuus;

esimerkkirivi:
 

3;25.8; 50.1;  
 

lajit.lst, sisältää listan lajeista muodossa

(XXX=ohjelman kannalta merkityksetön tieto lajilistassa)
 

XXX;"lyhenne";"lajinimi;pääryhmä";"aliryhmä";tilavuus;XXX;"XXX";XXX;
leveys;korkeus;pituus;"laskentayksikkö";

esimerkkirivi:
 

6803;"ACTI OCT";"P4";"ACTINOCYCLUS OCTONARIUS EHR. ";
6 ;65;""; 4710; 80; ; 20.0; 20.0; 15.0; ;"SOLU ";
 
 

mikrosk.lst, sisältää listan mikroskoopeista muodossa
 

"valmistaja/tyyppi";"rungonnro";"välisuurennus";"okulaari";"okulnro";"objektiivi";
"objnro";"näkökentän halkaisija";"laskenta-alueen sivujen pituudet"; "okulaarin
mittajanan pituus"; "kuka päivittänyt"; "milloin päivitetty"

esimerkkirivi:
 

"ZEISS ";"11234 ";"0.8 ";"16X/10 ";"99865 ";"16/0.4 ";"88888 "; 720;"390x390 ";"0.91 "; ";" "
 

 

ryhmat.lst, sisältää listan ryhmistä muodossa
  numero;"nimi";

esimerkkirivi:
 

6 ;"CHRYSOPHYTA " ;

 
 
 

Liite 4. Tulostustiedostot

 
Kaikki ohjelman käyttämät tulostustiedostot ovat muodoltaan tekstitiedostoja. Niissä yhtä lajia koskevat tiedot ovat yhdellä rivillä. Tiedostojen muodot ovat seuraavat.

  laskennannimi.bio, sisältää laskennan yleistiedot muodossa:
  [tallennettu tieto]

tallennettu_tieto=arvo

tallennettu_tieto2*=arvo2
 

[tallennettu_tieto_b]

tallennettu_tieto_b=arvo_b

tallennettu_tieto_b2=arvo2_b

jne.
 
 

Esimerkki tiedosto:

[CalFiles]

CalFile=E:\Latest\Jyväsjärvi1_1151998_13449 PM.cal

StatFile=E:\Latest\Jyväsjärvi1_1151998_13449 PM.sta

MeasFile=E:\Latest\Jyväsjärvi1_1151998_13449 PM.mea

[lake]

lake=Jyväsjärvi

[Location]

N=00.00.12

E=12.12.12

NS=N

EW=E

[Depth]

Depth=1

[ID]

ID=313

[Sampler]

SampleVol=50

[Presevative]

Presevative=Alcohol

[Sampled]

Sampled=11.5.1998

Clock=1:34:49 PM

By=Aku Ankka

[Counted]

Counted=5/11/98

By=Hessu Hopo

[Count Type]

Count Type=1

[Count Area]

Count Area=Grid xx * yy µm

[Chamber]

Chamber=1

[Microscope]

MicroscopeC=LEITZ DIAPLAN 12.5X/20

MicroscopeC2=LEITZ DIAPLAN 25X

MicroscopeC3=ZEISS 16X/10

MicroscopeM=ZEISS 16X/10

[Scale]

MinScale=0

From=0

To=0.14

Type=0

[CountIn]

CountIn=1

[CountMeas]

CountMeas=1

[Biomass]

BiomassIn=mg/l

BiomassUnit=C

[SizeFile]

SizeFile=-1

[Comments]

Comments=Tähän tulevat kommentit

 

laskennannimi.bac, sisältää edellisen alueen mittaustulokset samassa muodossa kuin laskennannimi.cal.
laskennannimi.cal, sisältää laskentatulokset muodossa
 

lajinnimi ¤arvo1|arvo2|jne.|

 esimerkkirivi:
 

KEPHYRION SPIRALE (LACK.) CONR. ¤15|12|24|3|12|  

laskennannimi.mea, sisältää mittaustulokset muodossa
 

lajinnimi ¤arvo1|arvo2|jne.|

esimerkkirivi:
 

KEPHYRION SPIRALE (LACK.) CONR. ¤28.12|45.12|12.24|3.12|