http://www.cs.tut.fi/ihte http://www.cs.tut.fi/kurssit/ohj-7300 KOKOS-seminaari 22.3.2006 Ohjelmistoarkkitehtuuri osana käyttäjäkeskeistä suunnittelua Jarmo Palviainen
Myytit käytettävyydestä (ohjelmistosuunnittelijan silmin) - usability = nonfunctional quality attribute - Käytettävyys = käyttöliittymän suunnittelu Myytit ohjelmistotekniikasta (koneensuunnittelijan silmin) - ohjelmistoa on helpompi muuttaa kuin rautaa - ohjelmistojen tuottaminen on kuin mitä tahansa muuta suunnittelutyötä - Käytettävyys on vain yksi tekijä muiden joukossa Myytit suunnittelutyöstä (käytettävyysihmisen silmin) - kun tehdään käyttäjäkeskeisesti ja ryhmätyöllä, ongelmat ratkeavat
Esityksen pääasiat Johdanto eli 9 minuutin esitys kahden tunnin aiheesta - Ohjelmistotuotteen kokonaislaatu - Motivaatio, miksi arkkitehtuurit? - Perustermistö ohjelmistoarkkitehtuureista Vaatimuksista hyvään tuotteeseen Usability Framework Koneautomaation ASUP:it Ongelmia ASUP:eissa
Ohjelmiston laatu (SW-näkökulma) ISO9126 määrittää laadun piirteiden (characteristics) avulla Piirteet kuvataan alipiirteiden avulla, jotka ovat helpommin mitattavia Käytettävyysammattilaiset eivät aina jäsennä laatua tämän mallin mukaisesti! - käytettävyys koostuu toiminnan tehokkuudesta, tarkoituksenmukaisuudesta (toiminnallisuudesta) ja miellyttävyydestä [ISO 9241-11]
Ohjelmistoarkkitehtuuri Järjestelmän perusorganisaatio, joka sisältää järjestelmän osat, niiden keskinäiset suhteet ja niiden suhteet ympäristöön sekä periaatteet, jotka ohjaavat järjestelmän suunnittelua ja evoluutiota (IEEE 1471-2000) Osat - suhteet - kehittyminen Rakenne ja käyttäytyminen Kuvaus + perustelut
Miksi ohjelmistoarkkitehtuureja 1/2 Ohjelmistoarkkitehtuuri - Ensimmäisiä artefakteja, joiden perusteella tuotteen kokonaislaatua voidaan arvioida - Varhaiset ratkaisut vaikuttavat merkittävästi tuotteen laatuun. - Joidenkin vaatimusten täyttäminen myöhemmässä vaiheessa mahdotonta, jos niitä ei ole huomioitu arkkitehtuurisuunnittelussa esim. kompromissit tehokkuuden ja ylläpidettävyyden/muokattavuuden suhteen ASUPs (Architecturally Sensitive Usability Patterns) - arkkitehtuurit voivat sallia tai estää käytettävyyden kannalta oleellisia ominaisuuksia esim. toimintojen peruminen (multilevel undo) tiedon tai operaatioiden yhdisteleminen
Miksi ohjelmistoarkkitehtuureja 2/2 Nykyinen ohjelmistojen inkrementaalinen kehitystapa asettaa vaatimuksia arkkitehtuurille - voitava toteuttaa järjestelmää esim. käyttötapaus kerrallaan Iteratiivisuus on UCD-prosessissa oletus Prototypointi helpottuu Tuoteperheet ja ylläpito
Peruskäsite: suunnittelumalli (design pattern) Alexanderin 1977 esittämä idea - kuvaa usein esiintyvän ilmiön (ongelman) yleisen ratkaisun perusajatuksen kontekstin, jossa ongelma ja ratkaisu voivat esiintyä, kuvaa ratkaisun heikkoudet ja vahvuudet
Eri suunnittelumallit Ohjelmistoarkkitehtuurien suunnittelumallit - esim. rekursiokooste-malli Item operation() * children Leaf operation() Composite operation()
Eri suunnittelumallit Ohjelmistoarkkitehtuurien suunnittelumallit - esim. rekursiokooste-malli Käytettävyyden suunnittelumallit - velho, undo, navigointi näkymän sisällä
Eri suunnittelumallit Ohjelmistoarkkitehtuurien suunnittelumallit - esim. rekursiokooste-malli Käytettävyyden suunnittelumallit - velho, undo, navigointi näkymän sisällä Vaatimusten keräämisen mallit (requirements elicitation patterns, [Juristo & Moreno, unpublished]) - Auttavat löytämään vaatimukset ajoissa - KOKOS-projekti sovittaa kehitteillä olevia malleja koneautomaatiokontekstiin
Esityksen pääasiat Johdanto eli 9 minuutin esitys kahden tunnin aiheesta Vaatimuksista hyvään tuotteeseen Usability Framework Koneautomaation ASUP:it Ongelmia ASUP:eissa
Vaatimuksista hyvään tuotteeseen Vaatimusmäärittelyn mallit Käyttöskenaariot + Vaatimukset Käytettävyyssuunnittelumallit Arkkitehtuurin suunnittelumallit Nykyinen arkkitehtuuri Hyvät käytännöt Hyvä arkkitehtuuri mahdollistaa Käyttäjän tarpeet ja vaatimukset täyttävä järjestelmä
Eri (suunnittelu)mallien suhde Vaatimusmäärittelyn mallit Arkkitehtuurin suunnittelumallit Käyttöskenaariot + Vaatimukset Käytettävyyssuunnittelumallit Mitä tietoa tarvitaan eri vaiheissa?! - vaatimusmäärittely (UCD-pro, arkkitehtuurisuunnittelija, käyttäjiä tai heidän edustajiaan, tuotteen omistaja, ) - arkkitehtuurisuunnittelu - määrittely ja käyttöliittymäsuunnittelu
Esityksen pääasiat Johdanto eli 9 minuutin esitys kahden tunnin aiheesta Vaatimuksista hyvään tuotteeseen Usability Framework Koneautomaation ASUP:it Ongelmia ASUP:eissa
Usability framework [Folmer & Bosch 2004]
Usability framework [Folmer & Bosch 2003, Juristo & al 2003] Käytettävyyden attribuuttien, käytettävyysominaisuuksien ja käytettävyyden suunnittelumallien suhteet
Ohjelmiston laadun ja arkkitehtuurin suhde [Folmer 2005] Qualities Quality Architecture Attributes Indicators Properties ASPatterns Design decisions Compose software quality Means to measure qualities Means to measure attributes Guidelines to Improve indicators Solutions to fulfill properties Solutions to implement ASPattens Esimerkki: Velho (wizard) ASUP
Esityksen pääasiat Johdanto eli 9 minuutin esitys kahden tunnin aiheesta Vaatimuksista hyvään tuotteeseen Usability Framework Koneautomaation ASUP:it Ongelmia ASUP:eissa
Arkkitehtuurisesti herkät käytettävyyden suunnittelumallit (Architecturally Sensitive Usability Patterns =ASUP Usability-Supporting Architectural Pattern = USAP) Osa käytettävyyden suunnittelumalleista edellyttää tiettyjä piirteitä ohjelmistoarkkitehtuurilta - vaaditut piirteet taas esitettävissä arkkitehtuurimalleina Tunnistettuja esimerkkejä: - palautteen antaminen riskitilanteissa - toimintojen kohdistaminen useampiin kohteisiin - keskeyttäminen (cancel) ja peruminen (undo) - käyttäjäprofiilit - multichanneling, useiden erilaisten syöttölaitteiden käyttö
Käytettävyyden suunnittelumallit/mekanismit/skenaariot Kieliversiot, kansainvälisyys Hälytykset Järjestelmän tilan ilmaiseminen ja tehtävän keston ennustaminen Pikavalinnat Lomakkeen/kentän validointi Peruminen (Undo) Kontekstisensitiiviset avusteet, velhot, standardiavusteet ja esittely (tour) / (provide good help) Käyttäjäprofiilit ja käyttäjäkohtaisesti räätälöidyt toiminnot/näytöt (workflow//working in unfamiliar context) Historialoki / parametrien historialoki Visualisoinnin tukeminen Cancel Multi-tasking Komentojen yhdisteleminen Useisiin objekteihin kohdistuvat toiminnot Tiedon uudelleenkäyttö Laiteriippumattomuus (erilaiset aksessointimenetelmät) [Bass et al, Folmer & Bosch, Juristo et al, Neeteson]
Käytettävyysskenaariot koneautomaatiossa (Kaivos- ja metsäkoneet) [Neeteson] Järjestelmän tilan tarkkaileminen: - Ehkä tärkein käytettävyyden kannalta. Käyttäjän pitää millä tahansa hetkellä voida helposti selvittää järjestelmän tila. Mm. varoitusviestien käyttö liittyy tähän skenaarioon. Oikeellisuuden tarkistus: - tarkistetaan käyttäjän syötteet ennen kuin operaatiota aletaan suorittamaan. Työpöytäsovelluksessa tämä yleensä tarkoittaa tiedon konsistenssiuden tarkistamista ennen kuin se talletetaan tietokantaan. Koneautomaatiossa voidaan myös tarkistaa osien ja alijärjestelmien tila ennen operaation aloittamista. Järjestelmän evaluointi: - Järjestelmään sisällytetään ominaisuuksia, joiden avulla voidaan seurata sen käyttöä ja siten kehittää käytettävyyttä. Virhetilanteista toipuminen: - Järjestelmät on suunniteltava siten, että virhetilanteessa hukkaan menevän työn määrä minimoituu. järjestelmän pitäisi myös palauttaa itsensä viimeisimpään mahdolliseen tilaan ennen virhetilannetta. Visualisoinnin tukeminen: - Tarvitaan erilaisia keinoja suurten tietomäärien visualisoimiseen, jotta niitä voidaan tarkkailla.
Esimerkki: Parameter history logging [Neeteson] Parantaa käyttäjän tehokkuutta - rutiinisuorituksissa nopeuttaa virheistä vapaita rutiinisuorituksia tarjoamalla tukea historiatiedon muodossa pienentää todennäköisyyttä, että käyttäjä kokeilee virheellisiä parametrin arvoja - Ei-rutiinisuorituksissa Tukee ongelmanratkaisua antamalla enemmän vihjeitä siitä, mitä tehdä. Tukee myös oppimista, kun käyttäjän on helpompi ymmärtää erilaisten asetusten mahdolliset vaikutukset DeviceType Device DeviceLocation Lisää käyttäjän luottamusta ja mukavuutta - Käyttäjä kokee olonsa luottavaisemmaksi saadessaan vihjeitä aiemmin käytettyjen parametriarvojen vaikutuksista (kun pitää käsitellä suuria parametrijoukkoja, mikä on virhealtista) PK PK FK1 Id Name ImageName HiddenImageName DeviceParameter Id DeviceTypeId Name SourceIndex SourceSubIndex SourceType ValueCount DisplayType Advanced PK Id Name FK1 TypeId FK2 LocationId NodeId SoftwareVersion IsVirtual ParentId GUIDiagramX GUIDiagramY DeviceParameterValue PK,FK1 PK,FK2 DeviceParameterId DeviceId Value ValueIndex PK Id Name HatchNumber SoftwareParameter PK Id Name Value Type MinValue MaxValue
Esityksen pääasiat Johdanto eli 9 minuutin esitys kahden tunnin aiheesta Vaatimuksista hyvään tuotteeseen Usability Framework Koneautomaation ASUP:it Ongelmia ASUP:eissa
Ongelmia ASUP:ien käytössä Vastaukset löydettävä jo vaatimusten keräämisvaiheessa ASUP:it edelleen liian epämääräisiä etenkin arkkitehtuurisuunnittelijan näkökulmasta (ei riittävää osaamista käytettävyydestä) - Vaikea löytää sovellusalueen ja sovelluksen kannalta oleelliset - Vaikka sanottaisiinkin esim. että tarvitaan undo, pitäisi tietää mitä pitää voida perua ja miten - Low-fi protoilulla harvoin törmätään ASUP-tarpeeseen Ratkaisu Vaatimusmäärittelyn mallit (requirements elicitation patterns) ohjaavat kysymään oikeista asioista riittävän tarkkoja kysymyksiä
Ongelmia ASUP:ien käytössä ASUP:in tukeminen arkkitehtuuritasolla onnistuu vasta kun on jokin järkevä arkkitehtuuri - työkalut, kehitysympäristöt, valmiskomponentit, arkkitehtuuriosaaminen, panostusten määrä Ratkaisu?
Esityksen pääasiat Johdanto eli 9 minuutin esitys kahden tunnin aiheesta Vaatimuksista hyvään tuotteeseen Usability Framework Koneautomaation ASUP:it Ongelmia ASUP:eissa Bonus
Lähteitä: arkkitehtuuri & käytettävyys Bass, L., John, B.E., Kates, J. Achieving usability through software architecture. Technical report, CMU/SEI-2001-TR-005. Ferre, X., Juristo, N., Moreno, A., Sánchez, I. A Software Architectural View Of Usability Patterns, 2nd Workshop on Software and Usability Cross-Pollination (at INTERACT'03) Folmer, E., Bosch, J. Usability Patterns in Software Architecture, Proceedings of the Human Computer Interaction International 2003, Pages 93-97, June 2003. Folmer, E., Bosch, J. Architecting for usability: a survey. 2004. http://www.eelke.com/research/jsssurvey.pdf Folmer, E. Software Architecture analysis of usability. PhD. Thesis University of Groningen. ISBN - 90-367-2361-2, 2005. http://www.eelke.com/research/literature/thesis-efolmer.pdf Koskimies, K., Mikkonen, T. Ohjelmistoarkkitehtuurit, Talentum Media Oy, 2005. Neeteson, D, julkaisematon opinnäytetyö, TTY/ University of Groningen,julkaistaneen 2006.
Lähteitä: käytettävyyden suunnittelumallit Erickson, T. The Interaction Design Patterns Page http://www.visi.com/~snowfall/interactionpatterns.html Welie, van M. The Amsterdam Collection of Patterns in User Interface Design http://www.welie.com/index.html PoInter collection at Lancaster University http://www.comp.lancs.ac.uk/computing/research/cseg/proj ects/pointer/pointer.html Tidwell, J. The Case for HCI Design Patterns http://www.mit.edu/~jtidwell/interaction_patterns.html