T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Toiminnallinen määrittely



Samankaltaiset tiedostot
T Tietojenkäsittelyopin ohjelmatyö. Testisarja Ray tracing. Tietokonegrafiikka-algoritmien visualisointi. Testisarja Ray tracing

T Tietojenkäsittelyopin ohjelmatyö

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe LU. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T3

Päivämäärä Projektiryhmä Keimo

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

T Tietojenkäsittelyopin ohjelmatyö

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ksenos Prime Käyttäjän opas

Mainosankkuri.fi-palvelun käyttöohjeita

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

ClassPad fx-cp400 OS2-päivitys. + Manager-ohjelmisto ja Physium-sovellus

Uudet ominaisuudet. Realise Your Vision

Sonera Yrityssähköposti. Outlook 2013 lataus ja asennus

ArcGIS Pro -ohjelmiston käyttöönotto. Ohje /

Ohjelmistojen mallintaminen. Luento 11, 7.12.

1 Tivax siirto uuteen koneeseen

CLOUDBACKUP TSM varmistusohjelmiston asennus

NUUO ETÄOHJELMA PIKAOPAS. Maahantuoja Dasys Oy Kaivolahdenkatu HELSINKI helpdesk@dasys.fi

Helppokäyttöisyyttä Windows Vista käyttöjärjestelmän asetuksilla

StatCrunch -laskentasovellus

TOIMINNALLINEN MÄÄRITTELY MS

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

UCOT-Sovellusprojekti. Asennusohje

Uudelleenkäytön jako kahteen

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat & Niina Järvinen (muokattu )

Febdok 6.0 paikallisversion asennus OHJEISTUS

Novapoint Finnish Value Pack Asennusohje Mar-06 1(5)

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Käyttöohje

Visma.net Approval. Versiosaate 1.40

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

Epooqin perusominaisuudet

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Sivu 1 / Viikin kirjasto / Roni Rauramo

Simulaattorin asennus- ja käyttöohje

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.

SilvaToiminta Versio 1.0. SilvaToiminta. Pikaohje Versio Oy Silvadata Ab Pikaohje 1

Tietojärjestelmän osat

SEPA päiväkirja. Dokumentti: SEPA_diary_EM_PV.doc Päiväys: Projekti : AgileElephant Versio: V0.9

WCAG 2.1 Uudet kriteerit

FTP -AINEISTOSIIRRON OHJE PC / MAC Ympäristö

ASENNUSOHJEET INTERNET-ASENNUS. Navita Yritysmalli. YHTEYSTIEDOT Visma Solutions Oy Mannerheiminkatu LAPPEENRANTA Puh.

Java Runtime -ohjelmiston asentaminen

H5P-työkalut Moodlessa

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Pikaohje LandNova simulaattorin käyttöön(tarkemmat ohjeet käyttöohjeessa ja mallinnusohjeessa):

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

1 Asentaminen. 2 Yleistä ja simuloinnin aloitus 12/

Skype for Business pikaohje

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

RATKAISU REAALIAIKAISEEN TIEDONSIIRTOON NIINIPLUS PROJEKTIPANKKI INTEGRAATION - PIKAOPAS

Octave-opas. Mikä on Octave ja miksi? Asennus

Menetelmäraportti - Konfiguraationhallinta

BeoSound 4. Täydennys

Tilastokeskuksen rajapintapalveluiden käyttöönotto ArcGISohjelmistossa

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

ArcGIS Pro -ohjelmiston käyttöönotto. Ohje /

PELAAJAPROFIILI Mobiilisovellus

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Harjoitus 3 Antti Hartikainen

Harjoitus Bones ja Skin

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

Videon tallentaminen Virtual Mapista

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Finnish Value Pack Asennusohje Vianova Systems Finland Oy Versio

GeoGebra-harjoituksia malu-opettajille

KODU. Lumijoen peruskoulu

Linuxissa uusi elämä 1

DumpDbox-ohjelmiston asennus- ja käyttöohjeet Sisällys

Jypelin käyttöohjeet» Ruutukentän luominen

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

Integroidun maksupäätteen lisääminen käyttöönotossa

Ylläpito. Ylläpidon lajeja

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

VHS -nauhojen digitointi tietokoneella

Harjoitus Morphing. Ilmeiden luonti

Perinteiset asennuspaketit

Viva-16. Käyttöohje Veikko Nokkala Suomen Videovalvonta.com

Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle.

Eye Pal Solo. Käyttöohje

UCOT-Sovellusprojekti. Testausraportti

Transkriptio:

T-76.115 Tietojenkäsittelyopin ohjelmatyö Toiminnallinen määrittely Sisältö Tämä on dokumentti esittelee toiminnallisen määrittelyn tietokonegrafiikka-algoritmien visualisointijärjestelmän kehitysprojektissa kehitettävästä järjestelmästä. Päivämäärä 28.10.2002 Projektiryhmä Keimo keimo-dev@list.hut.fi Kirjoittajat Tero Karras tkarras@cc.hut.fi Petri Kero pkero@cc.hut.fi Samuli Laine smlaine2@cc.hut.fi Muutokset PVM Tekijä Versio Selitys 2.11.2002 Petri Kero 0.1 Viimeiset kappaleet 4.11.2002 Tero Karras 0.2 Toiminnallisuus 4.11.2002 Samuli Laine 0.3 Ensimmäiset kappaleet 5.11.2002 Tero Karras 0.8 Dokumentin kokoaminen 5.11.2002 Tero Karras 0.9 Viimeistely 7.11.2002 Johan Engström 0.91 Muokkaus standardipohjaan 24.11.2002 Matti Kannala 0.92 Dokumentin yhtenäistäminen 2.12.2002 Johan Engström 0.93 Nimen muutos ->määrittely 1

Sisällysluettelo 1 Johdanto...3 1.1 Dokumentin sisältö... 3 2 Suunnittelun lähtökohdat... 3 2.1 Dokumentin rakenne... 3 3 Käyttötarkoitukset ja niiden vaatimat ratkaisut... 4 3.1 Luennoitsijat... 4 3.2 Ohjelmoijat... 4 3.3 Opiskelijat... 5 4 Yleiskatsaus ohjelmiston rakenteeseen... 5 4.1 Visualisaatiot ja visualisointiohjelmisto... 5 4.2 Visualisointisovellus ja kontrollointisovellus... 6 4.3 Aika... 6 5 Toiminnallisuus... 7 5.1 Toimintaperiaatteet... 7 5.2 Käyttöliittymä... 7 5.3 Toiminnot... 9 6 Muut ominaisuudet... 11 6.1 Tehokkuus... 11 6.2 Käytettävyys... 11 6.3 Asennus... 11 6.4 Siirrettävyys ja yhteensopivuus... 11 7 Ulkoiset rajapinnat... 12 7.1 OpenGL ja GLUT... 12 7.2 Java AWT... 12 7.3 TCP/IP... 12 7.4 Visualisaatiorajapinta... 12 8 Rajoitukset ja vaatimukset... 12 8.1 Standardit... 12 8.2 Laitteisto- ja ympäristövaatimukset... 13 8.3 Muut vaatimukset... 13 9 Hylätyt ratkaisut... 13 9.1 C++-kielellä toteutettu käyttöliittymä... 13 10 Jatkokehitys... 13 10.1 Siirtäminen muille alustoille... 13 10.2 Uusien visualisaatioiden lisääminen... 13 10.3 Keimon rungon parantaminen... 14 11 Avoimet kysymykset... 14 11.1 Visualisaatioiden ohjelmointirajapinta... 14 11.2 Muut avoimet kysymykset... 14 12 Viitteet... 14 2

1 Johdanto 1.1 Dokumentin sisältö Tämä dokumentti kuvaa Keimo-visualisointityökalua toiminnallisuuslähtökohdista. Teknisiä yksityiskohtia käsitellään siinä määrin kuin kokonaiskuvan ymmärtämisen kannalta on välttämätöntä. Tämän dokumentin pohjalta laaditaan myöhemmin tekninen määrittely, jossa otetaan kantaa ohjelmiston sisäiseen rakenteeseen sekä yksittäisiin toimintoihin astetta tarkemmin. Tämän dokumentin pääasiallinen kohdeyleisö on Keimo-ryhmän jäsenet sekä asiakas, joka voi esittää kommentteja esitettyyn toiminnallisuuteen. 2 Suunnittelun lähtökohdat Ohjelmiston suunnittelussa on otettu huomioon seuraavat seikat: Käytön helppous. Visualisaatioiden käytön tulee olla mahdollisimman helppoa eri käyttäjäryhmien kannalta. Käyttäjäryhmät luennoitsijat, ohjelmoijat ja opiskelijat on esitelty vaatimusmäärittelyn käyttäjävaatimusdokumentissa. Laatu. Koska ohjelmisto tulee olemaan vapaasti levitettävä lähdekoodeineen, on tavanomaisen käyttäjän kokeman laadun lisäksi kiinnitettävä erityistä huomiota sisäiseen laatuun. Tämä koskee myös ohjelmiston sisäisen visualisaatioiden ohjelmointirajapinnan käytettävyyttä ja dokumentaatiota. Myös suorituskyky on tärkeä kriteeri laatua määriteltäessä, mutta siihen ei suunnitella kiinnitettävän erityistä huomiota, sillä suorituskyvystä tuskin muodostuu ongelmaa ohjelmiston käytettävyyden kannalta. Ohjelmiston siirrettävyys eri laitealustoille. Projektin tavoitteena on luoda ohjelmisto, joka ei suoranaisesti ole kytköksissä mihinkään yksittäiseen laitealustaan tai käyttöjärjestelmään. Koska käyttöympäristöstä on väistämättä tehtävä joitain vaatimuksia, on suunnittelussa pyritty hyödyntämään mahdollisimman laajalti saatavilla olevia ja mahdollisuuksien mukaan ilmaisia ratkaisuja, joiden pohjalle ohjelmisto on rakennettu. 2.1 Dokumentin rakenne Luvussa 1 esitellään dokumentin sisältö ja rakenne lyhyesti sekä luodaan lyhyt katsaus teknisen sunnitelman lähtökohtiin. Luvussa 2 esitellään visualisointityökalun erilaiset käyttötarkoitukset. 3

Luku 3 käsittelee ohjelmiston sisäistä rakennetta siinä määrin kuin se toiminnallisuuden kannalta on välttämätöntä. Luvussa 4 esitellään järjestelmän käyttöliittymä ja siihen liittyvä toiminnallisuus. Luku 5 listaa muita kuin käyttöliittymään liittyviä ohjelmistolta vaadittuja ominaisuuksia. Luvussa 6 esitellään ohjelmiston käyttämät ulkoiset rajapinnat. Luku 7 sisältää listan ohjelmiston kehitystyöhön liittyvistä rajoituksista ja vaatimuksista. Lukuun 8 on koottu suunnitteluvaiheen aikana hylätyt ratkaisuvaihtoehdot. Ohjelmiston jatkokehitysmahdollisuudet käyvät ilmi luvusta 9. Luku 10 käsittelee toistaiseksi avoimina olevia toteutusteknisiä kysymyksiä. 3 Käyttötarkoitukset ja niiden vaatimat ratkaisut 3.1 Luennoitsijat Tämä käyttäjäryhmä hyödyntää ohjelmistoa tietokonegrafiikan opetuksen tukena. Tässä ajatellaan ensisijaisesti luentokäyttöä siten, että visualisaatioita esitetään suurille opiskelijaryhmille kerrallaan. Koska tarkoitus on esittää suullista opetusta tukevaa grafiikkaa, ei ohjelmiston käyttö saa vaatia liiallista huomiota ja vaivannäköä esityksen sujuvuuden takaamiseksi. Tämän vuoksi Keimossa on nauhoitustoiminto, jolla luennoitsijat voivat valmistella esityksen ennalta ja esittää sen sitten haluamassaan tahdissa luennolla. Toiminnon tarkoitus on sopivassa määrin jäljitellä tavanomaisen videonauhurin toimintaa, joskin paremmalla kontrollilla esityksen tahtiin. Lisäksi luennoitsija voi missä vaiheessa tahansa pysäyttää esityksen ja muutella väliaikaisesti visualisaation parametreja haluamallaan tavalla (esim. siirtää kameraa), minkä jälkeen nauhoitetun esityksen toiston voi käynnistää uudelleen. 3.2 Ohjelmoijat Ohjelmoijat, esimerkiksi grafiikkakurssin assistentit, laativat visualisaatiotyökalun tarjoamaa ohjelmointirajapintaa hyväksikäyttäen erilaisia visualisaatioita joko opetuskäyttöön tai mahdollisesti tutkimustarkoituksiin. Tavoitteena on mahdollistaa yksinkertaisen visualisaation kehittäminen mahdollisimman nopeasti toimintakuntoon ja sen helppo laajentaminen. 4

Keimo käyttää grafiikkaohjelmointirajapintanaan OpenGL-standardia, joka on erittäin käytetty ja siten useimmille tietokonegrafiikkaa ohjelmoineille tuttu. Visualisaatioiden kehittäjille tarjotaan hyödyllisiä lisäpalveluita, joita OpenGL-rajapinta ei tarjoa, mutta varsinaisten OpenGL-kutsujen käyttöä ei ole estetty tai niiden toiminnallisuutta kopioitu oman rajapinnan taakse. Keimolla on siten kaksi roolia visualisaatioiden kannalta: visualisaation ja Keimon integrointirajapinta sekä grafiikan tuottamista helpottavat lisäominaisuudet. Visualisaatioiden integroinnin kannalta Keimo toimii sovelluskehyksenä (framework). Visualisaatiot kytkeytyvät Keimoon siten, että ne mm. voivat julkistaa käyttäjän muuteltavia parametreja ja saavat tiedon käyttäjän antamista syötteistä. Grafiikan tuottamista helpottavat lisäominaisuudet puolestaan ovat kirjastotyyppisiä luokkia ja funktioita, joiden käyttö ei ole visualisaatiolle millään tavalla välttämätöntä. Näitä toimintoja ovat mm. mallien ja tekstuurien lataaminen ja käsittely, mallien automaattinen piirtäminen sekä ajastustoimintojen käyttö. 3.3 Opiskelijat Opiskelijat voivat käyttää ohjelmistoa itseopiskeluun sekä omien ideoiden nopeaan kokeilemiseen mahdollisesti olemassa olevia visualisaatioita muuttelemalla. Myös luennoilla esitettyjen nauhoitusten katseleminen uudestaan ja niiden parametrien muuttelu on mahdollista. Käyttövaatimukset ovat suurimmalta osin katetut kahden edellisen käyttäjäryhmän puitteissa. 4 Yleiskatsaus ohjelmiston rakenteeseen 4.1 Visualisaatiot ja visualisointiohjelmisto Ohjelmisto jakautuu käyttäjän kannalta kahteen osa-alueeseen: visualisointiohjelmistoon ja erillisiin visualisaatioihin. Sisäisesti visualisointiohjelmisto koostuu kahdesta osasta: visualisointisovelluksesta ja kontrollisovelluksesta. Sisäinen jako ei ole käyttäjän kannalta merkityksellinen ja se on tehty ainoastaan ohjelmiston siirrettävyyden parantamiseksi. Visualisaatiot ovat itsenäisiä ohjelman osia, jotka integroituvat visualisointiohjelmistoon kukin itsenäisenä kokonaisuutena. Niiden välillä ei siis ole mahdollisuutta kommunikointiin tai yhteistoimintaan. Visualisaation lisääminen järjestelmään vaatii ainoastaan yhden tiedoston kopioinnin erilliseen visualisaatiohakemistoon. Kun ohjelmisto käynnistetään uudelleen, on uusi visualisaatio välittömästi käytettävissä. Visualisaatio integroituu ohjelmistoon julkaisemalla tarpeelliset tiedot itsestään. Lisäksi se käynnistymisensä yhteydessä ilmoittaa, mitä valikkokomentoja se haluaa julkistaa sekä 5

mitä parametreja se haluaa nauhoituksen tallentavan ja mitä näistä käyttäjä voi muutella. Jos visualisaatiolla on oma aikajanansa, on se myös esitettävä ohjelmistolle. 4.2 Visualisointisovellus ja kontrollointisovellus Sisäisesti visualisointiohjelmisto jakautuu kahteen osaan: visualisointisovellukseen ja kontrollisovellukseen. Näistä visualisointisovellus on se, joka esittää grafiikkaa ja johon erilliset visualisaatiot integroituvat. Kontrollisovelluksen avulla käyttäjä voi muutella visualisaatioiden julkaisemia parametreja sekä nauhoittaa ja toistaa esityksiä. Sovellukset eivät toimi erillään toisistaan, vaan järjestelmän käyttö vaatii aina molempien sovellusten samanaikaista suoritusta. Toinen sovellus voi käynnistää toisen automaattisesti, joten käyttäjän ei tarvitse liiemmin huomioida sisäistä jakoa kahteen sovellukseen. Visualisointisovellus on toteutettu C++-kielellä, ja se huolehtii kaikesta grafiikan piirtämisestä. Siinä ei kuitenkaan ole kontrolleja, sillä niiden toteuttaminen laitteistoriippumattomasti on mahdotonta OpenGL- ja GLUT-rajapintojen avulla. Kontrollisovellus on toteutettu Java-kielellä, ja se sisältää laitteistoriippumattomalla tavalla toteutetut kontrollit. Nämä kaksi sovellusta kommunikoivat keskenään TCP/IP-rajapinnan kautta. Koska molemmat sovellukset ajetaan samalla koneella, viive tiedonsiirrossa sovellusten välillä tulee tuskin aiheuttamaan ongelmia. 4.3 Aika Järjestelmän aikakäsite on jaettu kolmeen toisistaan riippumattomaan osaan, joista kahta käyttäjä voi tietyissä rajoissa hallita. Jokainen visualisaatio määrittää alustuksensa yhteydessä oman aikajanansa, joka voi sisältää mielivaltaisen määrän ns. keskeytyspisteitä (breakpoint). Käyttäjälle tarjotaan mahdollisuus määrätä visualisaation ajan kulku videonauhurin tapaan. Keskeytyspisteet mahdollistavat merkittävien tapahtumien täsmällisen vaiheistuksen siten, että visualisaation toisto pysähtyy automaattisesti jokaisen keskeytyspisteen kohdalla. Aikajanansa lisäksi visualisaatiot voivat myös käyttää toiminnassaan seinäkelloaikaa. Tämä voi olla tarpeellista tietyissä koristeanimaatioissa, jotka eivät varsinaisesti liity visualisaation muuhun toimintaan. Esimerkki tällaisesta animaatiosta voisi olla vaikkapa valonsädettä kuvaavan nuolen kärjen pyöriminen ray tracing menetelmää havainnollistavassa visualisaatiossa. Esitysten valmistelu ja katselu perustuu hyvin suurelta osin käyttäjäinteraktioiden nauhoitukseen. Kukin nauhoitustiedosto sisältää kaikki käyttäjän tekemät visualisaatiota koskevat toimenpiteet, mukaanlukien liikkumisen ajassa. Nauhoitusjärjestelmä on hyvin samankaltainen kuin edellä kuvattu visualisaation sisäisen ajan hallinta. Myös nauhoituksiin voidaan määritellä keskeytyspisteitä lopullista esitystä varten. Nämä mahdollistavat esityksen etenemisen paloissa, joiden välillä luennoitsija voi rauhassa 6

kommentoida kulloinkin havainnollistettavan algoritmin toimintaa. Jos nauhoituksen aikana käyttäjällä tapahtuu jokin virhe, voi hän yksinkertaisesti siirtyä nauhoitustiedoston ajassa taaksepäin ja nauhoittaa virheellisen kohdan uudestaan. 5 Toiminnallisuus Tässä luvussa esitellään muutamia ohjelmiston käytön kannalta oleellisia toimintaperiaatteita, kuvataan ohjelmiston käyttöliittymä sekä tarkastellaan eri toimintojen suorittamista käyttäjän näkökulmasta. 5.1 Toimintaperiaatteet Keimo-järjestelmässä yksittäisten visualisaatioiden ja käyttäjän välinen interaktio tapahtuu ainoastaan kulloisenkin visualisaation määrittelemän parametrijoukon välityksellä. Tavallisesti kumpi tahansa osapuoli voi vapaasti muuttaa minkä tahansa parametrin arvoa haluamallaan tavalla, jolloin se päivittyy välittömästi myös toiselle osapuolelle. Tällä tavalla visualisaatio voi tarkkaan määrittää, millainen interaktio on juuri sen tapauksessa mielekästä. Kuten aikaisemmin mainittiin, on käyttöliittymän kannalta melkeinpä tärkein käsite nauhoitustiedosto. Ajatuksena onkin, että järjestelmässä on aina aktiivisena täsmälleen yksi nauhoitustiedosto. Käynnistyksen yhteydessä luodaan aina uusi tyhjä nauhoitustiedosto, jota ei tosin talleteta levylle kuin käyttäjän toimesta. Jos käyttäjä haluaa vain kokeilla erilaisten parametrien vaikutusta visualisaation toimintaan, voi hän jättää nauhoitukseen ja toistoon liittyvät toiminnot kokonaan huomiotta. Nauhoitustiedostot voidaan koota yhteen erillisen soittolistan avulla. Soittolista on käytännössä tarkoitettu vain nauhoitusten lataamisen helpottamiseksi, eikä se muuten vaikuta järjestelmän toiminnallisuuteen. Kunkin nauhoitustiedoston katselun päättyessä on käyttäjän valittava seuraava tiedosto soittolistalta käsin. 5.2 Käyttöliittymä Keimo-järjestelmän ulkoinen käyttöliittymä on jaettu kahteen osaan. Näistä toinen toimii visualisaatioiden pääasiallisena näkymänä 3D-maailmaan. Toinen taas mahdollistaa järjestelmän yksityiskohtaisemman hallinnan. Suurin osa järjestelmän toiminnoista suoritetaan hallintaosan kautta. 7

View - Z-buffer Demo Pick foo bar Control - record1.kmo File Help Playlist record1.kmo record2.kmo wiggle.kmo funny.kmo Load Add... Remove Move up Move down Playback and record Visualization timeline Z-buffer parameters Depth: 16 bits Show surface Camera Orientation: <click to rotate> FOV: 90.0 Near: 0.5 Far: 99.0 Debug camera Orientation: <click to rotate> FOV: 66.6 Kuva 1 Luonnos järjestelmän käyttöliittymästä Näkymäosa jakautuu tasaisesti jokaiselle käytössä olevalle kameralle. Siihen liittyvät toiminnot rajoittuvat lähinnä kameroiden ja kappaleiden liikutteluun. Visualisaatiolla on myös mahdollisuus liittää näkymään yksinkertaisia popup-valikoita, joiden avulla voidaan esimerkiksi valita käytössä oleva hiiren toimintatila. Hallintaosa sisältää kaikki nauhoitusten hallintaan ja visualisaatioiden valintaan liittyvät toiminnot sekä säädöt kaikille visualisaation parametreille. Parametreihin kuuluvat myös esimerkiksi kameroiden sijainnit, joten osa toiminnoista voidaan suorittaa kumman tahansa käyttöliittymän osan puolelta. Hallintaosan käyttöliittymä koostuu valikkorivin lisäksi useista erillisistä ohjauspaneeleista, jotka vaihtuvat kulloisenkin visualisaation mukaan. Paneelit sijaitsevat pystysuuntaisesti peräkkäin, ja niistä mikä tahansa voidaan supistaa tai laajentaa painamalla sen otsikkopalkissa olevaa nappia. Supistetuista paneeleista näkyvät vain niiden otsikkopalkit. Jos paneelien viemä kokonaistila on pystysuunnassa suurempi kuin ikkunan korkeus, voidaan paneelinäkymää vierittää ikkunan oikeassa reunassa olevan vierityspalkin avulla. Näkymää voidaan myös raahata ottamalla kiinni mistä tahansa sen ei-toiminnallisesta osasta. Visualisaatioista riippumattomia ohjauspaneeleita on kolme: soittolista, nauhoitus ja toisto sekä visualisaation ajan hallinta. Näistä ensimmäinen sisältää käyttäjän määrittämän listan nauhoitustiedostoista sekä sen hallintaan tarvittavat kontrollit. 8

Nauhoitus ja toisto -paneeli sisältää nauhoitustiedoston aikajanan keskeytyspisteineen, nopeuden säädön sekä videonauhureista tutut kontrollinapit. Visualisaation ajan hallinta muistuttaa nauhoitusta ja toistoa, mutta siitä puuttuvat nauhoitukseen liittyvät kontrollit sekä nopeuden säätö. Playback and record Play Stop Prev Next Record Break Speed Visualization timeline Play Stop Prev Next Kuva 2 Nauhoitukseen, toistoon ja visualisaation aikajanan hallintaan tarkoitetut kontrollit 5.3 Toiminnot 5.3.1 Visualisaation valinta Kulloinkin aktiivinen visualisaatio on suoraan yhteydessä auki olevaan nauhoitustiedostoon. Jos käyttäjä haluaa luoda uuden tiedoston, valitsee hän valikosta New record toiminnon ja määrittää tällöin aukeavassa ikkunassa haluamansa visualisaation. 5.3.2 Nauhoituksen lataaminen Ladatakseen nauhoituksen, valitsee käyttäjä valikosta Open record -toiminnon ja hakee haluamansa nauhoitustiedoston. Vaihtoehtoisesti hän voi tuplaklikata soittolistassa näkyvää nauhoitustiedostoa. 5.3.3 Nauhoituksen toistaminen Olettaen, että nauhoitus on kelattu alkuun, voi käyttäjä toistaa sen painamalla nauhoitus ja toisto -paneelin Play-nappia. Toisto pysähtyy jokaisen keskeytyspisteen kohdalla, jolloin katselun jatkamiseksi on painettava uudelleen Play-nappia. Nauhoituksen kelaamiseksi voi käyttäjä raahata aikajanan kohdistinta tai käytää Prev- ja Next-nappeja, jotka kelaavat nauhoituksen suoraan edelliseen tai seuraavaan keskeytyspisteeseen. Jos käyttäjä haluaa katsoa jonkin kohdan hidastettuna, voi hän tehdä tämän nopeusvalitsimella. 9

5.3.4 Visualisaation hallinta Jos nauhoituksen toisto ei ole päällä, voi käyttäjä muuttaa mitä tahansa visualisaation parametreja niitä vastaavista kontrollipaneeleista. Lisäksi hän voi kelata visualisaation sisäistä aikaa vastaavalla tavalla kuin nauhoitusta toistettaessa eri paneelista tosin. Kun nauhoituksen toistoa jatketaan, häviävät kaikki käyttäjän tekemät visualisaation tilaa koskevat muutokset. 5.3.5 Nauhoitus Kun käyttäjä painaa Record-nappia, häviävät nauhoitustiedostosta kaikki nykyistä ajanhetkeä seuraavat tapahtumat, ja järjestelmä siirtyy nauhoitustilaan. Tällöin kaikki käyttäjän tekemät muutokset visualisaation parametreihin ja aikaan tallentuvat nauhoitustiedostoon. Nauhoituksen nopeutta voidaan säätää nopeusvalitsimella. Tästä on hyötyä esimerkiksi, jos jokin tarkkuutta vaativa kohta halutaan nauhoittaa todellista hitaammin. Jos käyttäjä haluaa tehdä useampia muutoksia yhdellä kertaa, voi hän pysäyttää nauhoituksen Stop-napilla, ja jatkaa sitä muutosten tekemisen jälkeen painamalla uudelleen Record-nappia. Keskeytyspisteiden hallinta tapahtuu Break-napin avulla. Aina kun aikajanan kohdistin on jonkin keskeytyspisteen kohdalla, on Break-nappi vastaavasti painuneena alas. Keskeytyspisteitä voidaan lisätä ja poistaa painamalla tätä nappia, jolloin se toimii päällepois -periaatteella. Aina nappia painettaessa keskeytyy mahdollinen nauhoitus automaattisesti. 5.3.6 Kameran siirtäminen Kameraa voidaan siirtää joko näkymäosan tai hallintaosan puolelta, jos visualisaatio tämän sallii. Näkymäosassa siirtäminen tapahtuu siten, että käyttäjä painaa hiiren napin pohjaan haluamaansa kameraa vastaavassa näkymässä. Tällöin hiiren liikutus saa kameran kääntymään ja sitä voidaan liikuttaa nuolinäppäimiä painelemalla. Hallintaosan puolella käyttäjän on kameran siirtämiseksi ensin etsittävä sitä vastaava ohjauspaneeli ja mahdollisesti laajennettava se. Tämän jälkeen hän voi joko syöttää kameran koordinaatit numeromuodossa tai painaa hiiren napin pohjaan tietyllä paneelin alueella, jolloin ohjauskontrollit ovat samanlaiset kuin näkymäosassa. 5.3.7 Visualisaatiokohtaiset toiminnot Koska yksittäisiä visualisaatioita ei vielä tarkemmin ole suunniteltu, ei niihin liittyvistä toiminnoista voida vielä sanoa mitään. Toiminnot kuitenkin noudattavat edellä esitettyjä periaatteita, ja niitä vastaavat ohjauspaneelit sijaitsevat käyttöliittymän hallintaosan puolella. 10

6 Muut ominaisuudet 6.1 Tehokkuus Keimon ollessa graafinen 3D-sovellus, on sitä mahdotonta toteuttaa ilman jonkinlaisia laitteiston suorituskykyvaatimuksia. Jotta mahdollisimman usealla opiskelijalla olisi mahdollisuus käyttää Keimoa kotonaan, tavallinen 3D-kiihdyttimellä varustettu koti-pc riittää ohjelmiston käyttämiseen. 6.2 Käytettävyys Käyttöliittymä on suunniteltu siten, että valmiiden nauhoitusten katsominen onnistuisi mahdollisimman helposti, vain muutamalla hiiren painalluksella. Näin opiskelijat voisivat saada mahdollisimman suuren hyödyn Keimosta joutumatta opettelemaan monimutkaisia asioita sen käytöstä. Nauhoitusten tekeminen on luonnollisesti hieman hankalampaa, mutta siitäkin on yritetty tehdä mahdollisimman helppoa, jotta luennoitsijat voisivat vaivattomasti luoda uusia esityksiä luennoille sekä opiskelijoille kotiin jaettavaksi. 6.3 Asennus Ohjelmiston kohdeyleisöön kuuluvat myös tietokonegrafiikan opiskelijat, josta johtuen Keimon käyttöönoton tulisi olla mahdollisimman helppoa. Yhdeltäkään opiskelijalta ei saisi mennä Keimon aiheuttama oppimiskokemus sivu suun työlään asennuksen vuoksi. Asennuksen tulee onnistua pelkästään lataamalla asennuspaketti internetistä ja ajamalla asennusohjelma. Tämän jälkeen Keimon tulee olla valmis käyttöä varten. 6.4 Siirrettävyys ja yhteensopivuus Koska järjestelmä on kirjoitettu C++- sekä Java-kielillä, sen tulisi olla lähes riippumaton sekä laitteistosta että käyttöjärjestelmästä. Hyvin pieni osa koodista käyttää kuitenkin käyttöjärjestelmäkutsuja, jotka täytyy kirjoittaa erikseen jokaiselle laitealustalle. Tyypillisesti hyvin vaikeasti eri järjestelmiin siirrettävä käyttöliittymä on Keimossa toteutettu Java-kielellä, jotta se voidaan helposti siirtää mihin tahansa ympäristöön. 11

7 Ulkoiset rajapinnat 7.1 OpenGL ja GLUT Visualisointisovellus käyttää OpenGL- ja GLUT-rajapintoja grafiikan esittämiseen, grafiikkaikkunan avaamiseen, ponnahdusvalikoiden luomiseen grafiikkaikkunaan sekä käyttäjän näppäimistö- ja hiirisyötteiden vastaanottamiseen grafiikkaikkunassa. 7.2 Java AWT Kontrollisovellus pohjautuu Java-kielen standardoituun Abstract Window Toolkit (AWT) käyttöliittymäkirjastoon. Tämän ansioista kontrollisovellus on siirrettävissä ilman minkäänlaisia muutoksia mille tahansa laitteistoalustalle, jolle Java Runtime -ympäristö on saatavilla. 7.3 TCP/IP Tiedonsiirto visualisointi- ja kontrollisovellusten välillä suoritetaan TCP/IP-protokollalla. Siihen on kaikissa Unix-pohjaisissa ympäristöissä (mm. Linux) sekä Windowskäyttöjärjestelmässä samanlainen BSD Sockets -standardin mukainen rajapinta. 7.4 Visualisaatiorajapinta Visualisaatiot integroituvat visualisointiohjelmistoon visualisaatiorajapinnan kautta. Tämä rajapinta tarjotaa visualisaatioille luvuissa 2.2 ja 3.1 mainitut palvelut. 8 Rajoitukset ja vaatimukset 8.1 Standardit Keimo on implementoitu käyttäen standardia C++:aa [1] ja Javaa [2]. Lähdekoodi on lähes riippumaton käyttöjärjestelmästä. Sekä C++ että Java lähdekoodit on dokumentoitu käyttäen Doxygeniä [3]. Keimo Visualizer käyttää graafisena rajapintana OpenGL versiota 1.1 [4] sekä GLUTtyökalukirjastoa [5]. OpenGL:stä käytössä ovat vain standardin mukaiset osat. Laajennuksia ei käytetä. 12

8.2 Laitteisto- ja ympäristövaatimukset Lähdekoodi on kirjoitettu mahdollisimman ympäristöriippumattomaksi, joten Keimon voi kääntää mihin tahansa laitteistoympäristöön, jossa on standardin mukaiset C++- ja Javakääntäjät. Lisäksi Keimon ajamiseen vaaditaan OpenGL ja GLUT kirjastot. 8.3 Muut vaatimukset Järjestelmässä ei ole muita tunnettuja vaatimuksia. 9 Hylätyt ratkaisut 9.1 C++-kielellä toteutettu käyttöliittymä Alkuperäisessä suunnitelmassa myös käyttöliittymä oli tarkoitus toteuttaa C++-kielellä. Tästä kuitenkin luovuttiin erinäisistä syistä. Javalla toteutettu käyttöliittymä todettiin huomattavasti helpommin siirrettäväksi mihin tahansa ympäristöön kuin yleisesti saatavilla olevat usean käyttöjärjestelmän C++-kieliset GUI-kirjastot. Kyseiset kirjastot päätettiin hylätä myös siitä syystä, että projektin henkilöiden tuntemus niistä on huomattavasti matalampi kuin Javan käyttöliittymäohjelmoinnista. Näin ulkopuolisesta teknologiasta johtuvia riskejä saatiin pienennettyä. 10 Jatkokehitys Keimon jatkokehityksessä on kolme erillistä osa-aluetta, joista jokaista voidaan kehittää erillisesti, muista riippumattomasti. Projektin aikana uudet Keimon jatkokehitykseen liittyvät ideat tullaan kirjaamaan ylös. 10.1 Siirtäminen muille alustoille Keimon siirtäminen muille laitealustoille (esim. Linux- ja Unix-ympäristöt) olisi suotavaa, jotta kaikilla opiskelijoilla olisi mahdollisuus osallistua Keimon suomiin oppimiskokemuksiin. 10.2 Uusien visualisaatioiden lisääminen Keimoon voidaan tulevaisuudessa toteuttaa uusien algoritmien visualisaatioita sekä muokata vanhoista visualisaatioista kattavampia ja havainnollisempia. Uusien visualisaatioiden tekeminen on suhteellisen helppoa johtuen Keimon tarjoamista kattavista palveluista erilaisten graafisten efektien tekemiseen. 13

10.3 Keimon rungon parantaminen Lisäksi Keimon visualisaatioille tarjoamia palveluita voidaan laajentaa mahdollistamaan ja helpottamaan yhä vaikeampien algoritmien visualisointia. Mahdollisia visualisaatioiden käytettäväksi tarkoitettavia apuluokkia on helppo keksiä paljon enemmän kuin projektin aikana ehditään toteuttaa, joten ainoastaan tärkeimmät ja visualisaatioiden kirjoittamista eniten helpottavat apuluokat ja funktiot tullaan toteuttamaan. 11 Avoimet kysymykset 11.1 Visualisaatioiden ohjelmointirajapinta Visualisaatioiden käyttämä ohjelmointirajapinta on vielä suurelta osin päättämättä. Laajat yleislinjaukset on päätetty, mutta luokkien ja metodien tarkempi määrittely on tässä vaiheessa vielä mahdotonta. 11.2 Muut avoimet kysymykset Muita avoimia kysymyksiä ei tiedetä olevan. 12 Viitteet [1] The C++ Programming Language, Bjärne Stroustrup [2] The Source for Java Technology, [viitattu 3.11.2002] URL: http://java.sun.com/ [3] Doxygen Homepage, [viitattu 3.11.2002] URL: http://www.stack.nl/~dimitri/doxygen/ [4] OpenGL 1.1 Reference Manual [5] The OpenGL Utility Toolkit (GLUT), [viitattu 3.11.2002] URL: http://www.xmission.com/~nate/glut.html 14