Skip to content

Ratkaisupolku ja apua HT1-harjoitukseen

Olen kerännyt tähän sivustoon muutamia vinkkejä harjoitustehtävän ratkaisuun. Ensimmäinen niistä on "ratkaisupolku", jonka avulla voi pohtia vaatimusmäärittelyn rakentamista kysymysten kautta. "Hyödyllistä osata"-osiosta löytyy muutamia oleellisia asioita jotka liittyvät MarkDown-dokumenttien tekemiseen.

Harjoitustehtävän käynnistäminen ja hyödyllistä osattavaa

Miten harjoitustehtävää kannattaa ehkä työstää?

Ratkaisupolku

Käydään läpi vaatimusmäärittelyn tekoa asiakaspolkuna. Tämä on osio on vielä kesken, mutta täydentyy tarpeen mukaan

Palvelun merkitys?

Lähdetään liikkeelle siitä mihin tarkoitukseen palvelua tarvitaan.

  • Mieti ensin millainen palvelu on kyseessä?
  • Mitä sen avulla voidaan saavuttaa?
  • Miksi palvelu on olemassa?
  • Miksi se on hyödyllinen?
  • Kenelle se on hyödyllinen
  • Kuka hyötyy palvelusta?
  • Millaisia käyttötarkoituksia sillä on?
  • Mitä ovat tulevaisuuden mahdollisuudet?
  • Kuka käyttää palvelua tai kuka hyötyy palvelusta?
  • Voiko palvelua väärinkäyttää?

Tämän pohjalta voidaan laatia ensimmäinen versio --> Palvelun yleisestä kuvauksesta

Palvelun kuvaaminen toiselle?

Miten kerrot toiselle palvelusta, jota olet määrittelemässä.

  • Jos sinut yöllä herätetään ja kysytään millainen palvelu on kyseessä, niin mitä vastaat?
  • Jos sinulla on aikaa 15 sekuntia kertoa mitä palvelulla voidaan tehdä, niin mitä vastaat?

Tunnista palveluu liittyvät sidosryhmät?

  • Kuka käyttää palvelua tai kuka hyötyy palvelusta?
  • Onko olemassa sidosryhmiä, jotka ovat "instituutioita" (esim. valtio, kunta, poliisi, verottaja etc..)
  • Mieti kuka voi tarvittaessa edustaa laajempaa sidosryhmää?
  • Onko yhden sidosryhmän sisäissä tarpeissa suuria eroja?
  • Onko mielekästä pilkkoa jokin määritelty ryhmä osiin?
  • Onko jokin sidosryhmä haitallinen palvelun näkökulmasta?
  • Mitä motivaatiotekijöitä on kullakin sidosryhmällä?

--> Piirrä sidosryhmäkartta ja määrittele palveluun liittyvät sidosryhmät

Mieti millaisia voivat olla palveluun liittyvät asiakastarinat?

Kirjataan talteen asiakastarinoita (Customer Storys), joista ilmenee tarve, käyttötilanteita (Use Cases) ja toiminnallisuuksia (Functionalitys)

  • Jos mahdollista, niin pyydä jotain sidosryhmän edustajaa kuvaamaan miten hän käyttäisi suunniteltua palvelua ja miten hän hyötyisi?
  • Kirjoita itse kuvaus, jossa kuvaat palvelun käyttöä jonkin valitun edustajan/profiilin näkökulmasta?
  • Kerro tarina miten homma kulkee?
  • Mieti miten tarina muuttuu, jossa kuvaat palvelun käyttöä jonkin toisen profiilin näkökulmasta?
  • Onko palvelulla oleellisia kohderyhmiä, joita kannattaa nostaa esiin asiakastarinoissa?

--> Kirjaa vaatimusmäärittellyyn kohtaan asiakastarinat

Tunnista sidosryhmän sisältä tarkennettuja kohderyhmiä/profiilikuvauksia

  • Tunnista laajat sidosryhmät ja pilko ne tarvittaessa osajoukkoihin, valitse näille edustajat
  • Esim. asiakkaat sidosryhmä voi sisältää useampia eri kohderyhmiä? 10% 13-17 V 25 % 18-25 25% 26-39 40 % 40-75V
  • Mieti mikä voi olla ko. profiilin/kohderyhmän motivaatio/kiinnostus palvelua kohtaan?

--> Kirjoita auki profiilikuvaus

Kulje mielessäsi polkua, jonka valitsemasi profiili käyttää palvelua käyttäessään

  • Mieti mitä tapahtuu ennen palvelun käyttöä?
  • Mitä tapahtuu palvelun käytön aikana?
  • Mitä palvelun käytön jälkeen tapahtuu?
  • Miten palveluun palataan takaisin?
  • Muuttuuko jokin palvelun uudelleen käytön aikana?

--> Kuvaa ja piirrä palvelupolku valitun profiilin kannalta. Liitä kuvaus vaatimusmäärittelyyn

Käyttötapausten tunnistaminen?

  • Tunnista käyttötapaus?

Palvelun käyttöön liittyvät tarttumapinnat?

Tutki palvelupolkua ja etsi sen varrelta tilanteita, jolloin palvelun käyttäjä käyttää palvelua sähköisen rajapinnan kautta. Tämä tarkoittaa erilaisia käyttöliittymiä, kuten puhelin tai näyttö etc. Tätä tilannetta voidaan kuvat käyttötapauksena, jossa pyritään käymään läpi jokin valitun toimijan (actorin) suorittama palveluun liittyen

  • Mieti tarkalleen mitä profiili henkilö juuri sillä hetkellä pyrkii tekemään?
  • Millaisia toimintoja profiili edustaja tarvitsee palvelua käyttääkseen?
  • Mitä tarkalleen tapahtuu tässä käyttötilanteessa, kun profiili henkilö operoi käyttöliittymää

--> Kirjaa tärkeimmät käyttötilanteet käyttötapausten muotoon (Use Case)

Käyttöliittymä prototyyppi/MockUp?

Piirrä esim. paperille karkea näkymä käyttöliittymästä, joka liittyy edellisessä vaiheessa miettimääsi käyttötapaukseen tai toiminnallisuuteen.

  • Mieti mitä ruudulla tapahtuu käyttötapauksen aikana?
  • Millaisia toimintoja tarvitaan, että käyttötapaus on mahdollista suorittaa?
  • Onko muita näkymiä joita tarvitaan käyttötapauksen suorittamiseen?
  • Korjaa käyttötapausta tekemäsi huomioiden pohjalta?
  • Ota käyttöösi MockUp-työkalu, jonka avulla kuvaat tarvittavaa käyttöliittymää

--> Liitä MockUp-kuvaus osaksi vaatimusmäärittelyä tai sijoita se ominaisuuskuvauksen sisälle tarkentamaan toiminnallisuutta

Tärkeiden toiminnallisuuksien/ominaisuuksien tunnistaminen

Miten palvelun voisi jakaa ajoissa oleellisiin toiminnallisuuksiin/ominaisuuksiin ja siten keskittyä olennaiseen?

  • Onko palvelussa jokin erittäin oleellinen toiminto?
  • Liittyykö toiminto johonkin tiettyyn osa-alueeseen? (Rekisteröityminen, tietojen muuttaminen, palvelun käyttö, tiedon jakaminen, hallinta etc?)
  • Mieti MockUp-kuvausta ja pohdi onko näkymissä joitain toimintoja, jotka vaativat "enemmän" pohtimista.
  • Voitko jakaa toimintoja eri osa-alueisiin?
  • Mieti millaisia toimintoja tarvitaan palveluun, että sen avulla saavutetaan palvelukuvauksen mukainen kokonaisuus?
  • Mitkä näistä toiminnoista ovat tärkeimpiä?
  • Ovatko jotkin toiminnot selkeästi erotettavia?
  • Liittyykö toimintoo muitakin vaatimuksia/rajauksia

--> Valitse tärkeimmät toiminnallisuudet/ominaisuudet ja kuvaa ne tarkemmin ominaisuus-kuvauksen avulla

Toiminnallisten vaatimusten kartoitus

  • Mitä toimintoja palvelulta odotetaan?
  • Onko joitain vaatimuksia, jotka nousevat erityisesti esiin?
  • Mitä vaaditaan palvelun tuottajajalta
  • Mitä teknisiä ratkaisuja palvelu edellyttää

--> Kirjaa toiminnalliset vaatimukset

Rajoitteet

  • Onko lakeja/ohjeistuksia, jotka vaikuttavat tuotteen/palvelun suunnitteluun/toteutukseen?

--> Kirjaa rajoitteet/standardit/ohjeistukset

Ei-toiminnallisten vaatimusten kartoitus

  • Tuleeko mieleen käytettävyyteen liittyviä vaatimuksia?
  • Onko tietoturvaan liittyviä vaatimuksia
  • Onko palvelulle suorituskykyyn liittyviä vaatimuksia?

--> Kirjaa ei-toiminnalliset vaatimukset

Suunnittele testitapauksia

  • Pohdi ensin jotain tärkeäksi kokemaasi toiminnallisuutta? Miten voit varmistaa, että se toimii sovitusti? Millainen on tämä tarkistustilanne?
  • Mitä on syytä tarkistaa vaatimusten pohjalta
  • Miten varmistat, että vaaditut toiminnallisuudet ovat kunnossa?
  • Mieti vaatimuksia ja luo tarvittavia testejä
  • Onko tarpeen testata poikkeamia liittyen vaatimukseen?

Oleellisten UML-kuvausten hyödyntäminen määrittelyn tukena

UML-kuvauksia voidaan käyttää osana dokumentaatiota, ja niitä voidaan sisällyttää dokumenttiin tarpeen mukaan.

Tarkastellaan ensin sekvenssikaavion soveltamista

  • Mieti on jossain toiminnallisuudessa tärkeä esittää missä järjestyksessä eri toiminnot tapahtuvat?
  • Onko jokin käyttötilanteen kuvaaminen helpompaa esim. sekvenssikaavion muodossa?

--> Onko palvelupolun kuvaaminen helpompaa sekevenssikaavion avulla? --> Kokeile kuvata käyttötapaus sekvenssikaavion muodossa? --> Tarkenna valitsemaasi ominaisuutta sekvenssikaavion avulla?

Ohjelmisto komponenttien kuvaaminen

  • Olet oppinut jo aiemmin, että ohjelmistot koostuvat esimerkisi eri palvelimista ja niissä pyörivistä ohjelmistoista?
  • Onko jotain oleellisia osia, jotka olisi hyvä kirjata näkyviin?
  • Vastaa kysymykseen miten eri palvelimet tullaan sijoittamaan, kun palvelua aiotaan käytännössä tuottaa?
  • Onko palvelussa tietovarastoja? Henkilörekisteritä? Asennettava puhelin applikaatioita? Erilliset verkkosivut? etc..

Iteratiivinen ratkaisun kulku

Jokaisen askeleen jälkeen voi olla tarve palata taaksepäin ja tarkentaa jo aiemmin määriteltyä. Vaatimusmäärittely on iteratiivinen prosessi!

uml diagram

HT1-suorittaminen

Tähän sivustoon on kerätty muutamia tärkeitä asioita harjoitustehtävän ratkaisuun

Huolehdi, että olet suorittanut aloitusvaiheen toimenpiteet ensin!

HT1-harjoitustehtävän käynnistäminen

  • Tässä ohje harjoitustehtävän käynnistämiseksi (CampusOnline 2020K)

MarkDown-dokumenttien linkittäminen ja yleinen katsaus

Miten dokumentit saadaan liitettyä toisiinsa ja miksi niitä käytetään?

  • https://www.youtube.com/embed/tAuVJ-C6US4

Kuvan liittäminen MarkDown-dokumenttiin

On tärkeää, että tarvittaessa voidaan tuoda dokumentin osaksi materiaali ulkopuolelta esim. eri kuvaukset/valokuvat/videot etc.

Mistä voin löytää hyviä kuvia omaan dokumenttiini?

Ennen kuin käytät kuvia tarkista oikeudet!

avainsanat: Open clipart, creative commons images,

Miksi ihmeessä ohjaaja kyttää Commit-lukua?

Commit-counter kaiken paha alku?

Gitlab Issue tracker -avuksi harjoitustehtävän ratkaisuun?

Tutustutaan Gitlab Issue Tracker-toiminnallisuuksiin

Avainsanat: Kanban, Tasking, Issue board, Sprint planning