AMS-case forts. Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt
Objekt-interaktor med valg Relatert objekt velges ofte blant mange kandidater Output av kandidat-sett Input av objekt fra settet Inkluderer ofte spesiell visning av valgt objekt
Alternativer Alternativ 1: Elementer velges i venstre sett og flyttes til høyre eller omvendt Alternativ 2: Elementer legges til høyre sett og fjernes (forsvinner aldri fra venstre sett) Spørsmål: Hva skjer om filter endres til å utelate elementer i høyre sett?
Alternativ 1 Interaktor for hvert sett To sett knapper og add- og removefunksjoner
Interaktor-sammensetninger hierarchy message list single message
Sammensetning Seleksjon 1 Output: Mail Node-hierarki Input: Mailbox Seleksjon 2 Output: Sett av relaterte Messages Input: Message-element Melding Output: Message-element
Sammensetning Seleksjon 1 Output: Mail Node-hierarki Input: Mailbox Seleksjon 2 Output: Sett av relaterte Messages Input: Message-element Melding Output: Message-element
Modelleringsoppgave Gitt domenemodellen: Scenario En kunde ringer sentralbordet og vil snakke med en ansatt hun har hatt kontakt med. Hvem skal hun settes over til? Brukeren skal kunne finne kunden blant alle registrerte kunder se hvem denne kunden har hatt kontakt med velge hvilken å sette over telefonen til Modeller dialogelementene som trengs
Løsning To seleksjonsinteraktorer valg av kunde valg av relatert ansatt Én funksjon beregne sett an ansatte for valgt kunde, basert på kontakt-relasjonen Realisering (to alternativer): to Listbox er med single selection et tre-view, med ansatte på nivået under kunder Takk for hjelpen!
Generelt problem Dialogmodellering er bra for å beskrive funksjonen til enkelt-komponenter som finnes i GUI-toolkits ønsket funksjon og finne passende toolkit-elementer grov-oppførselen til sammenkoblede UI-elementer gjenbrukbare UI-strukturer Det er verre å bestemme hvordan UI-elementene skal settes samme, slik at oppgaver blir lettere å gjennomføre velge overordnet grensesnittstruktur Må styres av eksplisitte modeller av hva brukeren ønsker å oppnå dvs. målet hvilke oppgaver brukeren derfor må utføre
Oppgave-basert design Oppgavestrukturen sier noe om når de ulike UI-komponentene er relevante
UI modelling - perspectives Task models How are tasks actually performed? What is the user supposed to be able to do? Dialog model What functional (abstract) UI elements do we need? How are they composed? Look & feel model How are objects and actions visualized and laid out? What are the interaction details
Oppgavemodellen kan ses på som krav
TaskMODL example 1 Read email User Email client Mailboxes Mailbox {} In Out conceptual model 1.1 Get new email In task structure messages 1.2 Manage email messages message Manage message Read message Transfer message Message A mailbox contains messages User performs Read email using Email client The current set of mailboxes provides the task context Get new email uses In mailbox and provides Manage email with a set of messages Manage email implies acting on each individual message in the input set A message is transferred after it is read
Bruk av telefon... Bruke telefon alternativer sekvens Ringe ut Ta imot Summetone Finne nr. nr Taste nr. Samtale Lagre nr. Notere Huske nr? veksling betinget overlappende nr? flyt
Sequence relations constraints for the super-/subtask part-of relation Aggregation Order Sequence Choice a b c d a, b, c a, b, d c, a, b d, a, b cardinality provides additional constrains a b c d c or d can in addition occur in between a and b
Oppgaver for AMS-case Med utgangspunkt i domenemodell opprette/registrere ulike typer elementer/objekter finne elementer basert på attributter og relaterte elementer Med utgangspunkt i scenarier beskrive scenario list opp og detaljér oppgaver
Typisk struktur Domenemodellen beskriver begreper og relasjoner nødvendig informasjon for opprettelse av (konfigurasjoner av) elementer Oppgavemodellen beskriver forutsetninger/premiss (pre-conditions) oppgave(struktur) konsekvens/resultatet (mål, post-condition) Relativt opplagt oppgavestruktur ved opprettelse av elementer
Eier Dyr Avtale Opprette elementer?
Opprette avtale Opprette avtale krever en eier Dyr identifiseres eller registreres om mulig, basert på kontekstuell informasjon Resultat: Avtale relatert til eier og dyr
Dyr Eier Finne elementer
Søk vha. attributter Flere former for søk direkte vha. spesifikke enkeltverdier alternativer vha. sett av intervaller og enkeltverdier wild-cards komplekse uttrykk eller betingelser Søk på attributt(er) kan derfor være mer komplekst enn det ser ut
Finne elementer alternativer
Finne avtaler + = alternativt
Designeksempel Scenario En dame ringer: Hei, Jeg tror Schnauseren min bør kastreres. Kan dere se på den til uken? Hvilke oppgaver krever dette av AMS-brukeren? søke etter og evt. registrere eier og dyr finne ansatt som kan kastrere foreslå tidspunkt basert på tilgjengelighet la eieren velge tidspunkt
Opprette avtale Opprette avtale krever en eier Dyr identifiseres eller registreres om mulig, basert på kontekstuell informasjon Resultat: Avtale relatert til eier og dyr Hva slags føringer legger dette på dialogen?
Dialogmodell Interaktorer for å etablere preconditions Finn systemfunksjoner Koble sammen
Deldialog for dyr
Designeksempel Scenario En dame ringer: Hei, Schnauseren min har oppført seg så merkelig etter at dere kastrerte den i forrige uke. Kan dere se på den igjen før helga? Hvilke oppgaver krever dette av AMS-brukeren? søk etter tidligere avtale tid (forrige uke), dyr (Schnauser) og behandling (kastrasjon) identifikasjon av eier tidligere avtale, dyr (Schnauser) og evt. kjønn (stemmen) opprettelse av ny avtale dyr, eier, tilgjengelig behandler ønsket tidspunkt