Skip to content

Ohjelmiston/palvelun vaatimusmäärittely

TTOS0100 Kurssin harjoitustyö HT1 - TA-2019-1

  • Jonne Okkonen / M2235
  • 2019
  • Versionumero 1.0

Sisällysluettelo

Johdatus

Ecometsä Oy hankkii Retkikartta.fi nimisen Internet-karttapalvelun kehitystyön ja sen tuloksena syntyvän karttapalvelun. Kehitystyön aikana palvelu uudistetaan kokonaan (uudelleen hankinta) käyttämällä ketterää ohjelmistokehitys menetelmää, jolloin ensin toteutetaan karttapalvelu toimittajan ylläpitämään ympäristöön vaatimusmäärittelyssä kuvatut ehdottamat vaatimukset ja tämän toteutuksen jälkeen tuotetaan jatkuvana palveluna karttapalvelun käyttö-, ylläpito ja aineistopalvelut.

Vaatimusmäärittelytyön tilaaja

Ecometsä Oy

Vaatimusmäärittelyn toimittaja

Vaatimusmäärittely on toteutettu Prosoft Oy:n toimesta TA-2019-1 toimeksiannon pohjalta.

Palvelukuvaus

Retkikartta.fi palvelun avulla kuluttajilla on pääsy maksuttomiin maastokarttoihin, josta kuluttajat voivat myös hakea metsästykseen-, kalastukseen- ja retkeilyyn soveltuvia kohteita ja palveluita. Jokaisesta kohteesta löytyy paljon tietoja koordinaateista, majoituksen saatavuuteen ja tarkkaan kuvaukseen paikasta.

Asiakastarinat

A: Reino Retkeilijä on katsellut retkeilyvideoita YouTubesta. Niitä katsellessaan hän on innostunut retkeilystä ja päättää lähteä itse kokeilemaan retkeilyä yöpymällä ensin muutaman yön metsässä. Reino ei kuitenkaan tiedä minne hänen kannattaisi lähteä ja mistä löytäisi esimerkiksi laavun, jossa yöpyä. Sitten hän muistaakin erään YouTube videon, jossa henkilö mainosti Retkikartta.fi nimistä palvelua. Reino menee retkikartta-palvelun sivuille ja alkaa etsiä lähintä retkeilyaluetta, josta löytyisi hyvä majapaikka. Pienen etsiskelyn jälkeen hän löytää laavun läheiseltä retkeilyalueelta. Hän päättääkin lähteä sinne ja viettää mukavan viikonlopun.

B: Martti Metsästäjä on käynyt metsästämässä samoilla seuduilla, jo pienestä pitäen. Nyt hän kuitenkin kaipaisi vaihtelua ja miettii mistä voisi löytää uusia metsästysalueita. Kertoessaan pojalleen ongelmastaan poika kertoo isälleen, että hänen kannattaisi etsiä Retkikartta.fi-sivustolta uutta metsästyspaikkaa. Pian puhelun jälkeen Martti käy Retkikartta.fi-sivustolla ja löytääkin uuden metsästysalueen pienen ajo- matkan päästä. Seuraavana päivänä hän päättää lähteä uudelle metsästysalueelle, koittamaan onneaan ja hän onnistuukin saamaan komean hirven.

Yleinen sidosryhmäkuva (Stakeholder map)

Tunnistetut sidosryhmäkuvaukset (Stakeholders)

Palvelu/asiakaspolku (Customer Journey/Path)

Yläpuolella sijaitsevassa kaaviossa Asiakas 1 käyttää tietokonetta ja Asiakas 2 käyttää mobiililaitetta mennäkseen reittikartta.fi palveluun. Palveluun päästyään hän valitsee valikosta retkeily-/kalastus-/metsästyspaikkoja ja mahdollisia majoitusvaihtoehtoja. Tämän jälkeen asiakas alkaa etsiä kartalta kohteita lähiympäristöstä. Lähiympäristöstä hän ei kuitenkaan löydä mitään mielenkiintoista, jolloin hän päättääkin hakea vähän kauempaa. Kauempaa katsottuaan hän löytää hyvän paikan, johon hän päättää lähteä käymään seuraavana viikonloppuna. Hienon viikonloppureissun vietettyään hän päättää suositella palvelua Etelä-Suomessa asuvalle kaverilleen, joka innostuu myös ja ehdottaa, että he lähtisivät seuraavalle reissulle yhdessä.

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

Yllä olevassa kuvassa on kuvattu palvelun tärkeimmät käyttötapaukset. Käyttötapaukset ovat jaettuna kahteen ryhmään kartan toimintoihin ja kohteiden etsimiseen. Nimensä mukaisesti kartan toiminnot sisältää kaikki karttaan liittyvät toiminnot, kuten koordinaatinluku, alueen koon mittaus, etäisyyden mittaus, jne. Kohteiden etsiminen sisältää kaikki vasemmassa palkissa olevat toiminnot, jotka sisältävät jotain hakuun liittyvää. Esimerkiksi kohteiden ja paikkojen hakeminen nimellä.

Alla olevassa listassa ovat listattuna kaikki käyttötapaus esimerkit. Esimerkit sisältävät tarkemmat tiedot käyttötapauksesta.

Esimerkit

Vaatimukset, käyttötapaukset ja ominaisuudet

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

Tässä dokumentissa tullaan kattamaan retkikartta.fi palvelun erilaiset vaatimukset ja rajoitukset. Näitä vaatimuksia ja rajoituksia mietitään asiakkaan, liiketoiminnan, järjestelmätason, tietoturvan, suorituskyvyn, käytettävyyden, palautumisen, testattavuuden, turvallisuuden ja mekaniikan näkökulmista.

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
SYSTEM-REQ-0001 System Requirement Järjestelmä tulee olla ainakin 2 eri palvelimella
SYSTEM-REQ-0002 System Requirement Tietokanta järjestelmä on MySQL
SYSTEM-REQ-0003 System Requirement Järjestelmän tulee toimia Linux ympäristössä
SYSTEM-REQ-0004 System Requirement Palvelimella tarvitaan vähintään 64 GB muistia
SYSTEM-REQ-0005 System Requirement Järjestelmän tulisi olla helposti kloonattavissa toiselle palvelimelle
SYSTEM-REQ-0006 System Requirement Järjestelmä tarvitsee load balancing palvelimen
SYSTEM-REQ-0007 System Requirement Internet-yhteyden palvelimille tulee olla kahdennettu
SYSTEM-REQ-0008 System Requirement Internet-yhteyden täytyy olla vähintään 10Gbit
SYSTEM-REQ-0009 System Requirement Palvelin tarvitsee tehokkaita Xeon-prosessoreita toimiakseen
SYSTEM-REQ-0010 System Requirement Palvelun tietojen täytyy sijaita nopealla verkkolevyllä

Oleelliset huomioitavat rajoitteet

Id Vaatimuksen kuvaus kategoria Vastuullinen
CONSTRAINT-REQ-S00000 Constrain Kaikki palvelussa esiintyvät tiedot on tarkoitettu ainoastaan informatiivisiin tarkoituksiin, eikä tietoja tule käyttää kaupallisesti. Käyttöliittymä, Mobiilikäyttöliittymä
CONSTRAINT-REQ-S00001 Constrain Sivuston täytyy toimia GDPR tietosuojalain mukaan Käyttöliittymä, Mobiilikäyttöliittymä
CONSTRAINT-REQ-S00002 Constrain Sivustolta täytyy löytyä asianmukainen tietosuojaseloste Käyttöliittymä, Mobiilikäyttöliittymä

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

Alla olevasta taulukosta löytyvät kaikki suunnitellut toiminnallisuudet mitä järjestelmässä voisi olla.

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
FUNCTIONAL-REQ-C0001 Functional Requirement Karttatasojen valinta Karttatasot
FUNCTIONAL-REQ-C0002 Functional Requirement Kohteiden valinta valikosta Kohdevalikko
FUNCTIONAL-REQ-C0003 Functional Requirement Kohteidenhaku nimellä Kohteiden haku
FUNCTIONAL-REQ-C0004 Functional Requirement Paikkojenhaku nimellä Paikannimihaku
FUNCTIONAL-REQ-C0005 Functional Requirement Etäisyydenmittaaminen kartasta Etäisyyden mittaus
FUNCTIONAL-REQ-C0006 Functional Requirement Alueenmittaaminen kartasta Alueen koon mittaus
FUNCTIONAL-REQ-C0007 Functional Requirement Useita karttatiloja Eri karttatilat
FUNCTIONAL-REQ-C0008 Functional Requirement Koordinaattien lukeminen kartasta Koordinaatinluku
FUNCTIONAL-REQ-C0009 Functional Requirement Linkin tekeminen karttanäkymästä Linkin luonti karttanäkymästä
FUNCTIONAL-REQ-C0010 Functional Requirement Karttamerkinnän lisääminen Karttamerkinnän lisääminen
FUNCTIONAL-REQ-C0011 Functional Requirement Oman sijainnin näyttäminen kartalla Oma sijainti kartalla
FUNCTIONAL-REQ-C0012 Functional Requirement Fontti koon vaihtaminen Fontti koon vaihtaminen
FUNCTIONAL-REQ-C0013 Functional Requirement Koordinaattihaku Koordinaattihaku

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

Seuraavissa kohdissa tarkastellaan projektiin suunniteltuja ei-toiminnallisia vaatimuksia, kuten järjestelmän suorituskykyä, tietoturvaa, käytettävyyttä ja testattavuutta.

Suorituskyky (Performance)

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
PERFORMANCE-REQ-0000 Non-Functional Performance Sovelluspuolen suorituskyvyn optimointi
PERFORMANCE-REQ-0001 Non-Functional Performance Tietokannan suorituskyvyn optimointi
PERFORMANCE-REQ-0002 Non-Functional Performance Ulkoisistatietolähteistä haettavan tiedon suorituskyvyn optimointi
PERFORMANCE-REQ-0003 Non-Functional Performance Käyttäjien määrän rajoittaminen ruuhka-aikoina laittamalla ihmisiä 'jonoon' odottamaan vuoroaan
PERFORMANCE-REQ-0004 Non-Functional Performance Yhteyksien määrän rajoitus yhdestä IP-osoitteesta
PERFORMANCE-REQ-0005 Non-Functional Performance Palvelimien skaalautuvuus suurina ruuhka-aikoina

Tietoturva

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
SECURITY-REQ-0001 Non-Functional Security DDoS-hyökkäyksien estäminen
SECURITY-REQ-0002 Non-Functional Security Maksimi request määrä yhdestä IP-osoitteesta sekunnissa
SECURITY-REQ-0003 Non-Functional Security Tietokantojen suojaus ulkopuolisilta yhteyksiltä
SECURITY-REQ-0004 Non-Functional Security Palvelimien suojaaminen ulkopuolilta hyökkäyksiltä
SECURITY-REQ-0005 Non-Functional Security Yhteyksien suojaaminen ulkopuolisiin tietolähteisiin

Käytettävyys

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
USABILITY-REQ-0000 Non-Functional Usability Palvelun saatavuus useilla kielillä Käyttöliittymä, Mobiilikäyttöliittymä
USABILITY-REQ-0001 Non-Functional Usability Hyvien värien valinta, koska käyttäjällä voi olla värisokeus Käyttöliittymä, Mobiilikäyttöliittymä
USABILITY-REQ-0002 Non-Functional Usability Selkeä ja helppokäyttöinen käyttöliittymä, koska käyttäjien taitotasot vaihtelevat Käyttöliittymä, Mobiilikäyttöliittymä
USABILITY-REQ-0003 Non-Functional Usability Käyttöohjeet saataville, jotta palvelun käyttö olisi mahdollista kaikille Käyttöliittymä, Mobiilikäyttöliittymä
USABILITY-REQ-0004 Non-Functional Usability Mobiiliversio, jotta käyttöonnistuu myös älylaitteilla Mobiilikäyttöliittymä
USABILITY-REQ-0005 Non-Functional Usability Fontin koon vaihtaminen isommaksi, jotta myös huononäköiset voisivat käyttää palvelua Fontti koon vaihtaminen

Testattavuus

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
TESTABILITY-REQ-0000 Non-Functional Testability Kuormitus-/Suorituskykytestaus
TESTABILITY-REQ-0001 Non-Functional Testability Toiminnallisuuden testaus eri laitteilla
TESTABILITY-REQ-0002 Non-Functional Testability Turvallisuus testaus
TESTABILITY-REQ-0003 Non-Functional Testability Luotettavuuden testaus
TESTABILITY-REQ-0004 Non-Functional Testability Käytettävyyden testaus
TESTABILITY-REQ-0005 Non-Functional Testability Palauttamisen testaus

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

Alla olevassa taulukossa on määritelty järjestelmän ominaisuudet ja niiden tärkeydet. Pakolliset on pakko toteuttaa, jotta järjestelmä olisi jollain tasolla käytettävä, tärkeät on hyvä lisätä järjestelmään, koska ne ovat tärkeitä asiakkaille ja ne ovat helppo lisätä järjestelmään ja Nice to Have ominaisuudet ovat hyödyllisiä käyttäjille, mutta ne lisätään vain jos aikaa jää jäljelle tai niitä lisätään hiljalleen järjestelmään sen julkaisun jälkeen.

Ominaisuus Prioriteetti Muuta
Käyttöliittymä Pakollinen
Mobiilikäyttöliittymä Pakollinen
Karttatasot Pakollinen
Kohdevalikko Pakollinen
Paikannimihaku Pakollinen
Eri karttatilat Tärkeä
Koordinaatinluku Tärkeä
Alueen koon mittaus Nice to Have
Etäisyyden mittaus Nice to Have
Fontti koon vaihtaminen Nice to Have
Karttamerkinnän lisääminen Nice to Have
Linkin luonti karttanäkymästä Nice to Have
Oma sijainti kartalla Nice to Have

Palvelu MockUp-prototyyppi

Alla olevassa kuvassa näet MockUp-prototyypin sivuston työpöytäversiosta. Lisäksi alla on linkki myös interaktiiviseen demoon, jossa pystyt testaamaan ja katsomaan läpi vasemman reunan valikot: karttatasot, kohdevalikko, kohteiden haku, paikannimihaku, koordinaattihaku ja tervetuloa palveluun. Kaikkien ominaisuuksien MockUp kuvat ovat saatavilla ominaisuuksien sivuilla.

Linkki interaktiiviseen demoon

Mobiilikäyttöliittymä MockUp

Hyväksyntätestit

VaatimusID Testitapaus Kuvaus
CUSTOMER REQ-0002, CUSTOMER REQ-0003, CUSTOMER REQ-0005, BUSINESS REQ-0001, BUSINESS REQ-0004, CONSTRAINT REQ-S000000, CONSTRAINT REQ-S000001, CONSTRAINT REQ-S000002, USABILITY REQ-0000, USABILITY REQ-0001, USABILITY REQ-0002 Käyttöliittymä Hyväksyntätesti
CUSTOMER REQ-0001, CUSTOMER REQ-0002, CUSTOMER REQ-0003, CUSTOMER REQ-0005, BUSINESS REQ-0001, BUSINESS REQ-0004, CONSTRAINT REQ-S000000, CONSTRAINT REQ-S000001, CONSTRAINT REQ-S000002, USABILITY REQ-0000, USABILITY REQ-0001, USABILITY REQ-0002, USABILITY REQ-0004 Mobiilikäyttöliittymä Hyväksyntätesti
CUSTOMER REQ-0005, BUSINESS REQ-0004, FUNCTIONAL REQ-C0012, USABILITY REQ-0005 Fontti koon vaihtaminen Hyväksyntätesti
FUNCTIONAL REQ-C0006 Alueen koon mittaus Hyväksyntätesti
FUNCTIONAL REQ-C0007 Eri karttatilat Hyväksyntätesti
FUNCTIONAL REQ-C005 Etäisyyden mittaus Hyväksyntätesti
FUNCTIONAL REQ-C0010 Karttamerkinnän lisääminen Hyväksyntätesti
FUNCTIONAL REQ-C0001 Karttatasot Hyväksyntätesti
FUNCTIONAL REQ-C0002 Kohdevalikko Hyväksyntätesti
FUNCTIONAL REQ-C0003 Kohteidenhaku Hyväksyntätesti
FUNCTIONAL REQ-C0008 Koordinaatinluku Hyväksyntätesti
FUNCTIONAL REQ-C0013 Koordinaattihaku Hyväksyntätesti
FUNCTIONAL REQ-C0009 Linkin luonti karttanäkymästä Hyväksyntätesti
CUSTOMER REQ-0004, FUNCTIONAL REQ-C0011 Oma sijainti kartalla Hyväksyntätesti
FUNCTIONAL REQ-C0004 Paikannimihaku Hyväksyntätesti

Julkaisun suunnitelma

Perinteinen listaus

Aika Ominaisuuus Vastuu Prioriteetti
1.4.2019 Käyttöliittymä Jaakko Joutava Pakollinen
8.4.2019 Karttatasot Tuomo Tammi Pakollinen
8.4.2019 Paikannimihaku Olli Oja Pakollinen
10.4.2019 Eri karttatilat Olli Oja Tärkeä
15.4.2019 Kohdevalikko Tuomo Tammi Pakollinen
15.4.2019 Mobiilikäyttöliittymä Jaakko Joutava Pakollinen
15.4.2019 Koordinaatinluku Matti Mäki Tärkeä
15.4.2019 Etäisyyden mittaus Olli Oja Nice to Have
17.4.2019 Fontti koon vaihtaminen Tuomo Tammi Nice to Have
17.4.2019 Alueen koon mittaus Matti Mäki Nice to Have
22.4.2019 Karttamerkinnän lisääminen Matti Mäki Nice to Have
24.4.2019 Linkin luonti karttanäkymästä Matti Mäki Nice to Have
29.4.2019 Oma sijainti kartalla Jaakko Joutava Nice to Have
gantt dateFormat YYYY-MM-DD title Julkaisun aikataulu section Aikataulu Käyttöliittymä : des1, 2019-04-01,2019-04-15 Karttatasot : des2, 2019-04-08,2019-04-15 Paikannimihaku : des3, 2019-04-08,2019-04-10 Eri karttatilat : des4, 2019-04-10,2019-04-15 Kohdevalikko : des5, 2019-04-15,2019-04-17 Mobiilikäyttöliittymä : des6, 2019-04-15,2019-04-29 Koordinaatinluku : des7, 2019-04-15,2019-04-17 Etäisyyden mittaus : des8, 2019-04-15,2019-04-22 Fontti koon vaihtaminen : des9, 2019-04-17,2019-04-24 Alueen koon mittaus : des10, 2019-04-17,2019-04-22 Karttamerkinnän lisääminen : des11, 2019-04-22,2019-04-24 Linkin luonti karttanäkymästä : des12, 2019-04-24,2019-04-29 Oma sijainti kartalla : des13, 2019-04-29,2019-05-06

Tilakone

graph TD Aloitus-->|Luetaan toimeksianto|Suunnittelu Suunnittelu-->|Suunnitelma hyväksytty|Työnjako Työnjako-->|Työt jaettu|Työskentely Työskentely-->|Pyydetään palautetta|Palautekeskustelu Palautekeskustelu-->|Jatketaan työskentelyä palautteen pohjalta|Työskentely Työskentely-->|Homma valmis?|Testaus Testaus-->|Korjataan löydetyt ongelmat|Työskentely Testaus-->|Testaus suoritettu|Luovutus Luovutus-->|Palvelu otettu käyttöön|Ylläpito Ylläpito-->|Alas ajo?|EndOfService EndOfService-->|Palvelua tarvitaan vielä|Ylläpito

Palvelun/ohjelmiston arkkitehtuuri

Käsitemalli (Concept Diagram)

Luokkakaavio (Class Diagram)

Yleinen sijoittelunäkymä (Deployment diagram )

Arkkitehtuuriin/teknologiaan liittyvät vaatimukset

Tekniset vaatimukset

VaatimusID Tyyppi Kuvaus Vastuullinen
SYSTEM-REQ-0001 System Requirement Järjestelmä tulee olla ainakin 2 eri palvelimella Jouko Järjestelmä
SYSTEM-REQ-0002 System Requirement Tietokanta järjestelmä on MySQL Jouko Järjestelmä
SYSTEM-REQ-0003 System Requirement Järjestelmän tulee toimia Linux ympäristössä Jouko Järjestelmä
SYSTEM-REQ-0004 System Requirement Palvelimella tarvitaan vähintään 64 GB muistia Jouko Järjestelmä
SYSTEM-REQ-0005 System Requirement Järjestelmän tulisi olla helposti kloonattavissa toiselle palvelimelle Jouko Järjestelmä
SYSTEM-REQ-0006 System Requirement Järjestelmä tarvitsee load balancing palvelimen Jouko Järjestelmä
SYSTEM-REQ-0007 System Requirement Internet-yhteyden palvelimille tulee olla kahdennettu Jouko Järjestelmä
SYSTEM-REQ-0008 System Requirement Internet-yhteyden täytyy olla vähintään 10Gbit Jouko Järjestelmä
SYSTEM-REQ-0009 System Requirement Palvelin tarvitsee tehokkaita Xeon-prosessoreita toimiakseen Jouko Järjestelmä
SYSTEM-REQ-0010 System Requirement Palvelun tietojen täytyy sijaita nopealla verkkolevyllä Jouko Järjestelmä

Ylläpito (Maintenance)

Id Vaatimuksen kuvaus kategoria Vastuullinen
MAINTENANCE-REQ001 Testauspalvelin Tekninen Jouko Järjestelmä
MAINTENANCE-REQ002 SYSTEM-REQ-0005 Tekninen Jouko Järjestelmä
MAINTENANCE-REQ003 Etäyhteys ylläpitoa varten Tekninen Jouko Järjestelmä
MAINTENANCE-REQ004 Selkeä järjestelmä dokumentaatio Tekninen Jouko Järjestelmä

Tietokantakuvaus (Database ER-diagram)

Testauksen vaatimukset (Testing requirements)

Testattavuus

VaatimusID Tyyppi Kuvaus Vastuullinen
TESTABILITY-REQ-0000 Non-Functional Testability Kuormitus-/Suorituskykytestaus Teuvo Testaaja
TESTABILITY-REQ-0001 Non-Functional Testability Toiminnallisuuden testaus eri laitteilla Teuvo Testaaja
TESTABILITY-REQ-0002 Non-Functional Testability Turvallisuus testaus Teuvo Testaaja
TESTABILITY-REQ-0003 Non-Functional Testability Luotettavuuden testaus Teuvo Testaaja
TESTABILITY-REQ-0004 Non-Functional Testability Käytettävyyden testaus Teuvo Testaaja
TESTABILITY-REQ-0005 Non-Functional Testability Palauttamisen testaus Teuvo Testaaja

Kaikki vaatimukset listattuna

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
Tietosuojaseloste https://www.sovelto.fi/yritys/tietosuojaseloste/
GDPR https://tietosuoja.fi/gdpr
OPF-pohja http://open-project-framework.pages.labranet.jamk.fi/opf-site/