GESTAPO
Antti Krats
Anna Kämäräinen
Kai Lahti
Kari Perttula
Tietotekniikan cum laude -työprojekti
Projektiraportti
13.1.2002
Jyväskylän yliopisto
tietotekniikan
laitos
Gestapo-ryhmä
toteutti Jyväskylän yliopiston informaatioteknologian tiedekunnalle hälytys- ja
seurantajärjestelmän syksyn 2001 aikana. Dokumentti kuvaa kyseisen
tietotekniikan cum laude -työprojekti projektin läpivientiä ja asetettujen
tavoitteiden toteutumista.
GESTAPO-projekti
Projektiryhmä: Antti Krats
Anna
Kämäräinen
Kai
Lahti
Kari
Perttula
Visuaalinen
konsultti: Laura Kuurne
Tilaaja: Informaatioteknologian
tiedekunta
Jukka
Järvinen
Sauli
Takkinen
Vastaava ohjaaja: Jukka-Pekka
Santanen
Tekninen ohjaaja: Juha
Lamberg
Työtila: Agora,
C225.3
Laitteet: Neljä
PC-tietokonetta, joissa käyttöjärjestelmänä Windows 2000.
3Com WWW-kamera, 2 kpl
Logitech
Quickcam -kamera
NTC 33k -lämpövastuksia
clip-1
IR -liikkeentunnistin, 2 kpl
K&H
GL-24 -koekytkentälevy
Ohjelmistonkehitystyökalut: Delphi
6
Suunnittelutyökalut: Excel,
Argo/UML
Sisältö
3.1 Henkilö-, laite- ja tilaresurssit
3.2 Laite- ja ohjelmistoresurssit
4 Projektille asetetut vaatimukset
5 Toteutuneen järjestelmän osat ja toiminnot
5.1 Järjestelmän sisältämät ohjelmat ja tiedostot
5.2 Toteutuneet hallintosovelluksen toiminnot
5.3 Toteutuneet seurantayksikön toiminnot
5.4 Toteutuneet tallennus- ja hälytysyksikön toiminnot
7 Projektissa eteen tulleita ongelmia
Lähteet. 15
Gestapo-projekti
oli Jyväskylän yliopiston tietotekniikan laitoksen syksyn 2001 cum laude
-työprojekti. Se toteutti informaatioteknologian tiedekunnalle valvonta- ja
hälytysjärjestelmän, johon kuuluu mikrotietokoneisiin asenettavia kameroita
sekä liikettä ja lämpötilaa tarkkailevia antureita. Järjestelmä hälyttää
määriteltyjen hälytysrajojen rikkoutuessa sähköpostilla ja tekstiviestillä.
Järjestelmä
toteutettiin hajautettuna. Siihen on mahdollista liittää useita
seurantayksiköitä, joilta kerätyt kuvat ja mittaustiedot tallennetaan
yhteiselle tallennusyksikölle. Kaikkien seurantayksiköiden tietojen katselu ja
muokkaaminen onnistuu hallintasovelluksen avulla.
Projektin
suunnittelu aloitettiin syyskuussa, ja järjestelmä esiteltiin projektien
loppuesittelyssä joulukuussa. Alkuperäiset suunnitelmat projektin toteutukselle
esitellään projekti- ja sovellusraporteissa. Projektissa syntyneiden
sovellusten toimintaa kuvataan tarkemmin sovellusraportissa. Tämä dokumentti
kuvaa projektin kulkua ideasta sovellukseksi.
Luvussa 2
esitellään projektin taustaa. Lukuun 3 on koottu projektin vaatimat resurssit.
Luvussa 4 esitellään tilaajan määrittelemät vaatimukset toteutuneelle
projektille. Luvussa 5 esitellään järjestelmän osat ja toiminnot. Luku 6
käsittelee suunnitellun työnjaon ja aikataulun toteutumista. Seitsemänteen
lukuun on kerätty projektin aikana esille tulleita ongelmia, ja luvussa 8
kuvataan opittuja asioita. Lukuun 9 on kerätty kaikkien projektiryhmän jäsenten
henkilökohtaiset kokemukset projektista
Jyväskylän
yliopiston hallinto ei ole lupauksistaan huolimatta järjestänyt Agora-rakennuksen
mikroluokkiin ja muihin toivottuihin tiloihin valvontajärjestelmää. Tästä
johtuen Agoran tiloja ja laitteiden käyttöä voidaan seurata vain tiloissa
vierailemalla.
Informaatioteknologian
tiedekunnan ylläpitohenkilökunnalla on ollut tarve saada suora näköyhteys
mikroluokkiin suoraan työtiloista. Tämä nopeuttaa asennus- ja ylläpitotehtäviä,
sillä kameran avulla näkee helposti, onko luokka tyhjä.
Lisäämällä
järjestelmään erilaisia antureita ja enemmän toiminnallisuutta muodostui
toteutettavasta projektista mielenkiintoisempi. Järjestelmä toimii kuten oikea
hälytysjärjestelmä. Samalla informaatioteknologian tiedekunta ja tietotekniikan
laitos keräävät projektin kautta kokemuksia eri laitteista ja niiden
ohjauksesta ohjelmallisesti.
Luvuissa kuvataan
projektin käyttöön varattuja resursseja.
Gestapo-projektiryhmä
koostui tietotekniikan opiskelijoista Antti Krats, Anna Kämäräinen, Kai Lahti
ja Kari Perttula.
Ryhmän
visuaalisena konsulttina toimi taideaineiden opiskelija Laura Kuurne. Hän antoi
palautetta käyttöliittymän ulkoasusta. Visuaalisen konsultin tehtävänä oli myös
grafiikan suunnittelu käyttöliittymään, mutta tämä jäi toteutumatta.
Tilaajaa
edustivat informaatioteknologian tiedekunnasta Sauli Takkinen ja Jukka
Järvinen. Projektin vastaavana ohjaajana toimi Jukka-Pekka Santanen ja
teknisenä ohjaajana Juha Lamberg tietotekniikan laitokselta.
Projektiryhmän
käyttöön oli varattu Mattilanniemestä Agorasta tietotekniikan laitokselta
projektihuone AgC225.3. Projektipalaverit pidettiin Agorassa työprojektien
kokoustilassa.
Projektiryhmän
käytössä oli 4 mikrotietokonetta. Tietokoneiden käyttöjärjestelmänä oli Windows
2000. Lisäksi tietokoneisiin oli asennettu sovelluksen ohjelmointiin,
suunnitteluun sekä dokumentointiin tarvittavat ohjelmistot.
Sovellus
toteutettiin Delphi 6 -ohjelmointityökalun avulla. Ryhmällä oli käytössä kaksi
3Comin WWW-kameraa ja Logitechin Quickcam -kamera. 3Comin kamerat asennettiin
USB-väylään ja Logitechin kamera tulostimelle varattuun porttiin.
Lämpöantureina käytettiin peliohjainporttiin kytkettyjä NTC 33k
-lämpövastuksia. Liiketunnistimina käytettiin infrapunalla toimivia clip-1 IR
-tunnistimia, jotka kiinnitettiin com-porttiin.
Projektin
alkuvaiheessa antureita simuloitiin Kooma-projektilta perityllä
testilaitteistolla, joka sisälsi com-porttiin liitettävän johdon.
Testilaitteella tutkittiin porttien ohjelmallista lukemista ja antureiden
kalibrointia. Yksinkertaisuudestaan huolimatta testilaitteisto oli hyvä
apuväline portin pinnien tiloissa tapahtuvien muutoksien seuraamiseen.
Tilaaja toimitti
testaamista varten koekytkentälevyn. Levyn avulla voitiin helposti yhdistää
anturit johtoihin ja tarvittaessa muuttaa kytkentöjä tinaamatta.
Sovelluksen minimivaatimukset määriteltiin
ensimmäisessä projektipalaverissa 20.9.2001 seuraavasti:
· Hallintosovelluksella tulee voida reaaliaikaisesti seurata kameroita sekä antureita.
· Tiedot tallennetaan lokitiedostoon.
· Hälytykset lähetetään tekstiviestillä.
Tilaaja ei siis määritellyt järjestelmälle
täsmällisiä tavoitteita, joten vaatimusmäärittely oli osa projektin tehtäviä.
Käytännössä vaatimukset, toiveet ja suunnitelmat tarkentuivat
projektipalaverien myötä. Uusia ideoita ja toivottavia ominaisuuksia ideoitiin
projektipalavereissa runsaasti, joista osa ehdittiin toteuttaakin.
Mahdolliselle jatkokehittäjälle jäi kuitenkin vielä runsaasti valmiiksi
mietittyjä ideoita.
Projektisuunnitelmassa
toteutettava järjestelmä jaettiin kuuteen osaan: pääohjain, porttien luku,
kameroiden ohjaus, hälytysten käsittely, käyttöliittymän toteutus ja
dokumentointi. Toteutetun järjestelmän osia kuvataan tarkemmin
sovellusraportissa.
Projektin tuloksena syntynyt järjestelmä
täyttää luvussa 4 esitetyt tilaajan määrittelemät minimivaatimukset. Luvussa
kuvataan järjestelmän sisältämiä ohjelmia ja tiedostoja
Järjestelmä
koostuu seuraavista osista:
Hallintosovelluksella (engl. Configuration Unit, lyh. CU) suoritetaan järjestelmän
konfigurointi, sekä sen toiminnan seuranta.
Hälytysyksikkö (engl. Alarm Unit,
lyh. AU) on toteutettavan järjestelmän osa, joka vastaa tekstiviesti- tai
sähköpostihälytysten lähettämisestä.
Konfigurointitiedoston avulla seuranta- ja hälytysyksikölle kerrotaan sen toimintaa säätelevät parametrit.
Lokitiedostostoihin tallennetaan seurantayksiköiden mittaamat tulokset.
Seurantayksikkö (engl. Surveillance
Unit, lyh. SU) on järjestelmän osa, joka vastaa kameroiden ja antureiden
ohjauksesta.
Tallennusyksikkö Tallennusyksikkö (engl. Data
Unit, lyh. DU) koostuu konfigurointitiedostoista ja lokitiedostoista.
Hallintosovellukselta
nähdään seurantayksikkökohtaiset tuoreimmat tiedot. Vanhoja tietoja voi selata
hallintosovelluksella samoin seurantayksiköittäin. Hälytykset voidaan välittää
tekstiviestinä matkapuhelimeen ja sähköpostitse.
Minimivaatimuksien (katso luku 4) lisäksi
hallintosovelluksen avulla käyttäjä voi konfiguroida järjestelmän toimintaa.
Seurantayksiköiden asetuksia voidaan muuttaa laitekohtaisesti ja määritellä
jokaiselle laitteelle yksilölliset hälytysrajat.
Hallintosovelluksella
voidaan konfiguroida hälytysyksikön toimintaa määrittelemällä erilaisia
hälytystasoja erilaisilla prioriteeteilla eli "vakavuusasteilla".
Jokaiselle prioriteetille voidaan määritellä, mitä hälytystapoja käytetään
(tekstiviesti, sähköposti ja paikallinen hälytyslaite). Eri prioriteeteille
voidaan myös määritellä eri kohdeosoitteita. Esimerkiksi prioriteetille 1 voidaan määritellä GSM-numeroksi 040-1234567 ja sähköpostiosoitteeksi alarms@mit.jyu.fi. Vastaavasti priotiteetille 2 voidaan
määritellä GSM-numeroksi 044-7654321 ja sähköpostiosoitteeksi gestapoalarms@mit.jyu.fi.
Vanhojen tietojen
katselu onnistuu hallintosovelluksen avulla. Tallennusyksiköltä haettavat kuvat
esitetään kuvasarjana, jossa kuva vaihtuu sekunnin välein. Seurantayksikön
kameran ottamat kuvat haetaan tallennusyksiköltä, ja kuvasarja alkaa pyöriä
automaattisesti. Käyttäjä voi määritellä itse päiväyksen ja kellonajan mukaan,
mistä hetkestä alkaen kuvia haluaa katsoa.
Reaaliaikaiset
tiedot ilmoitetaan seurantayksikkökohtaisesti. Antureilta näytetään
viimeisimmät mitatut arvot. Kamerakuvan voi päivittää Refresh-painikkeen avulla, jolloin seurantayksikkö ottaa uuden
kuvan.
Seurantayksikkö
sijoitetaan valvottavaan tilaan. Yksikkö muodostuu mikrotietokoneesta ja siihen
liitetystä kamerasta ja antureista.
Kameralle ja
antureille määritellään hallintosovelluksen avulla mittausintervalli. Kyseisen
aikavälin mukaan laitteet välittävät arvot tallennusyksikölle.
Seurantayksikön
laitteille määritellään myös hälytysrajat. Mittaukset suoritettuaan
seurantayksikkö vertaa arvoja hälytysrajoihin. Hälytysrajojen rikkoutuessa
seurantayksikkö ilmoittaa tapahtumasta tallennusyksikölle. Tallennusyksikkö
ilmoittaa hälytysrajojen rikkoutumisesta hälytysyksikölle.
Hallintosovelluksella
erilaisten hälytysprioriteettien määrittely on mahdollista. Nykyisessä versiossa
kuitenkin seurantayksikkö käsittelee kaikki hälytysrajojen rikkoutumiset
samalla tavalla, käytännössä prioriteetillä 1.
Tallennusyksikkö
tallentaa seurantayksiköiden antureiden ja kameroiden välittämän datan
lokitiedostoihin. Lokiin tallennettujen tietojen lisäksi tallennusyksikkö
sisältää seurantayksiköiden ja hälytysyksikön konfigurointitiedostot.
Hälytysyksikön
tehtävänä on päättää hälytyksen välittämisestä tekstiviestinä tai sähköpostina.
Hälytysyksikkö osaa käsitellä erilaisia prioriteettejä. Ominaisuutta ei
kuitenkaan voi tällä hetkellä hyödyntää, koska seurantayksikkö käsittelee
kaikki hälytysrajojen rikkoutumiset samalla tavalla.
Hälytysten
käsittelyn logiikka on hyvin yksinkertainen. Hälytysyksikkö lähettää kaikki
sille ilmoitetut hälytykset eteenpäin määriteltyjen asetusten mukaan.
Hälytysyksikön asetukset määritellään luvussa 6.1 kuvatulla tavalla.
Aikataulun ja
työnjaon suunnittelu oli hyvin vaikeaa, koska kenellänkään ryhmän jäsenistä ei
ollut kokemusta näin laajasta ohjelmointiprojektista. Oli hyvin vaikeaa
arvioida, paljonko aikaa kuluu yksittäisten dokumenttien kirjoittamiseen tai
komponentin ohjelmointiin.
Työnjaosta
päästiin nopeasti yhteisymmärrykseen, vaikka vaatimusten määrittely olikin
vielä kesken. Projektin alkumetreillä suoritetussa työnjaossa oli kuitenkin se
riski, että vaatimusten tarkentuessa ryhmän jäsenten työmäärät olisivat
saattaneet vaihdella runsaasti.
Jokaiselle ryhmän
jäsenelle määriteltiin oma vastuualueensa, sekä sovittiin yhteisistä
tehtävistä. Projektisuunnitelmassa sovittiin, että Antti ja Kai toteuttavat
porttien luvun ja pääohjaimen. Annan tehtäväksi sovittiin käyttöliittymän
suunnittelu ja toteutus. Kari vastasi hälytysten käsittelystä. Yhteisiksi
tehtäviksi sovittiin dokumentointi ja testaus.
Käytännössä
projektin toteutus jakautui arkkitehtuurin mukaan. Kai toteutti
kommunikoinnissa käytettävät asiakas- ja palvelinkomponentit. Antti teki
tallennusyksikön ja Kari hälytysyksikön. Anna vastasi hallintasovelluksesta.
Antti ja Kai tekivät yhdessä antureiden ohjauksessa käytettävät komponentit.
Tämän jälkeen Kai kasasi seurantayksikön komponenttien pohjalta, ja teki myös
kameran ohjaukseen käytettävän komponentin. Lisäksi Antti suunnitteli ohjelman
käynnistysikonin.
Työnjako onnistui
hyvin. Kaikilla ryhmän jäsenillä oli koko projektin ajan yhtä paljon tekemistä,
joka näkyy selvästi ajankäyttövihkoista.
Kuten taulukosta
1 voi havaita, projektin suunniteltu aikataulu petti heti alkumetreillä.
Suunnitteludokumenttien kirjoittamiseen meni monikertaisesti enemmän aikaa kuin
aluksi arveltiin. Vaatimusten määrittely ja suunnittelu kesti yllättävän
pitkään, joten dokumentointi viivästyi. Projektisuunnitelma myöhästyi kuukauden
ja sovellussuunnitelma vähän yli kuukauden.
Varsinainen
ohjelmointi aloitettiin jo ennen projektisuunnitelman ja sovellussuunnitelman
valmistumista. Aluksi porttien ja kameroiden ohjelmallista ohjausta kokeiltiin
pienillä testiohjelmilla, joita voitiin myöhemmin käyttää itse järjestelmässä.
Ohjelmointi sujui aika nopeasti, joten aikataulussa pysyttiin porttien luvun
osalta.
|
Suunniteltu valmistumisajankohta |
Toteutunut valmistumisajankohta |
Suunnittelu |
|
|
Projektisuunnitelma |
4.10. |
5.11. |
Sovellussuunnitelma |
18.10. |
28.11. |
|
|
|
Järjestelmän
toteuttaminen |
|
|
Porttien
luku |
22.11. |
20.11. |
Seurantayksikkö |
22.11. |
19.12. |
Hälytysyksikkö |
6.12. |
19.12. |
Tallennusyksikkö |
6.12. |
19.12. |
Hallintosovellus |
6.12. |
20.12. |
|
|
|
Dokumentit |
|
|
Sovellusraportti |
14.1. |
13.1. |
Projektiraportti |
14.1. |
|
Käyttöohje |
10.1. |
|
|
|
|
Testaus
ja virheen jäljitys |
|
|
Testaus |
15.12. |
9.1. |
Virheiden
korjaus ja viimeistely |
21.12. |
10.1. |
Taulukko 1. Suunniteltu ja toteutunut aikataulu.
Alkuperäiseen
suunniteltuun aikatauluun merkityt järjestelmän ohjelmaosiot (muun muassa
pääohjain ja pelkkä käyttöliittymä) muuttuivat työn edetessä. Tästä syystä
alkuperäisen suunnitelman ja toteutuneen ajankäytön suhdetta on vaikea
arvioida. Pääohjain muuttui koko seurantayksiköksi ja käyttöliittymä hallintasovellukseksi.
Kaikki osat kuitenkin valmistuivat loppuesittelyyn mennessä, vaikka alunperin
testaus olikin tarkoitus aloittaa jo 6.12.
Järjestelmän
testausta aloiteltiin melkein kaksi viikkoa aikataulusta myöhässä, eikä
kunnollista testausta ehditty projektin puitteissa suorittaa. Loppudokumenttien
kirjoitusta oli tarkoitus aloittaa jo marraskuun lopussa, mutta siitäkin
myöhästyttiin kolme viikkoa.
Projektin aihe
oli kaikille projektin jäsenille täysin vieras. Kenelläkään meistä ei ollut
mitään kokemusta mikrotietokoneen porttien ohjelmallista ohjaamisesta tai
lukemisesta. Ohjelmointityökalukin oli osalle täysin tuntematon.
Teknisen
ohjaajamme ja myös tilaajan edustajan avustuksella pääsimme alkuun. Heti alussa
järjestettyjen perehdytystilaisuuksien ansioista pääsimme nopeasti itse asiaan.
Loppujen lopuksi seurantayksikön laitteiden kanssa oli hyvin vähän ongelmia.
Suurin ongelma
koko projektissa oli järjestelmän eri yksiköiden välillä tapahtuva tiedostojen
siirto. Ongelman ratkaisuun ja kommunikointikomponenttien ohjelmointiin meni
yllättävän kauan. Tiedostonsiirrossa eteen tulleiden ongelmien ratkettua koko
järjestelmän osien yhteen liittäminen voitiin aloittaa.
Seurantayksiköön
liitettäviä antureita saatiin testattavaksi vasta marraskuun puolessa välillä.
Tämä hieman hidasti projektin etenemistä. Testilaitteiston avulla kuitenkin
päästiin alkuun.
Kosteusanturiakin
olisi ollut mukava päästä testaamaan, mutta tilattua laitetta ei saatu.
Seurantayksikköön voidaan kuitenkin lisätä helposti on/off-tyyppinen kosteutta
mittaava laite.
Ryhmän jäsenten
välisessä kommunikoinnissakin oli välillä ongelmia. Toisinaan tuntui, ettei
ollut täsmällisiä sanoja kuvaamaan ongelmaa. Puheentulkintaongelmia oli
erityisesti alussa runsaasti. Välillä jopa riideltiin pikkuasioista, ja
myöhemmin huomattiin olevamme kaikki samaa mieltä.
Kaiken kaikkiaan
varsinaisia ongelmia oli yllättävän vähän, kun ottaa huomioon täysin vieraan
aihealueen. Pienemmät ongelmat ratkesivat aina nopeasti. Ohjelmointityökalun
kanssa oli ylipäänsä hyvin vähän ongelmia, sillä työkalu itsessään sisältää
erittäin hyvät ohje- ja esimerkkitiedostot.
Projektityöskentely
oli pääosin kaikille ryhmän jäsenille uutta. Osa oli ollut aikaisemmin asiaa
käsittelevillä kursseilla, mutta käytännön kokemusta ei ollut.
Projektityöskentely koettiin kuitenkin mielenkiintoiseksi ja haastavaksi uuden
aihealueen myötä.
Annalle
Delphi-ohjelmointityökalu oli uusi. Antti, Kai ja Kari olivat aikaisemmin
ohjelmoineet Delphillä, mutta oppivat kuitenkin runsaasti uusia asioita
esimerkiksi tiedonsiirrosta ja porttien luvusta.
Esiintymiskokemusta
kenelläkään ei juurikaan ollut. Opponoinneissa ja loppuesittelyssä sai hyvää
harjoitusta esiintymisestä. Palautteen perusteella oli helpompi kiinnittää
huomioita oman esiintymisensä ongelmakohtiin.
Dokumentointiin
kului runsaasti aikaa. Projektin aikana kuitenkin opittiin kirjoittamaan
raporteista täsmällisempiä ja selkeämpiä. Kaikki ryhmän jäsenet eivät olleet
koskaan aikaisemmin kirjoittaneet pöytäkirjoja tai esityslistoja. Palaverien
myötä tämäkin taito tuli hankittua.
Luvussa kuvataan
projektiryhmän jäsenten henkilökohtaisia mietteitä projektin sujumisesta.
Projekti alkoi
palaverillä, jossa kerrottiin hyvin epämääräisesti halutusta
seurantajärjestelmästä. Itse asiassa saimme sähköpostiimme viestin, jossa
kerrottiin kolmelle ranskalaisella viivalla sovelluksen toiminnallisuudesta.
Tämä tosin johtui siitä, ettei tilaajakaan tiennyt, mitä halusi.
Aloitimme
tehtävän purkamisen piirtämällä piirroksia ja kaavioita järjestelmän
arkkitehtuurista. Tällä tavoin pääsimme nopeasti aiheeseen sisälle, ja saimme
jotain näytettävää tilaajalle. Tilaajalla ja ryhmällämme oli erilaisia
käsityksiä arkkitehtuurista projektin alkupäässä, mutta pikkuhiljaa pääsimme
yhteisymmärrykseen.
Mielestäni
järjestelmän suunnitteluun kului huomattava osa projektiin varatusta ajasta.
Minua alkoi hirvittää, kun huomasin toteutukseen jäävän ainoastaan noin
kuukauden verran aikaa. Päätimmekin aloittaa ohjelmoinnin jo suunnittelun
aikana toteuttamalla sellaisia komponentteja, joihin järjestelmän arkkitehtuuri
ei vaikuttaisi. Näihin kuuluivat kameran ja antureiden hallitseminen
mikrotietokoneeseen liitettyjen porttien kautta. Projektin onneksi ryhmässä oli
elektroniikan asiantuntijana Kari. Ilman häntä ryhmältä olisi kulunut paljon
aikaa oheislaitteiden liitäntöihin tutustumiseen.
Anna suunnitteli
hallintosovelluksen käyttöliittymää, josta tuli odotettua monimutkaisempi. Sen
ulkoasua käsiteltiin palavereissa useaan otteeseen, ja välillä tuntuikin,
kannattaako siihen uhrata niin paljon aikaa. Tuntui huvittavalta, kun ensiksi
jokin nappi haluttiin johonkin paikkaan ja seuraavassa palaverissä se otettiin
kokonaan pois. Lopputulos kuitenkin miellytti sekä ryhmää että tilaajia.
Projektin
loppupuolella meille tuli kiire. Loppuesittely lähestyi päivä päivältä, eikä
kaikkiin ongelmiin tuntunut löytyvän ratkaisua. Sovellusten välinen
kommunikointi, joka on järjestelmän tärkein lenkki, takkuili pahasti. Muutamien
pitkien iltojen jälkeen ongelmat ratkesivat, sovellukset toimivat yhteen ja
järjestelmä pysyi pystyssä loppuesittelyn ajan. Työ palkitsi tekijäänsä.
Projekti lähti
mielestäni hitaasti käyntiin, mutta loppuesittelyn lähestyessä
vapaa-ajanvietto-ongelmia ei ollut. Hitaan aloituksen suurimpana syynä oli
luultavasti se, ettei meillä ollut aluksi pienintäkään aavistusta siitä, mitä
oltiin tekemässä tai miten.
Delphi oli täysin
uusi tuttavuus, ja inho kaikkea ohjelmointiin liittyvää kohtaan oli suunnaton.
Rehellisyyden nimissä täytyy myöntää, että ennakko-odotukset eivät olleet kovin
ruusuiset. Ei auttanut muu kuin ottaa kirja pieneen kätöseen ja aloittaa
autolaskurista. Parin illan jälkeen sain lisättyä jo polkupyöriä ja kuorma-autojakin.
Delphin
perusjutut opin loppujen lopuksi aika nopeasti, ja vastenmielisyys ohjelmointia
kohtaan karisi nopeasti. Ahaa-elämyksiä syntyi runsaasti, mikä piti
motivaatiota yllä, mutta välillä ei epätoivokaan ollut kaukana.
Kaikki
ohjelmistojen suunnitteluun liittyvät termit ja esimerkiksi
käyttötapaus-kuvaukset olivat vielä syyskuussa täysin hepreaa. Syvällisestihän
niihin ei ollut aikaa perehtyä, mutta pintapuolisesti tuli tutustuttua. Nyt on
kuitenkin kalpea aavistus, mistä on kyse.
Visuaalisesta
konsultista oli mielestäni enemmän suoranaista haittaa kuin hyötyä. Aikaa meni
yhden ylimääräisen informointiin, ja lopputulos oli puhdas nolla. Jos jatkossa
on tarkoitus käyttää visuaalisia konsultteja, eduksi kyseisen tehtävän
hoitamiselle saattaisi olla oleskelu Suomessa.
Kurssi oli työläs
ja aikaa vievä. Toisinaan oli pipo hiukan liian kireällä, mutta pääasiassa
meillä oli hauskaa. Välillä jopa liiankin hauskaa.
Projektien
alkaessa minulla ei ollut juurikaan kokemuksia kameroiden eikä antureiden
ohjaamisesta ohjelmallisesti. Aihe tuntui kuitenkin hyvin mielenkiintoiselta,
ja lähdin innolla mukaan projektiin. Ohjelmointiympäristö oli minulle ennestään
tuttu.
Nopeasti tuli kuitenkin esille, ettei
tilaajalla ollut täsmällisiä vaatimuksia toteutettavalle järjetelmälle. Tästä
aiheutui suunnitteluvaiheen pitkittyminen, ja myös pieni tympääntyminen
aiheeseen. Välillä tuntui, että eihän tämä etene ollenkaan. Päätimme kuitenkin
ryhmän kanssa koodailla kaikenlaisia testiohjelmia, joiden avulla saimme
jonkinlaista kuvaa kameroiden ja antureiden kyvyistä ja
käyttömahdollisuuksista. Loppua kohden projekti alkoi sujua rivakammin.
Toiminnallisuuden näkyville tuleminen innoitti tekemään yhä enemmän.
Projekti on ollut
hyvin opettavainen projekti toiminnan ja laitteistojen kannalta. Ryhmän
sisäisessä toiminnassa meillä ei ollut suurempia ongelmia.
Projektissa
syntyi varsin lupaavalta vaikuttava prototyyppi puutteellisesta
alkumäärittelystä huolimatta. Projektin alkumääritykset olivat niukat ja tästä
aiheutui ylimääräistä työtä. Toisaalta ryhmä sai näin muodoin enemmän
valinnanvapautta projektia suunnitellessaan. Työnjako selkeytyi projektin
edetessä, ja muotoutui lopulta hyvin toimivaksi. Aivan kaikkea ei saatu tehtyä,
mutta kaikki oleellinen protossa jo on ja toimii.
Ryhmän sisäisessä
tiedon kulussa oli satunnaisia katkoksia, mutta niistä selvittiin suhteellisen
nopeasti. Tarvittaessa apua pyydettiin, saatiin ja annettiin. Yleisesti ryhmä
tuntui tulevan ihan hyvin toimeen keskenään.
Sain tehtyä suurimman
osan omaan osuuteeni kuuluvista toiminnoista. Tekemäni koodi on mielestäni
selkeää ja kohtuullisesti kommentoitua. Virheiden käsittelyyn en ehtinyt
syventyä riittävästi, joten hälytysyksikön vakaus ei ole kaikin osin
tyydyttävällä tasolla. Olin itse hieman yllättynyt, kuinka paljon sain aikaan.
Projektiin
tarvittavien tekniikoiden testaus ja arvionti kärsi testilaitteiden (lähinnä
erilaisten antureiden) saamisen viivästymisestä.
Teknistä ohjaajaa
ryhmän ei tarvinnut kovin usein vaivata. Silloin kun häneltä jotain kysyimme,
hän useimmiten kykeni ongelman ratkaisemaan, tai ainakin osoittamaan suuntaa,
mistä ratkaisua hakea. Projektipalavereissä Juha esitti runsaasti kommentteja.
Monet hänen ehdotuksistaan ovat vaikuttaneet projektin lopputulokseen. Dokumentointia
olisi voinut kommentoida enemmän.
Hälytys- ja
valvontajärjestelmä oli aiheena kaikille vieras, mutta mielenkiintoinen.
Projektin lopputuloksena syntynyt järjestelmä täyttää mielestämme tilaajan
asettamat minimivaatimukset ja sisältää muitakin toimintoja. Kaikkia ideoita ei
luonnollisestikaan ehditty toteuttaa tiukassa neljän kuukauden aikataulussa,
vaikka intoa olisi ollutkin.
Kaikki ryhmän
jäsenet olivat tyytyväisiä projektin etenemiseen. Ongelmat ratkesivat nopeasti
joko omin voimin tai ohjaajien avustuksella. Ryhmähenki säilyi hyvänä koko
projektin ajan, ja koko ryhmän mielestä projekti oli antoisa kokemus.
Lähteet
Borland
Developer Support Staff, Question and Answer Database, "How can I capture
an image from a video source?", saatavilla WWW-muodossa <URL: http://community.borland.com/article/0,1410,16037,00.html>, 1999.
Matlus.com,
"Delphi -TCP/IP, PART 3 - Build the Server for the Telnet Client",
Delphi Tutorials, saatavilla WWW-muodossa <URL: http://www.matlus.com/scripts/website.dll/Tutorials?DelphiTCPIP&TCPIPDataClient&4>.
Diprode Software,
TFlightJoystick-komponentti, saatavilla WWW-osoitteesta <URL: http//www.diprode.com/delphicomponents.htm>, 2000.
Hirsjärvi, Remes
ja Sajavaara, "Tutki ja kirjoita",Tammi, Vantaa, 2001.
IANA,
"RS-232: Connectors and Cabling", saatavilla WWW-muodossa <URL: http://www.uwsg.indiana.edu/usail/peripherals/serial/rs232/>, luettu 8.10.2001.
Järvinen, Jani,
"Delphi: sovellusten opas", Teknolit, Jyväskylä, 2000.
Lappalainen,
Vesa, "Delphi 4: Peruskussi" Jyväskylän yliopisto, tietotekniikan
laitos, 1997.
Krats Antti,
Kämäräinen Anna, Lahti Kai ja Perttula Kari, "Gestapo-projektin
projektisuunnitelma", Jyväskylän yliopisto, tietotekniikan laitos, 2001.
Krats Antti,
Kämäräinen Anna, Lahti Kai ja Perttula Kari, "Gestapo-projektin
sovellussuunnitelma", Jyväskylän yliopisto, tietotekniikan laitos, 2001.
Rantanen Santtu,
"Palveluntuottajan kytkeytyminen eri operaattoreiden
SMSC-keskuksiin", Teletekniikan erikoistyö, Teknillinen korkeakoulu, 2001.
The
Trustees of Indiana University, "Port numbers", saatavilla
WWW-muodossa <URL: http://www.iana.org/assignments/port-numbers>, 2001.
Visdómine Luis,
"Joystick port", saatavilla WWW-muodossa <URL: http://www.gea.ucm.es/~padilla/extrawork/joystick.html>, luettu 3.10.2001.