# Palvelun/tuotteen vaatimusmäärittely

## TTOS0800-0900 Kurssin harjoitustyö - Wear Right


* A-tiimi
* 2019
* Versionumero 0.0


## Sisällysluettelo 


* [Tuotteen kuvaus](#johdatus)
* [Palvelukuvaus](#palvelukuvaus)
* [Asiakastarina](#valitut-asiakastarinat)
* [Sidosryhmät ja profiilikuvaukset](#yleinen-sidosryhmakuva)
* [Palvelu/asiakaspolku](#palveluasiakaspolku)
* [Vaatimukset, käyttötapaukset ja ominaisuudet](#vaatimukset-kayttotapaukset-ja-ominaisuudet)
* [Käytettävät teknologiat](#kaytettavat-teknologiat)
* [Palvelu MockUp](#palvelu_mockup-prototyyppi)
* [Julkaisun suunnitelma](#julkaisun-suunnitelma)
* [Palvelun/ohjelmiston arkkitehtuuri](#palvelunohjelmiston-arkkitehtuuri)
* [Testaus ja laadunvarmistus]()
* [Lähteet](#dokumentit_standardit-ja-lähteet)

# Johdatus

Wear Right on mobiilisovellus, jonka avulla ihmiset voivat suunnitella pukeutumistaan sään mukaan. Sovellus hakee säätiedot, joidenka perusteella se antaa pukeutumisvinkkejä.

## Vaatimusmäärittelytyön tilaaja

Työn tilaajana toimii Personal Design Hat, Yliopistonkatu 26 A, II-kerros, 40100 Jyväskylä

## Vaatimusmäärittelyn toimittaja

Tuotteen toimittaa TTOS0800-TTOS0900 opintojakson A-ryhmä, joka koostuu viidestä opiskelijasta.

# Palvelukuvaus

**Mitä palvelun avulla voidaan tehdä? Mikä sen tehtävä on sidosryhmän kannalta?**

Sovelluksen avulla asiakas voi suunnitella sekä omaa että perheensä pukeutumista. Sovellus näyttää reaaliaikasta dataa tämänhetkisestä säätilasta sekä ehdottaa säänmukaista pukeutumista.

## Valitut asiakastarinat

### Vanhemmat

Perheen vanhemmat ovat saaneet palautetta päiväkodista, että heidän lapsi on puettu liian kevyesti ja on palellut ulkona.
Vanhemmat etsivät apua netistä ja löytävät WR-sovelluksen. Vanhemmat haluat pukeutumis vinkkejä erityisesti talven 
vaihteleviin säihin. Toinen vanhemmista päättää testata sovellusta ja tutustuu sen käyttöön.

### Matkustaja/ulkotyöntekijä

Työntekijä työskentelee elektroniikka yrityksessä, mikä huoltaa ja korjaa nopeuskameroita ympäri Suomea. Hän joutuu työnsä puolesta
viettämään useita tunteja ulkona kerrallaan huoltaessaan kameroita ja haluasi tietää miten pukea ja pakata työkeikoilleen. Työntekijä saa
vinkin työkaveriltaan WR-sovelluksesta ja päättää testata sitä. Seuraavana päivä työntekijällä on työreissu Ouluun ja hän päättää testata uutta sovellustaan.
Sovellus ehdottaa tuulivaatteita, koska säätietojen mukaan on luvasssa tuulinen päivä. Työtenkijä tietää kuitenkin viettävänsä ulkona ainakin
2-3 tuntia, joten päättää pukeutua vähän paksumpaan takkiin. Suoritettuaan kameran huollon työntekijä huomaa pukeutumisensa onnistuneen juuri oikein.
Hän on tyyväinen sovellukseena ja suosittelee sitä tuttavillensa. Ainut kritiikki, mitä hänellä on, että hän haluasia pukeutumissuosituksien muuttuvan
sen mukaan kuinka kauan ulkona aikoo olla.

### Opiskelija

Opiskelija huomaa pukeutuvansa koulumatkoilensa usein väärin. Hän polkee kouluun pyörällä ja huomaa palelevansa lähes aina, etenkin talvisin.
Hän huomaa pukeutumisvinkkejä googlettassa WR nimisen palvelun ja päättää testata sitä. Seuraavana päivänä opiskelija lähtee taas kouluun pyörällä ja tällä
kertaa hän on pukeutunut WR-sovelluksen antamien suositusten mukaisesti. Matkalla hänelle tulee kuitenkin taas kylmä ja päättää taluttaa pyörän kouluun.
Taluttaessa pyörää opiskelija tajuaa vaatetuksensa sopivan hyvin taluttamiseen, mutta ei pyöräilyyn. Hän jatkaa sovelluksen käyttöä, mutta vain tilainteissa,
missä on kävellen liikkeellä.

### Juoksuharrastaja

Satunnainen lenkkeilijä etsii sovellusta lenkkeilyn avuksi. Hän törmää WR-sovellukseen ja innostuu sovelluksen pukeutumisehdotuksista.
Lenkkeilijä on haluaa erityisesti tarkkaa säätietoa sekä sopivaa vaatetuksen ehdottelua lenkille.
Hän tekee profiilin itselleen, mutta ei sivuprofiileja. Lenkkeilijä alkaa ottaa selvää sovelluksen ominaisuuksista.
Hän pitää reaaliaikaisesta säätiedosta, mutta sovellus ehdottaa toppatakkia ja kalsareita vaikka hän on menossa lenkille.
Mistään ei löydy nappia, mikä määrittäisi liikunnan määrän ulkona. Lenkkeilijä luultavastikin poistuu sovelluksesta.

## Yleinen sidosryhmäkuva

![](dokumentit/02-vaatimusmaarittely/kuvat/Sidosryhmäkuva.png)


## Tunnistetut sidosryhmäkuvaukset 

### Vanhemmat
Vanhempien arki on usein kiireistä. Aamut varsinkin tuppaavat olemaan työntäyteisiä, kun lapset pitää pukea kouluun. Sovellus voisi helpottaa vanhempien arkea 
ehdottamalla lapsille vaatteita sään mukaan.

* [Perheen isä](sidosryhmät/vanhemmat/perheenisä.md)
* [Perheen äiti](sidosryhmät/vanhemmat/perheenäiti.md)
* [Yksinhuoltaja](sidosryhmät/vanhemmat/profiili3-yksinhultaja.md)

### Opiskelijat
Opiskelijat usein kävelevät kouluun. Koulumatka on varsinkin talvella kylmähkö, joten sovelluksesta olisi apua vaatteiden valitsemiseen. Opiskelija arvostanee tarkkaa
säätietoa vaatteiden ehdottelun yli, sillä opiskelijat ovat välillä liiankin muotitietoisia.

* [Onni Opiskelija](sidosryhmät/opiskelijat/profiili1.md)

### Liikkujat
Liikkujat tekevät asioita ulkona. Liikkujat arvostavat tarkkaa säätietoa, jotta tietävät pukeutua ulkona vallitseviin sääolosuhteisiin. 
He myös luultavastikin arvostaisivat vaatetusneuvoja, mikäli neuvot olisi räätälöity fyysinen rasitus mielessä.

* [Pertti Liikuntamies](sidosryhmät/liikkujat/profiili4-harrasta.md)
* [Jorma Erä](sidosryhmät/liikkujat/patikoija.md)

### Matkaajat
Matkaajat liikkuvat paikkakunnalta toiselle erinäisistä syistä. Heille ulkopaikkakunnan säätiedot ovat tärkeitä. Matkaaja hyötyisi myös
vaate-ehdotuksista pakkaamisen näkökulmasta. 

* [Bile-Nikke](sidosryhmät/matkaajat/bile-nikke.md)
* [Mari Matkustaja](sidosryhmät/matkaajat/mari-matkustaja.md)

### Lapset
Lapset käyttäisivät sovellusta luultavastikin vanhemman kautta. Pieni alakouluikäinen lapsi tuskin ymmärtää säätietoja, mikäli ne eivät ole selkeästi 
esitetty. Kunhan sovellus on tarpeeksi selkeä, voi vaatteiden ehdottaminen taas toimia. 

* [Lapsi](sidosryhmät/lapset/lapsi.md)

### Ulkotyöntekijät
Ulkotyötä tekevät, esim. rakennusmiehet ja kiinteistöjen huoltajat.

* [Ulkotyöntekijä](sidosryhmät/ulkotyöntekijät/ulkotyöntekijä.md)


### Vanhukset
Tuskin osaavat sovelluksia käyttää, mutta opastettaessa ottaisivat varmasti kaiken hyödyn irti sovelluksesta.

* [Veikko Vanhus](sidosryhmät/vanhukset/profiili-vanhus.md)

### Väärinkäyttäjät
Tahtovat kaataa palvelun. Varo vaaraa!


* [Hacker Man](sidosryhmät/väärinkäyttäjä/hakkeri.md)
* [Jonne Web](sidosryhmät/väärinkäyttäjä/script-kiddo.md)

### Ylläpitäjät

Ylläpitävät palvelua. Sovelluksesta täytyy siis muotoilla helposti ylläpidettävä.

* [Ykä Ylläpitäjä](sidosryhmät/ylläpitäjä/profiili5-ylläpitäjä.md)

### Yrityskäyttäjät
Käyttävät sovellusta töiden puolesta. Esimerkiksi päiväkodin tai hoitokodin työntekijä. Olisi hyödyllinen varsinkin päiväkodissa, sillä sovellus auttaisi
lapsikatraan vaatetuksessa.

* [Avustaja Anni](sidosryhmät/yrityskäyttäjät/Avustaja.md)

## Palvelu/asiakaspolku

Tarkkaa nippelitietoa

* Mieti onko mahdollista hyödynnetään jotain ulkopuolista palvelua kuvauksen apuna?

Esim. Canvanizer https://canvanizer.com


# Vaatimukset, käyttötapaukset ja ominaisuudet

| ID | Kuvaus |								
|:-:|:-:|
| FT01 | [Profiililuonti](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuuus-profiililuonti.md) |
| FT02 | [Säätiedot](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuuus-säätiedot.md) |
| FT03 | [Paikkavalitsin](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-paikkavalitsin.md) |
| FT04 | [Aikavalitsin](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-aikavalitsin.md) |
| FT05 | [Pukeutumissuositukset](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-pukeutumissuositukset.md) |
| FT06 | [Profiilimuokkaus](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-profiilimuokkaus.md) |

<br>

![](https://gitlab.labranet.jamk.fi/team-a-2019/core/raw/master/dokumentit/02-vaatimusmaarittely/kuvat/mindmap.png)

## Käytettävät teknologiat
Palvelu toteutetaan selainpohjaisesti. Käytettävät ohjelmointikielet ja teknologiat: 

* Javascript. Suurin osa ohjelmasta kirjoitetaan javascriptillä. Tämä käsittää siis käyttäjän näkymän ja toiminnot.
* Php. Palvelinpuolella käytämme php:ta. Tällä hoidetaan lähinnä yhteydenotot tietokantaan.
* MySQL. Tietokantana käytämme MySQL-tietokantaa. Tämä pitää sisällään vaatedatan.


## Palvelu MockUp-prototyyppi

[MockUp](https://www.fluidui.com/editor/live/preview/cF95QVhzMWM5VlZhNUpVck93b055QkpDYzl0UUxrVXJIWA==)


<!--
## Hyväksyntätestit

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

[![](http://img.youtube.com/vi/EYEc8C57lbo/0.jpg)](http://www.youtube.com/watch?v=EYEc8C57lbo "")

[![](http://img.youtube.com/vi/F2M93uWWXk8/0.jpg)](http://www.youtube.com/watch?v=F2M93uWWXk8 "")


| VaatimusID | Testitapaus | Kuvaus |  |								
|:-:|:-:|:-:|:-:|
| USE-CASE-007,SYSTEM-REQ-0001,SYSTEM-REQ-0004, SYSTEM-REQ-0012 | [Test Case Id X](Linkki testiin) | Hyväksyntätesti  |
| USE-CASE-017,SYSTEM-REQ-0011,SYSTEM-REQ-0004, SYSTEM-REQ-0012 | [Test Case Id Y](Linkki testiin) | Hyväksyntätesti  |
| USE-CASE-011,USE-CASE-013,SYSTEM-REQ-0204, SYSTEM-REQ-0212 | [Test Case Id Z](Linkki testiin) | Hyväksyntätesti  |
| USE-CASE-002,SYSTEM-REQ-0301,SYSTEM-REQ-0304, SYSTEM-REQ-0312 | [Test Case Id O](Linkki testiin) | Hyväksyntätesti  |
-->
## Julkaisun suunnitelma

| Julkaisuaika | Ominaisuuus | Vastuu | Prioriteetti |
|:-:|:-:|:-:|:-:|
| 3.3.2019 | [Profiilin luonti](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuuus-profiililuonti.md)| - | 1 |
| 3.3.2019 | [Profiilin muokkaus](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-profiilimuokkaus.md)| - | 2 |
| 10.3.2019 | [Säätiedot](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuuus-säätiedot.md)| - | 3 |
| 17.3.2019 | [Paikkavalitsin](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-paikkavalitsin.md)| - | 4 |
| 24.3.2019 | [Aikavalitsin](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-aikavalitsin.md)| - | 5 |
| 31.3.2019 | [Pukeutumissuositukset](dokumentit/02-vaatimusmaarittely/Ominaisuudet/Ominaisuus-pukeutumissuositukset.md)| - | 6 |

```mermaid
gantt
    title Julkaisuaikataulu
    dateFormat  DD-MM-YYYY
    section GANTT
    Profiilin luonti/muokkaus :a1, 07-03-2019, 28-03-2019
    Säätiedot :a2, 07-03-2019, 28-03-2019
    Paikkavalitsin :a3, 07-03-2019, 28-03-2019
    Pvm valitsin :a4, 07-03-2019, 28-03-2019
    Tietokanta :a5, 07-03-2019, 28-03-2019
    Pukeutumis-suositukset :a6, 21-03-2019, 11-04-2019
    Ulkoasu :a7, 14-03-2019, 11-04-2019
    
```

<!--
# Palvelun/ohjelmiston arkkitehtuuri 


### Yleinen sijoittelunäkymä (Deployment diagram )

[![](http://img.youtube.com/vi/tLuiQ9p8RkU/0.jpg)](http://www.youtube.com/watch?v=tLuiQ9p8RkU "")

# Arkkitehtuuriin/teknologiaan liityvät vaatimukset

### Tekniset vaatimukset 

| Id | Vaatimuksen kuvaus | kategoria | Vastuullinen |
|:-:|:-:|:-:|:-:|
| REQ00x | Vaatimus? | Yllläpito | Kuka vastaa | 
| REQ00x | Vaatimus? | Tekninen | Kuka vastaa | 
| REQ00x | Vaatimus? | Käytettävyys | Kuka vastaa | 
| REQ00x | Vaatimus? | Käytettävyys | Kuka vastaa | 
| REQ00x | Vaatimus? | Käytettävyys | Kuka vastaa | 

### Ylläpito (Maintenance)

_Tähän kirjataan vaatimuksia, joiden merkitys tulee esiin vasta tuotteen julkaisun jälkeen. Miten tuotteen ylläpidettävyyttä parannetaan? Mitä pitää ottaa huomioon, että ylläpidettävyys on helpompaa__

| Id | Vaatimuksen kuvaus | kategoria | Vastuullinen |
|:-:|:-:|:-:|:-:|
| REQ00x | Vaatimus? | Yllläpito | Kuka vastaa | 
| REQ00x | Vaatimus? | Tekninen | Kuka vastaa | 
| REQ00x | Vaatimus? | Käytettävyys | Kuka vastaa | 
| REQ00x | Vaatimus? | Käytettävyys | Kuka vastaa | 
| REQ00x | Vaatimus? | Käytettävyys | Kuka vastaa | 

### Tietokantakuvaus (Database ER-diagram)

![](https://gitlab.labranet.jamk.fi/team-a-2019/core/raw/master/dokumentit/02-vaatimusmaarittely/kuvat/tietokanta.PNG)

# Testauksen vaatimukset (Testing requirements)

### Testattavuus

| Id | Vaatimuksen kuvaus | kategoria | Vastuullinen |
|:-:|:-:|:-:|:-:|
| REQ00x | Vaatimus? | Testattavuus | Kuka vastaa | 
| REQ00x | Vaatimus? | Testattavuus | Kuka vastaa | 
| REQ00x | Vaatimus? | Testattavuus | Kuka vastaa | 
| REQ00x | Vaatimus? | Testattavuus | Kuka vastaa | 
| REQ00x | Vaatimus? | Testattavuus | Kuka vastaa | 


# Tunnistetut riskit ja testikohteet

* Riski -> Testaustarve
* Vaatimus -> Testaustarve


### Kaikki vaatimukset listattuna

**Tähän osaan voidaan linkittää vaatimuslista, josta kaikki tunnistetut vaatimukset löytyvät**

* [Linkki vaatimuslistaan](pohjat/vaatimuslista.md)

-->
### 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  | - | 
| - | -  | - |