Prototypointiteknologiat ohjelmistokehityksessä
Hirvi, Aaron (2025)
Hirvi, Aaron
2025
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
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ä
2025-02-14
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202502132191
https://urn.fi/URN:NBN:fi:tuni-202502132191
Tiivistelmä
Uusien teknologioiden testaaminen ja tuoteideoiden validoiminen on oleellinen osa ohjelmistotuotteisiin perustuvaa liiketoimintaa. Testaaminen ja validoiminen luovat motiivin ohjelmistoprototyyppien luonnille. Tässä työssä tutkitaan prototypointia ja siihen soveltuvia teknologioita kohdeyrityksen tarpeisiin konstruktiivisen tutkimuksen kautta. Prototypoinnin prosessia, tekniikoita ja motiiveja käsitellään tutkimuksen teoriavaiheessa, joka pohjustaa kehittämisvaihetta. Kehittämisvaiheessa rakennetaan kaksi prototyyppijärjestelmää, joissa hyödynnetään valittuja teknologioita. Järjestelmien kehittämisestä on kerätty havaintoja, joiden perusteella voidaan arvioida valittujen teknologioiden soveltuvuutta ohjelmistoprototyyppien kehittämiseen. Havaintoja käsitellessä myös soveltuvuutta tuotantokäyttöön on pohdittu.
Prototypoinnin motiivina voi toimia asiakaspalautteen kerääminen, uusien ideoiden validointi, teknologia- ja arkkitehtuurikokeilut tai ohjelmistoprojektin vaatimusten selkeyttäminen. Usein prototyypin luonti tapahtuu ennen laajemman tuotantojärjestelmän kehitystä, jolloin sillä vähennetään epävarmuutta ja pienennetään investointiriskiä. Eri prototypointitekniikat pyrkivät erilaisiin lopputuloksiin. Prototypointitekniikoita on mm. esittely- ja koekytkentäprototyyppi, varsinainen prototyyppi sekä pilottijärjestelmä. Prototypointia on myös tutkivaa, kokeilevaa ja evolutionääristä. Prosessi voidaan tämän lisäksi jakaa horisontaaliin ja vertikaalin prototypointiin.
Tutkittaviksi teknologioiksi valittiin BaaS-alusta Supabase ja tietokantapalvelu SurrealDB. Supabase tarjosi kehittäjäystävällisen ratkaisun tietokannan hallintaan ja tietokantakyselyiden kirjoittamiseen. Se pohjautuu PostgreSQL-tietokantaan, jonka vakaus ja nopeus tukivat järjestelmän kehittämistä. Kattava JavaScript SDK helpotti BaaS-alustan integrointia muihin komponentteihin. Lisäominaisuudet tukivat myös järjestelmän muita tarpeita, kuten reaaliaikaisten tietokantamuutosten lähettämistä muille palveluille. Supabase koettiin hyödylliseksi prototyypin kehittämisessä ja sen kokeilua jatketaan tulevissa järjestelmissä, joissa sen ominaisuuksia voidaan hyödyntää laajemmin. SurrealDB:n käytössä havaittiin ongelmia johtuen sen aikaisesta kehitysvaiheesta. Palvelu pohjautuu NoSQL-tietokantaan, joka aiheutti järjestelmän toimintaan suorituskykyongelmia, johtuen suurista tietomääristä. Myös JavaScript SDK oli vielä kehityksessä, joka hidasti prototyypin kehittämistä ja loi tarpeen tietokantapalvelun oman kyselykielen SurrealQL:n opettelemiselle. Palvelun käyttö vaati myös matalamman tason ymmärrystä verrattuna Supabaseen. Vaikka SurrealDB tarjosi ominaisuuksia, joista voi olla jatkossa hyötyä, järjestelmän kehityksessä siitä koettu hyöty oli vähäinen ja sen jatkokäyttö odottaa palvelun kehittymistä.
Prototypoinnin motiivina voi toimia asiakaspalautteen kerääminen, uusien ideoiden validointi, teknologia- ja arkkitehtuurikokeilut tai ohjelmistoprojektin vaatimusten selkeyttäminen. Usein prototyypin luonti tapahtuu ennen laajemman tuotantojärjestelmän kehitystä, jolloin sillä vähennetään epävarmuutta ja pienennetään investointiriskiä. Eri prototypointitekniikat pyrkivät erilaisiin lopputuloksiin. Prototypointitekniikoita on mm. esittely- ja koekytkentäprototyyppi, varsinainen prototyyppi sekä pilottijärjestelmä. Prototypointia on myös tutkivaa, kokeilevaa ja evolutionääristä. Prosessi voidaan tämän lisäksi jakaa horisontaaliin ja vertikaalin prototypointiin.
Tutkittaviksi teknologioiksi valittiin BaaS-alusta Supabase ja tietokantapalvelu SurrealDB. Supabase tarjosi kehittäjäystävällisen ratkaisun tietokannan hallintaan ja tietokantakyselyiden kirjoittamiseen. Se pohjautuu PostgreSQL-tietokantaan, jonka vakaus ja nopeus tukivat järjestelmän kehittämistä. Kattava JavaScript SDK helpotti BaaS-alustan integrointia muihin komponentteihin. Lisäominaisuudet tukivat myös järjestelmän muita tarpeita, kuten reaaliaikaisten tietokantamuutosten lähettämistä muille palveluille. Supabase koettiin hyödylliseksi prototyypin kehittämisessä ja sen kokeilua jatketaan tulevissa järjestelmissä, joissa sen ominaisuuksia voidaan hyödyntää laajemmin. SurrealDB:n käytössä havaittiin ongelmia johtuen sen aikaisesta kehitysvaiheesta. Palvelu pohjautuu NoSQL-tietokantaan, joka aiheutti järjestelmän toimintaan suorituskykyongelmia, johtuen suurista tietomääristä. Myös JavaScript SDK oli vielä kehityksessä, joka hidasti prototyypin kehittämistä ja loi tarpeen tietokantapalvelun oman kyselykielen SurrealQL:n opettelemiselle. Palvelun käyttö vaati myös matalamman tason ymmärrystä verrattuna Supabaseen. Vaikka SurrealDB tarjosi ominaisuuksia, joista voi olla jatkossa hyötyä, järjestelmän kehityksessä siitä koettu hyöty oli vähäinen ja sen jatkokäyttö odottaa palvelun kehittymistä.