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

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

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

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

Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI)

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 TDT MMI Lørdag 4. juni 2005 Tid: kl

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

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

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

Løsningsforslag (Løsningene i kursiv)

Oppgave 1 (30%) Grensesnittdesign

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

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

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

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

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

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

Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

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

UNIVERSITETET I OSLO

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

Slope-Intercept Formula

Vedlegg 2 Dokumentasjon fra TVM leverandør

Grafisk Brukergrensesnitt

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

EN Skriving for kommunikasjon og tenkning

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

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

Elektronisk innlevering/electronic solution for submission:

HONSEL process monitoring

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

UNIVERSITETET I OSLO

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

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

Information search for the research protocol in IIC/IID

IN2010: Algoritmer og Datastrukturer Series 2

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

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

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

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

MID-TERM EXAM TDT4258 MICROCONTROLLER SYSTEM DESIGN. Wednesday 3 th Mars Time:

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

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?

Public roadmap for information management, governance and exchange SINTEF

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

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

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

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

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

UNIVERSITETET I OSLO

Grafiske brukergrensesnitt med Swing og AWT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Smart High-Side Power Switch BTS730

Løsningsforslag til slutteksamen i SESM3401 Styring av mekatroniske systemer

Dynamic Programming Longest Common Subsequence. Class 27

Exercise 1: Phase Splitter DC Operation

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Administrasjon av postnummersystemet i Norge Post code administration in Norway. Frode Wold, Norway Post Nordic Address Forum, Iceland 5-6.

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Andrew Gendreau, Olga Rosenbaum, Anthony Taylor, Kenneth Wong, Karl Dusen

Time & Attendance Timeregistrering. End User Sluttbruker

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Trådløsnett med Windows XP. Wireless network with Windows XP

Call function of two parameters

UNIVERSITETET I OSLO

Perpetuum (im)mobile

Kontinuasjonseksamensoppgave i TDT4100 Objektorientert programmering

AKENEOPIM User Guide Version 1.6. Catalog settings USER GUIDE CATALOG SETTINGS. Version 1.6. Copyright AKENEO SAS The Open Source PIM

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Emneevaluering GEOV272 V17

XML enabled database. support for XML in Microsoft SQL Server 2000 & Martin Malý

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Generalisering med vektor tiles

TEKSTER PH.D.-KANDIDATER FREMDRIFTSRAPPORTERING

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

1 User guide for the uioletter package

Level Set methods. Sandra Allaart-Bruin. Level Set methods p.1/24

Databases 1. Extended Relational Algebra

Den europeiske byggenæringen blir digital. hva skjer i Europa? Steen Sunesen Oslo,

Neural Network. Sensors Sorter

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

Trigonometric Substitution

STILLAS - STANDARD FORSLAG FRA SEF TIL NY STILLAS - STANDARD

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Eksamensoppgave i TDT4100 Objektorientert programmering

AVSLUTTENDE EKSAMEN I/FINAL EXAM. TDT4237 Programvaresikkerhet/Software Security. Mandag/Monday Kl

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Utstyr for avstandsmåling. Dommersamling 14. mars 2015 Stein Jodal

buildingsmart Norge seminar Gardermoen 2. september 2010 IFD sett i sammenheng med BIM og varedata

Bestille trykk av doktoravhandling Ordering printing of PhD Thesis

Tips for bruk av BVAS og VDI i oppfølging av pasienter med vaskulitt. Wenche Koldingsnes

Windows Server 2008 Hyper-V, Windows Server 2008 Server Core Installation Notes

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

2018 ANNUAL SPONSORSHIP OPPORTUNITIES

Transkript:

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Lørdag 21. august 2010 Tid: kl. 0900-1300 Bokmål Sensuren faller 13. september 2010 Hjelpemiddelkode: D Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt enkel kalkulator tillatt. 1

Oppgave 1 (25%) Grensesnittdesign Når man skal designe et brukergrensesnitt så står man ofte overfor valg av interaksjonsstil (eng.: interaction style). a) På generelt grunnlag, hva er fordeler og ulemper med hver av de 3 interaksjonsstilene (I) direktemanipulasjon, (II) menybasert og (III) tekstlig kommandospråk? Anta at du skal lage et brukergrensesnitt til et PC-program som rektorer i barneskoler skal bruke til å lage ukeplaner for alle klassene på skolen sin. En rektor beskrev denne planleggingsoppgaven som et stort puslespill der timer, lærere, klasser og klasserom skal passe sammen best mulig. b) Hvilken interaksjonsform tror du vil være best for dette PCprogrammet? Begrunn svaret. Oppgave 2 (35%) Designprosessen Du er ansatt på HCI-ekspert i et IT-firma som skal planlegge et lite utviklingsprosjekt for helsevesenet. Din jobb er å sørge for nødvendig brukerkontakt i alle faser av prosjektet. Det skal utvikles en web-basert løsning for familier til barn som er under opptrening etter trafikkulykker. Systemet skal fungere som kommunikasjonskanal og en slags min side mellom familien og alle involverte i det offentlige (for eksempel lege, fysioterapeut, NAV, apotek, sykesøster på skolen). Dere har begrenset med ressurser i prosjektet, og har kun råd til tre brukernære aktiviteter. (Eksempel på slike aktiviteter er feltstudie, intervjuer, fokusgruppe, designworkshop, papirprototyping m/brukbarhetstesting, logging av bruk). Hvilke tre aktiviteter vil du velge, og hvor vil du legge dem i utviklingsløpet (tidlig, midt, sent)? Begrunn svaret. 2

Oppgave 3 (40%) Grensesnittkonstruksjon På bildet over ser man en skisse til et skjermbilde for en Java/Swing applet der brukeren skal kunne komponere sitt eget armbåndsur. Brukeren skal kunne se tre klokker samtidig, og for hver av dem kunne velge farge på remmen, viserne, bakgrunn og låsen. I eksempelet over er klokke nr. 1 valgt. Brukeren skifter farge på valgt armbåndsur v.h.a. combobokser. Når brukeren for eksempel endrer farge på remmen, så vil fargen automatisk oppdateres på valgt armbåndsur. Anta at det kun finnes fire farger: rød, grønn, blå og gul. Når brukeren skifter valgt armbåndsur, så vil comboboksene oppdateres med valgte farger for dette uret. 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. a) Hvordan vil du bruke Model-View-Controller (MVC) til å skille presentasjon og data i din løsning av dette programmet? Forklar hovedtrekkene i din løsning i forhold til valg av modell/modeller. b) Beskriv modellen/modellene i detalj. c) Tegn opp hvilke instanser/objekter som eksisterer når programmet kjører. Hva er deres relasjoner/referanser til hverandre? Bruk enkle firkanter for å angi instanser/objekter og piler for å angi relasjoner/referanser. d) Tegn opp sekvensdiagrammet når det hele startes opp. Forklar. e) Tegn opp sekvensdiagrammet når klokke nr. 1 er valgt og brukeren skifter farge på remmen til grønn. Forklar. f) Tegn opp sekvensdiagrammet når klokke nr. 3 velges. Alle combobokser skal da oppdateres til de verdier som klokke nr. 3 har. Du trenger ikke forholde deg til layout, eller hvordan klokkene tegnes ut. 3

Hint: Et JPanel eller en subklasse av JPanel kan godt være usynlig (ha samme farge og rammefarge som bakgrunnen) og brukes til å samle flere Swing-komponenter. Appendiks: 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. 4

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. 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. 5

class JPanel JPanel is a generic lightweight container. public Component add(component comp) Appends the specified component to the end of this container. class JComboBox A component that combines a button or editable field and a drop-down list. The user can select a value from the drop-down list, which appears at the user's request. public void addactionlistener(actionlistener l) Adds the specified action listener to receive action events from this JComboBox. public Object getselecteditem() Returns the current selected item. public void setselecteditem(object anobject) Sets the selected item in the combo box display area to the object in the argument. 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. 6

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. Class JRadioButton An implementation of a radio button -- an item that can be selected or deselected, and which displays its state to the user. Used with a ButtonGroup object to create a group of buttons in which only one button at a time can be selected. (Create a ButtonGroup object and use its add method to include the JRadioButton objects in the group.) public void addactionlistener(actionlistener l) Adds the specified action listener to receive action events from this JComboBox. public boolean isselected() Returns the state of the button. True if the toggle button is selected, false if it's not. true if the radiobutton is selected, otherwise false 7

public void setselected(boolean b) Sets the state of the radiobutton. Note that this method does not trigger an actionevent. b - true if the button is selected, otherwise false class ButtonGroup This class is used to create a multiple-exclusion scope for a set of buttons. Creating a set of buttons with the same ButtonGroup object means that turning "on" one of those buttons turns off all other buttons in the group. A ButtonGroup can be used with any set of objects that inherit from AbstractButton. Typically a button group contains instances of JRadioButton, JRadioButtonMenuItem, or JToggleButton. Initially, all buttons in the group are unselected. public void add(abstractbutton b) (for example JRadioButton) Adds the button to the group. b - the button to be added 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. 8