Sulava siirtymä 3D- ja 2D-objektien välillä
Anttila, Nina (2018)
Anttila, Nina
2018
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2018-06-06
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201805221753
https://urn.fi/URN:NBN:fi:tty-201805221753
Tiivistelmä
Ohjemistojen visualisointi on tärkeä osa ohjelmistokehitystä, sillä graafisella kuvalla voidaan välittää informaatiota järjestelmästä sanallista dokumentaatiota paremmin. Ohjelmistot ovat kuitenkin rakenteiltaan monimutkaisia ja kaiken tarvittavan informaation tehokas välitys voi olla hankalaa, sillä perinteiset kaksiulotteiset visualisointimenetelmät, kuten graafit ja listat, muuttuvat sekaviksi informaation määrän kasvaessa. Apua ongelmaan pyritään löytämään kolmiulotteisista visualisointitekniikoista, joilla voidaan kiteyttää suurempi määrä informaatiota kuviin.
3D tuo kuitenkin mukanaan haasteita. Navigointi näkymässä on haastavampaa vapaamman liikkuvuuden takia ja pahimmillaan käyttäjä voi eksyä näkymään. Perinteisiin käyttöliittymiin tottuneen käyttäjän voi olla myös hankala hahmottaa, että 3D-objektit sisältävät toimintoja. 3D ei myöskään sovellu kaikkeen, vaan osa informaatiosta on edelleen suotavaa esittää kaksiulotteisin menetelmin. Lisäksi myös 3D:lläkin tulee raja vastaan informaation määrän kanssa.
Ohjelmistokokonaisuuden visualisoinnissa on hyvä yhdistää sekä 3D- että 2D-visualisointitapoja. Tässä työssä selvitetään miten siirtymä eri visualisointimenetelmien välillä saadaan sulavaksi toteuttamalla prototyyppi ohjelmasta, jolla mallinnetaan ohjelman hierarkiarakenteita 3D-objekteilla ja komponenttien yksityiskohtia, muokattavia tekstidokumentteja, 2D-objekteilla. Prototyyppi toteutetaan Qt:lla ja sen 3D-piirron moduulilla Qt 3D:llä.
Siirtymä 3D- ja 2D-objektien välillä saadaan sulavaksi käyttämällä pehmeää liikettä, navigaation rajaamista sekä maamerkkejä ehkäisemään käyttäjän eksymistä. 3D:stä 2D-näkymään ja hierarkiatasojen väliseen siirtymiseen käytetään semanttista zoomausta, jolla hallitaan myös näkymässä kerralla näytettävää tietoa. Interaktiota näkymän kanssa korostetaan animaatioilla.
Prototyyppi toteutettiin ensisijaisesti korvamaan perinteiset 2D-valikot Kactus2-ohjelmassa, joita käytetään kuvaamaan IP-XACT-kirjastojen hierarkiarakennetta. Kactus2:n ohella prototyypin idea on myös sovellettavissa muihin ohjelmistosuunnittelussa käytettäviin järjestelmiin esimerkiksi kuvaamaan projektin kansiorakenteita tai eri moduulien suhteita toisiinsa.
3D tuo kuitenkin mukanaan haasteita. Navigointi näkymässä on haastavampaa vapaamman liikkuvuuden takia ja pahimmillaan käyttäjä voi eksyä näkymään. Perinteisiin käyttöliittymiin tottuneen käyttäjän voi olla myös hankala hahmottaa, että 3D-objektit sisältävät toimintoja. 3D ei myöskään sovellu kaikkeen, vaan osa informaatiosta on edelleen suotavaa esittää kaksiulotteisin menetelmin. Lisäksi myös 3D:lläkin tulee raja vastaan informaation määrän kanssa.
Ohjelmistokokonaisuuden visualisoinnissa on hyvä yhdistää sekä 3D- että 2D-visualisointitapoja. Tässä työssä selvitetään miten siirtymä eri visualisointimenetelmien välillä saadaan sulavaksi toteuttamalla prototyyppi ohjelmasta, jolla mallinnetaan ohjelman hierarkiarakenteita 3D-objekteilla ja komponenttien yksityiskohtia, muokattavia tekstidokumentteja, 2D-objekteilla. Prototyyppi toteutetaan Qt:lla ja sen 3D-piirron moduulilla Qt 3D:llä.
Siirtymä 3D- ja 2D-objektien välillä saadaan sulavaksi käyttämällä pehmeää liikettä, navigaation rajaamista sekä maamerkkejä ehkäisemään käyttäjän eksymistä. 3D:stä 2D-näkymään ja hierarkiatasojen väliseen siirtymiseen käytetään semanttista zoomausta, jolla hallitaan myös näkymässä kerralla näytettävää tietoa. Interaktiota näkymän kanssa korostetaan animaatioilla.
Prototyyppi toteutettiin ensisijaisesti korvamaan perinteiset 2D-valikot Kactus2-ohjelmassa, joita käytetään kuvaamaan IP-XACT-kirjastojen hierarkiarakennetta. Kactus2:n ohella prototyypin idea on myös sovellettavissa muihin ohjelmistosuunnittelussa käytettäviin järjestelmiin esimerkiksi kuvaamaan projektin kansiorakenteita tai eri moduulien suhteita toisiinsa.