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
- Tuotteen kuvaus
- Palvelukuvaus
- Asiakastarina
- Sidosryhmät ja profiilikuvaukset
- Sidosryhmäkuva
- Palvelu/asiakaspolku
- Yleinen käyttötapaus
- Vaatimukset
- Palvelu MockUp
- Tärkeimmät ominaisuudet
- Julkaisun suunnitelma
- Palvelun/ohjelmiston arkkitehtuuri
- Testaus ja laadunvarmistus
- Lähteet
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)
- Harrasteryhmä - 10%
- Koululainen - 10%
- Ruotsalainen matkaaja - Matkaajat yht. 35%
- Sisämaan matkaaja - Matkaajat yht. 35%
- Ulkomaan (muu) matkaaja - Matkaajat yht. 35%
- Vanhemmat - 40%
- Vanhukset - 5%
- Hakkeri - <1%
Palvelu/asiakaspolku (Customer Journey/Path)
* Profiili - Ulkomaan matkaaja
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)
- Käyttötapaus 1 - Pääprofiilin luonti
- Käyttötapaus 2 - Säätiedot
- Käyttötapaus 3 - Pukeutumisvinkit
- Käyttötapaus 4 - Matkan suunnittelu
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ä.
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 |
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 |
Tunnistetut riskit ja testikohteet
- Riski -> Testaustarve
- Vaatimus -> Testaustarve Riskidokumentti
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 | - |
- | - | - |