Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät, termit ja lyhenteet...4 1.4. Viitteet...4 1.5. Yleiskatsaus dokumenttiin...4 2. Yleiskuvaus...6 2.1. Sovellusalueen kuvaus...6 2.2. Järjestelmän liittyminen ympäristöönsä...6 2.3. Laitteistoympäristö...6 2.4. Ohjelmistoympäristö...6 3. Arkkitehtuurin kuvaus...7 3.1. Suunnitteluperiaatteet...7 3.2. Tietokanta-arkkitehtuuri...7 3.3. Ohjelmistoarkkitehtuurit, moduulit ja prosessit...7 4. Luokkien kuvaukset...8 4.1. MPEGContainer...8 4.1.1. Yleiskuvaus...8 4.1.2. Rajapinnat ja liittymät...8 4.1.3. Rakenne ja toteutus...8 4.1.4. Virheenkäsittely...9 4.2. MPEGFile...9 4.2.1. Yleiskuvaus...9 4.2.2. Rajapinnat ja liittymät...9 4.2.3. Rakenne ja toteutus...9 4.2.4. Virheenkäsittely...9 4.3. CoordinateMark...9 4.3.1. Yleiskuvaus...9 4.3.2. Rajapinnat ja liittymät...9 4.3.3. Rakenne ja toteutus...9 4.3.4. Virheenkäsittely...9 4.4. RectangleCoordinateMark...9 4.4.1. Yleiskuvaus...9 4.4.2. Rajapinnat ja liittymät...9 4.4.3. Rakenne ja toteutus...10 4.4.4. Virheenkäsittely...10 4.5. EllipseCoordinateMark...10 4.5.1. Yleiskuvaus...10 4.5.2. Rajapinnat ja liittymät...10 4.5.3. Rakenne ja toteutus...10 4.5.4. Virheenkäsittely...10 5. Erityiset tekniset ratkaisut...11 Toiminnallinen määrittely: Editori 2
5.1. MPEG-2-videon käsittely...11 6. Hylätyt ratkaisuvaihtoehdot...12 Versio Päiväys Tekijä Kuvaus 0.1 11.12.01 Tuomas Lindström Alustava luonnos Toiminnallinen määrittely: Editori 3
1. Johdanto 1.1. Tarkoitus ja kattavuus Tämän dokumentin tarkoituksena on määritellä editorin toiminnallisen määrittelyn mukaisten toimintojen teknisen toteutuksen. Järjestelmän muista osista tehdään erilliset tekniset määrittelyt. 1.2. Tuote ja ympäristö Tuote on kuvattu toiminnalisen määrittelyn kohdassa 1.2 [2]. 1.3. Määritelmät, termit ja lyhenteet Koko projektiin liittyvät määritelmät, termit ja lyhenteet on esitetty erillisessä liitteenä olevassa dokumentissa. 1.4. Viitteet Tekninen määrittely perustuu seuraaviin muihin projektiryhmän tuottamiin dokumentteihin: [1] MHP Esitutkimus [2] Toiminnallinen määrittely: editori 0.5, 5.12.2001 1.5. Yleiskatsaus dokumenttiin Dokumentti jakautuu seitsemään eri lukuun. Ensimmäinen luku on johdanto ja se kuvaa dokumentin tarkoitusta ja laajuutta sekä esittelee tuotteen pääpiirteittäin. Toinen luku kuvaa tuotteen käyttö-, laitteisto- ja ohjelmistoympäristön. Kolmannessa luvussa käsitellään editorin arkkitehtuuria ja suunnittelumenetelmiä. Neljännessä luvussa käydään luokkakohtaisesti läpi editorin tekninen toteutus. Viides luku kuvaa editorissa käytetyt erityiset tekniset ratkaisut. Kuudenteen lukuun on dokumentoitu hylätyt ratkaisuvaihtoehdot perusteluineen. Toiminnallinen määrittely: Editori 4
Toiminnallinen määrittely: Editori 5
2. Yleiskuvaus 2.1. Sovellusalueen kuvaus Sovellusalue on kuvattu erillisessä dokumentissä [1]. 2.2. Järjestelmän liittyminen ympäristöönsä Editori toimii täysin itsenäisenä sovelluksena. 2.3. Laitteistoympäristö Laitteistoympäristö on kuvattu dokumentissa Toiminnallinen määrittely kohdassa 7.2 [2]. 2.4. Ohjelmistoympäristö Editori toimii MS Windows ympäristössä, johon on asennettu JDK 1.2.2. Toiminnallinen määrittely: Editori 6
3. Arkkitehtuurin kuvaus 3.1. Suunnitteluperiaatteet Suunnittelu perustuu oliosuunnitteluun, koska Editorin ohjelmointikielenä on Java. Lähtökohtana suunittelussa on hyödyntää Javan valmiita kirjastoja mahdollisimman tehokkaasti. Modulaarisuus on toinen suunnittelun perusta. Selkeiden rajapintojen käyttö toteutuksessa helpottaa eri osien itsenäistä toteuttamista ja yhteen liittämistä. 3.2. Tietokanta-arkkitehtuuri Editori tallentaa koordinaattimerkinnät XML-muotoiseen tiedostoon. 3.3. Ohjelmistoarkkitehtuurit, moduulit ja prosessit MPEGContainer CoordinateMark MPEGFile MPEGDecoder Java Native Interface Mark Dekooderi C-ohjelma Kuva 3.1: Editorin arkkitehtuuri, moduulit ja rajapinnat. Editori koostuu käyttöliittymästä, joka näyttää videokuvan, jonka päälle koordinaattimerkintöjä voidaan lisätä ja erillisestä MPEG-2 dekooderista, joka purkaa MPEG-2 muotoista videokuvaa. Editori käyttöliittymineen toteutetaan Javalla ja dekooderina on valmis C-kielinen dekooderiohjelma. Editori käyttää dekooderia Java Native Interfacea (JNI) käyttämällä. (Kuva 3.1) Toiminnallinen määrittely: Editori 7
4. Luokkien kuvaukset Kuva 4.1: Luokkakaavio Seuraavassa on kuvattu editorin tekninen toteutus luokkatasolla. Editorin luokkakaavio on kuvassa 4.1. MPEG-2 dekooderin käyttö on kuvattu luvussa 5. Erityiset tekniset ratkaisut. 4.1. MPEGContainer 4.1.1. Yleiskuvaus MPEGContainer on editorin keskeisin luokka. Se toteuttaa editorin työskentelyalueen piirtämällä valitun videokuvan ja sen siältämät koordinaattimerkinnät. 4.1.2. Rajapinnat ja liittymät MPEGContainer laajentaa java.awt.container-luokan ja toteuttaa rajapinnat: java.awt.event.actionlistener, java.awt.event.mouselistener ja java.awt.event.mousemotionlistener. MPEGContainer keskustelee MPEG-2 tiedostoa purkavan moduulin kanssa käyttäen MPEGFile-rajapintaa. Koordinaattimerkinnät liitetään MPEGContainer-luokkaan CoordinateMarkrajapinnan kautta. 4.1.3. Rakenne ja toteutus MPEGContainer perii java.awt.container-luokan. Container-olio voi sisältää useita java.awt.component-olioita ja tätä ominaisuutta MPEGContainer käyttää hyväksi. MPEGContainer lukee MPEGFile-rajapinnan yli java.awt.image-tyyppisen kuvan, joka piiretään ruudulle. Kuvaan liittyvät Toiminnallinen määrittely: Editori 8
koordinaattimerkinnät luetaan XML-tiedostosta taulukkoon ja ne piirretään ruudulle. 4.1.4. Virheenkäsittely 4.2. MPEGFile 4.2.1. Yleiskuvaus MPEGFile on rajapinta, jonka läpi MPEGContainer-luokka keskustelee MPEG-2 tiedostoa purkavan moduulin. 4.2.2. Rajapinnat ja liittymät MPEGFile on rajapinta, joka edustaa MPEG-2 tiedostoa. 4.2.3. Rakenne ja toteutus Rajapinta määrittelee toteutettaviksi metodeiksi tiedoston lataamisen, tietyn videon kohdan etsimisen, kuvan palauttamisen java.awt,image-tyyppisenä ja kuvan koon palauttamisen. 4.2.4. Virheenkäsittely 4.3. CoordinateMark 4.3.1. Yleiskuvaus Rajapinta erilaisille koordinaattimerkinnöille. 4.3.2. Rajapinnat ja liittymät CoordinateMark on rajapinta, joka edustaa koordinaattimerkintää. 4.3.3. Rakenne ja toteutus Rajapinta määrittelee toteutettaviksi metodeiksi koordinaattimerkin piirtämisen ja tarkistuksen syötetyn koordinaatin kuulumisesta koordinaattimerkinnän alueeseen. 4.3.4. Virheenkäsittely 4.4. RectangleCoordinateMark 4.4.1. Yleiskuvaus Nelikulmion muotoinen koordinaattimerkintä. 4.4.2. Rajapinnat ja liittymät RectangleCoordinateMark toteuttaa CoordinateMark-rajapinnan. Toiminnallinen määrittely: Editori 9
4.4.3. Rakenne ja toteutus 4.4.4. Virheenkäsittely 4.5. EllipseCoordinateMark 4.5.1. Yleiskuvaus Ellipsin muotoinen koordinaattimerkintä. 4.5.2. Rajapinnat ja liittymät EllipseCoordinateMark toteuttaa CoordinateMark-rajapinnan. 4.5.3. Rakenne ja toteutus 4.5.4. Virheenkäsittely Toiminnallinen määrittely: Editori 10
5. Erityiset tekniset ratkaisut 5.1. MPEG-2-videon käsittely MPEG-2-tiedostoa luetaan ja puretaan C-kielisessä erillisessä dekooderiohjelmassa, jota käytetään Java Native Interfacen yli. Java-luokka MPEGDecoder toteuttaa MPEGFile-rajapinnan käyttäen JNI-metodeja, jotka ovat toteutettu C-kielellä dekooderi-ohjelmaan. Toiminnallinen määrittely: Editori 11
6. Hylätyt ratkaisuvaihtoehdot Toiminnallinen määrittely: Editori 12