Skip to content

Palvelun/tuotteen vaatimusmäärittely

TTOS0800+TTOS0900 Projektityö - WR Wear-right

  • Ari-Pekka Kauppinen - L4171 || Eero Ronkainen - L5047 || Markus Nylund - L5392 || Timo Soini - K9108 || Aaro Kettunen - M0138
  • 2019
  • Versionumero: V.1

Sisällysluettelo

Pidä sisällysluettelo kunnossa, eli päivitä sitä tarpeen mukaan! Huomaa MarkDown-ankkurilinkitys

Johdatus

Kurssille TTOS0800(3 opintopistettä)+TTOS0900(4 opintopistettä) toteutetaan projekti yritysyhteistyössä. Projektissa laaditaan asianmukaiset suunnittelu-, toteutus- ja arviointidokumentit, joiden pohjalta projektia lähdetään työstämään. Dokumenttien laatimisen lisäksi projektin tavoitteena on saada tuote, joka voi olla keskeneräinen, mutta antaa kuvan siitä, mikä tuote tulisi olemaan. Tuotteen ohjelmoinnin lisäksi ohjelmaa testataan eri menetelmin ja arvioidaan onnistumista.

Yhteensä kurssit ovat 7 opintopistettä, eli tunteina 189h / henkilö. Yhteensä projektiin suunnitellaan käytettäväksi 945h ja kustannusarvio on 47250e.

Alustava työmääräarvio:

  • Dokumentointi 5%

  • Backend 35% Tietokanta Nodejs

  • Frontend 35% React -> komponentit css

  • Testaus 25% käyttäjätestit Automaatiotestaus

Vaatimusmäärittelytyön tilaaja

WR - Wear-right

Vaatimusmäärittelyn toimittaja

Ryhmä F -Factor. Ryhmä koostuu viidestä ohjelmointialan asiantuntijasta, joilla on myös visuaalista osaamista ja innovointitaitoa.

Palvelukuvaus

Projektissa toteutettava tuote on nimeltään WR -Wear Right, joka on tarkoitettu ohjaamaan käyttäjää sään mukaiseen pukeutumiseen. Sovelluksen tulee kertoa käyttäjälle, mikä säätila haluttuna ajankohtana on ja minkälaiset vaatteet kyseiseen säähän kannattaa pukea ylleen. Ensimmäinen päätoiminto on se. että käyttäjä voi tehdä ja tallentaa profiileja sovellukseen. Eri profiileille voidaan määritellä mm. nimi, ikä, sukupuoli ja kaupunki, jotta vaate-ehdotukset saadaan kohdennettua. Toisena päätoimintona sovelluksen tulee myös näyttää säätiedot halutulta ajalta. Säätiedoissa käytetään jotain avointa rajapintaa, jotka ilmaisevat lämpötilan, tuulen voimakkuuden, "tuntuu kuin" -lämpötilan sekä mahdollisen UV -säteilyvaaran. Kolmantena päätoimintona sovellukseen voidaan suunnitella oma matka. Matka voidaan tallentaa laitteeseen ja sovellus antaa säätiedot, sekä pukeutumisvinkit matkan ajankohdalle.

Sovelluksen toteutuksessa ei ole erikseen määritelty teknologiaa, jota sen toteutuksessa on käytettävä.

Sovelluksen pääkohderyhmänä on äidit/vanhemmat.

Valitut asiakastarinat

Vanhemmat

Sovellus auttaa vanhempia nopeasti pukemaan lapsensa sääolosuhteisiin. Toimii myös motivaattorina lapsien pukeutumisessa. Sovellusta voidaan myöhemmin pelillistää edistämään tätä.

Harrasteryhmät

Harrasteryhmillä voi olla pidempiä matkoja esimerkiksi erämaahan johon on tärkeä pukeutua oikein jottei esimerkiksi paleltuisi.

Matkaajat

Ulkomaanmatkaajat eivät tiedä Suomen sääolosuhteista joten heitä olisi hyvä opastaa pukeutumaan Suomen vaihteleviin sääolosuhteisiin.

Yleinen sidosryhmäkuva (Stakeholder map)

Tunnistetut sidosryhmäkuvaukset (Stakeholders)

Palvelu/asiakaspolku (Customer Journey/Path)

* Profiili - Vanhemmat

* Profiili - Harrasteryhmät

* Profiili - Ulkomaan matkaaja

* Profiili - Hakkeri

* Profiili - Koululainen

Vaatimukset, käyttötapaukset ja ominaisuudet

Tuotteen järjestelmävaatimukset ja mahdolliset rajoitukset (Key Requirements and restrictions)

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
SYSTEM-REQ-0001 System Requirement Ohjelman täytyy tukea eri selaimia Kaikki
SYSTEM-REQ-0002 System Requirement Ohjelman täytyy olla yhteydessä tietokantaan, tallennus <-> tiedon hakeminen Ominaisuus 1 - Profiilien lisääminen, Ominaisuus 2 - Säätiedot ja pukeutumisvinkit ja Ominaisuus 3 - Matkan suunnittelu
SYSTEM-REQ-0003 System Requirement Ohjelma skaalautuu mobiiliin Kaikki
SYSTEM-REQ-0004 System Requirement Ohjelma saa tietoa säärajapinnasta Ominaisuus 2 - Säätiedot ja pukeutumisvinkit ja Ominaisuus 3 - Matkan suunnittelu
SYSTEM-REQ-0005 System Requirement verkkoyhteys oltava Kaikki

Oleelliset huomioitavat rajoitteet

Id Vaatimuksen kuvaus kategoria Ominaisuus johon vaikuttaa
CONSTRAINT-REQ-S00000 Constrain Palvelu ei tallenna käyttäjätietoja palvelimelle (vrt. tietosuojalaki) Ominaisuus 1 - Profiilien lisääminen ja Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
CONSTRAINT-REQ-S00001 Constrain Käytetään tilaajan määrittelemiä vaatesuosituksia Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
CONSTRAINT-REQ-S00002 Constrain Tuotteen valmistumiseen liittyvä aikataulu Kaikki
CONSTRAINT-REQ-S00003 Constrain Sovelluksen profiilit joko mies tai nainen Ominaisuus 1 - Profiilien lisääminen ja Ominaisuus 5 - Luo Profiili
CONSTRAINT-REQ-S00004 Constrain Sovelluksen profiilin ikä 6 -100 vuotta Ominaisuus 1 - Profiilien lisääminen ja Ominaisuus 5 - Luo Profiili

Palveluun liittyvät tärkeimmät toiminnalliset vaatimukset (Functional Requirements)

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
FUNCTIONAL-REQ-C0001 Functional Requirement Käyttäjänä (Asiakas Profiilit 1-4) voin kirjautua käyttäen Facebook-tunnuksia Ominaisuus 1 - Profiilien lisääminen ja Ominaisuus 5 - Luo Profiili
FUNCTIONAL-REQ-C0002 Functional Requirement Käyttäjä pystyy luomaan profiilin ilman rekisteröitymistä Ominaisuus 1 - Profiilien lisääminen
FUNCTIONAL-REQ-C0003 Functional Requirement Käyttäjä voi luoda sivuprofiileja Ominaisuus 1 - Profiilien lisääminen
FUNCTIONAL-REQ-C0004 Functional Requirement Käyttäjä voi suunnitella ja tallentaa matkan sovelluksessa Ominaisuus 3 - Matkan suunnittelu
FUNCTIONAL-REQ-C0005 Functional Requirement Käyttäjä pystyy selaamaan tallentamiaan matkoja Ominaisuus 3 - Matkan suunnittelu
FUNCTIONAL-REQ-C0006 Functional Requirement Käyttäjä voi valita paikkakunnan, josta haluaa säätiedot Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
FUNCTIONAL-REQ-C0007 Functional Requirement Käyttäjä voi valita aikavälin, jolla säätilaa tarkastellaan Ominaisuus 2 - Säätiedot ja pukeutumisvinkit ja Ominaisuus 3
FUNCTIONAL-REQ-C0008 Functional Requirement Valikkonäppäimestä painamalla, käyttäjä voi valita profiili- matka-, koti-, tai suosikit-näkymän Ominaisuus 6 - Menu -valikko
FUNCTIONAL-REQ-C0009 Functional Requirement Matkan säätiedot voidaan vaihtaa listanäkymään painikkeella ja takaisin säänäkymään Ominaisuus 2 - Säätiedot ja pukeutumisvinkit ja Ominaisuus 3 - Matkan suunnittelu

Palveluun liittyvät tärkeimmät ei-toiminnalliset vaatimukset (Non Functional Requirements)

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
NON-FUNCTIONAL-REQ-C0007 Non-Functional Requirement Tuote pystyy yhdistämään sää- ja karttapalveludataa luodakseen vaatesuosituksia Ominaisuus 2 - Säätiedot ja pukeutumisvinkit ja Ominaisuus 3 - Matkan suunnittelu
NON-FUNCTIONAL-REQ-C0008 Non-Functional Requirement Tuote pystyy yhdistymään sääpalveluun Suomen sisällä Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
NON-FUNCTIONAL-REQ-C0009 Non-Functional Requirement Sovellus hakee suunnitellut matkat automaattisesti tietokannasta käynnistettäessä Ominaisuus 3 - Matkan suunnittelu
NON-FUNCTIONAL-REQ-C0010 Non-Functional Requirement Ohjelma vaihtaa vaatesuosituksia sään mukaisesti Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
NON-FUNCTIONAL-REQ-C0011 Non-Functional Requirement Ohjelma vaihtaa vaatesuosituksia profiilin iän mukaisesti Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
NON-FUNCTIONAL-REQ-C0012 Non-Functional Requirement Sovellus suosittelee pukeutumista ennen matkaa ja matkan aikana Ominaisuus 3 - Matkan suunnittelu
NON-FUNCTIONAL-REQ-C0013 Non-Functional Requirement Sovellus kertoo lämpötilan vaihteluvälin Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
NON-FUNCTIONAL-REQ-C0014 Non-Functional Requirement Sovellus avaa alkunäkymän vain kerran ja profiilin lisäämisen jälkeen, näkymä ei enää ilmesty
NON-FUNCTIONAL-REQ-C0015 Non-Functional Requirement Ensimmäisen näkymän osoite tallennetaan automaattisesti suosikiksi
NON-FUNCTIONAL-REQ-C0016 Non-Functional Requirement Ohjelma tarkistaa paikkakuntien oikeellisuuden Ominaisuus 3 - Matkan suunnittelu
NON-FUNCTIONAL-REQ-C0017 Non-Functional Requirement Säätilasta esitetään lämpötila, tuntuu kuin lämpötila, tuulen määrä, sekä sää widget Ominaisuus 2 - Säätiedot ja pukeutumisvinkit
NON-FUNCTIONAL-REQ-C0018 Non-Functional Requirement Ohjelmassa on sisäänrakennettu ohjeistus sovelluksen käytölle Kaikki

Suorituskyky? (Performance)

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
PERFORMANCE-REQ-0000 Non-Functional Performance Kirjautuminen on mahdollista yhtäaikaa 100 käyttäjällä (100 request/s) Kaikki
PERFORMANCE-REQ-0001 Non-Functional Performance Vaatekuvakkeet näkyvät hyvin kaikilla näyttöresoluutioilla Kaikki
PERFORMANCE-REQ-0002 Non-Functional Performance Karttagrafiikat ovat riittävän selkeän näköisiä Ominaisuus 3 - Matkan suunnittelu
PERFORMANCE-REQ-0003 Non-Functional Performance Tuotteen suoritusteho ei ala hidastumaan pitkiä matkoja suunnitellessa Ominaisuus 3 - Matkan suunnittelu
PERFORMANCE-REQ-0004 Non-Functional Performance Teksti on riittävän selkokielistä, että nuoremmatkin ymmärtävät Kaikki

Tietoturva?

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
SECURITY-REQ-0001 Non-Functional Security Tietokantapalvelimen tarjoajana käytetään luotettavaa tahoa Kaikki
SECURITY-REQ-0002 Non-Functional Security Sovellus ei kerää luottamuksellisia tietoja Ominaisuus 1 - Profiilien lisääminen

Käytettävyys

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
USABILITY-REQ-0000 Non-Functional Usability Käyttöliittymän kieli suomi Kaikki

Testattavuus

VaatimusID Tyyppi Kuvaus
TESTABILITY-REQ-0000 Non-Functional Testability Käyttäjärekisteri on kyettävä palauttamaan alkutilaan ennen testien ajoa

Tärkeimmät käyttötapaukset (General Use Cases)

Alustavat User Storyt

US-ID Kuvaus
US-01 Perheenäitinä tahdon motivoida ja opettaa lapsiani itsenäiseen sään mukaiseen pukeutumiseen, koska lapset eivät lähtökohtaisesti sitä osaa.
US-02 Lapsien vanhempana haluan että lapsille tarkoitettu vaatetusinfo olisi nopeasti luettavissa, sillä se säästäisi aikaa.
US-03 Vanhuksena haluan että sovelluksen fontti on tarpeeksi suuri ja selkeä, koska se on silloin minulle helpommin luettavissa.
US-04 Uutena käyttäjänä haluan sovelluksen peruskäyttön aloituksen olevan opastettu ja visuaalisesti selvä koska se helpottaa elämää.
US-05 Matkaajana haluan jokaisesta etapista olevan riittävästi tietoa, että muiden asioiden valmistelu helpottuisi.
US-06 Perheenäitinä tahdon lisätä perheenjäsenilleni profiilit, jotta voin suunnitella kaikille vaatetuksen.
US-07 Matkaajana haluan tallentamaan matkoja suosikeihin, koska haluan muistella hyviä reissuja

Palvelu MockUp-prototyyppi

Palvelun MockUpin luonnissa on huomioitu vain mobiilinäkymä.

Live-versio.

Prototyyppi-versio.

Tärkeimmät tunnistetut ominaisuudet/piirteet (Features)

Ominaisuus Prioriteetti Muuta
Ominaisuus 1 - Profiilien lisääminen Tärkeä
Ominaisuus 2 - Säätiedot ja pukeutumisvinkit Pakollinen
Ominaisuus 3 - Matkan suunnittelu Tärkeä
Ominaisuus 4 - Suosikit Nice to have
Ominaisuus 5 - Luo profiili Tärkeä
Ominaisuus 6 - Menu -valikko Tärkeä
Ominaisuus 7 - Paikkojen lisääminen Tärkeä
Ominaisuus 8 - Liukusäätimet Nice to have
Ominaisuus 9 - Listanäkymä Nice to have

Hyväksyntätestit

Kiinnitetään alustavat hyväksyntätestit vaatimuksiin taulukon muodossa

VaatimusID Testitapaus Kuvaus
TCF-14 Pääprofiilin luonti Hyväksyntätesti
TCF-16 Säätietojen näyttäminen Hyväksyntätesti
TCF-35 Sivuprofiilin luonti Hyväksyntätesti

Julkaisun suunnitelma

Perinteinen listaus

Aika + Ominaisuuus Kuvaus Vastuu Prioriteetti
31.03.2019 Ominaisuus 1 Profiilien lisäys Ari-Pekka Kauppinen 3
17.03.2019 Ominaisuus 2 Säätiedot ja pukeutumisvinkit Eero Ronkainen 1
07.04.2019 Ominaisuus 3 Matkan suunnittelu Aaro Kettunen 2
07.04.2019 Ominaisuus 4 Suosikit Markus Nylund 4
10.03.2019 Ominaisuus 5 Luo profiili Timo Soini 1
10.03.2019 Ominaisuus 6 Menu -valikko Ari-Pekka Kauppinen 1
07.04.2019 Ominaisuus 7 Paikkojen lisääminen Eero Ronkainen 2
27.03.2019 Ominaisuus 8 Liukusäätimet Aaro Kettunen 4
21.04.2019 Ominaisuus 9 Listanäkymä Markus Nylund 4

gantt dateFormat YYYY-MM-DD title Julkaisun suunnitelma section Ominaisuus 1 Profiilien lisäys :2019-03-24, 7d section Ominaisuus 2 Säätiedot ja pukeutumisvinkit :2019-03-03, 14d section Ominaisuus 3 Matkan suunnittelu :2019-03-17, 21d section Ominaisuus 4 Suosikit :2019-03-31, 7d section Ominaisuus 5 Luo profiili :2019-02-24, 14d section Ominaisuus 6 Menu -valikko :2019-03-03, 7d section Ominaisuus 7 Paikkojen lisääminen :2019-03-17, 21d section Ominaisuus 8 Liukusäätimet :2019-03-13, 14d section Ominaisuus 9 Listanäkymä :2019-03-31, 21d

Palvelun/ohjelmiston arkkitehtuuri

Palvelun backendiä suoritetaan DigitalOceanin Ubuntu-laitteelta. Backendi kirjoitetaan Node.js:n päälle express.js kirjastoa käyttäen. Tietokantamoottorina käytetään MariaDB:tä.
Frontend toteutetaan käyttäen Reactia.

Lisää tietoa löytyy teknisestä dokumentoinnista.

Arkkitehtuuriin/teknologiaan liityvät vaatimukset

Tekniset vaatimukset

Id Vaatimuksen kuvaus kategoria Vastuullinen
REQ001 Vaatetietokanta Tietokanta Eero Ronkainen
REQ002 DigitalOcean-palvelin Palvelin Ari-Pekka Kauppinen

Ylläpito (Maintenance)

Id Vaatimuksen kuvaus kategoria Vastuullinen
UP-REQ001 Palvelu tulee suorittaa PM2-sovelluksen kautta Ylläpito Eero Ronkainen

Tietokantakuvaus (Database ER-diagram)

Testauksen vaatimukset (Testing requirements)

Testattavuus

Id Vaatimuksen kuvaus kategoria
REQ001 Palvelun pitää pystyä palauttamaan alkutilaan ennen testejä Testattavuus
REQ002 Kaikki testien stepit ovat loogisessa järjestyksessä Testattavuus
REQ003 Testien pitää olla toistettavissa Testattavuus
REQ004 Testit kuuluu tehdä TestLinkin kautta Testattavuus

Yleistestaussuunnitelma

Tunnistetut riskit ja testikohteet

Dokumentit, standardit ja lähteet

Lähteet/Standardit/Suositukset

ID Linkki
JHS 165 ICT http://www.jhs-suositukset.fi/c/document_library/get_file?uuid=b8118ad7-8ee4-459a-a12b-f56655e4ab9d&groupId=14 Vaatimusmäärittely
SO 9241-11 https://fi.wikipedia.org/wiki/K%C3%A4ytett%C3%A4vyys Käytettävyys
ISO9001 https://www.sfs.fi/julkaisut_ja_palvelut/tuotteet_valokeilassa/iso_9000_laadunhallinta/iso_9001_2015 -
- - -