Conduit-palvelun vaatimusmäärittely
Toimeksianto
Tiimin jäsenten GitLab-tunnukset
Nimi | GitLab-tunnus |
---|---|
Reima | AA6135 |
Sanni | AA6130 |
Riku | P1384 |
Sami | AA6127 |
Konsta | P1375 |
Sajid | AA0133 |
Jukka | K0416 |
Khaled | AA6150 |
Dokumentin tiedot
- Dokumentin versionumero 1.1
- Vaatimusmäärittely pohjan versio 2.1 - 17.09.2020 (NarsuMan)
Sisällysluettelo
- Johdanto
- Toimeksiantaja
- Vaatimusmäärittelyn tekijä
- Palvelukuvaus
- Sidosryhmäkartta
- Sidosryhmät ja profiilit
- Asiakkaan tarpeet/toiveet
- Tunnistetut riskit
- Valitut asiakastarinat
- Palveluun liittyviä asiakaspolkuja
- Oleelliset käyttötapaukset
- Tärkeimmät yleiset ominaisuudet/toiminnallisuudet
- MockUp-prototyyppi
- Alustavat Käyttäjätarinat
- Palvelun järjestelmävaatimukset
- Palveluun vaikuttavat rajaukset
- Palvelun liityvät laitevaatimukset
- Palvelun määritellyt ominaisuudet eli featuret
- Palvelun toiminnalliset vaatimukset
- Palvelun ei-toiminnalliset vaatimukset
- Palvelun alustava arkkitehtuuri
- Palvelun alustava sijoittelunäkymä
- Palvelun alustava tietokantakuvaus)
- Palvelun integraatiot muihin järjestelmiin
- Palvelun laadun varmistuksesta
- Palvelun hyväksyntätestit
- Julkaisusuunnitelmagi
Johdanto
Projektissa työskennellään WimmaLabin tilaaman Conduit-palvelun parissa. Conduit-palvelun päätarkoitus olisi toimia Wimmalabin "foorumina", jossa voidaan julkaista kirjoituksia, joita muut käyttäjät voivat kommentoida ja mahdollisesti kehityksen myötä jakaa sosiaalisessa mediassa.
Conduit-palvelussa voi kirjaantumatta selata muiden julkaisuja ja niiden kommentteja. Kirjautuminen palveluun tapahtuu käyttäjän omilla Conduit-tunnuksilla. Kirjautumisen jälkeen käyttäjä voi luoda oma julkaisuja sekä tykätä ja kommentoida muiden julkaisuja. Julkaisuihin voi myös lisätä tägejä.
Toimeksiantaja
WimmaLab/Teemu Kontio
Vaatimusmäärittelyn tekijästä
Corpo Ration Corp. on syksyn 2020 Ohjelmistontuotanto ja laadunvarmistus sekä Moderni ohjelmistokehitys -opintototeutuksien alla toimiva opiskelijoiden muodostama projektiryhmä.
Palvelukuvaus
Conduit-palvelu toimii WimmaLabin foorumialustana, jossa voidaan luoda julkaisuja, joita muut voivat tykätä ja kommentoida. Käyttäjiä ovat JAMKin IT-istituutin opiskelijat ja henkilökunta. Conduitin tarkoituksena on olla alusta, jossa käyttäjäkunta voi jakaa tietoa ja luoda keskustelua.(???)
Sidosryhmäkartta
Sidosryhmät ja profiilit
Sidosryhmä/Profiili | Lisätietoa |
---|---|
Peruskäyttäjä | WIMMA Lab:sta Informaation jakaminen/kerääminen, verkostoituminen. |
WIMMA lab ryhmät | WIMMA Lab:sta Informaation jakaminen/kerääminen, verkostoituminen. |
Asiakas - Teemu Kontio | WIMMA Lab team coach, Haluaa kehittää WIMMA Lab:n kommunikointia |
Projektien ohjaus - Narsu Man | Projktin johto, WIMMA Lab omistaja, yhteys henkilö, ohjausta ja opettamista. |
Head coach - Hannu Oksman | Yhteys henkilö ja head of team coach |
Kontakti - Mika Korhonen | Opastaa WIMMA Lab:n ryhmiä. Entinen WIMMA Lab:n jäsen |
Alumnit | Entiset WIMMA Lab:n ryhmäläinen. Tarjoavat tukea turvaa nykyisillä WIMMA Lab:n ryhmäläisille. |
Yritys | Etsi mahdollisesti työntekijöitä. |
Sponsorit | Antaa rahallista tukea, sekä etsii työntekijöitä. |
Moderaattori | Foorumin tukihenkiö |
Forum trolli | Aiheuttaa yleistä mielipahaa ja sekasortoa. |
Botit | Levittää moinosttaa, levittää roskapostia ja palvelun estohyökkäys. |
Työntekijät Ryhmä 1-3 | Pystyttää, kehittää ja testaa foorumit |
Yhteyhenkilö - Heli | Projekti suunnittelu ja työnjako |
Asiakkaan tarpeet/toiveet?
VaatimusID | Tyyppi | Kuvaus |
---|---|---|
CUSTOMER-REQ-0001 | Customer Requirement | Käyttäjänä haluan jakaa muiden julkaisuja muille alustoille (esim. twitteriin) |
CUSTOMER-REQ-0002 | Customer Requirement | Käyttäjänä haluan löytää postaukset kategorioittain (voi toimiä myös tägeillä) |
CUSTOMER-REQ-0003 | Customer Requirement | Etusivulla voisi olla erillinen "uutiset" osio |
CUSTOMER-REQ-0004 | Customer Requirement | Käyttäjänä haluan kommentoida artikkeleita myös anonyymisti |
Tunnistetut riskit
- "Spambots"
- Valheellisen informaation levittäminen
- Muut keskustelufoorumit (miksi juuri Conduit?)
Valitut asiakastarinat
Asiakas tarina Simo Räty
Peruskäyttäjä koodailee omaa python Spagetti projektiaan. Ja törmää koodauksessa ongelmaan, jossa ei ole varma mikä olisi paras tapa toteuttaa se. Hän suuntaa kohti Googlea. Hän tykkää käyttää suomea hakukielenä, vaikka se ei ole optimaalinen etsintä tapa. Hän löytää projektin WIMMA Lab:n sivuilta projektin, joka arvio kuinka spagettia sinun kirjoittama koodisi on:(Projekti Ragetti Spagetti). Simo avaa viestiketjun. Ja hän käy viestiketjun läpi löytyykö hänen kysymykseensä vastausta. Ja ei näytä löytyvän. Hän tekee käyttäjä tunnuksen Wimma Lab:n foorumille. Hän esittää ongelmansa viestiketjuun ja poistuu foorumilta. Teemu Kontio huomaa viestin muutaman tunnin päästä. Hän kysyy projektin pääkoodaajalta Laura Liukkaalta pystyisikö hän vastamaan ongelmaan? Laura vastaa viestiketjuun seuraavana aamuna. Simo tulee katsomaan seuraavan viestiketjua seuraavana iltana. Ja hän esittää jatko kysymykseen, johonka saa vastauksen seuraavana aamuna. Simo on tyytyväinen, kun sai apua koodaus projektiinsa.
Asiakas tarina Simppa Häyhä
Simo toimii Projekti Ragetti Spagetin testaajana ja haluasi, että ohjelmoijat kommentoisivat koodiansa yhteisellä mallilla, kun häneltä menee paljon aikaa joidenkin ohjelmoijien koodin lukemisessa. Hän menee Wimma Lab:n foorumille ja tekee viestiketjun asiasta. Ja ehdottaa, että koodin kommentointi tyyli olisi yhtenäisempi ja ottaa esille Laura Liukkaan hyvät kommentointi tavat. Keskustelu alkaa ja kaikki eivät ole kovinkaan innokkaita muuttamaan koodaus tapojansa, mutta yhteinen sävel löytyy joka tapauksessa. Kommentointi on vieläkin jonkin verran puutteellista, mutta tämä on jossain määrin tyydyttävä tulos silti.
Asiakas tarina Teemu Kontio
Häneen otetaan yhteyttä Karva-Kaken Koodaus Kabinetista, joka etsii innokkaita henkilöitä heidän projektiinsa. Ja jos projekti menee hyvin, olisi tiedossa madollinen työpaikka. Yritys tekee käyttäjätunnukset ja luo viestiketjun asiasta. Esittäytyy ja kertoo, että haluaisi tullaa esittäytymään ryhmille ja kertomaan projektista. Johonka Teemu vastaa, että kahden viikon päästä ma iltapäivällä olisi mahdollista tulla esittelemään yritystä ja projektia. Teemu pyytää lisätietoa projektista ja haluaa varmistaa, että tarvittavat tiedot kuten projektin laajuus, vaadittavat taidot ja aikataulut tulevat foorumille kirjalliseen muotoon. Yritys lisää vaaditut tiedot viestiketjuun. Teemu kertoo WIMMA lab:n ryhmille paikallisesti, että yritys esittely olisi sovittuna ajankohtana. Ja lisätietoja voi käydä katsomassa foorumin viestiketjusta.
Palveluun liittyviä asiakaspolkuja
asiakaspolku PlantUML-esimerkki
Oleelliset käyttötapaukset
Käyttötapaus | Osa-alue |
---|---|
Käyttötapaus 1 - Artikkelin luonti | Artikkelit |
Käyttötapaus 2 - Somejako | Artikkelit |
Käyttötapaus 3.1 - Käyttäjätilin poisto | Käyttäjänhallinta |
Käyttötapaus 3.2 - Käyttäjätilin poisto | Käyttäjänhallinta |
Tärkeimmät ominaisuudet/toiminnallisuudet
MockUp-prototyyppi
Alustavat käyttäjätarinat
- Palvelun tuottajana haluan juolkaista palvelun Docker-tekniikalla, koska se helpottaa tuotantoa
- Testaajana haluan käyttää Docker-kontteja, koska se helpottaa testi ympäristön pystyttämistä
- Testaajana haluan pystyttää uuden version Conduit-palvelusta alle minuutissa, koska testaajat ovat kiireisiä
- WIMMA Lab-sidosryhmän edustajana toivon, että foorumille siirtyminen on helppoa ja selkeää
- Toimeksiantajana toivon, että sivusto näyttää visuaalisesti yhtenäiseltä, jos käyttäjä menee foorumille
- Forumin käyttäjänä toivon voivani palata helposti WIMMA Lab-sivustolle, koska haluan vielä tarkastella sitä uudelleen.
- 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
- Palvelun tuottajana haluan tietää nykyisen asiakaskunnan aktiivisen käyttöajan ja käyttäjä määrät viikon aikana, koska se selkeyttää ymmärrystä palvelun suosiosta
- Palvelun tuottajana haluan tietää mitä selaimia asiakkaamme käyttävät, koska se selkeyttää ominaisuuksien kehittämistä palvelemaan loppuasiakasta paremmin
- Palvelun tuottajana, haluan estää kirosanojen käyttämisen palvelussamme, koska haluan säästää moderointi-kuluissa
- Palvelun tuottajana, haluan suodottaa suomenkieliset kirosanat, koska asiakaskuntamme nykytilanteessa on suomenkielinen 97 %
- Palvleun tuottajana, haluan lisätä kieltolistaan muokkaamalla erillistä tiedostoa
- Palvelun tuottajana haluan tulevaisuudessa voida käyttää kiellettyjen sanojen moderointiin ulkopuolista "sanitointi"-palvelua, koska se säästää moderointi-kuluja
- Palvelun käyttäjän haluan, että keskustelu kanavalla on asiallista ja ei sisällä turhia kirosanoja
- Palvelun käyttäjänä haluan tarvittavassa tilanteessa jakaa foorumin postauksen twitterin avulla ulkomaailmaan, koska joskus on hyvä tiedottaa ulkomaailmaa WIMMALABin tapahtumista.
- Palvelun tuottajana haluan saada palautetta loppukäyttäjilä, jonka perusteella tuotetta voidaan kehitää paremmaksi
- Palvelun tuottajana haluan auttaa loppukäyttäjää erillisen tukiportaalin kautta kuormittamatta kehitystiimiä ylimääräisillä kysmyksillä
- Palvleun kehittäjän haluan saada loppukäyttäjän palautteen Issue-muodossa eteeni, koska se on selkeämpää jatko käsitellä
- Palvelun tuottajana meidän pitää kyetä tallentamaan aktiiviset tapahtumat palvelussa vähintään viimeisen viikon ajalta siten, että niitä voidaan tarkastella nopeasti (max 5 min)
- Palvelun tuottajana haluan tallentaa viikon mittaiset käyttölogit erilliseen palvelimeen, koska palveluun murtautuja ei saa tuhota logeja
- Palvelun tuottajana haluan, että login muoto on tulkittavissa silmämääräisti, mutta se sisältää aimmen esitetyt atribuutit
- Palvelun tuottajana haluan suorittaa itsenäisen katselmoinnin palvelulle, koska palvelun ostaja haluaa saada nähtäväkseen mahdollisesti tietoturvaarvionnin
- Palvelun tuottajan on palvelustamme löydyttävä tietosuoja kuvaus, koska asiakkaamme sitä edellyttävät
Palvelun liittyvät tuotannolliset ja tekniset vaatimukset
VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
SYSTEM-HW-REQ-0002 | System Technical Requirement | Palvelun on toimittava CSC-palvelimella | Palvelun serveritoiminnot |
SYSTEM-HW-REQ-0003 | System Technical Requirement | Palvelu tulee olla mahdollista pystyttää Docker compose up käskyllä | Palvelun uudelleen pystytys |
SYSTEM-HW-REQ-0004 | System Technical Requirement | Prosessorin arkkitehtuuri 64-bit, min. 4 ydintä käytössä | Palvelun toimintanopeus |
SYSTEM-HW-REQ-0005 | System Technical Requirement | Palvelimen tulee kestää suuriakin liikennemääriä | Suorituskyky |
Palvelun toteuttamisen kannalta tärkeät oleelliset rajaukset ja standardit
Id | Vaatimuksen kuvaus | kategoria | Vastuullinen |
---|---|---|---|
CONSTRAINT-REQ-S00000 | Constrain | Käyttäjätietojen käsittelyn on noudatettava GDPR:n ohjeistusta | GDPR EU GDPR-säädös |
CONSTRAINT-REQ-S00001 | Constrain | JHS Suositukset: JHS 190 Julkisten verkkopalvelujen suunnittelu ja kehittäminen | JHS 190 |
Palvelun toiminnalliset vaatimukset (Functional Requirements)
VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
FUNCTIONAL-REQ-C0001 | Functional Requirement | Käyttäjänä haluan, että voin luoda oman tunnuksen foorumille | Sign Up |
FUNCTIONAL-REQ-C0002 | Functional Requirement | Käyttäjänä haluan kirjautua omalla tunnuksellani palveluun | Kirjautuminen |
FUNCTIONAL-REQ-C0003 | Functional Requirement | Omien käyttäjäasetuskien muokkaus | Your Settings |
FUNCTIONAL-REQ-C0004 | Functional Requirement | Oman Profiilin muokkaaminen | Profiili |
Palvelun ohjelmiston ominaisuudet, eli "featuret"
- P1 = Pakollinen
- P2 = Tarpeellinen
- P3 = Tehdään, kun tarve ilmenee
Ohjelmiston/palveluun ei-toiminnallisia vaatimuksia
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 |
VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
SECURITY-REQ-0001 | Non-Functional Security | Palvelulla on käytettävä vähintään HTTPS salausta | TLS/HTTPS |
SECURITY-REQ-0002 | Non-Functional Security | Palvelun on käsiteltävä käyttäjätietoja GDPR:n mukaisesti | GDPR |
VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
USABILITY-REQ-0000 | Non-Functional Usability | Palvelun pitää olla mutkatonta käyttää kirjautuneena tai ilman kirjautumista | MockUp |
VaatimusID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
TESTABILITY-REQ-0000 | Non-Functional Testability | Palvelu on saatava pystytettyä nopeasti uudelleen Docker compose up komennolla | Docker |
Ohjelmiston arkkitehtuuri, sijoittelunäkymä, tietokantakuvaus ja integraatiot
Palvelun sijoittelunäkymä (Deployment diagram )
Integraatiot muihin järjestelmiin
Integraation kuvaaminen sekvenssikaaviona
Palvelun laadun varmistus
Testauksella varmistamme laadun.
Palvelun hyväksyntätestit
TestiID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
USER-AT-0000 | User Acceptance Test | Palveluun pitää pystyä kirjautumaan | Sign In |
USER-AT-0001 | User Acceptance Test | Palvelun pitää toimia vakaasti ennen julkaisua | Performance Testing Requirements |
USER-AT-0002 | User Acceptance Test | ||
USER-AT-0003 | User Acceptance Test | ||
USER-AT-0004 | User Acceptance Test | ||
USER-AT-0005 | User Acceptance Test |
TestiID | Tyyppi | Kuvaus | Ominaisuus johon vaikuttaa |
---|---|---|---|
OPER-AT-0000 | Operational Acceptance Test | Palvelun pitää toimia salattuna ennen julkaisua | TLS/HTTPS |
OPER-AT-0001 | Operational Acceptance Test | Palvelun pitää toimia vakaasti ennen julkaisua | [Performance Testing Requirements] |
OPER-AT-0002 | Operational Acceptance Test | ||
OPER-AT-0003 | Operational Acceptance Test | ||
OPER-AT-0004 | Operational Acceptance Test | ||
OPER-AT-0005 | Operational Acceptance Testy |
Julkaisusuunnitelma
Ominaisuus/toiminnallisuus | Versio | Milloin testattavissa | Julkaisu |
---|---|---|---|
Skeleton | 0.1 | 8.11.202 | V0.1 |
Skeleton Conduit 30% | 0.3 | 15.11.2020 | V0.3 |
Skeleton Conduit 60% | 0.6 | 22.11.2020 | V0.6 |
Meat Puppet Conduit 90% | 0.9 | 29.11.2020 | V0.9 |
Full Conduit | 1.0 | 13.12.2020 | V1.0 |