190 likes | 304 Views
Graafisen käyttöliittymän käytettävyys. ja pelikuvioiden suunnitteluohjelma. Tavoite. Käytettävyyden tutkiminen sekä psykologian, että ohjelmoinnin kannalta Pelikuvioiden piirtotyökalun toteuttaminen Javalla Tutkimustulosten soveltaminen piirtotyökalun käyttöliittymään.
E N D
Graafisen käyttöliittymän käytettävyys ja pelikuvioiden suunnitteluohjelma
Tavoite • Käytettävyyden tutkiminen sekä psykologian, että ohjelmoinnin kannalta • Pelikuvioiden piirtotyökalun toteuttaminen Javalla • Tutkimustulosten soveltaminen piirtotyökalun käyttöliittymään
Käytettävyys(ISO 9241-11 (1998) Guidance on Usability) • Käytettävyys (Usability) Kuinka tehokkaasti ja tyydyttävästi tiettykäyttäjäryhmä voi suorittaa määritetyt tehtävät ennalta määritellyissä olosuhteissa. • Tehokkuus (Effectiveness) Miten tarkasti ja täydellisesti ohjelmiston ominaisuudet soveltuvat vaadittujen tehtävien suorittamiseen.
Hyötysuhde (Efficiency) Miten paljon resursseja tietyn tehtävän suorittaminen vaatii suhteessa lopputuloksen laatuun. • Tyytyväisyys (Satisfaction) Kuinka mukavaa ja helposti omaksuttavaa järjestelmän käyttö on sitä käyttäville ja sen vaikutuksen piirissä oleville ihmisille.
Suunnittelussa muistettavaa • Opittavuus: ihminen oppii yhdistämällä uudet asiat jo osaamiinsa • Muistettavuus: kerran opittua on vaikea unohtaa • Virheet: jo virheiden pelkääminen hidastaa työskentelyä • Tyytyväisyys: subjektiivista – syitä mahdotonta määritellä tarkasti
Playmaker • Aikaisemmin valmentaja piirsi pelikuviot MS Excelillä • Excelin piirtotyökalujen käytettävyys on huono ainakin tähän tarkoitukseen • Playmaker ei sisällä turhia ominaisuuksia, tuo useimmin tarvittavat ominaisuudet helpommin saataville ja nopeuttaa työskentelyä automatisoimalla toimintoja • http://koti.mbnet.fi/sampora/Playmaker.html
Playmakerin perustoiminnot • Pelitilanteen kuvaaminen (kenttä, viivat, pelaajat..) • Pelaajasymbolien sijoittelu muodostelmiin • Reittien piirtäminen ja niiden tyypin esittäminen • Jatkossa pelien ja muodostelmien tallentaminen yms.
Ensimmäiset versiot • Perustoiminnot käytettävissä • Ei mitään tarkoitukseen sopivia lisäominaisuuksia • Kaikki komennot suoritettava hiiren ja Ctrl-näppäimen avulla • Muutamia suunnitteluvirheitä käytettävyydessä
Palautekysely • Lähdeteosten mukaan testaaminen on ainoa luotettava tapa testata käytettävyyttä • n. 12 Playmakerin käyttäjää vastasi kyselyyn. Käyttäjillä erilaiset kokemukset JeFu:sta ja tietokoneen käyttämisestä • Kysymyksillä testattiin lähdeteosten teorioita ja applettiin suunniteltuja muutoksia
Kysymykset • Kirjasintyyppi, värit, komponenttien asettelu… • Nappien reagoiminen hiiren osoittimeen yms. käyttäjän ”opastaminen” • Graafiset apukeinot ja muut käyttämistä helpottavat lisäominaisuudet • Käyttäjien mielipiteet
Tulokset ja niihin reagointi • Palautteen antajan lähtökohtien huomioiminen • kokemattomilta: työkalupalkin lukitseminen, pelaajien siirtämisessä ilmennyt virhe, kontrollien helpottaminen, värit… • lajin tuntijoilta: snap to grid, ei varjoja, uusia ominaisuuksia yms… • kokeneet käyttäjät: oppivat käyttämään virheellisiäkin toimintoja
Huomioita • Melkein kaikkea kannattaa tarjota vaihtoehdoksi • Komponenttien sijoittelusta yms. ei helposti anneta palautetta toisin kuin toiminnoista • Vasta pidempään jatkunut käyttötesti antaa lopullisia vastauksia
Tehtyjä muutoksia • Selkeiden virheiden korjaaminen • Värien muuttaminen • Aktiivisten komponenttien korostaminen ja muu oppimisen tukeminen jatkossakin • Työkalupalkin piirtäminen aluksi auki • Jatketaan jatkuvaa testausta
Esimerkki: snap to grid • Hyvin helppo toteuttaa • komponentti, jolla toiminto kytketään päälle • ehtolause pelaajia siirtävään luokkaan • Suuri hyöty käyttäjälle • Voidaan kytkeä poiskin
public void setPlace(Point p, boolean snapToGrid) { place = p; if (snapToGrid) { if (place.x % 10 < 5) { place.x = place.x - place.x % 10; } else { place.x = place.x + 5-(place.x % 10); } if (place.y % 10 < 5) { place.y = place.y - place.y % 10; } else { place.y = place.y + 5-(place.y % 10); } } }
Esimerkki: Pelaajien reagoiminen hiiren osoittimeen • Yksi lauseke mouseMoved(mouseEvent e) –tapahtumakäsittelijään • tilaa ilmaiseva muuttuja Player- luokkaan • ehtolauseella vaihtoehtoinen piirtotapa korostetulle ja korostamattomalle pelaajalle
if (selected) { //piirretään varjo, jos pelaaja on valittu g.setColor(new Color(0, 0, 0, 32)); g.fillOval(place.x -4 , place.y - 4, 38, 38); g.fillOval(place.x -2, place.y - 2, 34, 34); g.setColor(Color.orange); } else if (drawingPath) { g.setColor(Color.red); } else if (mouseOn) { g.setColor(Color.yellow); } else { g.setColor(Color.white); }
Päätelmiä • Jatkotestaaminen ainoa tapa varmistaa, että palautteeseen on reagoitu oikein • Kirjallisuudessa esitetyt teoriat pitävät paikkansa usein, mutta tilannekohtaisesti niistä voidaan poiketa • Ohjelmoijan on unohdettava omat mielipiteensä • Jos käyttäjät valitsevat kahdesta vaihtoehdosta toisen, se ei kuitenkaan välttämättä ole paras vaihtoehto
Jatkokehitys • Paljon uusia ominaisuuksia • Sovelletaan jo hyväksi koettuja ratkaisumalleja • Käyttäjäryhmä rajattu: pyritään näkemään asiat heidän tavallaan • Ei matemaattista kaavaa hyvälle käytettävyydelle, vaan suuri joukko asioita, jotka pitää muistaa ottaa huomioon