Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI)

Like dokumenter
EKSAMEN I FAG TDT MMI Lørdag 11. august 2012 Tid: kl

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl

EKSAMEN I FAG TDT4180 MMI Lørdag 15. august 2009 Tid: kl

EKSAMEN I FAG TDT4180 MMI Onsdag 28. mai 2008 Tid: kl

EKSAMEN I FAG TDT MMI Mandag 15. august 2011 Tid: kl

EKSAMEN I FAG TDT MMI Lørdag 26. mai 2012 Tid: kl

EKSAMEN I FAG TDT MMI Lørdag 4. juni 2005 Tid: kl

EKSAMEN I FAG TDT4180 MMI Lørdag 21. august 2010 Tid: kl

EKSAMEN I FAG TDT MMI Mandag 4. august 2008 Tid: kl

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP. Løsningsforslag

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl

Løsningsforslag (Løsningene i kursiv)

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

Oppgave 1 (30%) Grensesnittdesign

Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon

EKSAMEN I FAG TDT4180 MMI Onsdag 18. mai 2009 Tid: kl

EKSAMEN I FAG TDT4180/IT2401 MMI Onsdag 23. mai 2007 Tid: kl

Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon

EKSAMEN I FAG TDT MMI Tirsdag 1. juni 2004 Tid: kl

Grafisk Brukergrensesnitt

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP LØSNINGSFORSLAG

Information search for the research protocol in IIC/IID

JList, JTree, JTable. JList

Pensum SWING/MCV delen av TDT4180- MMI. Vår 2009 Dag Svanæs, IDI

EKSAMENSOPPGAVE I SØK 1002 INNFØRING I MIKROØKONOMISK ANALYSE

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

Grafiske brukergrensesnitt med Swing og AWT

Gjennomgang av eksamen H99

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

IN2010: Algoritmer og Datastrukturer Series 2

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamensoppgave i SANT2100 Etnografisk metode

EKSAMEN I FAG TDT4180 Menneske-maskin-interaksjon. Lørdag 27. juni 2006 Kl

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til Ant. oppgaver 6

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Eksamensoppgave i FIN3006 / FIN8606 Anvendt tidsserieøkonometri

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Elektronisk termostat med spareprogram. Lysende LCD display øverst på ovnen for enkel betjening.

EKSAMENSOPPGAVE I BI2014 MOLEKYLÆRBIOLOGI

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

TB-615 / TB-617 Wireless slim keyboard. EN User guide SE Användarhandledning FI Käyttöohje DK Brugervejledning NO Bruksanvisning

EKSAMEN I FAG SIF MMI OG GRAFIKK Lørdag 16. august 2003 Tid: kl

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Eksamensoppgave i POL1003 Miljøpolitikk, energipolitikk og ressursforvaltning

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4100 Objektorientert programmering

Slope-Intercept Formula

EKSAMENSOPPGAVE I BI2034 Samfunnsøkologi EXAMINATION IN: BI Community ecology

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

GYRO MED SYKKELHJUL. Forsøk å tippe og vri på hjulet. Hva kjenner du? Hvorfor oppfører hjulet seg slik, og hva er egentlig en gyro?

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

Dynamic Programming Longest Common Subsequence. Class 27

case forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg

MVC i Swing, trinn for trinn

Elektronisk innlevering/electronic solution for submission:

INF1010. Grensesnittet Comparable<T>

Eksamensoppgave i SØK1012 Makroøkonomisk analyse / Macroeconomic Analysis

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Kontinuasjonseksamensoppgave i TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

Moving Objects. We need to move our objects in 3D space.

Fakultet for informasjonsteknologi, Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN I. TDT42378 Programvaresikkerhet

UNIVERSITETET I OSLO

GUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

HONSEL process monitoring

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

TEKSTER PH.D.-KANDIDATER FREMDRIFTSRAPPORTERING

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

EKSAMENSOPPGAVE I FAG TKP 4105

Eksamensoppgave i GEOG1004 Geografi i praksis Tall, kart og bilder

MVC Model, View, Controller

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

AMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Norges Informasjonsteknologiske Høgskole

Eksamensoppgave i SØK2008 Offentlig økonomi

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Eksamensoppgave i TMA4123/TMA4125 Matematikk 4M/4N

LO191D/LC191D Videregående programmering

Eksamensoppgave i IFUD1025 Programmering i Java

Eksamensoppgave i SOS1000 Innføring i sosiologi

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

TDT4100 Objektorientert programmering

Transkript:

Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI) Faglig kontakt under eksamen: Dag Svanæs Tlf.: 91897536 Eksamensdato: 5. August Eksamenstid (fra-til): 1500-1900 Hjelpemiddelkode/Tillatte hjelpemidler: D / Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt enkel kalkulator tillatt. Annen informasjon: Målform/språk: Bokmål Antall sider: 9 (inklusive forsiden) Antall sider vedlegg: 0 Merk! Studenter finner sensur i Studentweb. Har du spørsmål om din sensur må du kontakte instituttet ditt. Eksamenskontoret vil ikke kunne svare på slike spørsmål.

Oppgave 1. Grensesnittdesign (30%) Figuren over viser simuleringsspillet POPULASJON til bruk i undervisning. Spillet gir brukeren mulighet til å teste ut hvordan to populasjoner av dyr (rever og kaniner) gjensidig påvirker hverandre over tid (0 til 100 uker). Rewind knappen setter tiden tilbake til 0. Play knappen starter en simulering. Den animeres, slik at Pause knappen kan brukes til å stopp den. End knappen flytter tidsmarkøren til uke 100. Både populasjoner og tid kan endres v.h.a. slidere. Populasjonene vises i de to JLabel objektene under JSlider objektene, men kan ikke endres her. a) Hva menes med et visuelt gestalt, og hvorfor er gestaltteorien fra psykologien viktig i forhold til å utforme brukergrensesnitt. b) Analyser skissen over i forhold til bruk av gestaltprinsipper. 1

Oppgave 2. Brukersentrert design (30%) ISO standarden 9241-210 (2010) angir fasene i en brukersentrert systemutviklingsprosess som vist i figuren under: a) Hva menes med begrepet context of use, og hvorfor er dette et sentralt begrep i interaksjonsdesign? b) Forklar denne figuren, og angi tre eksempler på brukersentrerte aktiviteter for hver av de fire fasene i iterasjonen. 2

Oppgave 3. Brukergrensesnittkonstruksjon (40%) Skissen til programmet POPULASJON i oppgave 1 skal implementeres i JAVA/SWING. Du kan anta at det finnes en algoritme som beregner populasjonen av rever og kaniner i uken etter basert på verdiene av rever og kaniner. a) Hvordan vil du bruke Model-View-Controller (MVC) til å skille presentasjon og data i din løsning av dette programmet? b) Forklar hovedtrekkene i din løsning i forhold til valg av modell/modeller. c) Beskriv modellen/modellene i detalj. d) Vis klassediagrammet for løsningen din. e) Tegn opp sekvensdiagrammet når det hele startes opp. Forklar. f) Tegn opp sekvensdiagrammet når brukeren endrer verdien på antall rever. Forklar. g) Tegn opp sekvensdiagrammet når brukeren trykke Play. Forklar. h) Tegn opp sekvensdiagrammet når brukeren endrer verdien på slideren for tid. Forklar. Du trenger ikke forholde deg til layout eller hvordan komponentene tegnes ut. Du trenger heller ikke forklare hvordan vinduene for uttegning av øya og uttegning av grafene skal implementeres. Du kan anta at disse implementeres som subklasser av JPanel, men du må angi hvilke metoder disse skal implementere. For hver av komponentklassene så er relevante metoder og hjelpeklasser listet i appendikset bakerst. Merk: Det forlanges ikke at du skal anvende metoder eller klasser som ikke er listet i appendikset. 3

Relevante klasser, interface og tilhørende metoder Det følgende er klippet og limt fra den offisielle dokumentasjonen på java.sun.com. class PropertyChangeSupport This is a utility class that can be used by objects that support bound properties. You can use an instance of this class as a variable in your object and delegate various work to it. public void addpropertychangelistener(propertychangelistener listener) Add a PropertyChangeListener to the listener list. The listener is registered for all properties. listener - The PropertyChangeListener to be added public void removepropertychangelistener(propertychangelistener listener) Remove a PropertyChangeListener from the listener list. listener - The PropertyChangeListener to be removed public void firepropertychange(string propertyname, Object oldvalue, Object newvalue) Report a bound property update to any registered listeners. No event is fired if old and new are equal and non-null. propertyname - The name of the property that was changed. oldvalue - The old value of the property. newvalue - The new value of the property. interface PropertyChangeListener A "PropertyChange" event gets fired whenever an object changes a "bound" property. You can register a PropertyChangeListener with a source object so as to be notified of any bound property updates. public void propertychange(propertychangeevent evt) This method gets called when a bound property is changed. evt - A PropertyChangeEvent object describing the event source and the property that has changed. 4

class PropertyChangeEvent A "PropertyChange" event gets delivered whenever an object changes a "bound" or "constrained" property. A PropertyChangeEvent object is sent as an argument to the PropertyChangeListener method. Normally PropertyChangeEvents are accompanied by the name and the old and new value of the changed property. Null values may be provided for the old and the new values if their true values are not known. An event source may send a null object as the name to indicate that an arbitrary set of if its properties have changed. In this case the old and new values should also be null. public String getpropertyname() Gets the programmatic name of the property that was changed. The name of the property that was changed. May be null. public Object getnewvalue() Gets the new value for the property, expressed as an Object. The new value for the property. May be null public Object getoldvalue() Gets the old value for the property, expressed as an Object. The old value for the property. May be null. class JPanel JPanel is a generic lightweight container. public void addmouselistener(mouselistener l) Adds the specified mouse listener to receive mouse events from this component. l - the mouse listener 5

class JButton An implementation of a push button public JButton(Icon icon) Creates a button with an icon. icon - the image that the button should display public void addactionlistener(actionlistener l) Adds the specified action listener to receive action events from this JButton. public void seticon(icon defaulticon) Sets the button's icon. interface ActionListener The listener interface for receiving action events. The class that is interested in processing an action event implements this interface, and the object created with that class is registered with a component, using the component's addactionlistener method. When the action event occurs, that object's actionperformed method is invoked. public void actionperformed(actionevent e) Invoked when an action occurs. Class ActionEvent A semantic event which indicates that a component-defined action occured. This high-level event is generated by a component (such as a Button) when the component-specific action occurs (such as being pressed). The event is passed to every ActionListener object that registered to receive such events using the component's addactionlistener method. The object that implements the ActionListener interface gets this ActionEvent when the event occurs. The listener is therefore spared the details of processing individual mouse movements and mouse clicks, and can instead process a "meaningful" (semantic) event like "button pressed". public Object getsource() The object on which the Event initially occurred. The object on which the Event initially occurred. 6

class JLabel A display area for a short text string. A label does not react to input events. public void settext(string text) Defines the single line of text this component will display. Class JSlider A component that lets the user graphically select a value by sliding a knob within a bounded interval. public int getvalue() Returns the sliders value. public void setvalue(int n) Sets the sliders current value. public void addchangelistener(changelistener l) Adds a ChangeListener to the slider. Interface ChangeListener Defines an object which listens for ChangeEvents. public void statechanged(changeevent e) Invoked when the target of the listener has changed its state. 7

Class ChangeEvent ChangeEvent is used to notify interested parties that state has changed in the event source. public Object getsource() The object on which the Event initially occurred. The object on which the Event initially occurred. 8