Ohjelmistotuotantoprojekti Metaxa / MAITO-ohjelmisto Kehitysehdotuksia jatkokehittäjille 14. 12. 2005 Yleistä Johtuen projektin aikatauluongelmista paljon kirjattuja vaatimuksia jouduttiin jättämään toteuttamatta. Ilmeisiä jatkokehitysmahdollisuuksia tarjoavat siis kaikki vaatimusdokumenttiin kirjatut ei-toteutettavat vaatimukset. Näitä voi toki toteuttaa valikoiden riippuen siitä mitä tulevien kehittäjien ja asiakkaiden tarpeet ovat. Esimerkiksi ohjelmiston alkuperäinen pääidea, merkitysten luominen ja analysointi, jätettiin lopulta kokonaan toteuttamatta asiakkaan suostumuksella. Koko ohjelman yhteiselle graafiselle käyttöliittymälle on olemassa valmis melko kattava suunnitelma hyödynnettäväksi mahdollisille jatkokehittäjille. Tämä suunnitelma sisältää myös hahmotelman alkuperäisestä verkkojen visualisointi-ideasta. Kunnollisen graafisen käyttöliittymän toteuttamisen lisäksi Jungin tai vastaavan verkkovisualisointikirjaston sulauttaminen ohjelmistoon olisikin hyödyllistä. Datan keruu Datan keruuvaiheen rinnakkaisuutta voisi lisätä ainakin OAI-PMH-harvestoinnin osalta. Tällä hetkellä dataa haetaan tietty määrä jonka jälkeen se transformoidaan ja talletaan kantaan ja taas haetaan lisää dataa. Näitä molempia toimintoja voisi tehdä yhtäaikaisesti. Datankeruussa käyttäjän antamat virhesyötteet kannattaisi hoitaa paremmin. Tämänhetkinen toteutus on kiireellä tehty ja olettaa että käyttäjä tietää melko tarkkaan mitä tekee. Jokainen dataformaattityyppi pitäisi tarkistaa ja katsoa vastaako data käyttäjän ilmoittamaa. Tai vielä parempaa: tunnistaa dataformaatit automaattisesti mikäli jonkinlainen tehokas tunnistuskeino löytyy - tämä tosin luultavasti vaatisi vähintäänkin pientä muutosta datankeruun arkkitehtuuriin tai rumaa purkkavirittelyä. Datan keruu voisi integraation tapaan tukea useampaa tietokantaa. Tällä hetkellä kaikki lähteet talletetaan samaan tietokantaan koska mitään erityisen painavaa syytä ei eriyttämiselle ollut. Ryhmän jäsenten testailun perusteella voisi kuitenkin olla kätevämpää jos lähteitä saisi ryhmiteltyä erillisiin kantoihin jo selkeydenkin vuoksi. Datan keruuseen ja transformointiin ohjelma voisi ilmoittaa operaation aloitusajan, lopetusajan ja keston - ehkä jopa näyttää jonkinlaisen statusbarin. Muutenkin käyttäjälle annetaan hyvin niukasti palautetta ja tilatietoa ja luotetaan siihen, että käyttäjä uskoo ohjelman tekevän jotain ja odottaa maltillisesti operaation päättymistä. Integrointi Integraatioalgoritmin kehittäminen jäi ensimmäiseen versioon. Tämän version "hyvyyttä" pitäisi analysoida ja arvioida tilastollisesti tai jollain muulla metodilla. Tämän jälkeen voisi alkaa suunnitella ja toteuttaa toista, tehokkaampaa ja "parempaa" algoritmia. Kun tehdään integraation toista versiota, joudutaan integraatioprosessia refaktoroimaan. Tämä johtuu siitä, että tällä hetkellä heuristiikka on yksi tietokantahaku. Jos käytetään yleisiä merkkijonojen vertailualgoritmeja, nämä on ajettava jokaiselle kannan resurssille. Resurssiverkkoja ei tällä hetkellä voi poistaa lainkaan suoraan käyttöliittymästä vaan poisto pitää tehdä esimerkiksi MySQL Query Browserilla tai MySQL:n omalla komentorivityökalulla. Vaikka tätä ominaisuutta ei kovin usein tarvitakaan, niin tämä on tarpeettoman hankalaa käyttäjälle eikä varmasti olisi kovinkaan työlästä toteuttaa poistoa suoraan käyttöliittymään. Integraatiossa on sama ongelma kuin datan keruussa ja transformoinnissa: käyttäjälle ei anneta juuri mitään aika- tai tilatietoa ja lokitietojen tulostaminenkin jäi lopulta toteuttamatta. Integraatio voi vielä isoilla aineistoilla kestää huomattavan kauan joten jonkinlaista arviota tai tietoa edistymisestä voisi olla hyvä antaa käyttäjälle. Selaus Mikäli uutta GUIta ei toteuteta selauksellekin niin nykyisen version resurssiluettelossa voitaisiin näyttää myös kunkin tyyppisten yhteyksien määrät kullekin resurssille. Muutenkaan yhteyksiä ei näytetä selaus-GUIssa vaan ne voi nähdä ja visualisoida kunnolla vasta exportin jälkeen. Testaamisesta Ohjelmaa pitäisi erityisesti testata enemmän "väärillä" syötteillä. Yksikkötestauksessa on kiinnitetty huomiota virhetilanteiden hallintaankin ja integraatiotestauksessa virheellisiä syötteitä on myös tullut sekä inhimillisen erehdyksen että virheellisen testidatan ja repositorioiden kautta. Ohjelmistoa ei kuitenkaan olla järjestelmällisesti yritetty saada kaatumaan ja käyttäytymään huonosti väärillä syötteillä ja kummallisilla toimintatavoilla - tätä kannattaisi tehdä jotta ohjelmistosta saataisiin varmempi ja vakaampi.