Presentation on theme: "#8: Try it Out on Users, Then Fix It! Users bring a different context to the situation than do designers (thumbnail plot images provided as a reminder."— Presentation transcript:
#8: Try it Out on Users, Then Fix It! Users bring a different context to the situation than do designers (thumbnail plot images provided as a reminder of plot types were perceived to be real-time thumbnails of the actual plot). Testing early and often requires that testing time be part of the development schedule. –Informational goal: wide variety of tests uncover trouble spots. –Social goal: educate developers to the role of usability testing (not developer evaluation) Testing protocols: –Implementation stagebefore development test mockup (Fork); during development build prototypes; after development to improve documentation, prepare for future improvements.
Usability Testing (cont) Formality of testing: –Informaluser interviews, user observation (video taped, qualitative evaluation) –Quasi-formalusers perform predetermined tasks rather than explore on their own or perform their normal work and tester record errors and measure time. –Formalhighly prescribed tests on sets of testers with control group and treatment groups. Often sequence of atomic tasks that provide quantities of data for statistical analysis. Often instrumented software collects measurements and it is the data rather than the user opinions that are analyzed. Usually conducted by teams of specialized researchers, often on contract, that include psychologists and behavioral scientists that specialize in GUI data collection (seldom programmers) Bibliography (Shneiderman only 1980s book in list)
Bloopers Presentations 11-11:30am Mar 5-2.1&2.2: LesliePrepare PowerPoint slides Mar 7-2.3: Davidson that state and describe Mar 9-2.4&2.5: Davisblooper category, explain Mar : Rogersthe reasons the bloopers Mar : Spillersoccur, and identify checks Mar : Davidsonthat designers can use Mar : Rogers prevent or correct the Mar : Lesliebloopers in this category. Mar &4.3: Spillers Spring Break April 2-5.1: Davis
S30: Using Images Support for handling images is spread across many classes: java.awt.Image is the object that represents images. Image objects are manipulated ay g.drawImage(), Toolkit.getImage(), Applet.getImage(), & MediaTracker. –Getting an image loaded from a server takes a while. The getImage() methods run on a separate thread and return to the GUI thread after they are started. These threads dont actually transfer data until the screen area where they are to be displayed is painted. –Drawing images is just like drawing text except that it is also run on a separate thread so the GUI can go on.
Loading Images Toolkit.getImage(url or filename) Applet.getImage(url or url, name) (use in init() method) url returned by getCodeBase() or getDocumentBase() would be combined with name. Instantiate a MediaTracker instance and point it at the image(s) you want to track and it will provide status information. MT.checkID() and MT.checkAll() are setter methods to begin the load operation. MT.waitForID() and waitForAll() pause the GUI until the load is complete
Building Images from Scratch Image img = createImage(new MemoryImageSource(width,height, pixelArray, startPixel, w)
Displaying Images G.drawImage(image,x,y,observer) G.drawImage(image,x,y,newWidth,newHeight, observer) –Given that the image is being displayed on a child of Component and that Component implements the Observer Interface, the child is notified whenever the image is loaded and this causes the childs repaint() to be invoked. –drawImage does not draw complete images, so after a call the program may need to wait. ImageDisplayer