Dataläheinen suunnittelu: Tehokkuuslupaukset ja sovelluskohteet
Sirviö, Aleksi (2022)
Sirviö, Aleksi
2022
Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
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ä
2022-05-02
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202204273903
https://urn.fi/URN:NBN:fi:tuni-202204273903
Tiivistelmä
Dataläheinen suunnittelu (engl. Data-oriented design) on viime vuosikymmenellä videopeliteollisuudesta noussut ohjelmointiparadigma, joka pyrkii vastaamaan olio-ohjelmoinnin koettuihin ongelmiin ja rajoituksiin. Tämä tutkielma on kirjallisuuskatsausmuotoinen sukellus aiheeseen. Dataläheistä suunnittelua käsitteleviä tieteellisiä lähteitä etsittiin laajasti eri tietokannoista, joista löytyneiden lähteiden luonne ohjasi tutkielman rakennetta ja tutkimuskysymyksiä. Koska tehokkuuslupaukset ovat tärkeä osa dataläheisen suunnittelun identiteettiä, tässä tutkielmassa tutkitaan erityisesti niiden käytännön toteutumista. Lisäksi tutkielmassa pohditaan, minkälaisia sovelluskohteita dataläheiselle suunnittelulle löytyy ja mitkä tunnuspiirteet omaavissa ohjelmistoissa siitä on erityisesti hyötyä.
Tieteellistä tutkimusta aiheesta on vielä niukasti. Olemassa oleva tutkimus keskittyy vertailemaan perinteisiä olio-ohjelmointiratkaisuja dataläheisiin ratkaisuihin erityisesti ohjelman suoritusnopeuden näkökulmasta. Tutkielmassa hyödynnetyt lähteet tukevat yksikäsitteisesti väitettä, että dataläheisesti suunniteltu ohjelma hyödyntää paremmin keskusprosessorin välimuistia ja on näin vastaavaa olio-ohjelmaa nopeampi. Lisäksi lähteissä korostetaan dataläheisen ohjelmakoodin soveltuvuutta rinnakkaiseen suoritukseen, mikä on nykyisin erityisen tärkeää, sillä suurin osa laitteista puhelimiamme myöten tukee moniprosessointia. Eräs huomionarvoinen seikka on, että dataläheisen suunnittelun tehokkuushyötyjen toteutuminen vaatii hyvää ymmärrystä siitä, miten dataa hyödynnetään ohjelmassa. Muutoin datan jäsentely ideaaliseen muotoon on vaikeaa.
Videopeleillä ja lähteistä poimituilla sovelluskohteilla on ohjelmistoina tiettyjä yhteisiä tunnuspiirteitä. Näitä ovat käsiteltävän datan suuri määrä, datan prosessoinnin jatkuvuus tai reaaliaikaisuus, sekä suoritusnopeuden tärkeys tai jopa välttämättömyys. Dataläheisestä suunnittelusta on erityisesti hyötyä nämä tunnuspiirteet omaavissa ohjelmistoissa. Paradigman uutuuden ja tutkimuksen vähäisyyden vuoksi on myös mahdollista, että dataläheiselle suunnittelulle löytyy täysin uudenlaisia sovelluskohteita tulevaisuudessa.
Tieteellistä tutkimusta aiheesta on vielä niukasti. Olemassa oleva tutkimus keskittyy vertailemaan perinteisiä olio-ohjelmointiratkaisuja dataläheisiin ratkaisuihin erityisesti ohjelman suoritusnopeuden näkökulmasta. Tutkielmassa hyödynnetyt lähteet tukevat yksikäsitteisesti väitettä, että dataläheisesti suunniteltu ohjelma hyödyntää paremmin keskusprosessorin välimuistia ja on näin vastaavaa olio-ohjelmaa nopeampi. Lisäksi lähteissä korostetaan dataläheisen ohjelmakoodin soveltuvuutta rinnakkaiseen suoritukseen, mikä on nykyisin erityisen tärkeää, sillä suurin osa laitteista puhelimiamme myöten tukee moniprosessointia. Eräs huomionarvoinen seikka on, että dataläheisen suunnittelun tehokkuushyötyjen toteutuminen vaatii hyvää ymmärrystä siitä, miten dataa hyödynnetään ohjelmassa. Muutoin datan jäsentely ideaaliseen muotoon on vaikeaa.
Videopeleillä ja lähteistä poimituilla sovelluskohteilla on ohjelmistoina tiettyjä yhteisiä tunnuspiirteitä. Näitä ovat käsiteltävän datan suuri määrä, datan prosessoinnin jatkuvuus tai reaaliaikaisuus, sekä suoritusnopeuden tärkeys tai jopa välttämättömyys. Dataläheisestä suunnittelusta on erityisesti hyötyä nämä tunnuspiirteet omaavissa ohjelmistoissa. Paradigman uutuuden ja tutkimuksen vähäisyyden vuoksi on myös mahdollista, että dataläheiselle suunnittelulle löytyy täysin uudenlaisia sovelluskohteita tulevaisuudessa.
Kokoelmat
- Kandidaatintutkielmat [8253]