Käyttöliittymän mallintaminen ja rakentaminen

Samankaltaiset tiedostot
Käyttöliittymän mallintaminen ja rakentaminen

Käyttöliittymän rakentaminen

KÄYTTÖLIITTYMÄSUUNNITTELU

Käyttäjäkeskeinen vaatimusmäärittelytyö ketterän käyttöliittymäsuunnittelun haasteena

Käyttöliittymäsuunnittelu Ohjeistot ja toteutus

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04

TIE = JOTU. VH5 - MagicDraw

KÄYTTÖLIITTYMÄSUUNNITTELU

Graafisen käyttöliittymän ohjelmointi

Ohjelmistotekniikan menetelmät, UML


7. Product-line architectures

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

SoberIT Ohjelmistoliiketoiminnan ja tuotannon laboratorio

VH5, JOTU, MagicDraw:n käyttö

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Käyttöohje

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

T Käyttöliittymäsuunnittelu. T Vuorovaikutustekniikka

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Visual Basic -sovelluskehitin Juha Vitikka

UML- mallinnus: Tilakaavio

Ensimmäinen ios Applikaatio

Ohjelmistojen mallintaminen

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

5. HelloWorld-ohjelma 5.1

13/20: Kierrätys kannattaa koodaamisessakin


Toimilohkojen turvallisuus tulevaisuudessa

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

UML - unified modeling language

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

DIPLOMITYÖ ARI KORHONEN

Unified Modeling Language

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Jypelin käyttöohjeet» Ruutukentän luominen

1. Olio-ohjelmointi 1.1

QT tyylit. Juha Järvensivu 2008

Domain spesifinen mallinnus ja generointi käytännössä. Petri Savolainen

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Luokka- ja oliokaaviot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

Olioperustaisuus (object oriented)

Käyttötapausanalyysi ja testaus tsoft

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

UML:n yleiskatsaus. UML:n osat:

Eclipse & WindowBuilder

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

T Käyttöliittymäsuunnittelu T Vuorovaikutustekniikka

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Editorin käyttöohje

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Studio ART Oy. Yritysesittely. Studio ART Oy. Kasöörintie Oulu p

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Tapahtumapohjainen ohjelmointi

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

KYSYMYKSET TEKSTIVIESTINÄ Aloita viesti lyhenteellä SD ja kirjoita kysymyksesi tai palaute

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

5. HelloWorld-ohjelma 5.1

UML -mallinnus TILAKAAVIO

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

SOA SIG SOA Tuotetoimittajan näkökulma

Johdatus ohjelmointiin

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Dialogit. Juha Järvensivu 2007

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Transitioiden käytettävyys Case: Nokia

Tulostinajurin ja paperikoon konfigurointiohjeet AutoCad ohjelmille

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Ulkoasun muokkaus CSS-tiedostossa

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa.

AMP IT UP! Microsoft Dynamics TM NAV 5 julkaisu Jani Liukkonen

Web Services tietokantaohjelmoinnin perusteet

T Johdatus käyttäjäkeskeiseen tuotekehitykseen 1 ov. Käyttäjätutkimus. Marko Nieminen. Käyttöliittymät ja käytettävyys.

Microsoft Visual Studio 2005

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Suunnittelumallit (design patterns)

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

4.1 Frekvenssijakauman muodostaminen tietokoneohjelmilla

Tapahtumat. Johdanto Ikkunointi Ikkunatapahtumat Päätapahtumasilmukka Tapahtumien käsittely Olioiden välinen kommunikointi.

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6op

ASIAKASOHJE. 1.1 Ajurin asennus & konfigurointiohje: 1. Kirjoita AutoCadin komentoriville _plottermanager ja paina Enter

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGISohjelmistossa

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Visualisointi informaatioverkostojen Opintoneuvoja Pekka Siika-aho (päivitys mm. Janne Käen visualisoinnin pohjalta)

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Valikot ja työkalupalkit. 2008

Ohjelmistojen mallintaminen, sekvenssikaaviot

Transkriptio:

T-121.2100 Johdatus käyttäjäkeskeiseen tuotekehitykseen Käyttöliittymän mallintaminen ja rakentaminen Teknillinen korkeakoulu Käyttöliittymät ja käytettävyys Marko.Nieminen@tkk.fi

Tällä luennolla Käyttöliittymän rakentamista tukevat mallit Tapahtumaohjatut käyttöliittymäympäristöt ja kehitysvälineet Käyttöliittymän suunnittelua tukevat tyylioppaat

Käyttöliittymäsuunnittelun konteksti T-121.5300 http://www.acm.org/sigchi/cdg/figure_1.gif ACM SIGCHI Curricula for Human-Computer Interaction

Onko käyttöliittymän rakentaminen vaikeaa?

50% suunnitteluajasta menee käyttöliittymäsuunnitteluun 48% koodista kohdistuu käyttöliittymään Myers B.A. & Rosson M.B. in Survey on User interface programming in Human Factors in Computing Systems 1992. (SIGCHI 92)

Millainen on hyvä käyttöliittymä? 1. Näkymätön, huomaamaton 2. Ei vaadi koulutusta, helppo oppia 3. Yhdessä tilanteessa opittua voidaan soveltaa toiseen 4. Ennustettava 5. Virheetön: käytön yhteydessä tapahtuu vähän virheitä ja jos tapahtuukin, niistä toipuminen on yksinkertaista 6. Oikeiden tehtävien suorittaminen onnistuu hyvin 7. On joustava ja älykäs (?) 8. Käyttäjät pitävät siitä 9.... ja paljon muutakin [Myers 1997] The best user interface is one the user doesn't notice.

Käyttöliittymän rakentamisen mallit (Constantine & Lockwood 2000)

Mallien ja mallinnuksen perusteita Relevanttien/oikeiden asioiden esiin nostaminen Asioiden järjestäminen tarkoituksenmukaisella tavalla Kommunikointi Tehokas kommunikointi Semiformaali tai formaali kuvaus käyttöliittymän toiminnasta Formaali mallintaminen HCI-alueella alkanut 1970-luvun loppupuolella (Phyllis Reisner 1977, 1981 (BNF); Embley 1978; Ledgard & Singer 1978)

UAN User Action Notation Ongelmia suorakäyttöliittymien mallintamisessa Hiiren liikuttaminen: ~; objekti: [obj] (esim [icon]) Hiiren painallus: Mv; hiiren nosto: M^ Korostus/valinta:! (esim icon!) ~[file] Mv file! ~[x,y]* outline(file) > ~ ~[trash] outline(file) > ~, trash! M^ erase(file), trash!

Oliopohjainen analyysi Soveltuu oliopohjaisiin kehitysympäristöihin Keskeiset käsitteet: objektit (objects) jaetaan kuuluviksi joko ongelma-alueeseen (problem space) tai toteutukseen (solution space) operaatiot (operations/methods) ominaisuudet (attributes/properties) Vaiheet: liittyvät sekä olioihin että operaatioihin Kuvataan järjestelmä sopivalla tarkkuudella vapaamuotoisesti, mutta kirjallisesti objektit=substantiivit; ominaisuudet=adjektiivit; operaatiot=verbit; operaatioiden ominaisuudet=adverbit

Oliopohjainen mallinnus: Skenaario Skenaariossa kuvataan, mitä käyttötilanteessa tapahtuu Skenaario voi kuvata nykyhetkeä tai tulevaisuutta, painotetusti sitä ehkä kuitenkin käytetään tulevaisuutta kuvattaessa Skenaario esitetään vapaamuotoisena tekstinä Skenaariosta voidaan johtaa tarvittavia asioita: tietorakenteet, tietovirta, vaadittavat objektit Skenaarion pohjalta voidaan tuottaa rakenteeltaan formaalimpia kuvauksia

Skenaario: kokoonpanolinja Kokoonpanolinjan työntekijä saa eteensä paletilla olevat tuotteen peruskomponentit. Hänen tehtävänään on kokoonpanna tuote lisäämällä siihen tuotetilauksessa olevat osat. Työntekijä tunnistaa tilauksen paletilla olevasta viivakoodista, jonka hän lukee viivakoodinlukijalla.

Use Case > UML Unified Modeling Language 1990 luvulle tultaessa Jakobson kehitti use case - kuvaukset use case ja UML kuvausten pohjaksi tarvitaan usein skenaariot UML:n käyttöliittymää sivuavat mallit: use case, sequence, collaboration, class, operations, attributes, relationships taustalla mm. ER-mallit, workflow-kuvat, tietovirtakaaviot

Use case-diagrammi esimerkki ensisijaiset toimijat vasemmalla, toissijaiset toimijat oikealla tasot vasemmalta oikealle vain tavallinen käyttö, toimintahäiriöt muissa diagrammeissa use case diagrammi: tasot ja toimijat (Alexander, 2001) Mikael Johnson

Navigaatiomalli Kertoo, miten vuorovaikutus välineen kanssa etenee Määrittelee kontekstit ja siirtymät, mutta pääasiassa järjestelmän näkökulmasta ristiriidat, silmukat, ikuiset loopit tunnistettavissa

Valikkokartta ~ Navigaatiokartta Shneiderman 1998: Designing the User Interface

Valikkokartan kuvaus Shneiderman 1998: Designing the User Interface

Käyttöliittymien toteuttaminen

Tapahtumaohjattu vuorovaikutus (Events) Käyttöliittymän elementtien tilassa tapahtuvat muutokset laitetaan käyttöliittymäympäristössä tapahtumajonoon Tapahtuma julkistetaan kaikille käyttöliittymäympäristössä oleville ohjelmille Tapahtumasta kiinnostuneet ohjelmat käsittelevät sen omien sääntöjensä mukaisesti Tyypillinen vuorovaikutustekniikka graafisissa käyttöliittymäympäristöissä Esim. tapahtuma, kun painiketta painetaan

Käyttöliittymäympäristön tapahtuma event procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Button #1 was pressed!'); end; event

Olio-ohjelmointi käyttöliittymässä (Lewis & Rieman 1993) Objektit, oliot (object) koodiblokkeja, eivät välttämättä näytöllä näkyviä Luokat, instanssit (class, instance) Aliluokat perivät käyttäytymisensä ja piirteensä (subclass, inheritance, behavior, characteristics) Objektit kommunikoivat viesteillä (messages) Käsittelijät (handlers) vastaanottavat viestit ja suorittavat toimenpiteet Resurssit: tekstitiedostoja tai erityisiä.res-tiedostoja

Objektit, luokat Yleensä voi käyttää varsin pitkälle valmiita luokkia Java AWT, VC++ MFC, Borland VCL käyttöliittymässä näkyvät elementit ovat objekteja, luokkia TMainMenu TLabel TButton TPanel TPopUpMenu TEdit

Käyttöliittymäkehitysympäristöt Käyttöliittymäkehitysympäristöjen tarve tunnistettiin 1980- luvun alussa Seeheim-arkkitehtuurimalli (1984) tarjosi puitteet käyttöliittymäkehitysympäristöjen toteuttamiselle 1990-luvun alussa kehitysympäristöjä alkoi tulla markkinoille tutkimuspuolella mm. Garnet (Myers 1992), josta on sittemmin kehittynyt Amulet

Taustaa Käyttöliittymän toteuttaminen graafisiin käyttöliittymiin vaati aiemmin paljon työtä esim: Hello, World! -- Toteutus kompleksista graafiseen käyttöliittymäympäristöön; hallittava monenlaiset matalan tason asiat: ikkunointi, viestinvälitys, resurssit jne. Taitavat ohjelmoijat tuottavat käyttöliittymät yleiskäyttöisillä ohjelmointikielillä, esim C/C++; tämä suuntaus on kuitenkin vähenemässä erityisten käyttöliittymäkehitysympäristöjen kehittyessä

Käyttöliittymäkehittimiä Shneidermanin jako Software engineering tools: C/C++ w/toolkits/libraries Design tools: MacroMind Director, HyperCard, LabView, Visual Basic, Delphi, JBuilder Eri toimittajat esittelevät kehitysympäristönsä eri nimikkeillä: Rapid Prototyper User Interface Builder UIMS - User Interface Management System UIDE - User Interface Development Environment RAD - Rapid Application Developer

RAD/IDE-välineet mahdollistavat visuaalisen layout-suunnittelun object MainMenu1: TMainMenu Left = 8 Top = 8 object File1: TMenuItem Caption = '&File' object Exit1: TMenuItem Caption = 'E&xit' end end end object Label1: TLabel Left = 56 Top = 8 Width = 61 Height = 13 Caption = 'Hello, World!' end object Button1: TButton Left = 48 Top = 32 Width = 75 Height = 25 Caption = 'OK' TabOrder = 0 end

Esimerkki UIDE-kehitysympäristöstä (Borland Delphi)

Suunnitteluohjeistot käyttöliittymien toteuttamisen tukena

Miksi tarvitaan suunnitteluohjeistoja? Arvaus, paraskaan, ei ole riittävä suunnitteluperusteeksi Käyttäjä on aina oikeassa Käyttäjä EI OLE aina oikeassa Käyttäjät eivät ole suunnittelijoita Suunnittelijat eivät ole käyttäjiä Toimitusjohtajat eivät ole käyttäjiä Vähemmän on enemmän Yksityiskohdat ovat kompastuskiviä, suurimerkityksisiä Aputoiminnot eivät itse asiassa auta ratkaisemaan ongelmia Käytettävyyssuunnittelu on prosessi [Nielsen 1993] Whadya mean, they're not all computer scientists?

Suunnitteluperiaatteet Yleisiä sääntöjä, peukalosääntöjä, jotka ovat muistettavissa helpohkosti Eivät kuitenkaan tarjoa tarkkaa ohjetta siitä, miten tietyssä suunnittelutilanteessa toimitaan käytännössä Vaativat soveltamista Suunnitteluperiaatteita esitellään monissa oppikirjoissa, mm. Shneiderman, Nielsen The idea is to empower the user, not speed up the system.

Tyylioppaat Tiettyyn käyttöliittymäympäristöön sopivia ohjeistoja (erottelu guidelines vs. style guides on joskus häilyvä, olematonkin) Usein myös tiettyyn sovellus-, toimittaja- ja yritysympäristöön liittyviä ohjeita Määrittelevät käyttöliittymän toimintaa toiminnallisesta, visuaalisesta ja teknisestäkin näkökulmasta Toiminnalliset ohjeet voivat liittyä yrityskohtaisiin toimintatapoihin Visuaalinen ohjeisto paitsi logoyhtenäisyyttä myös tiettyjen elementtien sijoittumista aina yhtenäiseen paikkaan näytöllä Teknisestä näkökulmasta määrityksiin voi kuulua esimerkiksi tietyn käyttöliittymäkirjaston käyttö sekä määrittelyjä rajapinnoista muihin järjestelmiin

Tyylioppaan asioita http://www.construx.com/survivalguide/uistyleguide.htm Käyttöliittymäympäristö MS Windows, Apple, GNOME, KDE, Motif, Palm, S40,...? Ikkunointi Dialogit Valikot MDI, SDI, värit, koot,...? dialogien välinen vuorovaikutteisuus/ siirtymät, toiminnallisuus, ulkoasu palkki/ponnahdus, pikakomennot, kontekstisensitiivisyys Painikkeet koko, etäisyys, teksti/kuva, vertikaali/ horisontaali, vakiopainikkeet? Värit lukumäärä, ympäristösidonnaisuus Virheiden hallinta muoto/modaliteetti, informatiivisuus, kuittaus Toimintopalkit mitä toimintoja, miten siirreltävissä, miten muokattavissa Statuspalkit mitä tietoa, miten päivittyy Vierityspalkit onko käytössä, millaisilla alueilla

Example: KDE UI Guidelines, Basics http://developer.kde.org/documentation/standards/kde/style/basics/windows.html Windows Labels Settings Systray SDI: No MDI, just SDI & Pure SDI, co-operating SDI & controlled SDI Capitalization: Book Title / Sentence style, use of colons: options, document options, configuration, session management for non-document specific apps, single click (open)/ right click (quit/options)

Example: KDE Menus File Edit View Go [Application specific menus] Bookmarks Tools Settings Help New Ctrl+N Open... Ctrl+O Open Recent > -------------------- Save Ctrl+S Save As... Revert -------------------- Print... Ctrl+P -------------------- Close Ctrl+W -------------------- Quit Ctrl+Q

KDE Example UI