Forum-palvelun vaatimusmäärittely
Sisällysluettelo
- Johdanto
- Toimeksiantaja
- Vaatimusmäärittelyn tekijästä
- Palvelukuvaus
- Sidosryhmät ja profiilit
- Asiakkaan tarpeet
- Valitut asiakastarinat
- Palveluun liittyviä asiakaspolkuja
- Oleelliset käyttötapaukset
- Mock-up
- Olemassa olevat toiminnallisuudet ja ominaisuudet
- Käyttäjätarinoita
- Palveluun liittyvät tuotannolliset ja tekniset vaatimukset
- Toteutettavat ominaisuudet
- Toiminnalliset vaatimukset
- Ei-toiminnalliset vaatimukset
- Ohjelmiston arkkitehtuuri
- Palvelun sijoittelunäkymä ja integraatiot
- Hyväksyntätestit
- Julkaisusuunnitelma
Johdanto
Virtuaaliyritys TEAM Karhukaisen kehitti artikkelipohjaista foorumia Conduit-palvelua tilaajan toiveiden pohjalta. Projekti toteutettiin Jyväskylän ammattikorkeakoulun informaatioteknologian instituutin ja TE-toimiston järjestämän Ohjelmistotuotanto ja laadunvarmistus ja Moderni ohjelmistokehitys ‑kurssin puitteissa. Projektin kesto oli yksitoista viikkoa.
Toimeksiantaja
Toimeksiantaja oli JAMKin IT-instituutin WIMMA Lab oppimisympäristö, jossa opiskelijat muodostavat tiimejä ja virtuaalisia yrityksiä.
Vaatimusmäärittelyn tekijästä
Tätä vaatimusmäärittelyä teki neljä henkilöä, joilla ei ollut vaatimusmäärittely dokumenttien teosta aiempaa kokemusta. Osalla oli paljon kokemusta työelämästä muilta kuin IT-alalta. Osalla oli IT-alalta omaa harrastuneisuutta tai perusopintoja. Projektin toteutusvaiheessa ryhmään liittyi henkilöitä, jotka olivat tehneet kyseisiä dokumenttejä päivätöissään. Heiltä pystyi kysymään neuvoja aiheesta.
Palvelukuvaus
Conduit on avoimen lähdekoodin julkaisujärjestelmä, jossa rekisteröityneet käyttäjät voivat kirjoitttaa ja julkaista artikkeleita sekä kommentoida muiden kirjoittamia artikkeleita.
Palvelun olemassaolevista ominaisuuksista löytyy lisää kohdasta Olemassa olevat toiminnallisuudet ja ominaisuudet
Sidosryhmät ja profiilit
Sidosryhmä | Profiili | Kirjoittaa % artikkeleista |
---|---|---|
Toimeksiantaja | Impi Toimeksiantaja | 2 % |
Toimeksiantaja | Tommi Toimeksiantaja | 8 % |
Sponsorit | Ossi Von Sponsor | 5 % |
Alumnit | Tero Uusipyy | 15 % |
Vierailevat tähdet | Harry Star | 15 % |
Student Coach | Jonne Jaminne | 15 % |
Tukihenkilöt | Tuutti Tukihenkilö | 8 % |
Avoimien ovien vieraat | Aada Helmi | 2% |
WIMMA Labilaiset | Iida Wimma | 25 % |
Häirikkö | Aatos Aho | 5-90 % |
Asiakkaan tarpeet
VaatimusID | Tyyppi | Kuvaus |
---|---|---|
CUSTOMER-REQ-0001 | Customer Requirement | Forumin käyttäjänä toivon voivani palata helposti WIMMA Lab-sivustolle, koska haluan vielä tarkastella sitä uudelleen. |
CUSTOMER-REQ-0002 | Customer Requirement | Käyttäjänä haluan helpon ja nopean tavan jakaa artikkeli sosiaaliseen mediaan, koska haluan artikkelille näkyvyyttä. |
Valitut asiakastarinat
Tuutti Tukihenkilö
Tuutti käy aamupäivällä taapaamassa opiskelijoita WIMMA Labsissa. Paikalla on hyvin porukkaa ja keskustelua syntyy. Yhdestä esille tulleesta ongelmasta toivotaan yleisohjetta. Tuutti pyöräilee kotiinsa ja tekee tietokoneella video-ohjeen, jonka lähettää artikkelina conduit-palvelun kautta jakoon. Nälkä alkaa jo kurnia vatsaa, joten hän käy tekemässä voileivän keittiössä. Samalla kun teevesi on kuumentumassa mikrossa, Tuutti selailee Conduittia ja huomaa artikkelissaan uuden kommentin. Hän käy vielä tietokoneella laittamassa nopeasti lisäohjeita ennekuin lähtee ulos asioille.
Iida Wimma
Iidan tarina kaaviona
Iida Wimma herää aamulla ja ensimmäisenä asiana käy tarkistamassa onko WimmaLabin Conduit -artikkelialustaan tullut uusia artikkeleita. Hän huomaa, että hänen projektinjohtaja on kirjoittanu artikkelin, jossa ehdotetaan päivälle sovitun kokouksen siirtämistä. Iida kirjoittaa hänelle sopivat ajat conduitin kommenttikenttään ja jatkaa kahvin juomista. Iida haluaa pysyä ajantasalla WimmaLabin tapahtumista ja käy päivän mittaan tasaisin välein katsomassa WimmaLabin foorumia. Tarpeen tullen hän kirjoittelee uusia artikkeleita tai kommentoi kiinnostavia artikkeleita.
Tero Alumni
Tero on valmistunut JAMKista pari vuotta sitten. Työpaikka löytyi viimeisenä vuonna koululla vierailleen yrittäjan kautta. Tero osallistui koulun aikaan itsekin WimmaLabin toimintaan ja koki sen antoisaksi ja mukavaksi toiminnaksi, ja tämän myötä hän haluaa jakaa kokemuksiaan ja tietämystään hänen jälkeensä JAMKIssa ja WimmaLabissa opiskeleville. Näin ollen hän osallistuu WimmaLabin toimintaan alumnina.
Tero rekisteröityy WimmaLabin Conduit-palveluun ja kirjoittaa artikkeleita koskien työelämää, hänen alallaan tapahtuvia teknisiä muutoksia ja muuta, josta hän kokee olevan hyötyä opiskelijoille. Kommenttiosiossa Tero vastailee artikkeleiden herättämiin kysymyksiin sekä kommentoi muiden artikkeleita. Kiinnostavan artikkelin löytäessään hän jakaa sen sosiaaliseen mediaan.
Oleelliset käyttötapaukset
-
Käyttötapaus 3 - WimmaLab sivulle siirtyminen
-
Käyttötapaus 6 - palautteen antaminen
-
Käyttötapaus 7 - Salasanan vaihtaminen
-
Käyttötapaus 8 - Twitter jaon tekeminen
Mock-up
Kirjautumissivu ja värimaailmaan
Olemassa olevat toiminnallisuudet ja ominaisuudet
Alla olevasta taulukosta näkyvät Conduit-palvelun olemassaolevat ominaisuudet ennen projektin aloittamista.
Ominaisuus | Kuvaus | Vaatii rekisteröitymisen |
---|---|---|
Artikkelin kirjoittaminen | Käyttäjä voi kirjoittaa ja julkaista artikkelin palvelussa. | kyllä |
Artikkelin kommentointi | Käyttäjä voi kommentoida omia ja muiden artikkeleita | kyllä |
Käyttäjän seuraaminen | Käyttäja voi seurata toista käyttäjää. Seurattujen käyttäjien julkaisemat artikkelit ilmestyvät käyttäjan Your feed -näkymään. | kyllä |
Suosikiksi lisääminen | Käyttäjä voi lisätä artikkelin suosikkeihinsa. Merkityt artikkelit löytyvät käyttäjän oman tilin hallinasta kohdasta Favorited articles | kyllä |
Käyttäjätietojen muuttaminen | Käyttäjä voi muuttaa tai asettaa itseään koskevia tietoja, joihin kuuluvat: profiilikuvan URL (profile pic URL), käyttäjänimi (user name), kuvaus (bio), email, uusi salasana (new password) | kyllä |
Rekisteröityminen | Käyttäjä voi rekisteröityä palveluun. Rekisteröitymisen hän tarvitsee sähköpostiosoitteen sekä valitsemansa käyttäjänimen ja salasanan | ei |
Sisäänkirjautuminen | Käyttäjä voi kirjautua sisää aiemmin luomillaan tunnuksilla, jotka koostuvat sähköpostiosoitteesta ja salasanasta | kyllä |
Omien artikkeleiden hallinta | Käyttäjätietojen hallinnassa käyttäjä näkee listan julkasemistaan artikkeleista ja voi muokata tai poistaa haluamiaan artikkeleita | kyllä |
Globaali syöte (Global feed) | Syötteessä näkyvät kaikki palevlussa julkaistut artikkelit aikajärjestyksessä uusimmasta vanhimpaan | ei |
Henkilökohtainen syöte (Your feed) | Syötteessä näkyvät käyttäjän seuraamien käyttäjien julkaisemat artikkelit aikajärjestyksessä uusimmasta vanhimpaan | kyllä |
Tagisyöte | Syötteessä näkyy kaikki artikkelit, jotka sisältävät tagin, jota käyttäjä klikkaa sivun oikeassa laidassa olevasta tagipilvestä (Popular tags) | ei |
Käyttäjätarinoita
- US1: Ylläpitäjänä haluan julkaista palvelun Docker teknologiaa käyttäen, koska se helpottaa tuotantoa. #109
- US4: Testaajana haluan Docker compose scriptin, koska haluan saada Conduitin uuden version pystyyn mahdollisimman nopeasti ja helposti #111
- US6: Toimeksiantajana toivon, että sivusto näyttää visuaalisesti yhtenäiseltä, jos käyttäjä menee foorumille #81
- US7: Forumin käyttäjänä toivon voivani palata helposti WIMMA Lab-sivustolle, koska haluan vielä tarkastella sitä uudelleen #82
- US8: Palvelun käyttäjän toivon, että palvelu on luotettava ja se käyttää suojattuja HTTPS-yhteyttä, koska en uskalla käyttää HTTP-palveluja nykyajassa #83
- US10: Palvelun tuottajana haluan tietää mitä selaimia asiakkaamme käyttävät, koska se selkeyttää ominaisuuksien kehittämistä palvelemaan loppuasiakasta paremmin #85
- US16: Palvelun käyttäjänä haluan tarvittavassa tilanteessa jakaa foorumin postauksen twitterin avulla ulkomaailmaan, koska joskus on hyvä tiedottaa ulkomaailmaa WIMMALABin tapahtumista. #91
- US18: Palvelun tuottajana haluan saada palautetta loppukäyttäjilä, jonka perusteella tuotetta voidaan kehitää paremmaksi #92
- US19: Palvelun tuottajana haluan auttaa loppukäyttäjää erillisen tukiportaalin kautta kuormittamatta kehitystiimiä ylimääräisillä kysymyksillä #93
- US20: Palvelun kehittäjänä haluan saada loppukäyttäjän palautteen Issue-muodossa eteeni, koska se on selkeämpää jatko käsitellä #94
- US22: Palvelun tuottajana haluan tallentaa viikon mittaiset käyttölogit erilliseen palvelimeen, koska palveluun murtautuja ei saa tuhota logeja #96
- US23: Palvelun tuottajana haluan, että login muoto on tulkittavissa silmämääräisti, mutta se sisältää aiemmin esitetyt atribuutit #97
- US27: Palvelun tuottajana haluan, että palvelusta löytyy tietosuojakuvaus, koska asiakkaat sitä edellyttävät. #112
- US31: Järjestelmän ylläpitäjänä haluan että tuotannon tietokannasta otetaan säännölliset backup:it #133
- US33: Järjestelmän ylläpitäjänä vaadin että tietokanta on varmennettuna toisella koneella tai erillään tuotantopalvelimesta #135
- US38: Palvelun ylläpitäjänä haluan että yksittäisistä palveluista kerätään logit keskitettyyn paikkaan #140
- US40: Palvelun tuottajana haluan saada kaiken Conduit-palvelun lähdekoodin hallitusti projekti-groupin alle #127
- US41: Palvelun tuottajana haluan käytää konttien jakamisessa labranetin gitlab rekisteriä #142
- US44: Palvelun tuottajana haluan seurata palvelun käyttöastetta soveltaen apuna Google Analytics-palvelua, koska se on ollut aiemmin käytössä #149
- US46: Loppukäyttäjänä haluan tarvittaessa palvelussa vaihtaa vanhan salasanani uuteen #169
- US49: Tuotepäällikkönä toivon, että meillä on antaa PDF-muotoinen testisuunnitelma testeineen tarvittaessa asiakkaan tekniselle henkilökunnalle tarkasteltavaksi #166
- US51: Tuotepäällikkönä haluan varmistaa, että tietokannan palautus toimii aiemmin tehdyistä varmistustiedostoista #165
- US54: Testaajana voin käyttää tarvittaessa ennalta määriteltyä backup-tiedostoa testien pohjana #164
- Käyttäjänä haluan saada ilmoituksen, jos kirjoitan liian pitkän merkkimäärän artikkelin tekstikenttään. #156
- Yksittäisen tagin pituus ja tagien kokonaismäärä artikkelissa #174
Palveluun liittyvät tuotannolliset ja tekniset vaatimukset
Järjestelmävaatimukset
ID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
SYSTEM-REQ-0001 | System Technical Requirement | Käytettävissa tulee olla sähköpostipalvelin | feat10: Salasanan palautus |
SYSTEM-REQ-0002 | System Technical Requirement | Käytettävissa tulee olla tunnukset doorbell.io-palveluun | feat08: Asiakkaan palautekanava |
SYSTEM-REQ-0003 | System Technical Requirement | doorbell.io-palvelussa tulee olla käytössä GitLab-integrointi | Feature 8 - Palautekanava |
SYSTEM-REQ-0004 | System Technical Requirement | Käytettävissa tulee olla Google Analytics tili | Feature 5 - Analytiikka |
SYSTEM-REQ-0005 | System Technical Requirement | Logimuodon formaatti on koneluettava esim. JSON | Feature 9 - Backend logitus |
SYSTEM-REQ-0006 | System Technical Requirement | Google Analytics tilin avulla selvitetään kuinka paljon käyttäjiä on palvelussa. | Feature 5 - Analytiikka |
SYSTEM-REQ-0007 | System Technical Requirement | Google Analytics tilin avulla selvitetään millaisia käyttäjiä palvelussa on (maa, selain, käyttäytyminen, jne) | Feature 5 - Analytiikka |
Toiminnalliset vaatimukset
ID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
FUNCTIONAL-REQ-0001 | Functional Requirement | Käyttäjä pääsee Forumilta helposti Wimma Labin pääsivulle. | feat03: Wimma Lab brändäys ja referenssi |
FUNCTIONAL-REQ-0002 | Functional Requirement | Käyttäjä voi laittaa sivustolla ollessaan palautetta palvelusta | feat08: Asiakkaan palautekanava |
FUNCTIONAL-REQ-0003 | Functional Requirement | Käyttäjän lähettämä palaute voidaan ohjata GitLab-issueksi | feat08: Asiakkaan palautekanava |
FUNCTIONAL-REQ-0004 | Functional Requirement | Artikkelin merkkimäärän yläraja on 1000 | Artikkelin kirjoittaminen ja julkaiseminen |
FUNCTIONAL-REQ-0005 | Functional Requirement | Artikkelia kirjoittaessa näytetään käytetty ja maksimi merkkimäärä | |
FUNCTIONAL-REQ-0006 | Functional Requirement | Otsikon merkkimäärän yläraja on 200 | Artikkelin kirjoittaminen ja julkaiseminen |
FUNCTIONAL-REQ-0007 | Functional Requirement | Kuvauksen merkkimäärän yläraja on 500 | Artikkelin kirjoittaminen ja julkaiseminen |
FUNCTIONAL-REQ-0008 | Functional Requirement | Artikkelin kirjoitustilassa virheilmoitukset tulevat keskitetysti otsikko tekstikentän yläpuolelle. | Artikkelin kirjoittaminen ja julkaiseminen |
Toteutettavat ominaisuudet
- P1 = Pakollinen
- P3 = Tarpeellinen
- P5 = Tehdään, kun tarve ilmenee
Ominaisuus | Prioriteetti | Tehty |
---|---|---|
Feature 1 - Palvelun kontitus | P1 | kyllä |
Feature 2 - GDPR pohja | P1 | kyllä |
Feature 3 - WimmaLab Brändäys ja referenssi | P2 | kyllä |
Feature 4 - Https sertifikaatti | P3 | kyllä |
Feature 5 - Analytiikka | P4 | kyllä |
Feature 6 - Blacklist | P5 | ei |
Feature 7 - Some-jako | P5 | kyllä |
Feature 8 - Palautekanava | P5 | kyllä |
Feature 9 - Backend logitus | P5 | kyllä |
Feature 10 - Salasanan palautus | P5 | ei |
Feature 11 - Käyttäjätilien poistaminen | P3 | ei |
Feature 12 - Tietokannan varmistus | P3 | kyllä |
Feature 13 - Reverse proxy | P3 | ei |
Feature 14 - Käyttäjäryhmät user/admin | P3 | ei |
Feature 15 - Keskitetty logienhallinta | P3 | ei |
Feature 16 - Salasanan vaihtaminen | P3 | kyllä |
Ei-toiminnalliset vaatimukset
Tietoturvavaatimukset
ID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
SECURITY-REQ-0001 | Non-Functional Security | Palvelun oletusportti 80 siirretään 443 porttiin | Feature 4 - Https sertifikaatti |
SECURITY-REQ-0002 | Non-Functional Security | Lisätään self signed-sertifikaatti | Feature 4 - Https sertifikaatti |
SECURITY-REQ-0003 | Non-Functional Security | Backend logissa näkyy kuka teki ja mitä teki. | Feature 9 - Backend logitus |
SECURITY-REQ-0004 | Non-Functional Security | Backend logissa näkyy tapahtumien kellonajat aikavyöhykkeineen. | Feature 9 - Backend logitus |
Käytettävyysvaatimukset
ID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
USABILITY-REQ-0001 | Non-Functional Usability | Ulkoasu on yhteneväinen Wimma Lab brändin kanssa | feat03: Wimma Lab brändäys ja referenssi |
USABILITY-REQ-0002 | Non-Functional Usability | Paluu Wimma Labin sivulle onnistuu yhdellä napin painalluksella. | feat03: Wimma Lab brändäys ja referenssi |
USABILITY-REQ-0003 | Non-Functional Usability | Paluu Wimma Labin pääsivulle tapahtuu Wimma Lab ikonin kautta. | feat03: Wimma Lab brändäys ja referenssi |
USABILITY-REQ-0004 | Non-Functional Usability | Wimma Labin linkki-ikoni on alapalkissa. | feat03: Wimma Lab brändäys ja referenssi |
USABILITY-REQ-0005 | Non-Functional Usability | Kursori muuttuu Wimma Labin linkki-ikonin päällä käden kuvaksi. | feat03: Wimma Lab brändäys ja referenssi |
USABILITY-REQ-0006 | Non-Functional Usability | Paluu Wimma Labin pääsivulle onnistuu kaikilta sivuilta. | feat03: Wimma Lab brändäys ja referenssi |
USABILITY-REQ-0007 | Non-Functional Usability | Väriteemat/fontit vastaavat WimmaLabin visuaalista ilmettä | feat03: Wimma Lab brändäys ja referenssi |
USABILITY-REQ-0008 | Non-Functional Usability | WimmaLab logo on näkyvillä | feat03: Wimma Lab brändäys ja referenssi |
Laadunvarmistusvaatimukset
ID | 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 |
TESTABILITY-REQ-0001 | Non-Functional Testability | Lisätietoa |
Ohjelmiston arkkitehtuuri
Palvelun sijoittelunäkymä ja integraatiot
Hyväksyntätestit
Lähde | Testitapaus Id | Kuvaus | Tyyppi |
---|---|---|---|
Feature 4 | TEK-49 | Tarkista löytyykö HTTPS | Hyväksyntätesti |
Feature 16 | TEK-67 | Toimiiko salasanan palautus | Hyväksyntätesti |
Julkaisusuunnitelma
Ominaisuuslistaan pääsee tästä