next up previous contents
Next: Tästä dokumentista ... Up: Sointu- ja intervalliutelija Soinnuuttelija v1.0 Previous: Käyttöohje   Sisältö

Aliluvut

Ohjelman toteutus

Tekninen kuvaus

Kuva 2: Luokkakaavio
\includegraphics[width=165mm]{luokkakaavio.eps}

Sointu- ja intervalliutelija Soinnuuttelija koostuu neljästä luokasta. Suurin niistä on luokka Sointu, jonka sisään on piilotettu soinnun (ja myös intervallin) tietorakenne. Tähän luokkaan on myös ohjelmoitu sointujen soittaminen Javan valmista javax.sound.midi-pakkausta käyttäen. Sointu on luokan java.lang.Thread aliluokka, joka toteuttaa rajapintaluokan java.lang.Runnable, joten sen ilmentymän voi antaa parametriksi Thread-luokan konstruktorille, jolloin saadaan säie, jonka suorittamien soittaa soinnun. Intervalli on luokan Sointu aliluokka, joka täydentää yliluokkaansa soitaErotellen()- metodilla ja korvaa sen run()-metodin omallaan, joka osaa soittaa intervallin sävelet erikseen.

Soinnusto on java.util.LinkedList-luokan aliluokka, jonka ilmentymä muodostaa Soinnuuttelijan kuulusteltavan sointuryhmän. Luokan final static -kenttiin on tallennettu Soinnuuttelijan tuntemat kuulustelukokonaisuudet, ja luokan konstruktori osaa muodostaa kaikki Soinnuuttelijan tuntemat soinnut ja intervallit. Soinnusto:sta löytyvät metodit sointujen arpomiseen ja kysymiseen ja vastausten tarkastamiseen, joten oikeastaan luokka sisältää kaiken Soinnuuttelijan viisauden. Luokan ilmentymä pitää myös kirjaa oikeista ja vääristä vastauksista sekä muodostaa ja suorittaa säikeet Sointu:jen soittamiseksi.

Pääohjelmaluokan Soinnuuttelija vastuulle jää Soinnuuttelija- sovelluksen ja -sovelman käyttöliittymät. Luokka pyytää käyttäjää valitsemaan kuulustelukokonaisuuden Soinnusto:n RYHMÄSTÖNIMET-String-taulukon alkioista muodostetulta listalta ja luo käyttöönsä Soinnusto:n ilmentymän antaen tämän konstruktorille parametriksi käyttäjän valinnan mukaista RYHMÄSTÖNIMET-taulukon indeksiä vastaavan RYHMÄSTÖT-int[][]-taulukon int[]-alkion. Soinnuuttelija välittää käyttäjän antamat vastaukset Soinnusto:lle, joka tarkistaa ne Sointu-olion onko()- metodilla ja antaa Soinnuuttelija:lle valmiit palautteet tulostettavaksi käyttäjälle.

Kuvassa 2 esitetyn luokkakaavion muut luokat ovat Javan valmista kalustoa.

Testauksesta ja bugeista

Tekstipohjaisen Soinnuuttelija-sovelluksen on testattu toimivan JRE 1.3:n alla Linux 2.2:ssa sekä Windows NT 4:ssä ja 2000:ssa. Soinnuuttelija-sovelmaa on testattu mainituissa käyttöjärjestelmissä SDK 1.3:n Applet Viewer -apuohjelmalla, sekä Linuxissa Netscape 6:ssa. Testauksen aikana on pyritty soitattamaan jokainen sointu ja intervalli ainakin kerran, on testattu kaikkien sointuryhmien toimivuudet ja ohjelman ohjeiden mukaisen käytön lisäksi sen virheenkestävyyttä on koeteltu myös kaikenlaisilla epäloogisilla komennoilla ja valinnoilla.

Soinnuuttelijan version 1.0 testauksen aikana on havaittu seuraavat puutteet:

Pakkauksen soinnuuttelija-1.0_src.tar.gz tiedostossa soinnuuttelija/src/testiajo.lst on listaukset tekstipohjaisen sovelluksen testauksesta. Testiajon aluksi varmistettiin sointuryhmien toimivuudet, ja varmistettiin, että sointujen soitto katkeaa heti, kun sointuryhmän kuulustelu keskeytetään. Seuraavaksi varmistettiin, että intervallit soitetaan API-kuvauksen määrittelyn mukaisesti käynnistysargumenteilla $-4$ - 4. Lopuksi suoritettiin vielä yleinen testiajo, jonka aikana kaikki soinnut ja intervallit pyrittiin soittamaan ainakin kerran. Tällä testillä varmistettiin yksittäisten sointujen toimivuudet ja testattiin reagointia erilaisiin syötteisiin.

Soinnuuttelijan versiossa 1.0.14 on korjattu kohdassa 1.2 mainitut virheet.


next up previous contents
Next: Tästä dokumentista ... Up: Sointu- ja intervalliutelija Soinnuuttelija v1.0 Previous: Käyttöohje   Sisältö
Johan Brunberg 2001-03-04