Skip to content

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

  1. Johdanto
  2. Toimeksiantaja
  3. Vaatimusmäärittelyn tekijä
  4. Palvelukuvaus
  5. Sidosryhmäkartta
  6. Sidosryhmät ja profiilit
  7. Asiakkaan tarpeet/toiveet
  8. Tunnistetut riskit
  9. Valitut asiakastarinat
  10. Palveluun liittyviä asiakaspolkuja
  11. Oleelliset käyttötapaukset
  12. Tärkeimmät yleiset ominaisuudet/toiminnallisuudet
  13. MockUp-prototyyppi
  14. Alustavat Käyttäjätarinat
  15. Palvelun järjestelmävaatimukset
  16. Palveluun vaikuttavat rajaukset
  17. Palvelun liityvät laitevaatimukset
  18. Palvelun määritellyt ominaisuudet eli featuret
  19. Palvelun toiminnalliset vaatimukset
  20. Palvelun ei-toiminnalliset vaatimukset
  21. Palvelun alustava arkkitehtuuri
  22. Palvelun alustava sijoittelunäkymä
  23. Palvelun alustava tietokantakuvaus)
  24. Palvelun integraatiot muihin järjestelmiin
  25. Palvelun laadun varmistuksesta
  26. Palvelun hyväksyntätestit
  27. 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.

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ä

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

uml diagram

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 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
Ominaisuus Prioriteetti Use cases
Feature 1 - GDPR P1 GDPR
Feature 2 - salasananpalautus P2 salasananpalautus
Feature 3 - blacklist P3 blocklist
Feature 4 - moderointipalvelu.md P1 moderointi
Feature 5 - käyttäjäroolit P1 käyttäjäroolit
Feature 6 - palaute P2 palaute
Feature 7 - backendlog P2 backendlog
Feature 8 - googleanalytics P3
Feature 9 - Docker P1
Feature 10 - HTTPS P1
Feature 11 - Branding P1
Feature 12 - Some P1 sosiaaliseen mediaan jakaminen
OGFT01: Sign Up
OGFT02: Sign In
OGFT03: Your Settings
OGFT04: Profile P1 )
OGFT05: New Post P1
OGFT06: Feed / Home P2
OGFT07: Tags P2
OGFT08: Edit Article P3
OGFT09: Delete Article P1
OGFT10: Post Comment P1
OGFT11: Delete Comment P1
OGFT12: Follow User P1
OGFT13: Unfollow User P1
OGFT14: Favorite Article P1

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 )

uml diagram

Integraatiot muihin järjestelmiin

uml diagram

Integraation kuvaaminen sekvenssikaaviona

uml diagram

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

uml diagram

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