diff --git a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-testitapaus.md b/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-testitapaus.md deleted file mode 100644 index 8883b9a198743f9bcc8a91a9873c792327889ab1..0000000000000000000000000000000000000000 --- a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-testitapaus.md +++ /dev/null @@ -1,61 +0,0 @@ -# Testin kuvaus - -Tarkista, että ..... - - - -| | | -|:-:|:-:| -| Testitapaus ID | XXXX | -| Testitapauksen suunnittelija | XXXXX XXX | -| Testitapauksen hyväksyjä: | XXXXX XXX | -| Luontipvm | X.Y.ABCD | -| Luokitus | toiminnallinen/ei-toiminnallinen | - -**Päivityshistoria** - -* versio 0.1 - -**Testin kuvaus / tavoite** - -* Kuvaus - -**Linkit vaatimuksiin tai muihin lähteisin** - -* Vaatimus: [Vaatimus]() ? -* Käyttötapaus: [Use Case]() ? -* Ominaisuus: [Ominaisuus]() ? - -**Testin alkutilanne (Pre-state)** - -* Alkutilanne - -**Testiaskeleet (Test Steps)** - - -1. Askel -2. Askel -3. Askel -4. Askel -5. Askel -6. Askel -7. - - -**Testin lopputilanne (End-State)** - -* Mitä tapahtuu testin ajon jälkeen - -**Huomioitava testin aikana** - -* Huomio 1 -* Huomio 2 - - -**Testin "tuomio"/tulos (Pass/Fail Criteria)** - - -* PASS ehto? -* FAIL ehto ? - - diff --git a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-tilakone.md b/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-tilakone.md deleted file mode 100644 index 810d9d00e6f35dff9067c96cd5f5e857eb7f460b..0000000000000000000000000000000000000000 --- a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-tilakone.md +++ /dev/null @@ -1,19 +0,0 @@ -# Tilakonekuvaus -pohja - - -Voit käyttää tilakonekuvauksia varsin kätevästi osana MarkDown -dokumentaatiota, kun -käytät Mermaid -skriptausta.. Tutustu.. - -```mermaid -graph TD - Aloitus-->|This is the text|Työskentely - Työskentely-->|Pyydetään palautetta|Palautekeskustelu - Palautekeskustelu-->|Jatketaan työskentelyä palautteen pohjalta|Työskentely - Työskentely-->|Homma valmis?|Tarkistus - Tarkistus-->|Hyväksytään|Luovutus - Luovutus-->|Olet vapaa!!|Kotia-kohti - Tarkistus-->|Vaatii työstämistä|Työskentely - - -``` - diff --git a/dokumentaatio/02-vaatimusmaarittely/vaatimusmaarittely.md b/dokumentaatio/02-vaatimusmaarittely/vaatimusmaarittely.md deleted file mode 100644 index 9469644070a08fa573f6c98e68e1679f4940fddf..0000000000000000000000000000000000000000 --- a/dokumentaatio/02-vaatimusmaarittely/vaatimusmaarittely.md +++ /dev/null @@ -1,444 +0,0 @@ -# Virallinen vaatimusmäärittely - - - - -# XYZ -palvelun vaatimusmäärittely - - -* Nimimerkki/gitlab tunnus -* Versionumero X.Y.Z - -## Sisällysluettelo - -* [Tuotteen kuvaus](#Johdatus) -* [Palvelukuvaus](#Palvelukuvaus) -* [Asiakastarina](#Johdatus) -* [Sidosryhmät ja profiilikuvaukset]() -* [Sidosryhmäkuva]() -* [Palvelu/asiakaspolku]() -* [Yleinen käyttötapaus]() -* [Yleiset toiminnalliset vaatimukset]() -* [Yleiset ei-toiminnalliset vaatimukset]() -* [Palvelu MockUp]() -* [Tärkeimmät ominaisuudet]() -* [Julkaisun suunnitelma]() -* [Palvelun/ohjelmiston arkkitehtuuri]() -* [Testaus ja laadunvarmistus]() -* [Lähteet]() - -# Johdatus - -__Kerro millaisesta projektista on kyse, hieman taustaa ja aiheeseen olennaisesti liittyviä asioita?__ - -Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, -totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -* [Youtube-tarinaa](https://www.youtube.com/watch?v=0zVNZNbphfE&t=255s) -* [Palvelun rajaaminen](https://www.youtube.com/watch?v=fOlmrsp2iRc&t=5s) - -## Vaatimusmäärittelytyön tilaaja - -__Sidosryhmä/Yritys/Yhteisö ilman henkilön nimeä!__ - - -Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, - -## Vaatimusmäärittelyn toimittaja - -__Kerro lyhyesti itsestäsi (tarvittaessa pseudonyyminä) taiesim. kuvitteellisen yrityksen työntekijänä__ - -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - - -# Palvelukuvaus - -__Mitä palvelun avulla voidaan tehdä?__ - -Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, -totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - - -## Esimerkki asiakastarinat - -__Kerro palvelun käytöstä eri asiakasprofiilien/sidoryhmäedustajinen näkökulmasta__ - -* [Mikä ihme on asiakastarina](https://www.youtube.com/watch?v=m8WEoyyFUww&t=36s) - - -A: Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, -totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed - - -B: quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - - -## Yleinen sidosryhmäkuva (Stakeholder map) - - -__Kerätään kaikki sidosryhmät yhteen kuvaan ja pohditaan erityisesti mikä on ko. ryhmän/edustajan motivaatio liittyen palveluun__ - - - - - - -## Tunnistetut sidosryhmäkuvaukset (Stakeholders) - -* [Sidosryhmistä](https://www.youtube.com/watch?v=VmotZXBdrDs&t=14s) - -__Kirjoitetaan auki yksittäiset sidosryhmät ja eri profiilit__ - - -* [Profile 1](stakeholder-profile1.md) -* [Profile 2](stakeholder-profile2.md) -* [Profile 3](stakeholder-profile3.md) - - -## Asiakaspolut (Customer Journey/Path) - -*  - -__Käydään läpi yksittäinen asiakaspolku piirtäen se esim Swimlane/BluePrint/tilakone -kuvauksena. Asiakaspolku voi olla aluksi tekstimuotoinen ja se piirretään sen pohjalta__ -__Asiakaspolun voi kirjoittaa auki käyttäen aiemmin määriteltyjä profiileja.. __ - -Esim. - -Sed ut [Profile 1](stakeholder-profile1.md) perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, -totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed quia consequuntur magni dolores eos qui [Profile 1](stakeholder-profile1.md) ratione voluptatem sequi nesciunt. -Neque porro quisquam est, [Profile 3](stakeholder-profile3.md) -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -__Polkuja tehdään tarvittaessa useita eri tarkoituksiin__ - - - - -* Mieti onko mahdollista hyödynnetään jotain ulkopuolista palvelua kuvauksen apuna? - -Esim. Canvanizer https://canvanizer.com - -<div id="can_widget_container"></div><script type="text/javascript" src="http://api.canvanizer.com/api/widget.js?v=1&canvas_id=rOTvl2nds7E1Y&mode=compact-nobg&revision=sync"></script> - - - -# Vaatimukset, käyttötapaukset ja ominaisuudet - -## Tuotteen järjestelmävaatimukset ja mahdolliset rajoitukset (Key Requirements and restrictions) - -__Kirjaa tähän tärkeimmät vaatimukset suunnitteltuun palveluun liittyen__ - -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, - -Voit esittää ne taulukossa tai viitata [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan kokonaisuuteen - -| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | -|:-:|:-:|:-:|:-:| -| SYSTEM-REQ-0001 | System Requirement | Kirjatumispalvelulla on oltava itsenäinen kolmannen osapuolen toimittama varmistusjärjestelmä | [Kirjautuminen ft1](ft1-ominaisuus.md) | -| SYSTEM-REQ-0002 | System Requirement | Palvelun tärkeimpien palvelujen on oltava vähintään kahdennettu N+1 | | -| SYSTEM-REQ-0003 | System Requirement ||| -| SYSTEM-REQ-0004 | System Requirement ||| -| SYSTEM-REQ-0005 | System Requirement ||| - -# Oleelliset huomioitavat rajoitteet - -| Id | Vaatimuksen kuvaus | kategoria | Vastuullinen | -|:-:|:-:|:-:|:-:| -| CONSTRAINT-REQ-S00000 | Constrain | Palvelun kirjautumisprosessin on noudatettava AC5-2009-käytäntöä | [Kirjautuminen ft1](ft1-ominaisuus.md) | -| CONSTRAINT-REQ-S00001 | Constrain ||| -| CONSTRAINT-REQ-S00002 | Constrain ||| -| CONSTRAINT-REQ-S00003 | Constrain ||| -| CONSTRAINT-REQ-S00004 | Constrain ||| -| CONSTRAINT-REQ-S00005 | Constrain ||| -| CONSTRAINT-REQ-S00006 | Constrain ||| - - -## Tärkeimmät käyttötapaukset (General Use Cases) - - -* [Käyttötapauksista 1](https://www.youtube.com/watch?v=rADU4vWTfyY) -* [Käyttötapauksista 2](https://www.youtube.com/watch?v=rADU4vWTfyY) - -__Millaisia ovat yleisimmät UML-käyttötapaukset liittyen palveluun? Muista, ettei käyttötapaus ole sama kuin käyttökohde tai soveltamis alue__ - - - - -Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, -totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - - - -__Esimerkit__ - -* [Käyttötapaus 1 - Uusi asiakas luo tunnuksen]() -* [Käyttötapaus 2 - Uusi asiaks poistaa tunnukset]() - -## Palveluun liittyvät tärkeimmät toiminnalliset vaatimukset (Functional Requirements) - -Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, -totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -__Mitä olivat toiminnalliset vaatimukset?__ - -Voit esittää ne taulukossa tai viitata [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan kokonaisuuteen - -| 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 | [Kirjautuminen ft1](ft1-ominaisuus.md) | -| FUNCTIONAL-REQ-C0002 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0003 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0004 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0005 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0006 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0007 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0008 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0009 | Functional Requirement ||| -| FUNCTIONAL-REQ-C0010 | Functional Requirement ||| - - -## Palveluun liittyvät tärkeimmät ei-toiminnalliset vaatimukset (Non Functional Requirements) - -__Mitä olivat ei-toiminnalliset vaatimukset?__ - -Voit esittää eri vaatimuksia erillisessä taulukossa tai viitata tässä [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan taulukkoon.. - -Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, -totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, -sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -### Suorituskyky? (Performance) - - - -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -Voit esittää eri vaatimuksia erillisessä taulukossa tai viitata tässä [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan taulukkoon.. - - -| 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) | [Kirjautuminen ft1](ft1-ominaisuus.md) | -| PERFORMANCE-REQ-0001 | Non-Functional Performance ||| -| PERFORMANCE-REQ-0002 | Non-Functional Performance ||| -| PERFORMANCE-REQ-0003 | Non-Functional Performance ||| -| PERFORMANCE-REQ-0004 | Non-Functional Performance ||| -| PERFORMANCE-REQ-0005 | Non-Functional Performance ||| - - -### Tietoturva? - -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -Voit esittää eri vaatimuksia erillisessä taulukossa tai viitata tässä [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan taulukkoon.. - - -| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | -|:-:|:-:|:-:|:-:| -| SECURITY-REQ-0001 | Non-Functional Security | Salasanassa on käytettävä vähintään MD5-tason salausta, koska standardi XY112 sitä edellyttää | [Kirjautuminen ft1](ft1-ominaisuus.md) | -| SECURITY-REQ-0002 | Non-Functional Security ||| -| SECURITY-REQ-0003 | Non-Functional Security ||| -| SECURITY-REQ-0004 | Non-Functional Security ||| -| SECURITY-REQ-0005 | Non-Functional Security ||| -| SECURITY-REQ-0006 | Non-Functional Security ||| -| SECURITY-REQ-0007 | Non-Functional Security ||| -| SECURITY-REQ-0008 | Non-Functional Security ||| -| SECURITY-REQ-0009 | Non-Functional Security ||| -| SECURITY-REQ-0010 | Non-Functional Security ||| - -### Käytettävyys - -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -Voit esittää eri vaatimuksia erillisessä taulukossa tai viitata tässä [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan taulukkoon.. - - -| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | -|:-:|:-:|:-:|:-:| -| USABILITY-REQ-0000 | Non-Functional Usability | Käyttöliittymän on toimittava myös ääniohjattuna, koska käyttäjillä saattaa olla näkövammoja | [Kirjautuminen ft1](ft1-ominaisuus.md) | | -| USABILITY-REQ-0001 | Non-Functional Usability ||| -| USABILITY-REQ-0002 | Non-Functional Usability ||| -| USABILITY-REQ-0003 | Non-Functional Usability ||| -| USABILITY-REQ-0004 | Non-Functional Usability ||| -| USABILITY-REQ-0005 | Non-Functional Usability ||| - -### Testattavuus - -| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | -|:-:|:-:|:-:|:-:| -| TESTABILITY-REQ-0000 | Non-Functional Testability | Käyttäjärekisteri on kyettävä palauttamaan alkutilaan ennen testien ajoa | [Kirjautuminen ft1](ft1-ominaisuus.md) | -| TESTABILITY-REQ-0001 | Non-Functional Testability ||| -| TESTABILITY-REQ-0002 | Non-Functional Testability ||| -| TESTABILITY-REQ-0003 | Non-Functional Testability ||| -| TESTABILITY-REQ-0004 | Non-Functional Testability ||| -| TESTABILITY-REQ-0005 | Non-Functional Testability ||| - -## Palvelu MockUp-prototyyppi - -__Kokonaispalvelun MockUp-kuva?__ - - - -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - - - - -## Tärkeimmät tunnistetut ominaisuudet (Features) - -* [](https://www.youtube.com/watch?v=lYBhXz-_mIs&t=87s) - -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -| Ominaisuus | Prioriteetti | Muuta | -| :-: | :-: | :-: | -| [Ominaisuus 1 - Feature 1](pohjat/pohja-ominaisuus.md) | Tärkeä | | -| [Ominaisuus 2](pohjat/pohja-ominaisuus.md) | Tärkeä | | -| [Ominaisuus 3](pohjat/pohja-ominaisuus.md) | Pakollinen | | -| [Ominaisuus 4](pohjat/pohja-ominaisuus.md) | Nice to Have | | -| [Ominaisuus 5](pohjat/pohja-ominaisuus.md) | | | - - - -## Julkaisun suunnitelma - -| Aika + Ominaisuuus | Kuvaus | Vastuu | Prioriteetti | -|:-:|:-:|:-:|:-:| -| 1.9.2019 [Ominaisuus 1](pohjat/pohja-ominaisuus.md) | | | -| 1.10.2019 [Ominaisuus 2](pohjat/pohja-ominaisuus.md) | | | -| 15.11.2019 [Ominaisuus 3](pohjat/pohja-ominaisuus.md) | | | -| 5.12.2019 [Ominaisuus 4](pohjat/pohja-ominaisuus.md) | | | - - -# Palvelun/ohjelmiston arkkitehtuuri - - - - - - - -### Yleinen sijoittelunäkymä (Deployment diagram ) - - - - -# 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) - -| 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) - -__ER-kaavio__ - - - - -# 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 - -* [Linkki vaatimuslistaan](pohjat/vaatimuslista.md) - - -### Dokumentit, standardit ja lähteet - -qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, -quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? - -*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 | -| - | - | - | -| - | - | - | diff --git a/dokumentaatio/06-tarjoukset-ja-laskutus/.gitkeep b/dokumentaatio/06-tarjoukset-ja-laskutus/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dokumentaatio/01-projektinhallinta/projektiryhman-esittely.md b/dokumentaatio/10-Projektinhallinta/projektiryhman-esittely.md similarity index 100% rename from dokumentaatio/01-projektinhallinta/projektiryhman-esittely.md rename to dokumentaatio/10-Projektinhallinta/projektiryhman-esittely.md diff --git a/dokumentaatio/01-projektinhallinta/projektisopimus.md b/dokumentaatio/10-Projektinhallinta/projektisopimus.md similarity index 100% rename from dokumentaatio/01-projektinhallinta/projektisopimus.md rename to dokumentaatio/10-Projektinhallinta/projektisopimus.md diff --git a/dokumentaatio/01-projektinhallinta/projektisuunnitelma.md b/dokumentaatio/10-Projektinhallinta/projektisuunnitelma.md similarity index 100% rename from dokumentaatio/01-projektinhallinta/projektisuunnitelma.md rename to dokumentaatio/10-Projektinhallinta/projektisuunnitelma.md diff --git a/dokumentaatio/01-projektinhallinta/riskienhallinta.md b/dokumentaatio/10-Projektinhallinta/riskienhallinta.md similarity index 100% rename from dokumentaatio/01-projektinhallinta/riskienhallinta.md rename to dokumentaatio/10-Projektinhallinta/riskienhallinta.md diff --git a/dokumentaatio/01-projektinhallinta/tuntikirjaukset.md b/dokumentaatio/10-Projektinhallinta/tuntikirjaukset.md similarity index 100% rename from dokumentaatio/01-projektinhallinta/tuntikirjaukset.md rename to dokumentaatio/10-Projektinhallinta/tuntikirjaukset.md diff --git a/dokumentaatio/01-projektinhallinta/viestintasuunnitelma.md b/dokumentaatio/10-Projektinhallinta/viestintasuunnitelma.md similarity index 100% rename from dokumentaatio/01-projektinhallinta/viestintasuunnitelma.md rename to dokumentaatio/10-Projektinhallinta/viestintasuunnitelma.md diff --git a/dokumentaatio/11-esimerkit/esimerkki-lasku.pdf b/dokumentaatio/11-esimerkit/esimerkki-lasku.pdf deleted file mode 100644 index 466f110dc510c11b79e29b14486b9d3887b57056..0000000000000000000000000000000000000000 Binary files a/dokumentaatio/11-esimerkit/esimerkki-lasku.pdf and /dev/null differ diff --git a/dokumentaatio/.gitkeep b/dokumentaatio/20-Vaatimusmaarittely/.gitkeep similarity index 100% rename from dokumentaatio/.gitkeep rename to dokumentaatio/20-Vaatimusmaarittely/.gitkeep diff --git a/dokumentaatio/02-vaatimusmaarittely/.gitkeep b/dokumentaatio/20-Vaatimusmaarittely/kuvat/.gitkeep similarity index 100% rename from dokumentaatio/02-vaatimusmaarittely/.gitkeep rename to dokumentaatio/20-Vaatimusmaarittely/kuvat/.gitkeep diff --git a/dokumentaatio/02-vaatimusmaarittely/kuvat/.gitkeep b/dokumentaatio/20-Vaatimusmaarittely/liitteet/.gitkeep similarity index 100% rename from dokumentaatio/02-vaatimusmaarittely/kuvat/.gitkeep rename to dokumentaatio/20-Vaatimusmaarittely/liitteet/.gitkeep diff --git a/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-hyvaksyntatesti.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-hyvaksyntatesti.md new file mode 100644 index 0000000000000000000000000000000000000000..fd048ee164c75de3cb2e766b2d4a5acb2335de47 --- /dev/null +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-hyvaksyntatesti.md @@ -0,0 +1,58 @@ +# Hyväksyntätesti: + + +| | | +|:-:|:-:| +| Testitapauksen kuvaus | Kelpuuttaako asiakas testatun osa-alueen | +| Testitapaus ID | TCXXX | +| Testitapauksen suunnittelija | XXXX XXX | +| Luontipvm | X.Y.ABCD | +| Luokitus | Hyväksyntätesti / Acceptance Test | + + +**Päivityshistoria** + +* versio 0.1 Pohja + +**Testin kuvaus / tavoite** + +> Hyväksyntätestin tavoitteena on varmistaa, että asiakas saa mitä tilaa! +> Vastaa kysymykseen: Onko toimitettava osa-alue/toiminnallisuus asiakkaan vaatimusten/toiveiden mukainen + +* Kuvaus + +**Linkit vaatimuksiin tai muihin lähteisin** + +* Vaatimus: [Vaatimus]() ? +* Käyttötapaus: [Use Case](pohja-kayttotapaus.md) ? +* Ominaisuus: [Ominaisuus](pohja-ominaisuus.md) ? + +**Testin alkutilanne (Pre-state)** + +* Alkutilanne josta testin suorittaminen alkaa + +> Hyväksyntätesti sisältää laajemman kokonaisuuden, jonka aikana tarkastellaan tuotetta esim. loppukäyttäjän perspektiivistä + +**Testiaskeleet (Test Steps)** + +1. askel --> tarkista onko... +1. askel --> tarkista onko.. +1. askel --> tarkista samalla.. +1. askel --> tarkista toisaalla.. + +> Hyväksyntätesti voi sisältää toisaalta myös joukon valittuja käyttötapauksia, jotka tulee olla suoritettavissa. +Asiakas/toimeksiantajan saattaa velvoittaa valittuja käyttötapauksien läpäisyn hyväksynnän ehdoiksi. + + + +**Testin lopputilanne (End-State)** + +> Mitä tapahtuu testin suorituksen jälkeen? + + +**Testin tuloksen määrittyminen (Pass/Fail Criteria)** + +> Millä ehdoin testin tulos voidaan hyväksyä ja millä se hylätään? + +* PASS ehto? +* FAIL ehto ? diff --git a/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-kayttajatarina.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-kayttajatarina.md new file mode 100644 index 0000000000000000000000000000000000000000..342d4b7d3b45f59beb8aa849a08ed294a7af3170 --- /dev/null +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-kayttajatarina.md @@ -0,0 +1,45 @@ +# Käyttäjätarina: + +>Kirjoita seuraavaksi auki tarkemmin mitä on käyttäjätarinassa tavoitellaan. + + +## Käyttäjätarinaan liittyvät vaatimukset/käyttötapaukset/suunnitelmat (Requirements/Use Case/Design specifications) + + +> Kannattaa tarkentaa käyttäjätarinaa tarvittaessa eri lähteillä. Vaatimusmäärittelyssä voi olla kirjattuna vaatimuksia, jotka koskevat erityisesti tätä käyttäjätarinaa + +* [Mockup + UI Desing]() +* [Linkki vaatimukseen]() +* [Linkki käyttötapaukseen]() +* [Linkki rajaukseen]() + +## Hyväksytyn määritelmä (DoD, Definition of Done) + +>Mitkä prosessi vaiheet on suoritettava, että ko. käyttäjä tarina voidaan hyväksyä tehdyksi? + +Esimerkkejä vaiheista (sovittavissa ryhmän kesken) + +- [ ] Toiminnallisuus suunniteltu +- [ ] Toiminnallisuus on toteutettu +- [ ] Toiminnallisuudelle on määritelty testit +- [ ] Toiminnallisuus on testattu +- [ ] Toiminnallisuus on dokumentoitu (esim. käyttöohjeet?) +- [ ] Toiminnallisuuden toteutus on parikatselmoitu + + + +## Hyväksyntä kriteerit (Acceptance Criterias) + +>Kirjataan tähän tärkeät tarkistuspisteet (eri testit), joiden pohjalta voidaan todeta toteutuksen olevan toiminnallisuuden kohdalla kunnossa + + +- [ ] Tarkista, että viikonloput tulevat valituksi +- [ ] Tarkista, että karkauspäivä otetaan huomioon +- [ ] Tarkista, että raportti sisältää valitut päivät +- [ ] Aja hyväksyntä testitapaus [Test Case FuncTC-1]() +- [ ] Aja suorituskyky testi [Test Case PerfTC-110]() +- [ ] Tarkista, että käyttötapaus [Use Case UC-11]() on mahdollista suorittaa + + +/label ~"User Story" +/milestone Backlog diff --git a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-kayttotapaus.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-kayttotapaus.md similarity index 58% rename from dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-kayttotapaus.md rename to dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-kayttotapaus.md index c829ad30554c498a9c2893438c8c944027bf6881..9e4ce4a80d67bd07a0ea1319cb2fb0fae39717e9 100644 --- a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-kayttotapaus.md +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-kayttotapaus.md @@ -1,12 +1,28 @@ -# Käyttötapaus -pohja +# Käyttötapaus: -## Use Case kuvaus +[](http://www.youtube.com/watch?v=cCP8WcQ9dqE "") - +## Use Case + +Tähän on hyvä liittää näkymä valitusta asiaan liittyvistä käyttötapauskuvauksesta. + + +```plantuml +Tilaaja -- (Tilauksen muokkaus) +Hallinto_1 -- (Tilauksen muokkaus) +``` + +Yllä PlantUML esimerkki, joka pitää muokata asianmukaiseksi .. + +__Tsekkaa video ja poista linkki, jos homma selvä__ + +[](http://www.youtube.com/watch?v=BjQAWfBMpcw "") + + * Laatija: * Päiväys / Versio?. diff --git a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-ominaisuus.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-ominaisuus.md similarity index 63% rename from dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-ominaisuus.md rename to dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-ominaisuus.md index 5d5ded8553e2bbdcb7e80dbbd8db39ba3824789e..4f56f2f4e10cb23b3d4352f795f2006940ddf0bf 100644 --- a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-ominaisuus.md +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-ominaisuus.md @@ -1,4 +1,7 @@ -# Ominaisuus +# Ominaisuus: + +[](http://www.youtube.com/watch?v=45aSdlg6NK0 "") + | | | |:-:|:-:| @@ -42,9 +45,22 @@ esim. #8 #2 ### Käyttöliittymänäkymä/mock -*Tähän kuva/mockup -linkki, joka liittyy oleellisesti ominaisuuteen/toiminnallisuuteen* +> Tähän kannattaa liittää tarvittaessa kuvausta kuvan/mockup-näkymän muodossa. +Se helpottaa ymmärtämään tarvittaessa oleellisesti ominaisuutta/toiminnallisuutta - +```plantuml +salt +{ + Just plain text + [This is my button] + () Unchecked radio + (X) Checked radio + [] Unchecked box + [X] Checked box + "Enter text here " + ^This is a droplist^ +} +``` ### Testaus / mahdolliset hyväksyntä kriteerit @@ -53,10 +69,10 @@ esim. #8 #2 | Testitapaus | Testin lähde | Kuka vastaa | |:-: | :-:|:-:| -| [Testitapaus 1]() | vaatimus id? | | -| [Testitapaus 2]() | vaatimus id? | | -| [Testitapaus 3]() | vaatimus id? | | -| [Testitapaus 4]() | vaatimus id? | | +| [Hyväksyntätesti 1](pohjat/pohja-hyvaksyntatesti.md) | vaatimus id? | | +| [Hyväksyntätesti 2](pohjat/pohja-hyvaksyntatesti.md) | vaatimus id? | | +| [Hyväksyntätesti 3](pohjat/pohja-hyvaksyntatesti.md) | vaatimus id? | | +| [Hyväksyntätesti 4](pohjat/pohja-hyvaksyntatesti.md) | vaatimus id? | | | | | diff --git a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-profiilikuvaus.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-profiilikuvaus.md similarity index 80% rename from dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-profiilikuvaus.md rename to dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-profiilikuvaus.md index 123ce15b4bf245fba53e41405aa9b2f62b22cb31..56b495a55189a903abda62454140da1951759e26 100644 --- a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-profiilikuvaus.md +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-profiilikuvaus.md @@ -1,11 +1,13 @@ -# Profiilikuvaus -pohja +# Profiili: +[](http://www.youtube.com/watch?v=-TbGB_1wjpM "") + ### viiteryhmä/segmentti: * Millainen profiili on kyseessä, eli liittyykö profiili suurempaan kokonaisuuteen esim. "asiakkaat" -* Mitä tämä profiili edustaa? +* Mitä laajempaa sidosryhmää profiili edustaa? ### Persoona/sidosryhmän kuvaus diff --git a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-testitapaus-tarkistuslista.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-testitapaus-tarkistuslista.md similarity index 89% rename from dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-testitapaus-tarkistuslista.md rename to dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-testitapaus-tarkistuslista.md index 7e768e0a1d27b731ccdb13c25559c6686e1d81da..f1ad91c9723a2cf13e6e81424a5e7d38cf1fb1ae 100644 --- a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-testitapaus-tarkistuslista.md +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-testitapaus-tarkistuslista.md @@ -1,4 +1,7 @@ -# Tarkistuslista pohja +# Tarkistulista: + +[](http://www.youtube.com/watch?v=Zz3K7KrQwmI "") + Tarkasti määritellyn testitapauksen voi tarvittaessa korvata tarkistuslistalla, johon on kerätty tärkeäksi koetut tarkistuskohdat. diff --git a/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-testitapaus.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-testitapaus.md new file mode 100644 index 0000000000000000000000000000000000000000..155125d2c204770d74f3f748dc3627bc272a52e9 --- /dev/null +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-testitapaus.md @@ -0,0 +1,53 @@ +# Testitapaus: + + +| | | +|:-:|:-:| +| Testitapauksen kuvaus | Tarkistetaan, onko testattava kohde toteutettu suunnitelmien mukaan | +| Testitapaus ID | TCXXX | +| Testitapauksen suunnittelija | XXXX XXX | +| Luontipvm | X.Y.ABCD | +| Luokitus | Toiminnallinen/suorituskyky/käytettävyys/tietoturva ? | + +**Päivityshistoria** + +* versio 0.1 Pohja + +**Testin kuvaus / tavoite** + +> Testin tarkoituksena on tarkistaa, eli verifioida tehtyä toteutusta suhteessa suunniteltuun +> Vastataan kysymykseen onko toteutus sitä mitä on suunniteltu! + +* Kuvaus + +**Linkit vaatimuksiin tai muihin lähteisin** + +* Vaatimus: [Vaatimus]() ? +* Käyttötapaus: [Use Case](pohja-kayttotapaus.md) ? +* Ominaisuus: [Ominaisuus](pohja-ominaisuus.md) ? + +**Testin alkutilanne (Pre-state)** + +> Alkutilanne josta testin suorittaminen alkaa, eli mitä on tehtävä ennen testin suoritusta + + +**Testiaskeleet (Test Steps)** + +> Kirjataan läpikäytävät askeleet ja niihin liittyvät tarkistuspisteet + +1. askel --> tarkista onko... +1. askel --> tarkista onko.. +1. askel --> tarkista samalla.. +1. askel --> tarkista toisaalla.. + +**Testin lopputilanne (End-State)** + +> Mitä tapahtuu testin suorituksen jälkeen? Millainen lopputulos olisi saavutettava? + + +**Testin tuloksen määrittyminen (Pass/Fail Criteria)** + +> Millä ehdoin testin tulos voidaan hyväksyä ja millä se hylätään? + +* PASS ehto? +* FAIL ehto ? diff --git a/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-tuotekuvaus-a4.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-tuotekuvaus-a4.md new file mode 100644 index 0000000000000000000000000000000000000000..6d7878e23688c4f980ced9410e85c2290281b640 --- /dev/null +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-tuotekuvaus-a4.md @@ -0,0 +1,38 @@ +## Tiivistetty tuotekuvaus: + +> Tämä on tuotekuvaus pohja, joka kannattaa tiivistää A4-kokoon + +* Palvelukuvaus + +> Mikä palvelu on kyseessä ja ketä se palvelee? + +## Liiketoiminnan tarpeet ja tavoitteet + +* Tarpeet +* Tavoitteet + +## Tärkeät sidosryhmät ja tuotteen kohderyhmä + +* sidosryhmät? +* Kenelle tuote on tarkoitettu? + +## Tärkeimmät hyödyt + +* Sidoryhmä X hyötyy.... + +## Tärkeimmät toiminnallisuudet/ominaisuudet + +> Mitkä ominaisuudet ja mille kohderyhmälle? Miten erotutaan markkinoista? + +* Feature 1 + Feature 2 --> Kohderyhmä A ? +* Feature 3 + Feature 4 --> Kohderyhmä B ? +* Feature 5 + Feature 6 --> Kohderyhmä C ? + +## Tekniset vaatimukset + +> Mitä tarvitaan palvelun tuottamiseksi? + +* System-Technical-Req 1 +* System-Technical-Req 2 +* System-Technical-Req 3 +* System-Technical-Req 4 \ No newline at end of file diff --git a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-vaatimukset-listana.md b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-vaatimukset-listana.md similarity index 98% rename from dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-vaatimukset-listana.md rename to dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-vaatimukset-listana.md index 7a406638374136ff37254b25040bdf838005d920..7e153805537ee5d5a27fb0fa310dba85b09b4ea5 100644 --- a/dokumentaatio/02-vaatimusmaarittely/pohjat/pohja-vaatimukset-listana.md +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/pohja-vaatimukset-listana.md @@ -1,4 +1,7 @@ -# Vaatimuslista -pohja +# Palvelun vaatimukset listana + +[](http://www.youtube.com/watch?v=rp3DkiZ-Mkk "") + Tämä malli on varsin käyttökelpoinen, jos lista ei veny kovin pitkäksi. Sama lista voidaan aika kätevästi tehdä Excelillä, mutta se johtaa varsin pian dokumentoinnin monimutkaisuuteen. Kun käytetään yhtä ympäristöä keräämään oleellinen tieto on niiden linkittäminen helpompaa ja tieto pysyy ajantasalla paremmin. @@ -8,7 +11,6 @@ Kun käytetään yhtä ympäristöä keräämään oleellinen tieto on niiden li **Asiakasvaatimukset** - | VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | |:-:|:-:|:-:|:-:| | CUSTOMER-REQ-0001 | Customer Requirement | Käyttäjänä haluan kirjautua käyttäen Facebook-tunnuksia, ettei tarvise häslätä | [Kirjautuminen ft1](ft1-ominaisuus.md) | diff --git a/dokumentaatio/20-Vaatimusmaarittely/pohjat/readme.txt b/dokumentaatio/20-Vaatimusmaarittely/pohjat/readme.txt new file mode 100644 index 0000000000000000000000000000000000000000..52069f4a303c64f22472fc88d14c71582eabf2a6 --- /dev/null +++ b/dokumentaatio/20-Vaatimusmaarittely/pohjat/readme.txt @@ -0,0 +1,16 @@ +# Pohjat -kansio + + +Kansion sisältönä on erilaisia pohjia, joita pitää käyttää vaatimusmäärittelyn osana. + +Kansiosta löytyvät dokumentit: + + + +* pohja-kayttotapaus.md - Käyttötapauskuvaus +* pohja-ominaisuus.md - Ominaisuuden määrittelydokumentti +* pohja-profiilikuvaus.md - Sidosryhmän edustaja/profiilikuvaus +* pohja-testitapaus-tarkistuslista.md - Esimerkki testitapauksesta, joka on tarkistuslistan muodossa +* pohja-testitapaus.md - Perinteinen testitapaus, joka on johdettavissa esim. vaatimuksista +* pohja-tilakone.md - Tilakoneen kuvaus esimerkki +* pohja-vaatimukset-listana.md - Vaatimukset pitkänä listanan, tähän kannattaa viitata muista dokumenteista \ No newline at end of file diff --git a/dokumentaatio/02-vaatimusmaarittely/tuote-mindmap.md b/dokumentaatio/20-Vaatimusmaarittely/tuote-mindmap.md similarity index 100% rename from dokumentaatio/02-vaatimusmaarittely/tuote-mindmap.md rename to dokumentaatio/20-Vaatimusmaarittely/tuote-mindmap.md diff --git a/dokumentaatio/20-Vaatimusmaarittely/vaatimusmaarittely.md b/dokumentaatio/20-Vaatimusmaarittely/vaatimusmaarittely.md new file mode 100644 index 0000000000000000000000000000000000000000..d72fe7ab282968d60ba9cf1173ed830a042b145e --- /dev/null +++ b/dokumentaatio/20-Vaatimusmaarittely/vaatimusmaarittely.md @@ -0,0 +1,684 @@ +# XYZ - Palvelun vaatimusmäärittely + + +> Täydennä seuraavat kentät! + +* [SIJOITA TOIMEKSIANNON KOODI TÄHÄN] +* Nimimerkkisi/gitlab tunnus +* Dokumentin versionumero X.Y +* Vaatimusmäärittely pohjan versio 1.8 - 5.9.2019 (NarsuMan) + + +## Ohjeita määrittelijälle + +> Pidä sisällysluettelo kunnossa, eli päivitä tarvittaessa MarkDown-ankkurilinkitys. + +> Dokumentin sisällä viitataan useissa kohdissa kansioon "/pohjat". Kyseinen kansio sisältää ns. "templaatti"-tiedostoja joita käytetään apuna eri määrittelyjen kirjaamisessa. +Tämä tarkoittaa, että tuosta kansiosta voi tarvittasessa kopioida tiedostoja. + +> PlantUML-työkalun avulla on mahdollista piirtää esim. UML-kuvauskielen mukaisia kuvauksia ja liittää ne osaksi MarkDown-kuvauksia. Kurssin aikana on +hyödyllistä tutustua sen käyttöön http://plantuml.com/ ja pyrkiä soveltamaan sitä mahdollisimman paljon eri osa-alueilla. + +> HUOMIO! Älä käytä PlantUML-kuvauksissa skandinaavisia merkkejä, koska tämä johtaa ongelmiin CI/CD-prosessin aikana + +> Tutustu seuraavan linkin takaa löytyvään MindMap-kuvaan, siitä miten eri käsitteet liittyvät toisiinsa. Kannattaa keskittyä ymmärtämään yhteyksien merkitys, eli kysyminen kannattaa aina :) +Kuvaus voi päivittyä kurssin aikana! + +[http://ttos0100.pages.labranet.jamk.fi/eamk-2019/kurssimateriaali/kasitekartta/](http://ttos0100.pages.labranet.jamk.fi/eamk-2019/kurssimateriaali/kasitekartta/) + +> HUOMIO! Kun teet harjoitusta, niin poista ennen lopullista luovutusta kaikki ohjekommentit ja video-linkit sisällöstä. + +> Tiedostojen nimeämisestä: Kannattaa pyrkiä nimeämään kaikki tiedostot säännönmukaisesti esim. __use-case-001.md__, __profiili_asiakas-2__, ominaisuus-ft1.md__ etc +> Itse MarkDown -tiedostossa ylä otsikko kannattaa täyttää myös samalla menetelmällä. +> __Use Case: Uuden käyttäjän kirjautuminen__ +> __Profiili: Asiakas 2__ +> __Ominaisuus: Raportti generaattori__ +> Tämä helpottaa hahmottamaan myöhemmin koko vaatimusmäärittelyn rakennetta + + +## Sisällysluettelo + +1. [Johdanto](#johdanto) +1. [Toimeksiantaja](#toimeksiantaja) +1. [Vaatimusmäärittelyn tekijä](#vaatimusmäärittelyn-tekijä) +1. [Palvelukuvaus](#Palvelukuvaus) +1. [Sidosryhmäkartta](#Sidosryhmäkartta) +1. [Sidosryhmät ja profiilit](#Sidosryhmät ja profiilit) +1. [Tunnistetut riskit](#Tunnistetut-riskit) +1. [Valitut asiakastarinat](#Valitut-asiakastarinat) +1. [Palveluun liittyviä asiakaspolkuja](#Palveluun-liittyviä-asiakaspolkuja) +1. [Oleelliset käyttötapaukset](#Oleelliset-käyttötapaukset) +1. [Tärkeimmät yleiset ominaisuudet/toiminnallisuudet](#Tärkeimmät-ominaisuudet/toiminnallisuudet) +1. [MockUp-prototyyppi](#MockUp-prototyyppi) +1. [Alustavat Käyttäjätarinat](#Alustavat-käyttäjätarinat) +1. [Palvelun järjestelmävaatimukset](#Palvelun-järjestelmävaatimukset) +1. [Palveluun vaikuttavat rajaukset](#Palveluun vaikuttavat rajaukset) +1. [Palvelun liityvät laitevaatimukset](#Palvelun liityvät laitevaatimukset) +1. [Palvelun suoritusympäristöön liittyvät vaatimukset](#Palvelun suoritusympäristöön liittyvät vaatimukset) +1. [Palvelun määritellyt ominaisuudet/toiminnnallisuudet](#Palvelun määritellyt ominaisuudet/toiminnnallisuudet) +1. [Palvelun toiminnalliset vaatimukset](#Palvelun toiminnalliset vaatimukset) +1. [Palvelun ei-toiminnalliset vaatimukset](#Palvelun ei-toiminnalliset vaatimukset) +1. [Palvelun alustava arkkitehtuuri](#Palvelun alustava arkkitehtuuri) +1. [Palvelun alustava sijoittelunäkymä](#Palvelun alustava sijoittelunäkymä) +1. [Palvelun alustava tietokantakuvaus)](#Palvelun alustava tietokantakuvaus) +1. [Palvelun integraatiot muihin järjestelmiin](#Palvelun integraatiot muihin järjestelmiin) +1. [Palvelun laadun varmistuksesta](#Palvelun laadun varmistuksesta) +1. [Palvelun hyväksyntätestit](#Palvelun hyväksyntätestit) +1. [Julkaisusuunnitelma](#Julkaisusuunnitelma) +1. [Aiheeseen liityvä standardit ja lähteet](#Aiheeseen liityvä standardit ja lähteet) + + +## Johdanto + +>Kuvaa millaisesta projektista on kyse, hieman taustaa ja aiheeseen olennaisesti liittyviä asioita? Jos kyseessä harjoitustehtävä, niin tarkista voitko +käytää todellisten tilaajien oikeita nimiä! Muuta tarvittaessa henkilötiedot ja toimeksiantajan viralliset tiedot + +## Toimeksiantaja + +>Kuka on vaatimusmäärittelyn tilaaja? + +## Vaatimusmäärittelyn tekijästä + +>Kerro lyhyesti itsestäsi (tarvittaessa pseudonyyminä) tai esim. kuvitteellisen yrityksen työntekijänä. + +## Palvelukuvaus + +[](http://www.youtube.com/watch?v=55H2C0fSiHM "") + +>Mitä palvelun avulla voidaan tehdä? Millaisia ovat sen käyttäjät? Mikä sen tehtävä on yleisesti eri sidosryhmien kannalta? +Kannattaa nostaa esiin lyhyesti mahdolliset loppukäyttäjä ja oleellisiin palvelusta hyötyviin sidosryhmät + + + +## Sidosryhmäkartta + +>Mietitään tarkemmin millaisia käyttäjä/sidosryhmiä liittyy suunniteltuun ohjelmisto/palvelukokonaisuuteen? +Näitä selkeyttääksemme kirjataan kaikki sidosryhmät sidosryhmäkartan muotoon. Nostetaan samalla esiin mikä on +ko. sidosryhmän/edustajan palveluun liittyvä motivaatio. Kuvauksen voi laatia esim. piirtämällä, MindMap-muodossa tai soveltaen sopivaa UML-notaatiota. + +[](http://www.youtube.com/watch?v=wiNjgClkJoM "") + +> Voit tutustu nyt aiemmin mainittuun PlantUML-työkaluun ja kokeilla luoda sidosryhmäkartta käyttäen (http://plantuml.com/) +> Huomaa! PlantUML-lohkon määrittelyssä käytetään Gitlab-ympäristössä eri avainsanoja @startuml/@enduml- rivien sijaan + +```plantuml +actor profile1 +actor profile3 +actor stake_holder1 +actor stake_holder3 + +cloud example_of_service + +profile1 -- example_of_service : uses +profile2 -- example_of_service : benefits +stake_holder1 -- example_of_service : threat +stake_holder2 -- example_of_service : competitor +``` +> Voit kuvata sidosryhmät myös vapaamuotoisemmin, jolloin eri profiilien erot tulevat ehkä "selkeämmin" esiin! + + + +## Sidosryhmät ja profiilit + +> Määritellään tarkemmin hahmotellusta sidosryhmäkartasta oleelliset sidosryhmät/profiilit. Huomio, että isossa yksittäisessä sidosryhmässä voi +olla tarve määritellä useampia eri profiileja. Tämä tarkoittaa sitä, että laaja sidosryhmä, kuten esim. __asiakaskunta__ voi käsittää useita erilaisia asiakasprofiileja, +joilla voi olla eroja motiiveissa/arvoissa, mutta ne kuuluvat kuitenkin olennaisesti asiakaskuntaan. + +[](http://www.youtube.com/watch?v=w5oXMtOGcC4 "") + +> Huomaa! Kaikki määritellyt profiilikuvaukset kirjoitetaan itsenäiseksi MarkDown-tiedostoksi, koska tämä helpottaa niihin viittaamista muualla dokumentaatiossa esim. [Loppukäyttäjä - Keijo Korhonen](profiili-loppukayttaja.md) +**Alla olevat profiili/sidosryhmätkuvaukset vain suuntaa antavia! Nimeä ne tarkoituksenmukaisiksi. Varmista, että ne ovat löydettävissä sidosryhmäkartasta!** + +> Tässä kohtaa on aika etsiä profiilikuvauksen runkoa /pohjat kansiosta + +| Sidosryhmä/Profiili | Linkki | Lisätietoa | +|:-:|:-:|:-:| +| Sidosryhmä 1 | [Sidosryhmä-1](pohjat/pohja-profiilikuvaus.md) | | +| Sidosryhmä 2 | [Sidosryhmä-2](pohjat/pohja-profiilikuvaus.md) | | +| Henkilö 1 | [Profiili 1](pohjat/pohja-profiilikuvaus.md) | Edustaa sidosryhmää [Sidosryhmä-2](pohjat/pohja-profiilikuvaus.md) | +| Henkilö 2 | [Profiili 1](pohjat/pohja-profiilikuvaus.md) | Edustaa sidosryhmää [Sidosryhmä-2](pohjat/pohja-profiilikuvaus.md) | +| Henkilö 3 | [Profiili 1](pohjat/pohja-profiilikuvaus.md) | [Sidosryhmä-1](pohjat/pohja-profiilikuvaus.md) | + +## Asiakkaan tarpeet/toiveet? + +> Täydennä tätä jatkuvasti kurssin aikana! +> Pohdi millaisia toiveita/tarpeita on loppukäyttäjällä liittyen palveluun? Haastattele henkilöitä todellisessa tilanteessa? + +| VaatimusID | Tyyppi | Kuvaus | +|:-:|:-:|:-:| +| CUSTOMER-REQ-0001 | Customer Requirement | Käyttäjänä haluan kirjautua käyttäen Facebook-tunnuksia, ettei tarvise häslätä | +| CUSTOMER-REQ-0002 | Customer Requirement || +| CUSTOMER-REQ-0003 | Customer Requirement || +| CUSTOMER-REQ-0004 | Customer Requirement || +| CUSTOMER-REQ-0005 | Customer Requirement || + +## Liiketoiminnan vaatimukset/tavoitteet? + +> Pohdi millaisia toiveita/tarpeita on Liiketoiminnan näkökulmasta liittyen palveluun? +> Jos mitään ei tule mieleen, niin pohdi kenen "kassaan" raha tulee palvelusta? Saavutetaanko palvelulla kustannushyötyjä? Parantaako kustannustehokkuutta? etc + +| VaatimusID | Tyyppi | Kuvaus | +|:-:|:-:|:-:| +| BUSINESS-REQ-0001 | Business Requirement | Palvelun kirjautuminen tulee olla helppoa, että voimme saavuttaa laajan käyttäjäkunnan = 35% kohderyhmästä | +| BUSINESS-REQ-0002 | Business Requirement || +| BUSINESS-REQ-0003 | Business Requirement || +| BUSINESS-REQ-0004 | Business Requirement || +| BUSINESS-REQ-0005 | Business Requirement || + + + +## Tunnistetut riskit + +> Millaisia riskeja liittyy tuoteen kehittämiseen, tuotteen markkinoihin, mahdollisiin kilpailijoihin, resursseihin? +Nämä on hyvä tunnistaa alkuvaiheessa + +> Avainsanat SWOT, Riskianalyysi + + +## Valitut asiakastarinat + +>Haastattele tai kuvittele haastattelevasi profiili/sidosryhmän edustajaa ja kirjaa suunnittelemasi palvelun käyttöön liittyviä tilanteita. +Miten henkilö/sidosryhmä hyötyy/käyttää palvelua. Kirjoita tämä asiakastarinaksi. Kerro mitä se käytännössä tarkoittaa asiakkaan, pääkäyttäjän etc. näkökulmasta! +Alla olevassa videossa näet millaisia tarinoita **ei** ole tarkoitus kirjata tähän osioon :) + +[](http://www.youtube.com/watch?v=KKM_7N1-6Ew "") + + +> Pyri kirjoittamaan auki tarina vain valitun profiilin/sidosryhmän näkökulmasta (toiset profiilit/sidosryhmät saattavat kyllä esiintyä tarinassa). Tarinassa on kätevä viitata jo aiemmin luotuihin [Profiili](pohjat/pohja-profiilikuvaus.md)-kuvauksiin.** +> HUOMIO! Älä sekoita asiakastarinaa (Customer story) käyttäjätarinaan (User Story) + +**Asiakastarina 1** + +[Profiili 1](pohjat/pohja-profiilikuvaus.md) herää aamusta ja tarkistaa puhelimellaan onko X-palvelussa tilaa aamupäivästä. Huomatessaan, että palvelussa on vapaa aika klo 11:00......... + +**Asiakastarina 2** + +[Asiakas-tyyppi 3](pohjat/pohja-profiilikuvaus.md) käynnistää iltapäivällä rakennustyömaalla sementtimyllyä, kun hänelle tulee viesti X-palvelusta......... + + +## Palveluun liittyviä asiakaspolkuja + +>Mieti auki aiemmin kirjoittamaasi asiakastarinaa ja piirrä sen pohjalta hahmotelma asiakaspolusta. +Mitä tapahtumia siihen liittyy? Mieti palvelua laajempana kokonaisuutena! +Asiaspolkukuvauksen avulla kuvataan tapahtuma sarjaa joka käydään jossain valitussa tilanteessa läpi palvelun käytön aikana. +Asiakas kohtaisia palvelupolkuja voi olla useita, mutta tärkeintä on tunnistaa alkuvaiheessa oleellisimmat. +Palvelupolkua kuvattaessa voi hyödyntää esim. Swim lane/BluePrint/tilakone-kuvausta tai muuta sopivaksi katsottua kuvausta. +Tärkeää on kuitenkin kuvata polku ja käyttää sitä tarvittaessa selkeyttämään ymmärrystä tavoitellusta palvelusta. +Käy läpi tekemäsi kuvausta jonkun toisen henkilön kanssa yhdessä? Käy läpi polku ja kerro mitä sen aikana tapahtuu.. + +[](http://www.youtube.com/watch?v=kNXjKquK3A0 "") + +>Asiakaspolun luonnostelu on hyvä aloittaa esim. asiakastarinan pohjalta. Polkuja laaditaan tarvittaessa useampia eri profiilien/tilanteiden näkökulmasta. Yhteen kuvaukseen ei siis kannata upottaa liikaa tapahtumia + +[](http://www.youtube.com/watch?v=j7U8pqUN9EM "") + +**asiakaspolku PlantUML-esimerkki tilakoneena** + +> Kokeillaan luonnostella asiakaspolkua PlantUML-työkalun avulla. Kannattaa kokeilla ehdottomasti myös muita tapoja! +> Sovella esim. PlantUML SDL/Swimlane kuvausta? + + +```plantuml +[*] --> Step1 + +Step1 : First contact to service +Step2 : Under Service +Step3 : End of service +Step4 : Queue for service + +Step1 --> Step2 +Step1 --> Step4 +Step4 --> Step2 +Step2 --> Step3 +Step3 --> [*] +``` +> Palvelupolkujen kuvauksissa voi tarvittaessa soveltaa myös muita työkaluja. Esim. https://canvanizer.com, PowerPoint etc + +## Oleelliset käyttötapaukset + +> Palvelupolun kuljettaessa käydään läpi laajempi ketju palveluun käyttöön liittyviä tapahtumia. Tilanteet joissa käsitellään itse ohjelmistpalvelun +sähköisiä rajapintoja/käyttöliittymiä voidaan kuvata käyttötapauksien (Use Case) avulla. +> Ohjelmistosuunnittelussa **Käyttötapaus** (Use Case) ymmärretään helposti väärin, koska se liitetään helposti pelkästään tuotteen +**käyttötarkoituksen** kuvaamiseen. Palvelusta ensi kertaa keskusteltaessa puhutaan sen eri **käyttötarkoituksista**, eli sitä mihin +ohjelmistoa/palvelua voidaan hyödyntää. Kun puhutaan palvelun määrittelystä ja siihen liittyvien käyttötapauksien tunnistamisesta +on kyseessä hieman eri asia. Käyttötapauksessa keskitytään tarkastelmaan palvelun käyttöä varsin rajatussa tilanteessa. +Käyttötapaukset (Use Case) kuvaataan UML-kuvauskielen avulla. + +>UML Use Case-kuvaus voidaan tehdä PlantUML-kuvauksena, mutta tarkempi käyttötapauksen avaaminen vaatii erillisen kuvaus dokumentin + +```plantuml + +rectangle Tilaus { +Profiili_1--(Tilauksen tekeminen) +Profiili_1--(Tilauksen muokkaus) +Profiili_1--(Tilauksen peruminen) +} + +rectangle Tilausten_hallinta { +Hallinto_1--(Tilauksien tarkistaminen) +Hallinto_1--(Tilauksen muokkaus) +Hallinto_1--(Tilauksen siirto) +Huolto_1--(Tilauksen manuaalinen poisto) +Huolto_1--(Tilauksen tyhjennys) +} + +``` + +> On hyödyllistä kirjata kaikki oleelliset käyttötapaukset yhteen laajempaan Use Case-kuvaukseen, koska sen avulla voi tarkastella +helpommin koko järjestelmää. Huomio! Laajemmassa järjestelmä kokonaisuudessa saattaa olla useita satoja eri käyttötapauksia. + +[](http://www.youtube.com/watch?v=DupdE35Ilps "") + +[](http://www.youtube.com/watch?v=-3YtgJGuIek "") + +[](http://www.youtube.com/watch?v=oVGmIOavB74 "") + +> Käyttötapauksen tarkempi kuvaus harjoitusympäristössä tapahtuu käyttötapaus-kohtaisen pohja-tiedoston avulla. Jokaista käyttötapausta varten +laaditaan itsenäinen tiedosto. + +| Käyttötapaus | Osa-alue | Ominaisuus? | +|:-:|:-:|:-:| +| [Käyttötapaus 1 - Tilauksen muokkaus](pohjat/pohja-kayttotapaus.md) | Tilausten hallinta | [Tilaushallinta-paneeli](pohjat/pohja-ominaisuus.md) | +| [Käyttötapaus 2 - Tilauksen tarkistaminen](pohjat/pohja-kayttotapaus.md) | Tilausten hallinta | [Tilaushallinta-paneeli](pohjat/pohja-ominaisuus.md) | +| [Käyttötapaus 2 - Tilauksen siirto](pohjat/pohja-kayttotapaus.md) | Tilausten hallinta | [Tilaushallinta-paneeli](pohjat/pohja-ominaisuus.md) | + +## Tärkeimmät ominaisuudet/toiminnallisuudet + +> Hahmotellaan tähän kohtaan ominaisuudet pelkästään "ranskalaisilla viivoilla", eli mitä palvelulla mielestäsi on mahdollista tehdä? +> Päivitä lista myöhemmin, kun se tarkentuu? + +> On hyödyllistä laatia toimeksiantajan kanssa yhdessä tiivistelmä (A4-kokoa), josta löytyy tarvittaessa koko tuote kiteytettynä +Löydät esimerkin dokumentista [täältä](../pohjat/pohja-tuotekuvaus-a4.md) + +> Toiminnallisuudet tullaan kiinnittämään myöhemmin + +- Toiminnot + - Käyttäjä voi lähettää postia toiselle henkilölle + - Asiakas saa tiedot aiemmin tehdyistä valinnoista + - Henkilö voi maksaa laskun + +## MockUp-prototyyppi + +> Suunniteltavan palvelun toimintoja määriteltäessä voi olla hyödyllistä piirtää avuksi MockUp-kuvausta käyttötilanteen +tai toiminnallisuuden todentamiseksi. Kun palvelun käyttöliittymää tai palvelupolkua käydään läpi mockup-kuvauksen kautta +voi hahmottaa huomattavasti helpommin tarvittavia toiminnallisuuksia tai tarpeita, joita voidaan kirjata vaatimusmäärittelyyn. +MockUp-kuvaus on hyödyllinen apuväline palvelun tilaajan/toimeksiantajan kanssa käydyissä keskusteluissa. + +[](http://www.youtube.com/watch?v=a5qLMBYWv5A "") + +> Kun laadit harjoitustehtävään MockUp-näkymän pohdi haluatko kuvata koko palvelua vai keskittyä yksittäisen toiminnallisuuden tarkasteluun? + +> Voit kokeilla myös PlantUML-kuvausta rajatuissa kohdissa + +```plantuml +salt +{ + Just plain text + [This is my button] + () Unchecked radio + (X) Checked radio + [] Unchecked box + [X] Checked box + "Enter text here " + ^This is a droplist^ +} +``` + +## Alustavat käyttäjätarinat + +>**NYT HUOMIO!** Tähän kohtaan kannattaa keskittyä vasta kun kaikki muut osiot on käyty läpi! +Kyseessä ei ole asiakastarina vaan ketterässä kehityksessä (Agile Development) käytettävä käyttäjätarina - User Story. +Sen avulla kuvataan palveluun liittyvää toiminnallisuutta, jolle käyttäjälle on tarvetta. + +[Aiheesta löytyy pohdintoja eri muodossa](https://suomidigi.fi/kayttajatarinoilla-ryhtia-asiakaslahtoisyyteen/) + +[](http://www.youtube.com/watch?v=ndJdF3R7wqI "") + +* User Story: [Käyttäjänä haluan, että voin luoda raportin tekemistäni ostoista viimeisen kuukauden ajalta, koska se helpottaa oman talouteni hallintaa]() +* User Story: [Pääkäyttäjän haluan poistaa vanhat tunnukset kokonaan, koska se selkeyttää ylläpitoa]() +* Käytännössä ylempi kuvaus on hieman jäykkä ja on järkevitä kirjata storyt suoraan esim. GitLab-issuen muotoon! +* Kokeile osoittaa hiirelle linkkejä oikealla ja avaa ne tämän jälkeen ---> #25 tai #26 + +## Palvelun järjestelmävaatimukset + + +> Järjestelmävaatimukset ovat korkeamman tason vaatimuksia, joiden pohjalta järjestelmä kokonaisuutta lähdetään määrittelemään. +> Palveluita suunniteltaessa nousevat teknisestä näkökulmasta tarkasteltuna esiin vaatimukset, jotka liittyvät eri +teknologioihin, laitteistoihin tai totetuksen fyysisiin rakenteisiin. Ohjelmistopalvelua määriteltäessä +kannattaa tunnistaa ajoissa puhtaasti järjestelmän tekniset/tuotannolliset vaatimukset ja kirjata ne vaatimusmäärittelyyn. +Liiallinen keskittyminen teknisten tuotanto/toteutusvaatimusten kirjaukseen ei ole välttämättä suositeltavaa, koska +suunnittelun aikana ohjelmistoa/palvelun toteutusvaatimukset voivat vielä muuttua. Kehitysvaiheessa näppäräksi koettu ratkaisu +voi osoittatua kalliiksi palvelun tuotteistamisvaiheessa. + +> Tässä osiossa Kannattaa pohtia esim seuraavia kohti + +- Miten palvelu tuotetaan? SAAS/PAAS/IAAS/HOSTED-palveluna etc +- Käytetäänkö Pilvipalveluita osana ratkaisua vai hyödynnetäänkö omia palvelimia +- Onko kyseessä ns. Hybridi-palvelu, joka hyödyntää useampia erillis palvelua +- Miten palvelu on oltava saatavilla 24/7h 100% ? Niin onko tuo edes mahdollista :) ? +- Millainen SLA palvelulle laaditaan? +- Miten paljon kustannuksia saa palvelun tuotanto tuottaa? +- Millaiset tiedonsäilytys/arkistointi tarpeet liittyvät palveluun? + +[](http://www.youtube.com/watch?v=s7AcxrxcVd0 "") + +> Järjestelmä tason vaatimuksissa tarkastellaan ohjelmistoa/palvelua kokonaisuutena ja sen pohjalta määritellään +esim. tekniset vaatimukset suoritusympäristölle, vaadittaville resursseille palvelun ylläpitoa varten. + +> Järjestelmän suoritusympäristön vaatimukset käsittävät esimerkiksi laitevaatimukset tuotantoympäristöstä tai +järjestelmän ajoympäristön vaatimuksia, joihin voivat sisältyä vaatimukset suorituskyvystä, ylläpidosta, varmennuksista etc + +> Millaisia suoritusympäristöjä sitten käytetään esim. kaupallisissa ratkaisuissa ? Voit tutkia esimerkkejä [Stack Share](https://stackshare.io/):palvelussa + + +> Esim. millainen on tekninen ratkaisu toteutukselle ja miten eri teknologioita tullaan hyödyntämään. + +| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | +|:-:|:-:|:-:|:-:| +| SYSTEM-HW-REQ-0002 | System Technical Requirement | Palvelun tärkeimpien palvelujen on oltava vähintään kahdennettu N+1 | | +| SYSTEM-HW-REQ-0003 | System Technical Requirement | Palvelimen muistikapasiteeti >16GB || +| SYSTEM-HW-REQ-0004 | System Technical Requirement | Prosessori Intel/AMD x64|| +| SYSTEM-HW-REQ-0005 | System Technical Requirement | Palvelimen fyysinen sijainti on oltava kotimaassa (Suomi) || +| SYSTEM-HW-REQ-0005 | System Technical Requirement | Verkkoyhteyden nopeus >100MB/s || +| SYSTEM-HW-REQ-0005 | System Technical Requirement | Laitekaapin suositeltava koko 1m X 1m X 2m || + + + + + +> Avainsanat: pilvipalvelun tuotanto, Palveluiden hallinta, SLA + +### Palvelun suunnitteluun vaikuttavat rajaukset ja standardit + +> Eri ohjelmistojena/palvelujen toteutusta ja käyttöä ohjaavat usein lait ja säädökset. Näiden edellyttämät vaatimukset kirjataan yleensä rajoitteina +ja niiden vaikutus koskee usein koko ohjelmiston/järjestelmän toteuttamista. Tästä syystä ne kannattaa tunnistaa ja selvittää ajoissa, koska vaikutus +saataa olla varsin ratkaiseva pitemmällä tähtäimella. Esimerkkinä [EU GDPR-säädös](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation). + +> Kannattaa tutkia esimerkiksi https://www.sfs.fi/aihealueet/terveydenhuolto/laakinnalliset_laitteet tai http://docs.jhs-suositukset.fi/jhs-suositukset/JHS190/JHS190.html + +| Id | Vaatimuksen kuvaus | kategoria | Vastuullinen | +|:-:|:-:|:-:|:-:| +| CONSTRAINT-REQ-S00000 | Constrain | Palvelun kirjautumisprosessin on noudatettava XYZ-käytäntöjä | [Kirjautuminen ft1](pohjat/pohja-ominaisuus.md) | +| CONSTRAINT-REQ-S00001 | Constrain | On huomioitava Standardi ZZZ osana palvelun tapahtuma login talletusta | [Log-palvelin](pohjat/pohja-ominaisuus.md)| +| CONSTRAINT-REQ-S00002 | Constrain ||| +| CONSTRAINT-REQ-S00003 | Constrain ||| +| CONSTRAINT-REQ-S00004 | Constrain ||| +| CONSTRAINT-REQ-S00005 | Constrain ||| +| CONSTRAINT-REQ-S00006 | Constrain ||| + + + + +### Palvelun toiminnallisuudet/ominaisuudet + +> Kirjataan taulukkoon "kaikki" toiminnot, joista osaa tullaan käsittelemään myöhemmin tuotteen toiminnallisina ominaisuuksina. +Kannattaa huomata, että osa toiminnallista vaatimuksista ovat käytännössä oleellisia toimintoja, eli ne voidaan "korottaa" ominaisuuksiksi. +Esimerkkinä Verkkopankki palvelussa on oleellinen toiminto "maksu tililtä", joka on käytännössä tärkeä palvelun ominaisuus. Tähän +toiminnallisuuteen liittyy useita muita pienempiä ja tarkentavia toiminnallisia vaatimuksia + +> Jos sinulta kysytään mitä palvelulla/ohjelmistolla voi tehdä pyri tunnistamaan tärkeimmät toiminnot! +Ne ovat melko varmasti oleelliset ominaisuudet. +> Mieti mitä toimintoja pysyt tekemään esim. verkkopankin sivulla? Mitkä ovat tärkeimmät toiminnot, joita käytät useimmin? + +> Kannataa pohtia määrittelyvaiheessa ovatko kaikki ominaisuudet tarpeellisia? Kannattaa pyrkiä ryhmittelemään tärkeimmät ominaisuudet ensin. +Ominaisuuksia voidaa tarkentaa toiminnallisilla vaatimuksilla, jotka ns. laajentavat ominaisuuden kuvausta. Ominaisuudet ovat käytännössä isompia kokonaisuuksia, joista koko palvelu/ohjelmisto on muodostunut. +Suomenkielen sana ominaisuus saattaa olla hieman harhaan johtava, koska usein tuotteita esiteltäessä pyritään korostamaan tuotteen ominaisuutena sen "tietoturvallisutta". +Tämä ei tarkoita, että kyseessä on tuoteeen ohjelmiston yksi ominaisuus vaan yleinen "suunnittelu filosofia". Tuote voi sisältää ominaisuuksia, joiden myötä sitä voidaan kutsua voidaan tietoturvalliseksi. + +> Tuotteen ominaisuus vai toiminto? + +[](http://www.youtube.com/watch?v=6dVrBsvUStg "") + +> Ominaisuuksien todellinen tarve? + +[](http://www.youtube.com/watch?v=pIDSK21PE9M "") + +> Ylikirjoita pohjalla olevat ehdotuksen ja toimintoja toimeksiantoon pohjautuen ja priorisoi niistä tärkeimmät toiminnot, joita määrittelet tarkemmin. + +**Priorisoi oleelliset ominaisuudet/toiminnot** + +* P1 = Pakollinen +* P3 = Tarpeellinen +* P5 = Tehdään, kun tarve ilmenee + +| Ominaisuus | Prioriteetti | Ominaisuuteen liittyvät vaatimukset/käyttötapaukset | +|:-:|:-:|:-:| +| [Feature 1 - raportti-generaattori](pohjat/pohja-ominaisuus.md) | P1 | Esim [FUNCTIONAL-REQ-C0001]() | +| [Feature 2 - lasku-arkisto](pohjat/pohja-ominaisuus.md) | P1 | Esim [FUNCTIONAL-REQ-C0011]() | +| [Feature 3 - avatar-valinta](pohjat/pohja-ominaisuus.md) | P2 | Esim [FUNCTIONAL-REQ-C0023]() | +| [Feature 4 - oikeushallinta](pohjat/pohja-ominaisuus.md) | P3 | Esim [FUNCTIONAL-REQ-C0133]() | +| [Feature 5](pohjat/pohja-ominaisuus.md) | P4 | Esim [FUNCTIONAL-REQ-C0231]() | +| [Feature 6](pohjat/pohja-ominaisuus.md) | P5 | Esim [FUNCTIONAL-REQ-C0221]() | +| [Feature 7](pohjat/pohja-ominaisuus.md) | P5 | Esim [FUNCTIONAL-REQ-C0021]() | +| [Feature 8](pohjat/pohja-ominaisuus.md) | P5 | EEsim [FUNCTIONAL-REQ-C0301]() | +| [Feature 9](pohjat/pohja-ominaisuus.md) | P5 | Esim [FUNCTIONAL-REQ-C0401]() | +| [Feature 10](pohjat/pohja-ominaisuus.md) | P5 | Esim [FUNCTIONAL-REQ-C0401]() | + + +### Palvelun toiminnalliset vaatimukset + +>Mitä ovat toiminnalliset vaatimukset? Toiminnallisilla vaatimuksilla kuvataan ohjelmistolta/järjestelmältä vaadittua toimintaa +Toiminnalliset vaatimukset ovat helpoimmin tunnistettavia. Vältä useamman vaatimuksen kirjaamista samaan lauseeseen! Jokainen vaatimus erikseen.. +Voit esittää ne taulukossa tai viitata [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan kokonaisuuteen + +[](http://www.youtube.com/watch?v=qO2qEIEHy_A "") + +| 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 | [Kirjautuminen ft1](pohjat/pohja-ominaisuus.md) | +| FUNCTIONAL-REQ-C0002 | Functional Requirement | Käyttöliittymän on toimittava myös ääniohjattuna, koska käyttäjillä saattaa olla näkövammoja | [Kirjautuminen ft1](pohjat/pohja-ominaisuus.md), [Tilaushallinta](pohjat/pohja-ominaisuus.md) | +| FUNCTIONAL-REQ-C0003 | Functional Requirement ||| +| FUNCTIONAL-REQ-C0004 | Functional Requirement ||| +| FUNCTIONAL-REQ-C0005 | Functional Requirement ||| +| FUNCTIONAL-REQ-C0006 | Functional Requirement ||| +| FUNCTIONAL-REQ-C0007 | Functional Requirement ||| +| FUNCTIONAL-REQ-C0008 | Functional Requirement ||| +| FUNCTIONAL-REQ-C0009 | Functional Requirement ||| +| FUNCTIONAL-REQ-C0010 | Functional Requirement ||| + +### Ohjelmiston/palveluun ei-toiminnallisia vaatimuksia + +>Mitä olivat ei-toiminnalliset vaatimukset? Voit esittää eri vaatimuksia erillisessä taulukossa tai viitata tässä [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan taulukkoon. +[Ei-toiminnalliset vaatimukset](https://en.wikipedia.org/wiki/Non-functional_requirement) sisältää laajan joukko eri näkökulmia ohjelmiostotuotteeseen liittyen. Tärkeimmät kirjoittajan +näkökulmasta ovat seuraavat: Suorituskyky, käytettävyys, tietoturva ja ylläpidettävyys +>Voit esittää eri vaatimuksia erillisessä taulukossa tai viitata tässä [yhteen](pohjat/pohja-vaatimuslistalle.md) laajempaan taulukkoon.. +Miten hyvin palvelu/komponentti tai muu osa-alue palvelusta suoriutuu kuormituksen aikana? Mitkä ovat pullonkaulat. Mihin vaatimuksiin palvelun tulee kyetä vastaamaan? + +[](http://www.youtube.com/watch?v=Tta7bAFlg54 "") + + +>Millaisia vaatimuksia palveluun kohdistuu suorituskyvyn näkökulmasta? + +| 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) | [Kirjautuminen ft1](ft1-ominaisuus.md) | +| PERFORMANCE-REQ-0001 | Non-Functional Performance ||| +| PERFORMANCE-REQ-0002 | Non-Functional Performance ||| +| PERFORMANCE-REQ-0003 | Non-Functional Performance ||| +| PERFORMANCE-REQ-0004 | Non-Functional Performance ||| +| PERFORMANCE-REQ-0005 | Non-Functional Performance ||| + +>Millaisia vaatimuksia palveluun kohdistuu tietoturvan näkökulmasta? + +| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | +|:-:|:-:|:-:|:-:| +| SECURITY-REQ-0001 | Non-Functional Security | Salasanassa on käytettävä vähintään MD5-tason salausta, koska standardi XY112 sitä edellyttää | [Kirjautuminen ft1](ft1-ominaisuus.md) | +| SECURITY-REQ-0002 | Non-Functional Security ||| +| SECURITY-REQ-0003 | Non-Functional Security ||| +| SECURITY-REQ-0004 | Non-Functional Security ||| +| SECURITY-REQ-0005 | Non-Functional Security ||| +| SECURITY-REQ-0006 | Non-Functional Security ||| +| SECURITY-REQ-0007 | Non-Functional Security ||| +| SECURITY-REQ-0008 | Non-Functional Security ||| +| SECURITY-REQ-0009 | Non-Functional Security ||| +| SECURITY-REQ-0010 | Non-Functional Security ||| + +>Mitä tarkoitetaan käyttävyydellä? Millaisia asioita/ohjeistuksia on otettava huomioon palvelua toteutettaessa? + +| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | +|:-:|:-:|:-:|:-:| +| USABILITY-REQ-0000 | Non-Functional Usability | | [Kirjautuminen ft1](ft1-ominaisuus.md) | | +| USABILITY-REQ-0001 | Non-Functional Usability | | [Käytettävyys](https://fi.wikipedia.org/wiki/K%C3%A4ytett%C3%A4vyys) | +| USABILITY-REQ-0002 | Non-Functional Usability | | [Käytettävyys](https://fi.wikipedia.org/wiki/K%C3%A4ytett%C3%A4vyys) | +| USABILITY-REQ-0003 | Non-Functional Usability | | [Käytettävyys](https://fi.wikipedia.org/wiki/K%C3%A4ytett%C3%A4vyys)| +| USABILITY-REQ-0004 | Non-Functional Usability | | |[Käytettävyys](https://fi.wikipedia.org/wiki/K%C3%A4ytett%C3%A4vyys)| +| USABILITY-REQ-0005 | Non-Functional Usability | | [Käytettävyys](https://fi.wikipedia.org/wiki/K%C3%A4ytett%C3%A4vyys)| + +>Millaisia asioita on otettava huomioon tuotteen laadunvarmistamisen kannalta?. Kehityksen aikana ohjelmistotuotteeseen on luotava tarvittavat rajapinnat tai työkalu-ohjelmistoja, +joiden avulla voidaan hallita testikohteena olevaa tuoteversiota. Nämä vaatimukset on kirjattava ajoissa, koska ne vaikuttavat ratkaisevasti tuotteen testausmahdollisuuksiin. +Esimerkkinä voidaan miettiä logien hallintaa, niiden keräämistä, alkutilanteeseen saattamista. + +| VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa | +|:-:|:-:|:-:|:-:| +| TESTABILITY-REQ-0000 | Non-Functional Testability | Käyttäjärekisteri on kyettävä palauttamaan alkutilaan ennen testien ajoa | [Kirjautuminen ft1](ft1-ominaisuus.md) | +| TESTABILITY-REQ-0001 | Non-Functional Testability ||[Lisätietoa](https://fi.wikipedia.org/wiki/Ohjelmiston_laatu)| +| TESTABILITY-REQ-0002 | Non-Functional Testability ||[Lisätietoa](https://fi.wikipedia.org/wiki/Ohjelmiston_laatu)| +| TESTABILITY-REQ-0003 | Non-Functional Testability ||[Lisätietoa](https://fi.wikipedia.org/wiki/Ohjelmiston_laatu)| +| TESTABILITY-REQ-0004 | Non-Functional Testability ||[Lisätietoa](https://fi.wikipedia.org/wiki/Ohjelmiston_laatu)| +| TESTABILITY-REQ-0005 | Non-Functional Testability ||[Lisätietoa](https://fi.wikipedia.org/wiki/Ohjelmiston_laatu)| + +## Ohjelmiston arkkitehtuuri, sijoittelunäkymä, tietokantakuvaus ja integraatiot + +>Ohjelmiston toteutus vaatimuksiin voidaan asettaa ennalta määriteltyjä teknologioita, joita on noudatettava kehityksessä. +Tämä tilanne tulee usein eteen, kun ohjelmisto liittyy aiemmin toteutettuun ratkaisuun + +### Palvelun sijoittelunäkymä (Deployment diagram ) + +>Sijoittelunäkyvän avulla voi kuvata miten eri palvelu osat toimivat sen ollessa toiminnassa. + +[](http://www.youtube.com/watch?v=tLuiQ9p8RkU "") + +### Tietokantakuvaus (Database ER-diagram) + +>Palvelua määriteltäessä on yleistä kuvata tarvittavan tietovaraston karkeaa rakennetta esim. ER-kaavion muodossa. +Tämä antaa kuvaa siitä millainen ratkaisu tarvitaan Voit soveltaa PlantUML-kuvausta ER-kaavion tuottamiseen. + +**Esimerkki** + +```plantuml +' hide the spot +hide circle + +' avoid problems with angled crows feet +skinparam linetype ortho + +entity "Entity01" as e01 { + *e1_id : number <<generated>> + -- + *name : text + description : text +} + +entity "Entity02" as e02 { + *e2_id : number <<generated>> + -- + *e1_id : number <<FK>> + other_details : text +} + +entity "Entity03" as e03 { + *e3_id : number <<generated>> + -- + *e1_id : number <<FK>> + other_details : text +} + +e01 ||..o{ e02 +e01 |o..o{ e03 +``` + +### Integraatiot muihin järjestelmiin + +>Vaatimusmäärittelyssä on kuvata palvelun/tuoteen riippuvuus muista järjestelmistä. Onko joitain palvelun osia tarkoitus ostaa ulkopuoliselta palvelun tarjoajalta. +Esimerkkeinä virtuaalikoneet, laskutusjärjestelmät, valvonta ja muut palvelutuotannon ratkaisut. + +* [Integraatioista IteWIkissä](https://www.itewiki.fi/opas/integraatiot/) + +```plantuml +node node1 +node node2 +node node3 +node node4 +node1 -0)- node2 : service X +node1 -0)- node3 : service Y +node1 -0)- node4 : service Z +``` + +**Integraation kuvaaminen sekvenssikaaviona** + +> Järjestelmien välisiä tapahtumia voi kuvata tarvittaessa esim. sekvenssikaavion muodossa. + + +```plantuml +node1 ->node2: Log Start Request +node2 --> node1 : Logging started +``` + +## Palvelun laadun varmistus + +>Ohjelmisto + +### Palvelun/Ohjelmiston alustavat hyväksyntätestit + +>Hyväksyntätesteissä keskitytään yleisesti asiakkaan/loppukäyttäjän näkökulmaan. Tavoitteena on kelpuuttaa, eli validoida , onko tuote asiakkaan toiveiden mukainen ja täyttääkö se asetetut vaatimukset. +Hyväksyntätesteillä voidaan selvittää onko tuote myös riittävän suorituskykyinen, käytettävä tai tietoturvallinen asiakkaiden käyttötarkoitukseen. + +[](http://www.youtube.com/watch?v=WfMrCdAr-GM "") + + + +>Kiinnitetään alustavat hyväksyntätestit vaatimuksiin taulukon muodossa. + +| Lähde | Testitapaus Id | Kuvaus | Tyyppi | +|:-:|:-:|:-:|:-:| +| [Feature 1](pohjat/pohja-ominaisuus.md), [FUNCTIONAL-REQ-0001]() | [Testitapaus 1](pohjat/pohja-hyvaksyntatesti.md) | esim. Tarkista kirjautuminen palveluun uutena käyttäjänä | Hyväksyntätesti | +| [Feature 2](pohjat/pohja-ominaisuus.md), [FUNCTIONAL-REQ-0201](), [USE-CASE-017](pohjat/pohja-hyvaksyntatesti.md) | [Testitapaus 2](pohjat/pohja-testitapaus.md) | esim. Tarkista kenkilökohtaisten tietojen poisto | Hyväksyntätesti | +| [Feature 3](pohjat/pohja-ominaisuus.md), | [Testitapaus 101](pohjat/pohja-hyvaksyntatesti.md) | esim. Takista Kirjautuminen toimivalla salasanalla | Hyväksyntätesti | + +## Julkaisusuunnitelma + + +> Julkaisusuunnitelman visualisoidulla muodolla on helpompi esittää ominaisuuksien julkaisut kehityksen aikanan. +Alla oleva kuva on luotu hyödyntäen PlantUML-työkalua. Sen avulla on luoto ns. Gantt-kaavio ominaisuuksien julkaisuajankohdista. + +> Oletamme, että tuotteessa on muutamia ominaisuuksia, joiden järjestys on mietitty ennakkoon.. + +```plantuml +Project starts the 2019-5-15 +[Version v1.0 EarlyAdopter] Starts 2019-5-15 and ends 2019-7-30 +[Design Phase] Starts 2019-5-15 and ends 2019-6-15 +[Feature 1 v 1.0] Starts 2019-5-25 and ends 2019-6-15 +[Feature 2 v 1.0] Starts 2019-5-25 and ends 2019-7-1 +[Feature 3 v 1.1] Starts 2019-6-15 and ends 2019-7-15 +[Feature 4 v 1.1] Starts 2019-6-25 and ends 2019-7-20 +[Feature 5 v 2.3] Starts 2019-6-1 and ends 2019-7-21 +[Accceptance Testing ] Starts 2019-7-21 and ends 2019-7-23 +``` + +[](http://www.youtube.com/watch?v=Z1cSK_IMqMs "") + +>Tuotteen/ohjelmiston eri ominaisuuksista kehitetään usein eri versioita ja tämä johtaa usein erilaisiin tuotekokonaisuuksiin. Puhutaan ns. tuotekonfiguraatiosta, jonka avulla kiinnitetään eri +ominaisuusversiot yhteen ohjelmiston julkaisu versionn. + +> Alla olevassa taulukossa on esitelty julkaisuun "EarlyAdopter - Versio 1.0" valitut toiminnallisuudet + +| Ominaisuus/toiminnallisuus | Versio | Milloin testattavissa | Julkaisu | +|:-:|:-:|:-:|:-:| +| [Feature 1](pohjat/pohja-ominaisuus.md) | 1.0 | 15.6.2019 | V1.0 | +| [Feature 2](pohjat/pohja-ominaisuus.md) | 1.0 | 1.7.2019 | V1.0 | +| [Feature 3](pohjat/pohja-ominaisuus.md) | 1.1 | 15.7.2019 | V1.0 | +| [Feature 4](pohjat/pohja-ominaisuus.md) | 1.1 | 20.7.2019 | V1.0 | +| [Feature 5](pohjat/pohja-ominaisuus.md) | 2.3 | 23.7.2019 | V1.0 | + + +## Standardit ja lähteet + +> Vaatimusmäärittelyn osana on oleellista tuoda esiin tärkeät lähteet, joista on hyötyä tai merkitystä kokonaisuuden kannalta. Standardit ja ennalta jaetut ohjeistukset ovat hyödyllisiä lähteitä ja tarvittaessa +selkeyttävät vaatimusten merkitystä. + +| 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 | - | +| - | - | - | diff --git a/dokumentaatio/03-suunnittelu-ja-toteutus/arkkitehtuuri-ja-tekninentoteutus.md b/dokumentaatio/30-Arkkitehtuuri-suunnittelu/arkkitehtuuri-ja-tekninentoteutus.md similarity index 100% rename from dokumentaatio/03-suunnittelu-ja-toteutus/arkkitehtuuri-ja-tekninentoteutus.md rename to dokumentaatio/30-Arkkitehtuuri-suunnittelu/arkkitehtuuri-ja-tekninentoteutus.md diff --git a/dokumentaatio/03-suunnittelu-ja-toteutus/suunnittelu-dokumentaatiot.md b/dokumentaatio/30-Arkkitehtuuri-suunnittelu/suunnittelu-dokumentaatiot.md similarity index 100% rename from dokumentaatio/03-suunnittelu-ja-toteutus/suunnittelu-dokumentaatiot.md rename to dokumentaatio/30-Arkkitehtuuri-suunnittelu/suunnittelu-dokumentaatiot.md diff --git a/dokumentaatio/04-julkaisusuunnitelma/julkaisusuunnitelma.md b/dokumentaatio/40-Julkaisusuunnittelu/julkaisusuunnitelma.md similarity index 100% rename from dokumentaatio/04-julkaisusuunnitelma/julkaisusuunnitelma.md rename to dokumentaatio/40-Julkaisusuunnittelu/julkaisusuunnitelma.md diff --git a/dokumentaatio/05-testaushallinta/Exmple_of_test_case_pool.pdf b/dokumentaatio/50-Testaushallinta/Exmple_of_test_case_pool.pdf similarity index 100% rename from dokumentaatio/05-testaushallinta/Exmple_of_test_case_pool.pdf rename to dokumentaatio/50-Testaushallinta/Exmple_of_test_case_pool.pdf diff --git a/dokumentaatio/05-testaushallinta/testcase.pdf b/dokumentaatio/50-Testaushallinta/testcase.pdf similarity index 100% rename from dokumentaatio/05-testaushallinta/testcase.pdf rename to dokumentaatio/50-Testaushallinta/testcase.pdf diff --git a/dokumentaatio/05-testaushallinta/testitapaus-pohja.md b/dokumentaatio/50-Testaushallinta/testitapaus-pohja.md similarity index 100% rename from dokumentaatio/05-testaushallinta/testitapaus-pohja.md rename to dokumentaatio/50-Testaushallinta/testitapaus-pohja.md diff --git a/dokumentaatio/05-testaushallinta/testitulokset.md b/dokumentaatio/50-Testaushallinta/testitulokset.md similarity index 100% rename from dokumentaatio/05-testaushallinta/testitulokset.md rename to dokumentaatio/50-Testaushallinta/testitulokset.md diff --git a/dokumentaatio/05-testaushallinta/yleistestaussuunnitelma.md b/dokumentaatio/50-Testaushallinta/yleistestaussuunnitelma.md similarity index 100% rename from dokumentaatio/05-testaushallinta/yleistestaussuunnitelma.md rename to dokumentaatio/50-Testaushallinta/yleistestaussuunnitelma.md diff --git a/dokumentaatio/02-vaatimusmaarittely/liitteet/.gitkeep b/dokumentaatio/60-Tuotanto/.gitkeep similarity index 100% rename from dokumentaatio/02-vaatimusmaarittely/liitteet/.gitkeep rename to dokumentaatio/60-Tuotanto/.gitkeep diff --git a/dokumentaatio/06-tarjoukset-ja-laskutus/esimerkki-lasku.md b/dokumentaatio/60-Tuotanto/esimerkki-lasku.md similarity index 100% rename from dokumentaatio/06-tarjoukset-ja-laskutus/esimerkki-lasku.md rename to dokumentaatio/60-Tuotanto/esimerkki-lasku.md diff --git a/dokumentaatio/06-tarjoukset-ja-laskutus/harjoitus-lasku.md b/dokumentaatio/60-Tuotanto/harjoitus-lasku.md similarity index 100% rename from dokumentaatio/06-tarjoukset-ja-laskutus/harjoitus-lasku.md rename to dokumentaatio/60-Tuotanto/harjoitus-lasku.md diff --git a/dokumentaatio/06-tarjoukset-ja-laskutus/lasku-toimeksiantajalle.md b/dokumentaatio/60-Tuotanto/lasku-toimeksiantajalle.md similarity index 100% rename from dokumentaatio/06-tarjoukset-ja-laskutus/lasku-toimeksiantajalle.md rename to dokumentaatio/60-Tuotanto/lasku-toimeksiantajalle.md diff --git a/dokumentaatio/06-tarjoukset-ja-laskutus/tarjous-pohja.md b/dokumentaatio/60-Tuotanto/tarjous-pohja.md similarity index 100% rename from dokumentaatio/06-tarjoukset-ja-laskutus/tarjous-pohja.md rename to dokumentaatio/60-Tuotanto/tarjous-pohja.md diff --git a/dokumentaatio/08-raportointi/current-project-status.md b/dokumentaatio/80-Reporting/current-project-status.md similarity index 100% rename from dokumentaatio/08-raportointi/current-project-status.md rename to dokumentaatio/80-Reporting/current-project-status.md diff --git "a/dokumentaatio/07-katselmoinnit/katselmointip\303\266yt\303\244kirja-pohja.md" "b/dokumentaatio/80-Reporting/katselmointip\303\266yt\303\244kirja-pohja.md" similarity index 100% rename from "dokumentaatio/07-katselmoinnit/katselmointip\303\266yt\303\244kirja-pohja.md" rename to "dokumentaatio/80-Reporting/katselmointip\303\266yt\303\244kirja-pohja.md" diff --git a/dokumentaatio/09-tuotokset/kayttoohje.md b/dokumentaatio/80-Reporting/kayttoohje.md similarity index 100% rename from dokumentaatio/09-tuotokset/kayttoohje.md rename to dokumentaatio/80-Reporting/kayttoohje.md diff --git a/dokumentaatio/09-tuotokset/palvelu-info.md b/dokumentaatio/80-Reporting/palvelu-info.md similarity index 100% rename from dokumentaatio/09-tuotokset/palvelu-info.md rename to dokumentaatio/80-Reporting/palvelu-info.md diff --git a/dokumentaatio/08-raportointi/projektin-loppuraportti.md b/dokumentaatio/80-Reporting/projektin-loppuraportti.md similarity index 100% rename from dokumentaatio/08-raportointi/projektin-loppuraportti.md rename to dokumentaatio/80-Reporting/projektin-loppuraportti.md diff --git a/dokumentaatio/08-raportointi/projektin-tilannekatsaus.md b/dokumentaatio/80-Reporting/projektin-tilannekatsaus.md similarity index 100% rename from dokumentaatio/08-raportointi/projektin-tilannekatsaus.md rename to dokumentaatio/80-Reporting/projektin-tilannekatsaus.md diff --git a/dokumentaatio/10-oppimispaivakirjat/pohja-henkilokohtainen-oppimiraportti.md b/dokumentaatio/99-Kirjasto/pohja-henkilokohtainen-oppimiraportti.md similarity index 100% rename from dokumentaatio/10-oppimispaivakirjat/pohja-henkilokohtainen-oppimiraportti.md rename to dokumentaatio/99-Kirjasto/pohja-henkilokohtainen-oppimiraportti.md