Tavoitteenanne on rakentaa toiminnallinen prototyyppi pelistä.
Pipistrel WATTsUP -sähkölentokoneen kuva: Ymmo, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons
Pelin prototyyppi on peli, jonka avulla käyttäjä voi matkustaa joko koko maailmassa tai sallimallanne alueella. Peli hyödyntää todellisten lentokenttien sijainteja.
Projekti etenee neljässä vaiheessa:
Ensimmäiset kaksi vaihetta tehdään Ohjelmisto 1 -opintojakson aikana. Tällöin toteutettavassa esiprojektissa on tarkoitus rakentaa pelistä toiminnallinen prototyyppi, joka toteutetaan Python-kielellä ja joka hyödyntää relaatiotietokantaa.
Jälkimmäiset kaksi vaihetta tehdään Ohjelmisto 2 -opintojakson kuluessa. Projektityössä esiprojektin tuloksena syntynyttä toiminnallista prototyyppiä laajennetaan ja muokataan siten, että pelillä on selaimessa toimiva karttapalvelua hyödyntävä käyttöliittymä. Lisäksi peli ohjelmoidaan käyttämään ulkoista tietolähdettä, esimerkiksi sääpalvelua.
Esiprojektin määrittelyvaiheen tarkoituksena on saavuttaa yhteinen näkemys siitä, minkälaista ohjelmistoa esiprojektissa lähdetään rakentamaan. Vaiheen tuloksena syntyy kirjallisessa muodossa oleva määrittelydokumentti, joka kuvaa ohjelmiston toiminnallisuuden eli sen, mitä tulevalla ohjelmistolla voidaan tehdä. Vaatimusmäärittelyssä otetaan lisäksi kantaa ohjelmiston sellaisiin vaatimuksiin, joita ei voida pelkistää toiminnoiksi. Näitä kutsutaan laadullisiksi vaatimuksiksi, ja ne voivat liittyä esimerkiksi suorituskykyyn, vasteaikoihin tai käytettävyyteen.
Määrittelydokumentin tärkein hyve on konkreettisuus. Ohjelman toiminta kuvataan sellaisella tarkkudella, että tulkinnalle jää mahdollisimman vähän sijaa. Asioita ei lähtökohtaisesti jätetä toteutusvaiheessa päätettäviksi.
Määrittelydokumentissa kuvataan siis toiminta ja laadulliset vaatimukset. Näkökulma on ohjelmiston käyttäjässä: dokumentti vastaa kysymykseen “Mitä käyttäjä voi ohjelmistolla tehdä?”. Toteutustekniikoihin ei oteta kantaa.
Lentopelin määrittelydokumentin on sisällettävä ainakin seuraavat luvut:
Luku 1 (Johdanto) kuvaa, mikä dokumentin tarkoitus on ja kenelle se on suunnattu. Johdannossa voidaan myös esitellä dokumentin rakenne.
Luku 2 (Visio) kuvaa lentopelin yleisidean. Mikä on pelin tarkoitus, ja mitä pelissä tehdään? Visio voidaan esittää myös kuvana, jonka tueksi laaditaan tekstiselostus. Selostakaa tässä vapaamuotoisesti pelin “punainen lanka”: miten peli etenee, ja millaisia vaiheita pelaaja käy läpi?
Luku 3 (Toiminnalliset vaatimukset) kuvaa periaatteessa kaiken, mitä käyttäjä voi pelillä tehdä. Toiminnalliset vaatimukset esitetään tyypillisesti käyttäjätarinoina, joissa on tekijä, toimenpide ja tavoite. Esimerkki käyttäjätarinasta on “Pelaajana voin valita karttapohjalla näkyvistä kohteista seuraavan lentokentän, jotta sähkölentokoneeni siirtyy sinne”. Käyttäjätarinassa kuvataan siis tekijä (pelaaja), toimenpide (kentän valinta) sekä käyttäjää hyödyttävä tavoite, joka toimenpiteestä seuraa (kohteeseen siirtyminen). Käyttäjätarinoita laaditaan niin monta, että ne yhdessä kuvaavat pelin toiminnallisuuden. Lentopelille käyttäjätarinoita tarvittaneen useita kymmeniä. Jokaisen käyttäjätarinan on oltava yksiselitteinen ja konkreettinen. Käyttäjätarinan pohjalta on voitava aikanaan todentaa, onko vastaava toiminnallisuus toteutettu ohjelmistossa.
Luku 4 (Laadulliset vaatimukset) tarkentaa, millaisia muita kuin toiminnallisia vaatimuksia lentopelillä on. Näitä voivat olla esimerkiksi suorituskykyvaatimukset (“Lentokentän tietojen haku tietokannasta saa kestää korkeintaan kaksi sekuntia”) tai käytettävyysvaatimukset (“Käyttäjän on saatava välitön palaute jokaisesta tekemästään toimenpiteestä”).
Määrittelydokumentin laatua voi arvioida seuraavin kysymyksin:
Määrittelyn pohjaksi asetetaan joukko reunaehtoja. Reunaehtojen tarkoitus on varmistaa, että saavutatte peliprojektin aikana ne oppimistavoitteet, joita opintojaksoille on määritetty.
Voitte siis määritellä ja toteuttaa minkälaisen pelin tahansa, kunhan se toteuttaa alla kuvatut reunaehdot:
Projektityön arviointi noudattaa seuraavia suuntaviivoja:
Projektin arvosanasta johdettavaan yksilöarvosanaan vaikuttaa myös jatkuva näyttö sekä itse- ja vertaisarviointi.