Kokako - projekti

 

 

Sovellusraportti

 

 

Honkonen Tapio

Lamminen Turo

Räsänen Tuomas

Väärämäki Tapio

 

 

 

 

 

Versio 0.5

Julkinen

24. elokuuta 2006

 

Jyväskylän Yliopisto

Tietotekniikan Laitos

Jyväskylä


 

Hyväksyjä

Päivämäärä

Allekirjoitus

Nimenselvennys

Projektipäällikkö

___.___.2006

 

 

Tilaaja

___.___.2006

 

 

Tilaaja

___.___.2006

 

 

Ohjaaja

___.___.2006

 

 


Tietoa dokumentista

 

Tekijät:


Dokumentin nimi: Kokako-projekti, Sovellusraportti

Sivumäärä: 40

Tiedosto: Sovellusraportti.doc


Tiivistelmä: Sovellusraportti kuvaa miten vaatimusmäärittelyssä ja sovellussuunnitelmassa esitetyt vaatimukset ja ohjelmalliset komponentit toteutettiin ja mitä komponentteja jäi jatkokehityksen varaan. Lisäksi dokumentissa käydään läpi sovelluksen moduulit, luokat ja luokkien tärkeimmän metodit ja niiden toiminnallisuudet.

 

Avainsanat: sovelluksen arkkitehtuuri, opinto-opas, julkaisuprosessi, koostaminen, sovellusraportti


Muutoshistoria



Versio

Päivämäärä

Muutokset

Tekijät

0.1

6.6.2006

Sovellusraportin kirjoittaminen alkoi. Raportin perusrakenteen luominen.

Honkonen Tapio

0.2

14.6.2006

Asetettujen tavoitteiden toteutumisen tarkastelu.

Honkonen Tapio

0.3

3.7.2006

Sovelluksen jatkokehitys.

Honkonen Tapio

0.4

11.7.2006

Sovelluksen luokka- ja metodikuvaukset.

Honkonen Tapio

0.41

1.8.2006

Sovelluksen luokka- ja metodikuvaukset.

Honkonen Tapio

0.42

10.8.2006

Sovelluksen luokka- ja metodikuvaukset sekä jatkokehitystä.

Honkonen Tapio

0.43

17.8.2006

Raportin viimeistely tarkastukseen

Honkonen Tapio

0.44

18.8.2006

Raportin viimeistely tarkastukseen.

Honkonen Tapio

0.5

24.8.2006

Raportin viimeistely ohjaajan kommenttien mukaan.

Honkonen Tapio

 


Tietoa projektista


Kokako-projekti edelleenkehittää opinto-oppaan koostamistyökalua Jyväskylän yliopiston Informaatioteknologian tiedekunnalle. Työkalusta on tarkoitus laatia niin yleis- ja helppokäyttöinen, että sitä on mahdollista käyttää vastaaviin tarkoituksiin esimerkiksi muissa tiedekunnissa. Ensisijaisesti on tarkoitus toteuttaa ympäristö opinto-oppaaseen tulevien XML-dokumenttien luontiin ja niiden tyyppimääritysten muuntaminen Xoo-projektin luoman luku.dtd:n mukaiseksi. Tämän jälkeen on tarkoitus toteuttaa olemassa olevaan koostamistyökaluun helppokäyttöisempi käyttöliittymä sekä dokumenttien käsittelyyn tarvittava versionhallinta.


Tekijät:

Tilaaja:

·        Ihanainen Eija                  opintoasiat@it.jyu.fi                        014 260 2791

·        Auer Antti                       auer@jyu.fi                                     014 260 4319

·        Honkaranta Anne            anne.honkaranta@it.jyu.fi                014 260 3041

·        Nurminen Miika               minurmin@jyu.fi                              014 260 2530

·        Lappalainen Vesa            vesal@mit.jyu.fi                              014 260 2722

Ohjaajat:

Yhteystiedot:

                                                   kokako06_opetus@korppi.jyu.fi

                                                   kokako_opis.group@korppi.jyu.fi

                                                   https://korppi.jyu.fi/list-archive/kokako06_opetus


Sisältö

1 Johdanto.. 1

1.1       Dokumentin tarkoitus. 1

1.2       Toteuttavan sovelluksen taustaa ja tavoitteita.. 2

1.3       Sovellukseen liittyvä termistö.. 3

2      Ohjelman rakenne ja sen komponentit.. 4

2.1       Sovelluksen ohjelmistokomponentit. 5

2.1.1 Sisäänkirjautuminen. 6

2.1.2 Sisällöntuottajan käyttöliittymä. 6

2.1.3 Koostajan käyttöliittymä. 6

2.1.4 Editorikäyttöliittymä. 7

2.1.5 Versionhallintajärjestelmä. 7

2.1.6 Koostamisskripti ja julkaisuskripti 7

2.1.7 Korpin kurssikuvaukset- ja henkilökunnan yhteystiedot-liitäntä. 7

3      Käyttöliittymä.. 8

3.1       Tiedostonäkymä.. 8

3.2       Rakennemalli 9

3.3       Esikatselu.. 9

3.4       Painikerivi 9

3.5       Editorikäyttöliittymä.. 10

4      Sovelluksen luokkarakenne.. 11

4.1       Kayttoliittyma.. 11

4.1.1 Kayttoliittyma.java. 11

4.1.2 Main.java. 11

4.2       Actions. 12

4.2.1 AboutAction.java. 12

4.2.2 BuildProjAction.java. 12

4.2.3 DeleteChapterAction. 12

4.2.4 EditDocAction.java. 12

4.2.5 EditProjMetaAction.java. 13

4.2.6 EditXMLAction.java. 13

4.2.7 ExitAction.java. 13

4.2.8 HelpAction.java. 13

4.2.9 NewDocAction.java. 13

4.2.10 NewProjAction.java. 14

4.2.11 OptionsAction.java. 14

4.2.12 PreviewHTMLAction.java. 14

4.2.13 PreviewPDFAction.java. 14

4.2.14 ToCVSAction.java. 14

4.3       Beans. 15

4.3.1 JFileTree.java. 15

4.4       Datatransfer.. 15

4.4.1 FileNodeTransferHandler.java. 15

4.5       Dialogs. 16

4.5.1 EditDocDialog.java. 16

4.5.2 LoginDialog.java. 16

4.5.3 NewDocDialog.java. 17

4.5.4 NewProjDialog.java. 17

4.5.5 OptionsDialog.java. 18

4.6       Events. 18

4.6.1 OOoEventListener.java. 18

4.7       Filters. 18

4.7.1 FilterByName.java. 18

4.7.2 FilterByQualifiedName.java. 18

4.8       Helper.. 19

4.8.1 MultiLang.java. 19

4.8.2 OOoHelper.java. 19

4.8.3 RandomHelpers.java. 20

4.9       IO.. 20

4.9.1 FileFilterFC.java. 20

4.9.2 LogWriter.java. 20

4.9.3 ModFileChooser.java. 21

4.9.4 OptionReader.java. 21

4.10    Kooste.. 21

4.10.1 Alaluku.java. 21

4.10.2 HasID.java. 21

4.10.3 KoosteException.java. 21

4.10.4 Laatija.java. 21

4.10.5 Luku.java. 22

4.10.6 Luvut.java. 22

4.10.7 OpasKooste.java. 22

4.10.8 OpasMeta.java. 22

4.11    Tree.. 23

4.11.1 FileTreeCellRenderer.java. 23

4.11.2 FileTreeModel.java. 23

4.11.3 FileTreeNode.java. 23

4.11.4 ProjectDir.java. 23

4.11.5 ProjectFile.java. 23

4.11.6 XMLStructTreeCellRenderer.java. 23

4.11.7 XMLStructTreeModel.java. 23

4.11.8 MLStructTreeNode.java. 23

4.12    XML.. 24

4.12.1 Dokutieto.java. 24

4.12.2 Luku2odt.java. 24

4.12.3 LukudtdFilenameFilter.java. 24

4.12.4 Odt2luku.java. 24

4.12.5 ODTModListener.java. 24

4.12.6 ReloadXMLs.java. 24

4.12.7 Versio.java. 25

4.12.8 XSLTester.java. 25

4.12.9 XSLTTrans.java. 25

5      Asetettujen tavoitteiden toteutuminen.. 26

5.1       Sovelluksen ohjelmalliset vaatimukset. 26

5.2       Sovelluksen ohjelmallisten vaatimusten toteutuminen.. 28

5.3       Sovelluksen tekniset vaatimukset ja niiden toteutuminen.. 29

5.4       Testaus. 29

6      Sovelluksen jatkokehitys. 30

6.1       Sovelluksen ohjelmalliset jatkokehitysideat. 30

7      Yhteenveto.. 31

8      Viitteet.. 31


Kuvaluettelo

 

Kuva 1: Opinto-oppaan julkaisuprosessi 4

Kuva 2: Sovelluksen ohjelmistokomponentit 5

Kuva 3: Sisäänkirjautumisikkuna. 6

Kuva 4: Käyttöliittymä. 8


Taulukkoluettelo

Taulukko 1: Käyttöliittymä.java metodit 11

Taulukko 2: Main.java metodit 11

Taulukko 3: AboutAction.java metodit 12

Taulukko 4: BuildProjAction.java metodit 12

Taulukko 5: DeleteChapterAction.java metodit 12

Taulukko 6: EditDocDialog.java metodit 12

Taulukko 7: EditProjMetaAction.java metodit 13

Taulukko 8: EditXMLAction.java metodit 13

Taulukko 9: ExitAction.java metodit 13

Taulukko 10: HelpAction.java metodit 13

Taulukko 11: NewDocAction.java metodit 13

Taulukko 12: NewProjAction.java metodit 14

Taulukko 13: OptionsAction.java metodit 14

Taulukko 14: PreviewHTMLAction.java metodit 14

Taulukko 15: PreviewPDFAction.java metodit 14

Taulukko 16: JFileTree.java metodit 15

Taulukko 17: FileNodeTransferHandler.java metodit. 15

Taulukko 18: EditDocDialog.java metodit 16

Taulukko 19: LoginDialog.java metodit 16

Taulukko 20: NewDocDialog.java metodit 17

Taulukko 21: NewProjDialog.java metodit 17

Taulukko 22: OptionsDialog.java metodit 18

Taulukko 23: OOoEventListener.java metodit 18

Taulukko 24: FilterByName.java metodit 18

Taulukko 25: FilterByQualifiedName.java metodit 18

Taulukko 26: MultiLang.java metodit 19

Taulukko 27: OOoHelper.java metodit 19

Taulukko 28: RandomHelpers.java. 20

Taulukko 29: FileFilterFC.java metodit 20

Taulukko 30: LogWriter.java metodit 20

Taulukko 31: ModFileChooser.java metodit 21

Taulukko 32: OptionReader.java metodit 21

Taulukko 33: Alaluku.java metodit 21

Taulukko 34: Laatija.java metodit 21

Taulukko 35: Luku.java metodit 22

Taulukko 36: Luvut.java metodit 22

Taulukko 37: OpasKooste.java metodit 22

Taulukko 38: OpasMeta.java metodit 22

Taulukko 39: FileTreeNode.java metodit 23

Taulukko 40: Dokutieto.java metodit 24

Taulukko 41: ODTModListener.java metodit 24

Taulukko 42: Versio.java metodit 25

Taulukko 43: XSLTTrans.java metodit 25

Taulukko 44: Sovelluksen yleiset vaatimukset 26

Taulukko 45: Sisällöntuottajan käyttötapauksien vaatimukset 27

Taulukko 46: Koostajan käyttötapauksien vaatimukset 27

Taulukko 47: Sovelluksen yleisten vaatimusten toteutuminen. 28

Taulukko 48: Sisällöntuottajan käyttötapauksien vaatimusten toteutuminen. 28

Taulukko 49: Koostajan käyttötapauksien vaatimusten toteutuminen. 29

Taulukko 50: Sovelluksen teknilliset vaatimukset ja niiden toteutuminen. 29

Taulukko 51: Sovelluksen ohjelmalliset jatkokehitysideat 30

 


1 Johdanto

Kokako-projekti oli kevään -06 Jyväskylän yliopiston Tietotekniikan laitoksen sovellusprojekti. Projektin tarkoituksena oli kehittää opinto-oppaan laatimis- ja koostamistyökalua Jyväskylän yliopiston informaatioteknologian tiedekunnalle. Työkalusta oli tarkoitus laatia niin yleis- ja helppokäyttöinen, että sitä olisi mahdollista käyttää vastaaviin tarkoituksiin esimerkiksi muissa tiedekunnissa. Sitä tulee käyttämään kaksi eri käyttäjäryhmää, dokumentin sisällöntuottaja ja koostaja. Työkalun tarkoituksena on tehdä lähdedokumenteista yhtenäisiä ja täten helpottaa koostajan työtä automatisoimalla koostamisprosessia.

Kokako-projekti oli jatkoa XooZoo- ja Xoo-projekteille. XooZoo-projektin tehtävänä oli informaatioteknologian tiedekunnan (myöhemmin tekstissä IT-tiedekunta) opinto-oppaan hallinnan, sisällön ja rakenteen kehittäminen. Projekti keskittyi tutkimukseen ja suunnitteluun. Käytännön toteutukselle jäi vähemmän aikaa, ja niinpä projekti jatkui Xoo-jatkoprojektilla, jonka tehtävänä oli viedä XooZoo-projektissa aloitettu työ loppuun.

 

Xoo-projekti koosti IT-tiedekunnalle opinto-oppaan XooZoo-projektissa saatujen tuloksien pohjalta. Koostamistyössä havaittiin kuitenkin vielä useita puutteita, joista halutaan eroon. Kokako-projektin tehtävänä oli jatkaa koostamisjärjestelmän kehittämistä edelleen.

 

Kokako-projektin tarkoitus oli ensisijaisesti toteuttaa ympäristö opinto-oppaaseen tulevien XML-dokumenttien luontiin ja niiden tyyppimääritysten muuntaminen Xoo-projektin luoman luku.dtd:n mukaiseksi. Tämän jälkeen oli tarkoitus totetuttaa olemassa olevaan koostamistyökaluun helppokäyttöisempi käyttöliittymä sekä dokumenttien käsittelyyn tarvittava versionhallinta.

1.1      Dokumentin tarkoitus

Tämä dokumentti kuvaa miten sovelluksella asetetut vaatimukset toteutuivat. Koska järjestelmä jäi keskeneräiseksi, kuvataan tässä dokumentissa myös sovelluksen tämänhetkinen tila sekä jatkokehitystarpeet. Dokumentissa kuvataan myös projektin ratkaisuja sovelluksen avaintoimintojen kohdalta ja niiden eroja sovellussuunnitelmassa esiteltyihin ratkaisuihin sekä syyt miksi näin on tehty.


1.2      Toteuttavan sovelluksen taustaa ja tavoitteita

Jyväskylän yliopiston IT-tiedekunta on julkaissut vuosittain opinto-oppaan uusille ja vanhoille opiskelijoille. Opinto-oppaan laatiminen koostuu useasta eri työvaiheesta, joita ovat mm. sisällöntuotanto ja koostaminen. Käytännössä opinto-oppaan laatimisprosessi käynnistyy sisällöntuottamisella, jossa kukin sisällöntuottajat laatii oman osuutensa opinto-opasta varten. Tämän jälkeen koostaja kokoaa erilliset dokumentit yhdeksi kokonaisuudeksi ja huolehtii samalla dokumentin taittamisesta. Koostamisprosessi on ollut melko työläs, koska sisällöntuottajat ovat toimittaneet omat osadokumenttinsa erilaisilla tyylimäärittelyillä varustettuna, ja niistä on pitänyt koostaa yksi yhtenäinen dokumentti. Koostamisvaiheessa on siten jouduttu tekemään paljon manuaalista työtä, joka on koettu varsin raskaaksi ja ehkäpä hieman turhaksikin.

 

XooZoo-projektista lähtien opinto-oppaan eri luvut on kirjoitettu XML-muotoon. Se on kuitenkin havaittu liian työlääksi ja vaikeaksi tavallista käyttäjää ajatellen.  Nyt on tarve kehittää editorikäyttöliittymä, jonka avulla käyttäjät pystyvät kirjoittamaan XML-dokumentteja ilman erityistä XML-osaamista.

 

Varsinaisen sisällöntuotannon lisäksi sovelluksella pitää pystyä koostamaan useat eri XML-dokumentit yhdeksi yhtenäiseksi dokumentiksi. Tarvittaessa koostamis- ja sisällöntuotantotyökalut saattavat olla täysin erillisiäkin sovelluksia.

 

Tavoitteena on luoda sellainen sovelluskokonaisuus, jonka avulla sisällöntuottajien on mahdollista luoda tyylimäärittelyiltään yhtenäisiä dokumentteja opinto-opasta varten. Sovelluksen tulee pystyä myös koostamaan nämä dokumentit automaattisesti – tai korkeintaan hyvin pienellä manuaalisella työllä – yhdeksi suureksi XML-dokumentiksi, ja muuntaa tämä XML-dokumentti joko PDF- tai HTML-muotoon.

 

Sovelluksen luonteesta johtuen sen käyttömahdollisuudet eivät rajoitu vain opinto-oppaan tuottamisprosessiin. Koostamis- ja sisällöntuotanto-ominaisuuksia on mahdollista hyödyntää kaikissa sellaisissa prosesseissa, joissa on tarvetta koostaa yksi dokumentti useasta pienemmästä osadokumentista. Opinto-oppaiden lisäksi tällaisia dokumentteja ovat ainakin valintaopas ja erilainen oppimateriaali.

 


1.3      Sovellukseen liittyvä termistö

Tässä luvussa kuvataan sovellussuunnitelmassa esille tulleita termejä.

XML (eXtensible Markup Language

on metakieli, jolla määritellään rakenteisia merkkauskieliä. XML- ja HTML-merkkauskielten erona on se, että HTML-merkkauskielessä käytetään ennalta määriteltyjä merkkaustunnisteita, kun taas XML-merkkauskielen dokumenteille voi laatia sovellus- ja aihekohtaisia omia merkkauskieliä skeemamääritystä käyttäen. XML siis tarjoaa syntaksin ja merkkaussäännöt, joiden pohjalta voidaan määritellä omia merkkauskieliä.

DTD (Document Type Definition)

Määrittää rakenteisen dokumentin skeeman. Tämän avulla XML-prosessorille kerrotaan mitä elementtejä ja attribuutteja dokumentti  saa sisältää, missä järjestyksessä ne saavat ilmetä ja mitkä ovat niiden keskinäiset suhteet.

Luku.dtd

on opinto-oppaan koostamistyökalun käyttämä DTD. Tämä on opinto-oppaan tekstilukujen käyttämä DTD-määritys. (Opinto-oppaan koostaminen perustuu kooste.dtd-määritykseen).

OpenOffice 2.0

on Microsoft Officen kaltainen ohjelma, josta löytyy hyvin pitkälti samat ominaisuudet. OpenOfficea on tarkoitus käyttää dokumenttien tuottamis- ja muokkausohjelmana opinto-oppaan tuottamisprosessissa.

XSLT (Extensible Style Language and Transformations)

on laajasti käytetty  XML-dokumenttin muunnoskieli. Tyypillisiä XSLT:n sovelluskohteita ovat XML-aineiston muunnokset toiseen XML-merkkauskielen mukaiseksi, HTML-muotoon tai tekstiksi.

 

 

 


2         Ohjelman rakenne ja sen komponentit

Tässä luvussa kuvataan yleisesti sovelluksen rakennetta ja sen sisältämiä komponentteja. Luvun tarkoituksena on kertoa, minkälaisia komponentteja toteutettiin ja mitkä jäivät toteuttamatta. Osa luvussa mainituista komponenteista oli jo olemassa kun sovelluksen kehitys alkoi. Tämä luku kuvaa eri komponenttien kehitystilan ja priorisoi komponenttien jatkokehitystarvetta. Luvun pohjana toimii opinto-oppaan julkaisuprosessia kuvaava kaaviokuva, joka on esitetty alla (kuva 1). Kuvan käyttäjäryhmistä on kerrottu tarkemmin vaatimusmäärittelyssä[1].

 

Kuva 1: Opinto-oppaan julkaisuprosessi

 

 


2.1      Sovelluksen ohjelmistokomponentit

Julkaisuprosessin läpiviemiseen tarvitaan Kokako-projektissa kehitettävää sovellusta. Se on mahdollista jakaa eri komponentteihin kuvan 2 mukaisesti:

Kuva 2: Sovelluksen ohjelmistokomponentit

Seuraavissa alaluvuissa kerrotaan kustakin komponentista ja niiden liitännästä kehitettävään sovellukseen. Komponenttien kehitysastetta vaatimusmäärittelyyn nähden tarkastellaan myöhemmin luvussa 5.


2.1.1 Sisäänkirjautuminen

Sisäänkirjautuminen toteutettiin sovelluksen tässä versiossa ilman Korppi-kytkentää. Käyttäjä ainoastaan syöttää omat tietonsa sisäänkirjautumisikkunaan ja ne tallennetaan XML-tiedostoon, josta ne haetaan käyttäjän seuraavan kerran kirjautuessa sisään. Tällöin käyttäjän ei tarvitse syöttää tietoja joka kerta vaan ainoastaan silloin kun tiedot muuttuvat. Kuva 3 esittää sisäänkirjautumisikkunaa.


Kuva 3: Sisäänkirjautumisikkuna

2.1.2 Sisällöntuottajan käyttöliittymä

Sisällöntuottajan käyttöliittymää ei sovelluksen tässä versiossa toteutettu lainkaan. Ainoastaan koostajan käyttöliittymä toteutettiin ja siitä seuraavassa alaluvussa.

2.1.3 Koostajan käyttöliittymä

Koostajan käyttöliittymään toteutettiin hyvin pitkälti toiminnot mitä vaatimusmärittelyssä esiteltiin. Niiden toiminnan tasosta kerrotaan enemmän luvussa 5. Käyttöliittymään toteutettiin seuraavat toiminnallisuudet:

Koostajan käyttöliittymästä enemmän luvussa 3, jossa kuvataan käyttöliittymää ja sen toiminnallisuutta tarkemmin.


2.1.4 Editorikäyttöliittymä

Editorikäyttöliittymä pohjautuu OpenOfficen Write –sovellukseen, jonka toiminallisuutta on rajoitettu voimakkaasti. Uusien dokumenttien laatiminen perustuu olemassa olevaan dokumenttipohjaan, johon on sisällytetty kaikki sallitut tyylimäärittelyt. Editorikäyttöliittymä sisältää tallenna-painikkeen, jota painaessa käyttäjän muokkaama dokumentti tallennetaan ensin ODT-muotoon ja muunnetaan sen jälkeen XSLT-muunnoksella XML-muotoon. Mikäli käyttäjä muokkaa aiemmin laatimiaan dokumentteja, niin silloin vastaava muunnos tehdään toiseen suuntaan, eli XML-dokumentti muunnetaan takaisin ODT-muotoon. Editorikäyttöliittymän toteutuksen tasoa tarkastellaan luvussa 5.

2.1.5 Versionhallintajärjestelmä

Versionhallintajärjestelmää ei toteutettu laisinkaan sovelluksen tässä versiossa vaan se jää täysin jatkokehityksen varaan.

2.1.6  Koostamisskripti ja julkaisuskripti

Koostamisskriptiä muokattiin hieman sovelluksen vaatimusten mukaan, mutta isompia muutoksia siihen ei varsinaisesti tullut. Ainoastaan hakemistorakennetta muokattiin hiukan.

2.1.7  Korpin kurssikuvaukset- ja henkilökunnan yhteystiedot-liitäntä

Tämä komponentti oli valmiina kun sovellusta alettiin kehittämään. Tarkoituksena oli ainoastaan integroida tämä komponentti käyttöliittymään. Tätä integrointia ei toteutettu vaan se jää jatkokehityksen tehtäväksi.


3         Käyttöliittymä

Sovelluksen käyttöliittymä koostuu ohjelmistokomponenteista, jotka ohjaavat sovelluksen eri toiminnallisuuksia.

Seuraavissa alaluvuissa esitellään kutakin ohjelmistokomponenttia ja niiden käyttöliittymää hieman tarkemmin. Koostamiskäyttöliittymä, eli sovelluksen pääasiallisen käyttöliittymä on esitetty kuvassa 4:


Kuva 4: Käyttöliittymä

3.1      Tiedostonäkymä

Tiedostonäkymä (kuvan 4 oikea palasta) näyttää käyttäjälle mitä tiedostoja on muokattavissa. Tiedostojen täytyy olla tietyssä hakemistossa, joka on erikseen määritelty. Käyttäjällä on käytössä sisältödokumentteja listaavan tiedostonäkymän lisäksi myös toinen tiedostolistaus sovelluksen vasemmassa laidassa, Projektit­-otsakkeen alla, jossa esitetään luodut koostedokumentit. Koostedokumentteja ovat esimerkiksi opinto-opas koosteet vanhoille ja uusille opiskelijoille. Koostedokumentit sisältävät tiedot koosteen rakenteesta ja siihen sisällytettävistä dokumenteista. Projektit-otsakkeella tarkoitetaan sitä, että koostedokumenttien kohdalla kyse on suurista dokumenttikokonaisuuksista, kuten opinto- tai valintaoppaasta. Dokumenti­t-otsakkeen alla on puolestaan yksittäisiä sisältödokumentteja, jotka voi kuulua useisiin eri koostedokumentteihin.


3.2      Rakennemalli

Rakennemalli perustuu rakennepuuhun, joka ilmaisee koostedokumentin rakenteen. Koostedokumentit rakentuvat useista toisiinsa yhdistetyistä juurisolmuista, joita ovat esiluvut, tekstiluvut, liitteet ja takaluvut. Näiden solmujen ja niiden lapsisolmujen lisäksi rakennepuuhun kuuluu myös sisällysluettelo. Kukin juurisolmu edustaa tiettyä dokumenttikategoriaa, johon sisällytetään kategorian mukaisia dokumentteja. Vuoden 2005-2006 opinto-oppaan kohdalla esilukuja ovat mm. johdanto ja esipuhe, tekstilukuja oppaan varsinainen sisältö, liitteitä mm. johtosäännöt ja henkilötiedot sekä takalukuna kampusalueen kartta.

 

Sisältödokumenttien lisäämineen koosteeseen tapahtuu raahaamalla sisältödokumentti Dokumenti-tiedostonäkymästä johonkin rakennemallin solmukohtaan. Poistaminen tapahtuu valitsemalla haluttu luku rakennemallista, minkä jälkeen käyttäjä painaa näppäimistön delete-näppäintä. Lukujen keskinäisen järjestyksen muuttaminen on sovelluksen tässä versiossa mahdollista ainoastaan poistamalla siirrettävä dokumentti ja raahaamalla se uudestaan oikeaan kohtaan. Rakennemalli-kohdan näkymää päivitetään aina kun koostaja lisää tai poistaa siihen kuuluvia dokumentteja.

 

Käyttäjällä on mahdollisuus käynnistää valitsemansa koostedokumenttiin kuuluvan sisältödokumentin muokkaus valitsemalla sisältödokumentti puurakenteesta ja painamalla tämän jälkeen muokkaa dokumenttia -painiketta. Tämän toiminnallisuuden tarkoituksena on tukea sisällöntuottajia erityisesti pitkien lukujen muokkaamisessa ja navigoinnissa. Koostajan on puolestaan yksinkertaista tehdä pieniä korjauksia eri lukuihin, kun muokkausta kaipaava sisältödokumentti ja sen muokattava kohta löytyvät nopeasti. Muokkauksen toiminnan tasoa käsitellään luvussa 5.

3.3      Esikatselu

Esikatselun tehtävänä on näyttää käyttäjien tuottamat kooste- ja sisältödokumentit HTML- tai PDF-muodossa. Tässä sovelluksen versiossa on käytössä ainoastaan HTML-esikatselu ja PDF-esikatselu jää jatkokehityksen tehtäväksi. Esikatselun toiminnallisuuden tasoa tarkastellaan luvussa 5.

3.4      Painikerivi

Painikerivistä löytyy kaikki ne toiminnot, joilla tehdään muutoksia dokumentteihin ja tallennetaan tai julkaistaan niitä. Toiminnallisuuksia ovat seuraavast:

Kunkin painikkeen toiminto on selitetty vaatimusmäärittelyssä [1], toiminnon nimeä vastaavan käyttötapauksen kohdalla.

 

Lähes kaikki sisältödokumentteihin ja koosteisiin viittaavat painikkeet vaativat jonkin tiedoston valintaa tiedostonäkymästä ennen kuin painikkeita voi käyttää. Suurin osa painikkeista käynnistää jonkin skriptin tai valmiin ohjelmistokomponentin, joihin valittuna oleva tiedosto ilmoitetaan käynnistysparametrina.


3.5      Editorikäyttöliittymä

Editorikäyttöliittymäksi kutsutaan sovelluksen XML-editoria, joka toteutettiin rajaamalla OpenOffice Writerin toiminnallisuutta tarjoamalla käyttäjälle valmis dokumenttipohja. Sisältödokumenttien laatiminen XML-editorin avulla tapahtuu aivan kuten normaalien dokumenttien kirjoittaminen OpenOfficen Writer -sovelluksella. Tyylimäärittelyiden tekeminen poikkeaa perinteisestä dokumentin laadinnasta, koska se on mahdollista ainoastaan ohjelman tyylidialogissa tarjottujen tyylimääritteiden avulla.

 

Editorikäyttöliittymä käynnistetään aina kun käyttäjä painaa Uusi dokumentti- tai Muokkaa dokumentti –painikkeita. Editorin käynnistäminen tarkoittaa OpenOffice Writerin käynnistämistä eli se vaatii käyttäjän tietokoneelta huomattavasti resursseja.

 

Editorissa laaditut dokumentit tallennetaan luonnollisesti XML-muotoon. Tämä vaatii kuitenkin XSLT-muunnoksen, jolla OpenOfficen natiivimuodossa (ODT) oleva dokumentti muunnetaan XML-muotoon. Dokumentteja käsitellään siis editorissa ODT-muodossa ja ne muunnetaan tallennusvaiheessa XML-muotoon. Tästä johtuen Muokkaa dokumentti -painiketta painettaessa dokumentti joudutaan muuntamaan ensin XSLT-muunnoksella XML-muodosta takaisin ODT-muotoon, ennen kuin dokumenttia on mahdollista ryhtyä muokkaamaan.

 

Lisäksi dokumentteja pystyy myös muokkaamaan XML-muodossa valitsemalla Dokumentit valikosta  Muokkaa XML-tiedostoa -valinta, jolloin dokumentti avautuu käyttäjän määrittelemään XML-editoriin, josta sitä voi muokata XML-muodossa.

4         Sovelluksen luokkarakenne

Sovelluksen eri luokat ovat jaoteltu erilaisiin moduuleihin (eng. package), niiden toiminnallisuuksien ja roolien perusteella. Tällä jaottelulla pyritään siihen, että sovelluksen koodi on yksinkertaisempaa hallita, ja osakomponentti-ajattelu toteutuu myös käytännössä. Tässä luvussa esitellään ohjelman moduulit, niiden sisältämät luokat sekä luokkien olennaisimmat metodit.

4.1      Kayttoliittyma

Kayttoliittyma-moduuli sisältää varsinaisen käyttöliittymän alustamiseen ja luomiseen liittyvät luokat. Kaikki käyttöliittymän varsinaiset toiminnallisuudet löytyvät kuitenkin muista moduuleista kuten actions ja dialogs. Puunäkymät toteutetaan tree- ja beans-paketteihin kuuluvissa luokissa.

4.1.1 Kayttoliittyma.java

Tämä luokka on sovelluksen keskipiste. Täältä kutsutaan kaikkia luokkia liittyen sovelluksen ulkoasuun ja toiminnallisuuteen. Seuraavissa aliluvuissa käydään läpi luokan metodit.

Metodin nimi

Metodin kuvaus

getJTreeCenterKooste

Metodi hakee OpasKooste:n jTreeCenter:iltä ja palauttaa sen.

getSelectedFile

Palauttaa valitun tiedoston valitusta puusta. Jos puu ei ole haluttu puu, palauttaa null.

getJTreeRightRoot

Hakee jTreeRight:n juuren ja palauttaa sen.

setSelectedFile

Asettaa valitun tiedoston, kun se vaihtuu jossakin puussa.

writeKooste

Kirjoittaa Kooste.xml kun dukumentti laitetaan keskimmäiseen puuhun (jTreeCenter).

getKooste

Hakee ja palauttaa koosteen joka on aktiivisena käyttöliittymässä.

getMidTreeSelection

Palauttaa valitun luvun tai aliluvun projektipuusta (jTreeCenter) tai null, jos lukua ei ole valittu tai valittu komponenttiei ole luku.

Taulukko 1: Käyttöliittymä.java metodit

4.1.2 Main.java

Main.java on luokka, josta ohjelma lähtee pyörimään. Täällä tapahtuu kaikki ne toiminnot, jotka täytyy tehdä ennen Kayttoliittyma.java:n ajamista.

Metodin nimi

Metodin kuvaus

Main

Rakentaja ja metodi joka asettaa sovelluksen näkyviin.

main

Aloittaa sovelluksen ajamisen.

Taulukko 2: Main.java metodit


4.2      Actions

Actions-moduuli sisältää kaikki sovelluksen dialogi-kutsut, joita tarvitaan kun käyttäjä käynnistää valitsemansa toiminnon tai dialogin. Esimerkiksi uutta dokumenttia laadittaessa käyttäjä painaa Uusi dokumentti -painiketta, jolloin actions-moduuliin kuuluva NewDocAction-luokka kutsuu dokumentin luomisessa tarvittavaa NewDocDialog-dialogia. Varsinaisten toimintokutsujen lisäksi actions-moduuli sisältää kaikki toimintojen ulkoasuun liittyvät tiedot. Niitä ovat toiminnon avustusteksti, toiminnon ikoni ja toiminnon nimi. Tällaisesta keskitetystä ratkaisusta on hyötyä erityisesti silloin, kun sama toiminto on mahdollista käynnistää useasta eri kohteesta. Tässä sovelluksessa jokainen toiminto on mahdollista käynnistää joko painikeriviltä tai valikosta.

4.2.1 AboutAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa nähdä sovelluksen lisenssi.

Metodin nimi

Metodin kuvaus

AboutAction

Rakentaja.

actionPerformed

Avaa dialogin, joka näyttää sovelluksen lisenssitekstin kun tämä tapahtuma tapahtuu.

Taulukko 3: AboutAction.java metodit

4.2.2 BuildProjAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa kostaa kooste.

Metodin nimi

Metodin kuvaus

BuildProjAction

Rakentaja.

actionPerformed

Koostaa koosteen kun tapahtuma tapahtuu.

Taulukko 4: BuildProjAction.java metodit

4.2.3 DeleteChapterAction

Action-luokka, jota kutsutaan kun käyttäjä haluaa poistaa projektipuusta (jTreeCenter) valittu luku.
 

Metodin nimi

Metodin kuvaus

DeleteChapterAction

Rakentaja.

actionPerformed

Poistaa valitun luvun puusta kun tapahtuma tapahtuu.

Taulukko 5: DeleteChapterAction.java metodit

4.2.4 EditDocAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa editoida haluamaansa dokumenttia.

 

Metodin nimi

Metodin kuvaus

EditDocAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa kutsuu EditDocDialog.java:a kun prosessiaikaa on saatavilla.

setDocumentPath

Asettaa temp-polun.

fileNotSelected

Jos valittu tiedosto ei ole editoitava, luo fileChooserin, jotta käyttäjä voi valita uudestaan editoitavan tiedoston.

Taulukko 6: EditDocDialog.java metodit


4.2.5 EditProjMetaAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa editoida koosteen metatietoja.

 

Metodin nimi

Metodin kuvaus

EditProjMetaAction

Rakentaja.

actionPerformed

Näyttää koosteen metatieto ikkunan tapahtuman tapahtuessa.

errorMessageDialog

Luo virheilmoitusdialogin..

Taulukko 7: EditProjMetaAction.java metodit

4.2.6 EditXMLAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa editoida xml-tiedostoa suoraan xml-muodossa.

 

Metodin nimi

Metodin kuvaus

EditXMLAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa kutsuu EditDocDialog:ia kun prosessiaikaa on saatavilla.

errorMessageDialog

Luo virheilmoitusdialogin.

Taulukko 8: EditXMLAction.java metodit

4.2.7 ExitAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa poistua ohjelmasta.

 

Metodin nimi

Metodin kuvaus

ExitAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa sulkee OpenOfficen ja käyttöliittymän.

Taulukko 9: ExitAction.java metodit

4.2.8 HelpAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa nähdä ohjelman avustuksen (help).

 

Metodin nimi

Metodin kuvaus

HelpAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa avaa help-tiedoston www-selaimeen.

errorMessageDialog

Luo virheilmoitusdialogin.

Taulukko 10: HelpAction.java metodit

4.2.9 NewDocAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa luoda uuden dokumentin.

 

Metodin nimi

Metodin kuvaus

NewDocAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa kutsuu NewDocDialog:a kun prosessiaikaa on saatavilla.

Taulukko 11: NewDocAction.java metodit

4.2.10 NewProjAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa luoda uuden koosteen.

Metodin nimi

Metodin kuvaus

NewProjAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa kutsuu setNewProjectFile-metodia.

setNewProjectFile

Kutsuu NewProjDialog:a.

setProjectPath

Asettaa koosteen polun.

Taulukko 12: NewProjAction.java metodit

4.2.11 OptionsAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa muuttaa ohjelman asetuksia.

 

Metodin nimi

Metodin kuvaus

OptionsAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa kutsuu OptionsDialog:a kun prosessiaikaa on saatavilla.

Taulukko 13: OptionsAction.java metodit

4.2.12 PreviewHTMLAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa esikatsella valittua dokumenttia html-muodossa.

 

Metodin nimi

Metodin kuvaus

PreviewHTMLAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa näyttää valitun dokumentin HTML-version sellaisessa muodossa kuin se näkyisi osana koostetta.

Taulukko 14: PreviewHTMLAction.java metodit

4.2.13 PreviewPDFAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa esikatsella valittua dokumenttia html-muodossa.

Metodin nimi

Metodin kuvaus

PreviewHTMLAction

Rakentaja.

actionPerformed

Tapahtuman tapahtuessa näyttää valitun dokumentin PDF-version sellaisessa muodossa kuin se näkyisi osana koostetta.

Taulukko 15: PreviewPDFAction.java metodit

4.2.14 ToCVSAction.java

Action-luokka, jota kutsutaan kun käyttäjä haluaa viedä muokkaamansa tiedostot versionhallintaan. Tätä luokkaa ei ole toteutettu vielä sovelluksen tässä versiossa, muuten kuin että se on olemassa. Toiminnallisuuksia luokalla ei ole rankentajaa lukuun ottamatta.


4.3      Beans

Beans-moduuliin sisältyviä luokkia tarvitaan puunäkymän toteutuksessa. Moduulin luokat esittävät puumalleja, eli informaatiota hierarkkiseen muotoon järjestettynä. JTree-komponentista perityn paketin luokat toimivat graafisena esitysalustana Tree-moduulin TreeModel-luokille. Käytännössä tämä tarkoittaa sitä, että sovelluksen puumallit luodaan ja niiden sisältöä muokataan Tree-moduulin luokissa, mutta niiden esittämiseen tarvitaan yhtä ylemmän tason rajapintaa, jonka Beans-moduulin luokat tarjoavat.

4.3.1 JFileTree.java

JFileTree periytyy JTree:stä. Se käyttää FileTreeModel:a TreeModel:aan. Sillä on otsikoidut reunukset ja jokainen JFileTree:n instanssi liittyy yhteen FileNodeTransferHandler:iin. Vakiona TreeSelectionModel tukee ainoastaan SINGLE_TREE_SELECTION:a.

 

Metodin nimi

Metodin kuvaus

getDefaultFileTreeModel

Staattinen metodi esimerkki modelin luontia varten.

setModel

Kuormitettu metodi uuden FileTreeModel:n luomista ja asettamista varten.

Taulukko 16: JFileTree.java metodit

4.4      Datatransfer

Datatransfer-moduuli sisältää puunäkymien raahaustoiminnon toteutuksessa tarvittavat luokat. Java ei tarjonnut valmista toteutusta puunäkymissä tarvittaville raahaustoiminnoille, joten kaikki raahaamiseen liittyvät toiminnot pitää toteuttaa itse.

4.4.1 FileNodeTransferHandler.java

Siirronkäsittelijä tiedostojen raahaamiseen puusta puuhun.

 

Metodin nimi

Metodin kuvaus

getSource

Palauttaa JFileTree:n, josta siirrettävä komponentti on lähtöisin.

getDraggedNode

Palauttaa solmun jota ollaan raahamassa.

importData

Asettaa raahatun solmun siihen osoitettuun paikkaan.

Taulukko 17: FileNodeTransferHandler.java metodit.


4.5      Dialogs

Dialogs-moduuliin on sisällytetty kaikki sovelluksen dialogit. Niitä tarvitaan useimmiten jonkin toiminnon käynnistyksen tai suorituksen yhteydessä. Esimerkiksi Uusi dokumentti ­-painiketta painettaessa käyttäjälle aukeaa dialogi, johon hän syöttää laadittavaan dokumenttiin liittyviä kuvailutietoja. Dialogit käynnistetään actions-moduulin luokista.

4.5.1 EditDocDialog.java

Dialogi kysyy dokumentin meta-tiedot käyttäjältä ja järjestelmältä. Tämän jälkeen luokkaa, joka avaa dokumentin OpenOffice:n editoitavaksi.

 

Metodin nimi

Metodin kuvaus

updateFields

Päivittää dialogin kentät.

createPhaseVector

Luo vaihe-vektorin joka sisältää dokumentin vaihtoehtoiset vaiheet. Käytetään jComboBoxPhase:ssa.

editDocJButtonCancelActionPerformed

Cancel-painike painettaessa laittaa dialogin piiloon.

editDocJButtonOKActionPerformed

OK-painike painettaessa asettaa kaikkien tekstikenttien sisällöt muuttujiin ja tarkistaa että tiedosto on valittuna. Avaa valitun tiedoston OpenOffice:een editoitavaksi ja tämän jälkeen laittaa dialogin piiloon.

setMetaInfo

Asettaa dokumentin metatiedot dialogista dokumenttiin.

getMetaInfo

Hakee dokumentilta sen metatiedot ja asettaa ne muuttujiin.

Taulukko 18: EditDocDialog.java metodit

4.5.2 LoginDialog.java

Kysyy käyttäjätiedot käyttäjältä. Tallentaa tiedot xml-tiedostoon.

 

Metodin nimi

Metodin kuvaus

getUserInfo

Hakee edellisen käyttäjän tiedot xml-tiedostosta ja asettaa ne dialogin tekstikenttiin.

loginJButtonOKActionPerformed

Kun OK-painike on painettu asettaa käyttäjätiedot dialogin kentistä muuttujiin ja xml-tiedostoon.

exit      

Sulkee prosessin.

loginJButtonCancelActionPerformed

Kutsuu exit-metodia kun CANCEL-painike on painettu.

windowClosing

Kun dialogi on sulkeutumassa kutsuu exit-metodia. Toisin sanoen jos käyttäjä painaa X-nappia ikkunassa.

Taulukko 19: LoginDialog.java metodit


4.5.3 NewDocDialog.java

Dialogi kysyy dokumentin metatiedot käyttäjältä ja järjestelmältä. Tämän jälkeen aukaisee uuden dokumentin tietyllä asiakirjamallilla OpenOffice:en muokattavaksi.

 

Metodin nimi

Metodin kuvaus

formatFields

Alustaa dialogin kentät kun dialogia käytetään uudestaan.

createPhaseVector

Luo vaihe-vektorin joka sisältää dokumentin vaihtoehtoiset vaiheet. Käytetään jComboBoxPhase:ssa.

newDocJButtonFileActionPerformed

Kun File-painiketta on painettu luo tiedostovalitsimen ja sen jälkeen tiedoston, jonka käyttäjä on valinnut tai kirjoittanut. Lisäksi laittaa tiedoston polun dialogin tekstikenttään.

newDocJButtonCancelActionPerformed

Kun CANCEL-painiketta on painettu, laittaa dialogin piiloon.

newDocJButtonOKActionPerformed

Kun OK- painiketta on painettu asettaa tekstikenttien arvot muuttujiin ja tarkistaa onko tiedosto valittu. Tämän jälkeen laittaa dialogin piiloon jos tiedosto on valittu. Tämän jälkeen avaa tiedoston OpenOffice:en tietyllä asiakirjamallilla.

getMetaInfo

Hakee käyttäjän tiedot LoginDialogilta.

setMetaInfo

Hakee dokumentin vaiheen ja kommentit tekstikentistä ja tarkistaa että tiedosto on valittu. Luo uuden Versio- ja Dokutieto-olion kyseisellä Versio-oliolla.

Taulukko 20: NewDocDialog.java metodit

4.5.4 NewProjDialog.java

Dialogi kysyy uuden koosteen metatiedot ja asettaa ne sitten koostetiedoston luonnin yhteydessä siihen.

 

Metodin nimi

Metodin kuvaus

updateFields

Päivittää dialogin kentät kun tiedot vaihtuvat.

getMetaInfo

Hakee metatiedot LoginDialog:lta ja kooste.xml-tiedostolta.

formatFields

Tyhjentää dialogin kentät ja laittaa dialogin piiloon.

newProjJButtonOKActionPerformed

Kun OK-painiketta on painettu, laukaisee metatietojen kirjoittamisen kooste.xml-tiedostoon.

newProjJButtonCancelActionPerformed

Kun CANCEL-painiketta on painettu laittaa dialogin piiloon ja tyhjentää sen kentät.

Taulukko 21: NewProjDialog.java metodit


4.5.5 OptionsDialog.java

Dialogilla käyttäjä voi muokata sovellukseen liittyviä asetuksia, kuten vaikka muiden käytettävien sovellusten polkuja.

 

Metodin nimi

Metodin kuvaus

wasCancelled

Tarkistaa onko Cancel-painiketta painettu edellisellä kerralla kun dialogi oli auki.

getOptions

Hakee asetukset asetustiedostosta.

fileChooserOptions

Luo tiedostovalitsimen tiedoston tai hakemiston valintaa varten.

OptionsJButtonHaeActionPerformed

Kutsuu fileChooserOptions-metodia asetuksen valintaa varten ja tämän jälkeen asettaa valinnan tekstikenttään.

OptionsJButtonCancelActionActionPerformed

Laittaa dialogin piiloon.

OptionsJButtonOKActionActionPerformed

Kutsuu xml-kirjoittajaa, joka kirjoittaa uudet asetukset asetustiedostoon. Tämän jälkeen laittaa dialogin piiloon.

Taulukko 22: OptionsDialog.java metodit

4.6      Events

Events-moduuli sisältää sovelluksen yleiset kuuntelijaluokat, joiden avulla pystytään suorittamaan toiminnallisuuksia, kun jokin haluttu tapahtuma tapahtuu vaikkapa toisessa sovelluksessa.

4.6.1 OOoEventListener.java

Kuuntelijaliittymä, joka kuuntelee haluttuja OpenOffice.org tapahtumia.

 

Metodin nimi

Metodin kuvaus

notifyOOoEvent

Asettaa kuuntelijan halutuntyyppiselle tapahtumalle.

Taulukko 23: OOoEventListener.java metodit

4.7      Filters

Filters-moduuli sisältää suodattamiseen liittyvät luokat. Näitä luokkia käytetään esimerkiksi tiedostonimien karsimiseen sekä niillä estetään tiettyjen erikoismerkkien käyttöä erilaisissa nimeämisissä.

4.7.1 FilterByName.java

Luokalla luodaan suodattimia, jotka suodattavat elementtejä nimen perusteella.

 

Metodin nimi

Metodin kuvaus

FilterByName

Rakentaja. Luo suodattimen.

matches

Metodi vertaa annettua elementtiä luotuun suodattimeen.

Taulukko 24: FilterByName.java metodit

4.7.2 FilterByQualifiedName.java

Luokan tarkoitus on etsiä elementti sen sallitun nimen perusteella.

 

Metodin nimi

Metodin kuvaus

FilterByQualifiedName

Rakentaja. Luo uuden suodattimen.

matches

Metodi vertaa annettua elementtiä luotuun suodattimeen.

Taulukko 25: FilterByQualifiedName.java metodit

4.8      Helper

Helper-moduuli sisältään sovelluksen monikielisyyteen liittyvän luokan, sekä sovelluksen apuluokat, joita käytetään esimerkiksi OpenOffice:n ja XML:n käsittelyyn.

4.8.1 MultiLang.java

Luokka käsittelee ohjelman monikielisyyteen liittyvät komponentit. Tältä luokalta kysytään koodissa komponenttien tekstit ja vihjeet. Eli käytännössä kaikki selväkieliset lauseet haetaan tältä luokalta koodissa. Etuna suoraan hardkoodaamiseen on että ainoastaan muuttamalla kielitunnistetta koodissa ja kirjoittamalla toinen kieli yhteen tiedostoon voidaan vaihtaa sovelluksen käyttämää kieltä.

 

Metodin nimi

Metodin kuvaus

setTranslationFileName

Asettaa tiedoston jossa käännökset sijaitsevat.

getTranslationFileName

Palauttaa tiedoston jossa käännökset sijaitsevat.

setDefaultLanguageCode

Asettaa oletuskielikoodin.

getDefaultLanguageCode

Palauttaa oletuskielikoodin.

getCorrespondingWord

Hakee sanan, joka vastaa annettua avainta.

setTranslationStream

Lukee käännökset stereamista(kun ne ovat .jar-paketissa).

Taulukko 26: MultiLang.java metodit

4.8.2 OOoHelper.java

Luokka tarjoaa helppokäyttöisen rajapinnan OpenOffice 2.0 sovelluksesta. Luokka suorittaa myös seuraavat toiminnot: piilottaa komponentit joita ei haluta näyttää käyttäjälle, luo yhteyden OpenOffice:en ja luo kustomoidun tyylidialogin.


Metodin nimi

Metodin kuvaus

getDocComp

Luo docType olion.

getRemoteServiceManager

Palauttaa paella olevan OO:n ObjectFactory:n.

enableCommands

Ottaa käyttöön/poistaa käytöstä listatut komennot.

hideUIElements

Piilottaa annetut käyttöliittymäelementit.

hideElement

Piilottaa sen käyttöliittymäelementin, johon parametri viittaa. Lisää parametrin mukaisen elementin piilotettujen elementtien listaan.

showElements

Asetttaa kaikki piilotetut elementit näkyviin.

useWriter

Avaa annetun dokumentin OpenOffice:en.

getTransformedOOStyleName

Palauttaa muunnetun tyylin nimen.

createDialog

Luo ei-modaalisen tyyli-ikkunan.

closeWriter

Ottaa komennot käyttöön, laittaa kaikki piilotetut elementit näkyviin, laittaa xRemoteContext referenssin ”null” ja tuhoaa itsetehdyn tyyli-ikkunan.

addOOoEventListener

Luo OpenOffice:n tapahtumakuuntelijan.

notifyEvent

Kutsuu jokaista kuuntelijan metodia.

styleItemChanged

Metodia kutsutaan kun tyyli-ikkunassa tehdään muutoksia.

Aliluokka

Aliluokan kuvaus

PopupMenuInterceptor

Estää dokumentin taustavalikon käytön.

EventListenerImpl

Kuuntelee tiettyä dokumentin tapahtumaa.

ItemListenerImpl

Kuuntelee tyyli-ikkunan valintoja.

Taulukko 27: OOoHelper.java metodit

4.8.3 RandomHelpers.java

Luokka sisältää erilaisiin tarkoitukseen olevia apumetodeja.

 

Metodin nimi

Metodin kuvaus

date2laatimis_pvm

Luo laatimis_pvm elementin päivämäärästä.

laatimis_pvm2date

Pilkkoo laatimis_pvm elementistä päivämäärän.

booleanKyllaEi

Palauttaa tekstin boolean-arvoista.

makeRelativePath

Luo relatiivisen polun annetuista parametreista.

breakToComponents

Pilkkoo tiedoston polun osiin.

unwindEx

Purkaa poikkeuksen ja tulostaa sen.

isWindows

Palauttaa onko käytetty käyttöjärjestelmä windows.

runMake

Ajaa makedir-komennon annetuilla parametreilla.

hasProcessFinished

Paluttaa onko prosessi päättynyt.

createEsikatseluXml

Luo esikatseludokumentin.

Taulukko 28: RandomHelpers.java

4.9      IO

IO-moduuli sisältää dialogien tiedostonäkymien toteutuksessa tarvittavat luokat. Esimerkiksi Muokkaa dokumenttia -painiketta painettaessa käyttäjän pitää valita muokattavan tiedosto. Valinta tehdään tiedostonäkymässä, jonka toteutuksessa käytetään IO-moduulin luokkia.

4.9.1 FileFilterFC.java

Luokka luo tiedostofiltereitä, joita käytetään tiedostonvalitsimissa.

 

Metodin nimi

Metodin kuvaus

FileFilterFC

Rakentaja. Parametri extension ei sisällä ’.’-merkkiä.

accept

Hyväksyy tiedostot, joiden pääte on hyväksyttävä.

getDescription

Palauttaa tiedostotyypin kuvauksen ja päätteen.

getExtension

Palauttaa tiedostotyypin päätteen.

Taulukko 29: FileFilterFC.java metodit

4.9.2 LogWriter.java

Luokka poistaa sille annetuista poikkeuskuvauksista nimetyt elementit ja kirjoittaa sen sitten log-tiedostoon.

 

Metodin nimi

Metodin kuvaus

LogWriter

Rakentaja avaa tiedoston kerran ja asettaa poistettavat elementit listaan.

Log

Kirjoittaa lauseen, poikkeusviestin ja pinon logitiedostoon.

Taulukko 30: LogWriter.java metodit


4.9.3 ModFileChooser.java

Luokka on muokattu java.swing.JFileChooser. Eli luokka luo tiedostovalitsimen annetuilla parametreilla.

 

Metodin nimi

Metodin kuvaus

approveSelection

Uudelleenkirjoitettu javan JFileChooser.

showOverwriteWarning

Näyttää varoitusviestin siitä, että valittu tiedosto tullaan korvaamaan.

Taulukko 31: ModFileChooser.java metodit

4.9.4 OptionReader.java

Luokkaa lukee sovelluksen asetuksen käyttäjän määräämästä XML-tiedostosta.

 

Metodin nimi

Metodin kuvaus

OptionReader

Rakentaja. Luo dokumentin asetustiedostosta.

wereDefaultsUsed

Palauttaa käytetäänkö oletusasetuksia vai ei.

getElementContent

Palauttaa elementin tekstimuodossa.

setElementContent

Asettaa tekstimuotoisen sisällön perusteella elementin.

Taulukko 32: OptionReader.java metodit

4.10Kooste

Kooste-moduuli sisältää koosteen tekoon ja muokkaukseen liittyvät toiminnalliset luokat.

4.10.1 Alaluku.java

Luo alaluvut koosteeseen ja näyttää ne keskimmäisessä puussa.

Metodin nimi

Metodin kuvaus

Alaluku

Rakentaja. Lukee alaluvun annetusta elementistä tai luo uuden alaluvun.

toElement

Tallentaa alaluvun annettuun elementtiin.

Taulukko 33: Alaluku.java metodit

4.10.2 HasID.java

Luokka on rajapinta (interface) luvulle ja aliluvulle.

4.10.3 KoosteException.java

Luokka on itse tehty poikkeus, joka peritään normaalista java:n Exception-luokasta.

4.10.4 Laatija.java

Luokka luo laatija-elementin koostetta varten.

Metodin nimi

Metodin kuvaus

Laatija

Rakentaja. Luo laatijan elementistä tai vektorista

toElement

Tallentaa alaluvun annettuun elementtiin.

Taulukko 34: Laatija.java metodit

4.10.5 Luku.java

Luokka asettaa luvun koosteeseen ja näyttää sen keskimmäisessä puussa.

 

Metodin nimi

Metodin kuvaus

Luku

Rakentaja. Luo luku-olion tiedostosta ja asettaa sen keskimmäiseen puuhun.

toElement

Tallentaa alaluvun annettuun elementtiin.

Taulukko 35: Luku.java metodit

4.10.6 Luvut.java

Luokka luo koosteeseen luvut-elementin, joka sisältään viitteet koosteeseen kuuluvista luvuista.

 

Metodin nimi

Metodin kuvaus

Luvut

Rakentaja. Lisää viitteet lukuihin kooste.xml tiedostoon.

Taulukko 36: Luvut.java metodit

4.10.7 OpasKooste.java

Luokka luo koosteen kooste.xml tiedostosta ja lukutiedostoista.

Metodin nimi

Metodin kuvaus

fromDocument

Lukee annetun dokumenttiolion.

writeToFile

Kirjoittaa koosteen tiedostoon.

OpasKooste

Rakentaja. Lukee koosteen tieostosta.

Taulukko 37: OpasKooste.java metodit

4.10.8 OpasMeta.java

Luokka luo metatieto-olion koostetta varten ja kirjoittaa olion koosteeseen.

 

Metodin nimi

Metodin kuvaus

OpasMeta

Rakentaja. Luo metaolion.

Taulukko 38: OpasMeta.java metodit


4.11 Tree

Tree-moduuliin kuuluvat luokat pitävät sisällään puumallin ja sen solmut. Puumallin rakenne ja sisältö määritellään puumallin luomisen yhteydessä.

4.11.1 FileTreeCellRenderer.java

Luokka käsittelee puissa näkyviä ikoneita. Jos solmu on hakemisto, ikonin tulee aina kuvata hakemistoa riippumatta siitä onko hakemisto tyhjä vai ei. Jos taas solmu on tiedosto, tulee ikonin kuvata tiedostoa.

4.11.2 FileTreeModel.java

Luokka perii DefaultTreeModel:in ominaisuudet. Luo rajapinnan (interface) FileTreeModel:in ja FileTreeNodes:in käsittelyyn.

4.11.3 FileTreeNode.java

Luokka on tiedostopuun solmun käsittelijä.

 

Metodin nimi

Metodin kuvaus

FileTreeNode

Rakentaja. Luo uuden solmun tiedostosta.

createNodes

Luo solmut ja asettaa ne tämänhetkisen solmun lapsisolmuiksi.

Taulukko 39: FileTreeNode.java metodit

4.11.4 ProjectDir.java

Asettaa koosteen projektihakemiston.

4.11.5 ProjectFile.java

Asettaa koosteen projektitiedoston.

4.11.6 XMLStructTreeCellRenderer.java

Luokka luo puiden solmuja kuvaavat ikonit.

4.11.7 XMLStructTreeModel.java

Asettaa annetun tiedostosolmun haluttuun paikkaan.

4.11.8 MLStructTreeNode.java

Luo puun annetusta hakemistosta rekursiivisesti.


4.12XML

XML-moduuli sisältää XSLT-muunnoksissa käytettävät luokat. XSLT-muunnoksia tarvitaan esimerkiksi silloin kun XML-dokumentti muunnetaan ODT-muotoon tai toisinpäin.

4.12.1 Dokutieto.java

Luokka luo ja muokkaa dokumentin tietoja kun dokumenttia luodaan tai vanhaa dokumenttia muokataan.

 

Metodin nimi

Metodin kuvaus

Dokutieto

Rakentaja. Luo uuden dokutiedon, lukee sen tiedostosta tai itse dokumentista.

createNewDoc

Luo uuden xml-tiedoston jossa luotu dokutieto.

setDocInfo

Asettaa dokutiedon valittuun dokumenttiin.

Taulukko 40: Dokutieto.java metodit

4.12.2 Luku2odt.java

Luokka muuntaa sovelluksen merkkauksen mukaisen XML-tiedoston OpenOfficen käyttämän ODT-merkkauksen mukaiseksi kutsumalla XSLTTrans-luokkaa.

4.12.3 LukudtdFilenameFilter.java

Luokka on tiedostosuodatin, joka tarkistaa onko käytetyt tiedostot luku.dtd-merkkauksen mukaisia.

4.12.4 Odt2luku.java

Luokka muuntaa OpenOfficen käyttämän ODT-merkkauksen mukaisen dokumentin sovelluksen käyttämän XML-merkkauksen mukaiseksi kutsumalla XSLTTrans-luokkaa.

4.12.5 ODTModListener.java

Luokka pitää sisällään tiedon dokumenteista, jotka on otettu muokkaukseen OpenOffice:n sekä tiedon milloin dokumenttia on viimeksi muokattu. Käyttäjän tallentaessa dokumentin, se muunnetaan saman tien sovelluksen merkkauksen mukaiseksi XML-dokumentiksi kutsumalla XSLTTrans-luokkaa.

 

Metodin nimi

Metodin kuvaus

makeTransform

Suorittaa muunnoksen kutsumalla XSLTTrans-luokkaa.

putValue

Asettaa muokkaukseen menevän dokumentin tiedot HashMap-taulukkoon.

Taulukko 41: ODTModListener.java metodit

4.12.6 ReloadXMLs.java

Luokka lataa XML-tiedostot uudestaan ohjelmaan.


4.12.7 Versio.java

Luokka luo uuden version dokumentille tai täydentää vanhaan versioon uuden tiedot dokumenttia muokatessa.

 

Metodin nimi

Metodin kuvaus

Versio

Rakentaja. Luo version XML-elementistä.

toElement

Tallentaa versiotiedot dokumenttiin.

Taulukko 42: Versio.java metodit

4.12.8 XSLTester.java

Luokka on testausluokka käytetylle XSL:lle.

4.12.9 XSLTTrans.java

Luokan toiminnallisuuksiin kuuluu XML-dokumentin merkkauksen muuntaminen ODT-dokumentin merkkauksen mukaiseksi ja toisinpäin.

 

Metodin nimi

Metodin kuvaus

XSLTTrans

Rakentaja. Käynnistää muunnokseen tarvittavat kääntäjät ja luo väliaikaistiedostot.

luku2odt

Muuntaa XML-dokumentin ODT-dokumentiksi ja luo backup-tiedostot alkuperäisistä tiedostoista.

odt2luku

Muuntaa ODT-dokumentin XML-dokumentiksi ja luo backup-tiedostot alkuperäisistä tiedostoista.

Taulukko 43: XSLTTrans.java metodit


5         Asetettujen tavoitteiden toteutuminen

Sovellukselle asetettiin projektin alkuvaiheessa tavoitteet, jotka ilmenevät vaatimusmäärittelystä [1]. Tässä luvussa käydään läpi vaatimusmäärittelyssä esitetyt vaatimukset ja niiden toteutuminen yksi kerrallaan. Ensiksi esitellään vaatimusmäärittelyssä esille tulleet vaatimukset ja sitten niiden toteutuminen.

5.1      Sovelluksen ohjelmalliset vaatimukset

Seuraavissa taulukossa käydään läpi sovellukseen liittyvät vaatimukset (taulukko 44-46), jotka sovellukselle asetettiin vaatimusmäärittelyssä.

Vaatimus

Kuvaus

Kaksi erillistä käyttöliittymää.

Sisällöntuottajalla ja koostajalla tulisi olla toiminnallisuudeltaan erilaiset käyttöliittymät. Sisällöntuottajan käyttöliittymä on osa koostajan käyttöliittymän toiminnallisuudesta.

Taulukko 44: Sovelluksen yleiset vaatimukset

Vaatimus

Kuvaus

Sovelluksen avaaminen.

Sovellus avautuu käyttöjärjestelmästä.

Sisäänkirjautuminen.

Käyttäjä kirjautuu sisään sovellukseen. Salasanan ja tunnuksen lisäksi käyttäjän pitää valita myös käyttäjäryhmä, johon hän kuuluu. Käyttäjäryhmän valinta määrittää sen millainen käyttöliittymä käyttäjälle avautuu.

Uuden sisällön tuottaminen.

Käyttäjä painaa Uusi dokumentti -painiketta, minkä jälkeen sovellus kysyy uuden dokumentin nimeä.

Olemassa olevien dokumenttien muokkaaminen.

Käyttäjä painaa Muokkaa dokumenttia -painiketta, minkä jälkeen valittu dokumentti aukeaa editorikäyttöliittymään.

Muilla editoreilla laaditun dokumentin tai raakatekstin tuominen.

Käyttäjä painaa Tuo dokumentti -painiketta, jolloin hänelle tarjoutuu mahdollisuus avata muilla editoreilla muokattu dokumentti editorikäyttöliittymään. Editorikäyttöliittymä muokkaa dokumentin ensin XML:ksi ja avaa sen takaisin ODT-muotoon. Tämän jälkeen käyttäjä voi lisätä dokumenttiin haluamansa tyylimäärittelyt.

Muokatun dokumentin tallentaminen.

Käyttäjä painaa Tallenna-painiketta, jolloin käyttäjän muokkaama dokumentti tallennetaan. Tallennuksen yhteydessä OpenOfficen ODT-dokumenttimuoto muunnettaan XSLT-muunnoksella XML-dokumentiksi.

Editorikäyttöliittymän sulkeminen.

Käyttäjä sulkee editorikäyttöliittymän Lopeta-painiketta painamalla. Sovellus palaa peruskäyttöliittymä-tilaan. Mikäli käyttäjällä on tallentamaton tiedosto avattuna, niin ohjelma kysyy haluaako käyttäjä tallentaa tiedostoon tehdyt muutokset.

XML-dokumenttien esikatselu HTML- tai PDF-muodossa.

Käyttäjä voi esikatsella tuottamiaan dokumentteja HTML- tai PDF-muodossa valitsemalla esikatseltavan tiedoston Tiedostot-näkymästä. Esikatselu näyttää dokumentit luku-DTD:n mukaisella ulkoasulla, eli sellaisena miltä ne tulevat näyttämään opinto-oppaassa. Esikatselu avautuu erilliseen ikkunaan esikatseluformaatista riippumatta.

Dokumentin vieminen versionhallintajärjestelmään.

Käyttäjä valitsee haluamansa tiedoston tiedostot-näkymästä ja painaa Commit –painiketta. Tämän jälkeen valittu dokumentti tallennetaan versionhallintajärjestelmään.

Sovelluksen sulkeminen.

Käyttäjä sulkee sovelluksen painamalla Lopeta-painiketta.

Taulukko 45: Sisällöntuottajan käyttötapauksien vaatimukset

Vaatimus

Kuvaus

Uuden opinto-opas –koosteen määrittely.

Käyttäjä painaa Uusi kooste -painiketta, minkä jälkeen sovellus kysyy uuden koosteen nimeä. Nimeämisessä sallitut merkit noudattavat normaalin tiedostojärjestelmän nimeämiskäytänteitä.

Koosteeseen sisällytettävien dokumenttien valinta.

Käyttäjä voi liittää koosteeseen uusia dokumentteja, poistaa niitä sekä vaihtaa dokumenttien keskinäistä järjestystä opinto-oppaassa.

Koosteeseen on liitetty vähintään yksi dokumentti.

Käyttäjä painaa Laadi kooste -painiketta, jolloin kooste koostetaan yhdeksi XML-dokumentiksi. Koostamisen aloituksen yhteydessä käyttäjältä kysytään, minkä nimiseen tiedostoon XML-dokumentti tallennetaan versionhallintajärjestelmässä.

Muutosten esittäminen vanhoihin opas-versioihin nähden.

Käyttäjä painaa Näytä muutokset -painiketta, jolloin käyttäjälle avautuu lista saman dokumentin aiemmista versioista. Kun haluttu versio on valittu, sovellus näyttää vertailtavien dokumenttien väliset eroavaisuudet.

Käyttäjällä on opinto-opas avattuna.

Käyttäjä julkaisee opinto-oppaan HTML- tai PDF-versiona. Julkaisu tapahtuu painamalla Julkaise HTML- tai Julkaise PDF -painiketta, minkä jälkeen opinto-opas muunnetaan käyttäjän valitsemaan julkaisumuotoon. HTML-julkaisu tallennetaan versionhallintajärjestelmään ja tarvittaessa myös WWW-palvelimelle. PDF-julkaisu tallennetaan ainoastaan versionhallintajärjestelmään.

Taulukko 46: Koostajan käyttötapauksien vaatimukset


5.2      Sovelluksen ohjelmallisten vaatimusten toteutuminen

Seuraavissa taulukoissa käydään läpi sovelluksen ohjelmallisten vaatimusten toteutuminen (taulukko 47-49) tämänhetkisessä sovelluksen versiossa.


Vaatimus

Toteutuminen

Kaksi erillistä käyttöliittymää.

Sovelluksen tähän versioon toteutettiin ainoastaan yksi käyttöliittymä, joka on koostajan tarpeisiin. Toiminnallisuuksiltaan käyttöliittymä on edelleen puutteellinen.

Taulukko 47: Sovelluksen yleisten vaatimusten toteutuminen

Vaatimus

Toteutuminen

Sovelluksen avaaminen.

Sovellus avautuu käyttöjärjestelmästä, kuten muutkin käyttöjärjestelmästä avattavat sovellukset avautuvat.

Sisäänkirjautuminen.

Sovelluksen sisäänkirjautuminen tapahtuu ainoastaan syöttämällä tarvittavat tiedot niille varattuihin kenttiin. Sisäänkirjautumisessa ei kysytä käyttäjäryhmää, käyttäjätunnusta eikä salasanaa. Sisäänkirjautumisen korppikytkentää ei ole toteutettu.

Uuden sisällön tuottaminen.

Käyttäjän painaessa Uusi dokumentti-painiketta, häneltä kysytään sovelluksen metatiedot ennen dokumentin luomista. Tämän jälkeen dokumentti avataan OpenOffice-ohjelmaan.

Olemassa olevien dokumenttien muokkaaminen.

Käyttäjän painaessa Muokkaa dokumenttia-painiketta dokumentti avautuu OpenOffice-ohjelmaan muokattavaksi.

Muilla editoreilla laaditun dokumentin tai raakatekstin tuominen.

Vaatimusta ei toteutettu lainkaan sovelluksen tähän versioon.

Muokatun dokumentin tallentaminen.

Vaatimus toteutettiin kuten sen kuvaus kertoo.

Editorikäyttöliittymän sulkeminen.

Editorikäyttöliittymän sulkeminen tapahtuu kuten normaalistikin OpenOfficea käytettäessä.

XML-dokumenttien esikatselu HTML- tai PDF-muodossa.

Esikatselu tapahtuu kuten vaatimuksen kuvauksesta käy ilmi muuten, että itse dokumentti avautuu joko www-selaimeen tai pdf-lukijaan, jotka käyttäjä on itse määritellyt.

Dokumentin vieminen versionhallintajärjestelmään.

Sovelluksen tähän versioon ei toteutettu versionhallintajärjestelmää vaan dokumentit sijaitsevat pelkästään verkkolevyllä.

Sovelluksen sulkeminen.

Toteutettu kuten kuvauksessa.

Taulukko 48: Sisällöntuottajan käyttötapauksien vaatimusten toteutuminen


 

Vaatimus

Toteutuminen

Uuden opinto-opas –koosteen määrittely.

Käyttäjä voi luoda uuden koosteen painamalla Uusi kooste-painiketta. Tämä jälkeen käyttäjän täytyy syöttää koosteen metatiedot niille varattuihin kenttiin ja tämän jälkeen hyväksy koosteen luonti. Näiden toimintojen jälkeen ohjelma luo uuden koosteen.

Koosteeseen sisällytettävien dokumenttien valinta.

Dokumenttien sisällyttäminen koosteeseen onnistuu, lukuunottamatta käyttöä haittaavia lieviä Javan bugeja.

Koosteeseen on liitetty vähintään yksi dokumentti.

Vaatimusta ei toteutettu vaan koosteen julkaisu on ainoastaan yksi toiminto.

Muutosten esittäminen vanhoihin opas-versioihin nähden.

Sovelluksen tässä versiossa ei ole toteutettu tätä toiminnallisuutta.

Käyttäjällä on opinto-opas avattuna.

Käyttäjä julkaisee opinto-oppaan painamalla Julkaise-painiketta, jolloin sovellus tekee oppaasta kaikki tarvittavat versiot.

Taulukko 49: Koostajan käyttötapauksien vaatimusten toteutuminen

5.3      Sovelluksen tekniset vaatimukset ja niiden toteutuminen

Seuraavassa taulukossa käydään läpi sovelluksen teknisten vaatimusten toteutuminen (taulukko 50) tämänhetkisessä sovelluksen versiossa

Vaatimus

Toteutuminen

Sovellus toimii Windows-ympäristössä.

Sovellus toimii Windows-ympäristössä.

Sovellus toimii Linux-ympäristössä

Sovellus toimii Linux-ympäristössä.

Sovellus on määritetty työasemasovellukseksi.

Ei toteutettu.

Sovelluksen pitää pystyä käyttämään versionhallintajärjestelmää.

Ei toteutettu.

Sovelluksen pitää pystyä kommunikoimaan Korppi-järjestelmän kanssa.

Ei toteutettu.

Sovelluksen pitää pystyä keräämään tietoa tiedekunnan WWW-sivuilta.

Ei toteutettu.

Sovelluksen editorikäyttöliittymä perustuu OpenOfficeen.

Sovelluksen editorikäyttöliittymänä toimii OpenOffice 2.0.

Taulukko 50: Sovelluksen teknilliset vaatimukset ja niiden toteutuminen

5.4      Testaus

Sovellusta ei ajanpuutteen vuoksi testattu erikseen. Testausta tehtiin ainoastaan sovelluksen kehityksen yhteydessä, josta ei erillistä dokumentaatiota ole mahdollista kirjoittaa. Niinpä varsinainen sovelluksen testaus jääkin jatkokehitykseen.


6         Sovelluksen jatkokehitys

Tässä luvussa käydään läpi mitä osia tai ideoita, jotka tulivat esille jossain vaiheessa sovelluksen kehitystä, jäi toteuttamatta Kokako-projektin aikana ja jotka näin ollen jäävät jatkokehityksen tehtäviksi. Yleisesti ottaen sovellukseen jäin jonkin verran kehitettävää. Karkeasti arvioiden kehityskohteita voi olla juuri ja juuri sen verran, että niistä saisi aikaan uuden sovellusprojektia.

6.1      Sovelluksen ohjelmalliset jatkokehitysideat

Seuraavissa taulukossa (taulukko 51) käydään läpi sovelluksen ohjelmalliset jatkokehitysideat.


Jatkokehitysidea

Idean kuvaus

Sisällöntuottajan käyttöliittymä.

Sovellukseen tulisi toteuttaa käyttöliittymä ainoastaan sisällöntuottajan toiminnoin, joka on ulkoasultaan poikkeava koostajan käyttöliittymästä.(ks. [1] Vaatimusmäärittely)

Sisäänkirjautuminen korpin avulla.

Sisäänkirjautumisessa käyttäjän tiedot ja käyttäjäryhmä tulisi hakea korpista käyttäen hyväksi käyttäjän korppi-käyttäjätunnusta ja -salasanaa.

Muun kuin OpenOffice 2.0-dokumentin tuominen sovellukseen.

Käyttäjällä tulisi olla mahdollisuus tuoda jollakin muulla sovelluksella laadittu dokumentti järjestelmään joka automaattisesti avaa sen OpenOffice 2.0:aan tyylimäärityksiä varten.

Versionhallintajärjestelmä.

Dokumentit tulisi säilyttää versionhallintajärjestelmässä niiden tuottamisen jälkeen, josta ne haetaan käyttäjän koneelle muokkaamista varten käyttöliittymän toimesta käyttäjän niin halutessa.

Koosteen dokumenttien valinta.

Dokumenttien valinnassa on ongelmia johtuen Javan bugeista. Näihin ongelmiin olisi hyvä löytää ratkaisu jos mahdollista.

Versioerojen näyttäminen dokumenteissa ja koosteissa.

Kun versionhallinta on käytössä dokumenttien ja koosteiden versioden eroja tulisi pystyä vertailemaan keskenään.

Sovelluksesta työasemasovellusversio.

Sovellus tulisi toimia työasemasovelluksena, jos esimerkiksi käyttäjä on versionhallintajärjestelmän ulkopuolella.

Kommunikointi www-palvelimen kanssa.

Sovelluksen tulisi pystyä kommunikoimaan IT-tiedekunnan www-palvelimen kanssa ja keräämään sieltä automaattisesti tietoa.

Monikielisyyskomponentti

Monikielisyyskomponenttia ei ehditty toteuttaa täysin loppuun asti.

Ilmoitusikkuna koostamisesta

Näytölle tulisi erillinen ilmoitus kun koostaminen käynnissä ja sen arvioitu kesto näkyisi siitä.

Koostaminen verkosta

Käyttöliittymään voisi tehdä www-pohjaisen hallintakäyttöliittymän, jonka avulla voisi koostaa dokumentteja.

Context-menut

Nämä menut tulisi ainakin olla puissa käytössä.

Lukujen järjestys

Lukujen järjestystä olisi hyvä pystyä muuttamaan raahaamalla.

Käyttöliittymä

Käyttöliittymän on melko raskas, jolloin siitä tulee hidas käyttää. Mahdollisesti optimoimalla koodia siitä saisi nopeamman.

OpenOffice

Taulukkotyökalu, kuvatyökalu ja viitetyökalu.

Testaus

Ohjelman kunnollinen testaus ja testauksen dokumentointi.

Taulukko 51: Sovelluksen ohjelmalliset jatkokehitysideat


7         Yhteenveto

Kokako-projektin sovellusraportti-dokumentti kuvaa projektissa kehitetyn sovelluksen toteutusta tekniseltä ja ohjelmalliselta kannalta. Tämän lisäksi dokumentissa on sovelluksen koodiin liittyvät luokka- ja metodikuvaukset. Sovellusraportti pohjautuu aiemmin laadittuihin sovellussuunnitelma ja vaatimusmäärittely-dokumentteihin.

 

Sovelluksen toteutus sujui hiukan tahmeasti. Syynä tähän oli, että toteutuksesta suurin osa oli olemassa olevien järjestelmien muokkaamista, joka aiheutti suuria ongelmia paikoittain. Varsinkin OpenOffice:n rajapinta, XSLT ja java:n puuolioiden muokkaus teetti työtä. Sovelluksen valmiusaste on arviolta keskeneräinen. Toiminnallisuuksiltaan sitä voisi juuri ja juuri käyttää opinto-oppaan koostamiseen ja tuottamiseen, mutta se vaatisi hiukan myös puhtaan XML:n osaamista.

8         Viitteet

[1] Kokako-ryhmä, Kokako-vaatimusmäärittely

[2] Sun Microsystems, How to Write Doc Comments for the Javadoc Tool,

<URL: http://java.sun.com/j2se/javadoc/writingdoccomments/index.html>, viitattu 22.5.2006

[3] Kokako-ryhmä, Kokako-sovellussuunnitelma