Android-ohjelman suunnittelu ja määrittely sekä toteutus käyttäen konstruktiivista suunnittelua
Törrö, Teemu (2021-04-15)
Törrö, Teemu
T. Törrö
15.04.2021
© 2021 Teemu Törrö. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-202104177560
https://urn.fi/URN:NBN:fi:oulu-202104177560
Tiivistelmä
Työn tavoitteena oli tutkia, sopiiko konstruktiivinen tutkimusmenetelmä Android-ohjelma suunnitteluun ja määrittelyyn sekä toteutukseen. Motiivina työn tekemiseen oli löytää mahdollinen toteutuskeino uudelle järjestelmälle. Olemassa olevalle järjestelmälle tarvittiin korvaava järjestelmä, jotta mobiililaitteen käyttäjällä pääsy informaatioon helpottuisi.
Ensiksi käytiin läpi Android-arkkitehtuuri, tietoturvakäytännöt ja SELinuxin toiminta Android-käyttöjärjestelmässä. Tämän jälkeen tutustuttiin Androidin tietoturvauhkiin ja niiden tutkimukseen. Seuraavaksi esiteltiin mahdolliset Android-sovelluksien ja palvelimen sekä teknologian arkkitehtuuri. Vaatimusmäärittelyssä tutustuttiin perinteisen vesiputousmallin ja ketterien menetelmien vaatimusmäärittelyprosessiin. Seuraavaksi käytiin läpi tutkimusmenetelmät eli tässä tapauksessa konstruktiivinen tutkimus, jonka pohjalta luotiin kuvaus konstruktiivisen tutkimuksen prosessin vaiheista. Lukijalle esiteltiin ongelmakehys kokonaisuudessaan, ensin esiteltiin ongelma ja olemassa oleva järjestelmä, mistä päästiin tulevan järjestelmän esittelyyn. Konstruktiivisen tutkimuksen määrittelyvaiheen avuksi sovellettiin ketterien menetelmien käyttäjätapauksia. Lisäksi esiteltiin käyttäjätapauksen kirjoittamista indeksikortille ja vaatimusmääriteltiin esimerkin avulla tuleva Android-ohjelma ja siihen kuuluva palvelin-ohjelma sekä määriteltiin teknologia. Itse konstruktio toteutettiin kolmena mahdollisena toteutuksena Android-sovelluksesta. Tämän lisäksi palvelimen ja teknologia konstruktio toteutettiin. Seuraavaksi konstruktio evaluoitiin analyyttisesti ja testauksen avulla. Lopuksi koottiin tulokset yhteen. Tutkimuksen perusteella konstruktiivisen tutkimuksen iteratiivinen prosessi ja ketterien menetelmien käyttäjäkertomukset tukevat Android-ohjelman suunnittelua ja määrittelyä sekä toteutusta. Konstruktiivista tutkimusta hyödyntäen tässä työssä toteutettiin kolme erilaista toteutusta Android-sovelluksille. This Master of Science degree work researched Android Application design, specification and implementation using Design Science. Starting point of work was old website and its RSS-feed modernisation to use it in mobile phone especially in Android device in first place. This conversion from old to new should be automated, so that user of mobile user can get information easily and possibly get information in push messages to their devices. Motivation for work was to find a way get information in correct form to user screen when it is needed in Android application.
At first scrutinized literature review of Android architecture, its security, and possible threats against it. Then reviewed requirements specification literature from waterfall method to modern day Agile methods. After that reviewed possible Android applications implementations as a whole system from system architecture to server and frontend architecture. The system and its architecture should provide backend in light way credit card sized Raspberry pi computer, but also be portable to Docker container or traditional server if needed. Backend of Android application used Python based Flask microframework.
Based on literature review and using Design Science research iterative model were developed, what and how Design science should be implemented. Using that model research go through from issue frame to construction specification using use cases and index-cards to specify construction. Then research reveals construction implementation in three possible Android applications and its backend. There is discussion how technology is implemented in this construction. After that research evaluates construction analytical and using unit tests, integration tests, system tests and acceptance tests. Then there is discussion how well design science supports Android application design, specification, and implementation. Research result was that it supports it, but researcher have to decide, what tools to use in which part of Design Science framework, when artefact is crafted. For future work, it would be nice to implement similar work for another mobile devices and operation systems and see if results would be similar.
Ensiksi käytiin läpi Android-arkkitehtuuri, tietoturvakäytännöt ja SELinuxin toiminta Android-käyttöjärjestelmässä. Tämän jälkeen tutustuttiin Androidin tietoturvauhkiin ja niiden tutkimukseen. Seuraavaksi esiteltiin mahdolliset Android-sovelluksien ja palvelimen sekä teknologian arkkitehtuuri. Vaatimusmäärittelyssä tutustuttiin perinteisen vesiputousmallin ja ketterien menetelmien vaatimusmäärittelyprosessiin. Seuraavaksi käytiin läpi tutkimusmenetelmät eli tässä tapauksessa konstruktiivinen tutkimus, jonka pohjalta luotiin kuvaus konstruktiivisen tutkimuksen prosessin vaiheista. Lukijalle esiteltiin ongelmakehys kokonaisuudessaan, ensin esiteltiin ongelma ja olemassa oleva järjestelmä, mistä päästiin tulevan järjestelmän esittelyyn. Konstruktiivisen tutkimuksen määrittelyvaiheen avuksi sovellettiin ketterien menetelmien käyttäjätapauksia. Lisäksi esiteltiin käyttäjätapauksen kirjoittamista indeksikortille ja vaatimusmääriteltiin esimerkin avulla tuleva Android-ohjelma ja siihen kuuluva palvelin-ohjelma sekä määriteltiin teknologia. Itse konstruktio toteutettiin kolmena mahdollisena toteutuksena Android-sovelluksesta. Tämän lisäksi palvelimen ja teknologia konstruktio toteutettiin. Seuraavaksi konstruktio evaluoitiin analyyttisesti ja testauksen avulla. Lopuksi koottiin tulokset yhteen. Tutkimuksen perusteella konstruktiivisen tutkimuksen iteratiivinen prosessi ja ketterien menetelmien käyttäjäkertomukset tukevat Android-ohjelman suunnittelua ja määrittelyä sekä toteutusta. Konstruktiivista tutkimusta hyödyntäen tässä työssä toteutettiin kolme erilaista toteutusta Android-sovelluksille.
At first scrutinized literature review of Android architecture, its security, and possible threats against it. Then reviewed requirements specification literature from waterfall method to modern day Agile methods. After that reviewed possible Android applications implementations as a whole system from system architecture to server and frontend architecture. The system and its architecture should provide backend in light way credit card sized Raspberry pi computer, but also be portable to Docker container or traditional server if needed. Backend of Android application used Python based Flask microframework.
Based on literature review and using Design Science research iterative model were developed, what and how Design science should be implemented. Using that model research go through from issue frame to construction specification using use cases and index-cards to specify construction. Then research reveals construction implementation in three possible Android applications and its backend. There is discussion how technology is implemented in this construction. After that research evaluates construction analytical and using unit tests, integration tests, system tests and acceptance tests. Then there is discussion how well design science supports Android application design, specification, and implementation. Research result was that it supports it, but researcher have to decide, what tools to use in which part of Design Science framework, when artefact is crafted. For future work, it would be nice to implement similar work for another mobile devices and operation systems and see if results would be similar.
Kokoelmat
- Avoin saatavuus [31657]