CS 349 / SE 382 Custom Components. Professor Michael Terry February 6, 2009

Size: px
Start display at page:

Download "CS 349 / SE 382 Custom Components. Professor Michael Terry February 6, 2009"

Transcription

1 CS 349 / SE 382 Custom Components Professor Michael Terry February 6, 2009

2 Today s Agenda Midterm Notes A2 Scroll XOR demo A3 super special sneak preview Clarifications on Fitt s Law Undo Custom components CS 349 / SE 382 / 2

3 Midterm Notes Can comprehend UI code Design patterns, listeners, delegates Basic X calls, like XNextEvent Basics of affine transforms Can write basic UI code Don t need to know specific API calls In-depth understanding of concepts covered in lecture Will be mixture of short answer and code-oriented questions Emphasis is on material covered in lecture and assignments No example midterms provided CS 349 / SE 382 / 3

4 A2 Scroll Demo CS 349 / SE 382 / 4

5 A3 Super Special Sneak Preview

6 Questions? CS 349 / SE 382 / 6

7 Fitt s Law Clarifications CS 349 / SE 382 / 7

8 Finishing Up Undo CS 349 / SE 382 / 8

9 Creating Custom Components What is a custom component? Why do we need to create them? Whose perspectives do we need to consider? CS 349 / SE 382 / 9

10 Component Desiderata Custom component should: Address a very specific need Do one, well-defined task better than existing methods Be usable Be reusable, customizable across applications To meet these goals, we need to consider two perspectives: User s perspective Developer s perspective CS 349 / SE 382 / 10

11 User s Perspective What problem is person trying to solve? How do they conceptualize the problem? How do they currently solve the problem? What tools, information do they make use of in solving the problem? How do we get at this information? CS 349 / SE 382 / 11

12 Example: Cockpit Design As cockpits went digital, analog controls replaced with digital controls But problems crept up Why? From Hutchins How a Cockpit Remembers Its Speeds (1995) CS 349 / SE 382 / 12

13 Example: Cockpit Design Pilots don t just make use of the airspeed number Also use speed bugs to indicate minimum speeds for various flying weights Spatial relation of needle to bugs becomes just as critical as actual airspeed Digital airspeed indicator can lose these essential properties From Hutchins How a Cockpit Remembers Its Speeds (1995) CS 349 / SE 382 / 13

14 Example: Undo/Redo in Photoshop Users sometimes rapidly execute undo/redo But are not fixing a mistake Instead, they are assessing result of last action Need to look beyond what is being done, and ask why it is being done What purpose is activity serving? User may not be able to tell you Why not? CS 349 / SE 382 / 14

15 Designing for Users Users behavior can become automatic over time They forget why they formed their strategies Observations, interviews help us uncover user s real needs and motivations In designing new components and interfaces, we must understand users and the larger context of their work to be successful CS 349 / SE 382 / 15

16 Component Design Rules of Thumb User should be able to: Recognize affordances of component Develop an accurate mental model of component and its usage Component should: Be consistent with rest of interface and its components Be congruent with other metaphors in interface, world Afford experimentation CS 349 / SE 382 / 16

17 Affordances An object s affordances are those properties that suggest its usage A door panel affords pushing A door handle affords pulling CS 349 / SE 382 / 17

18 Affordances CS 349 / SE 382 / 18

19 Affordances Can use metaphors to suggest affordances Metaphor of desktop, files, folders, trash can But remember: affordances may not transfer from physical to digital world Don t blindly mimic real-world controls Pay heed to affordances unique to physical and digital world Example: Rotary knob Why does a digital recreation of rotary knob fail to transfer affordances with current WIMP interfaces? CS 349 / SE 382 / 19

20 Mental Model When interacting with an object, we create an internal model of how it functions We develop hypotheses regarding how it will respond to particular actions Mental model is often incomplete and inaccurate Revised as our understanding increases Also referred to as conceptual model CS 349 / SE 382 / 20

21 Mental Model Example What is mental model of thermostat? What is a (not uncommon) incorrect mental model of a thermostat? CS 349 / SE 382 / 21

22 Affordances and Mental Models What influences our perceptions of affordances and our construction of mental models? A result of individual histories and cultural background Examples of mental models being incorrect when going to a foreign country? Or misinterpreted affordances in a foreign country? CS 349 / SE 382 / 22

23 Consistency Does component conform to rest of interface s conventions? Consider both appearance and interaction Does a component violate consistency? Inconsistency can lead to User frustration Increased learning time Errors Inconsistency should be carefully considered CS 349 / SE 382 / 23

24 Congruence Is component congruent with our understanding of the world? Are metaphors properly used? Can we transfer mental models from real-world or other phenomena to our understanding of component and its usage? CS 349 / SE 382 / 24

25 Component Feedback Does component effectively communicate: That it is enabled/disabled? That it is active/inactive? Its current state? Does it adhere to principles of consistency and congruency across these dimensions? Does feedback communicate affordances? Can user build a suitable mental model? CS 349 / SE 382 / 25

26 Guidelines Principles of direct manipulation can serve as one set of guidelines Enable rapid, incremental feedback Allow reversibility of actions Allow only syntactically correct actions Consider human-computer dialogue Prompt, echoing of input, trigger to start command, acknowledgement, and response Is system providing adequate feedback at all of these stages? If not, proper use of system not apparent CS 349 / SE 382 / 26

27 Developer s Perspective Goal is a self-contained, customizable component Should do one thing, and only one thing, and do it well Concepts of affordances, mental models just as applicable to component design (its architecture) as its interactive counterpart Other developers should be able to construct mental model of how to integrate your component into their application Component s architecture should have affordances suggesting its uses and how it can be extended In other words, the API should be usable CS 349 / SE 382 / 27

28 Developer s Perspective Separate concerns Model-view-controller split Functionality that can change should be factored out, delegated to separate classes Create loose coupling between component and other parts of interface Design patterns help partition responsibilities, separate concerns Observer, command, strategy, composite, factory Also provide a common language to increase understanding between developers Suggests affordances, mental models CS 349 / SE 382 / 28

29 The Model Part of the Component Decide if it is appropriate to have your own data model Reuse existing models if they make sense Example: If you are creating a new rendering of a list of information, use ListModel rather than creating own model If you need to define a new model, make it an interface Allows others to create adapters for their data to conform to your component Model interfaces often only provide accessor methods Why? CS 349 / SE 382 / 29

30 The Model Part of the Component Provide a listener interface to notify others when the model changes Reuse existing listener interfaces where appropriate PropertyChangeListener / PropertyChangeEvent a very flexible mechanism for this Consider granularity of listener updates JSlider as an example Model should be completely independent from any GUI code Should be able to test it by itself CS 349 / SE 382 / 30

31 The View Part of the Component In Java, generally work in realm of javax.swing package, rather than AWT AWT s components are heavyweight : Underlying platform s widgets Swing s components are lightweight : Completely implemented in Java CS 349 / SE 382 / 31

32 The View Part of the Component Typically derive new class from JComponent or JPanel Nearly identical components, but imply different uses JComponent implies a single thing A JPanel implies a collection of things Override paintcomponent() to perform custom painting of component CS 349 / SE 382 / 32

33 The View Part of the Component Implement and attach interaction listeners This is the controller part of MVC Coordinates view and model Hide interaction listeners from public interface CS 349 / SE 382 / 33

34 Integrating Model and View Provide methods to get/set model of the custom component In setmodel() method, you must: Unregister listener in existing model Register listener with new model Update your view (typically by calling repaint()) CS 349 / SE 382 / 34

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009 CS 349 / SE 382 Design Patterns Professor Michael Terry January 21, 2009 Today s Agenda More demos! Design patterns CS 349 / SE 382 / 2 Announcements Assignment 1 due Monday at 5PM! CS 349 / SE 382 / 3

More information

Design Patterns. it s about the Observer pattern, the Command pattern, MVC, and some GUI. some more

Design Patterns. it s about the Observer pattern, the Command pattern, MVC, and some GUI. some more Lecture: Software Engineering, Winter Semester 2011/2012 some more Design Patterns it s about the Observer pattern, the Command pattern, MVC, and some GUI Design Pattern *...+ describes a problem which

More information

Human-Computer Interaction IS4300

Human-Computer Interaction IS4300 Human-Computer Interaction IS4300 1 Ethnography Homework I3 2 1 Team Projects User analysis. Identify stakeholders (primary, secondary, tertiary, facilitating) For Primary Stakeholders Demographics Persona(s)

More information

Model-View-Controller

Model-View-Controller Model-View-Controller Motivation The MVC pattern Using the Observer pattern in Java 1 MVC Rationale Multiple views, loosely coupled to the underlying data model. 2 Multiple Views 3 Multiple Views Many

More information

Widgets. Overview. Widget. Widgets Widget toolkits Lightweight vs. heavyweight widgets Swing Widget Demo

Widgets. Overview. Widget. Widgets Widget toolkits Lightweight vs. heavyweight widgets Swing Widget Demo Widgets Overview Widgets Widget toolkits Lightweight vs. heavyweight widgets Swing Widget Demo Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, progress

More information

SBD:Interaction Design

SBD:Interaction Design analysis of stakeholders, field studies ANALYZE Problem scenarios claims about current practice SBD:Interaction Design metaphors, information technology, HCI theory, guidelines DESIGN Activity scenarios

More information

Advanced Effects in Java Desktop Applications

Advanced Effects in Java Desktop Applications Advanced Effects in Java Desktop Applications Kirill Grouchnikov, Senior Software Engineer, Amdocs kirillcool@yahoo.com http://www.pushing-pixels.org OSCON 2007 Agenda Swing pipeline Hooking into the pipeline

More information

Interaction Techniques. SWE 432, Fall 2016 Design and Implementation of Software for the Web

Interaction Techniques. SWE 432, Fall 2016 Design and Implementation of Software for the Web Interaction Techniques SWE 432, Fall 2016 Design and Implementation of Software for the Web Today What principles guide the design of usable interaction techniques? How can interaction designs help support

More information

CS 251 Intermediate Programming GUIs: Components and Layout

CS 251 Intermediate Programming GUIs: Components and Layout CS 251 Intermediate Programming GUIs: Components and Layout Brooke Chenoweth University of New Mexico Fall 2017 import javax. swing.*; Hello GUI public class HelloGUI extends JFrame { public HelloGUI ()

More information

Widget. Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down

Widget. Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down Widgets Jeff Avery Widget Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down menus, spinners, file dialog boxes, etc are

More information

Organization of User Interface Software

Organization of User Interface Software Organization of User Interface Software Administration Questions about assignments due and assignments assigned 2 What we will talk about Ways to organize UI code Different models of user interfaces as

More information

Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.

Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms. Java GUI Windows Events Drawing 1 Java GUI Toolkits Toolkit AWT Description Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.

More information

UI Software Organization

UI Software Organization UI Software Organization The user interface From previous class: Generally want to think of the UI as only one component of the system Deals with the user Separate from the functional core (AKA, the app

More information

Lecture 5: Java Graphics

Lecture 5: Java Graphics Lecture 5: Java Graphics CS 62 Spring 2019 William Devanny & Alexandra Papoutsaki 1 New Unit Overview Graphical User Interfaces (GUI) Components, e.g., JButton, JTextField, JSlider, JChooser, Containers,

More information

HUMAN COMPUTER INTERACTION

HUMAN COMPUTER INTERACTION HUMAN COMPUTER INTERACTION 3. USABILITY AND CONCEPTUAL MODEL I-Chen Lin, National Chiao Tung University, Taiwan "One most unfortunate product is the type of engineer who does not realize that in order

More information

Undo/Redo. Principles, concepts, and Java implementation

Undo/Redo. Principles, concepts, and Java implementation Undo/Redo Principles, concepts, and Java implementation Direct Manipulation Principles There is a visible and continuous representation of the domain objects and their actions. Consequently, there is little

More information

Widgets. Widgets Widget Toolkits. User Interface Widget

Widgets. Widgets Widget Toolkits. User Interface Widget Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,

More information

GUI Software Architecture

GUI Software Architecture GUI Software Architecture P2: Requirements Analysis User Analysis Task Analysis Problem Scenarios Usability Criteria Scenario Your engineers just developed a new desktop computer. They give you the following

More information

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1 Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,

More information

Human Computer Interaction Lecture 08 [ Implementation Support ] Implementation support

Human Computer Interaction Lecture 08 [ Implementation Support ] Implementation support Human Computer Interaction Lecture 08 [ Implementation Support ] Imran Ihsan Assistant Professor www.imranihsan.com aucs.imranihsan.com HCI08 - Implementation Support 1 Implementation support programming

More information

Introduction to concurrency and GUIs

Introduction to concurrency and GUIs Principles of Software Construction: Objects, Design, and Concurrency Part 2: Designing (Sub)systems Introduction to concurrency and GUIs Charlie Garrod Bogdan Vasilescu School of Computer Science 1 Administrivia

More information

Model-View-Controller

Model-View-Controller Model-View-Controller rationale implementation benefit Model-View-Controller 1 How can we design a power point application? Model-View-Controller 2 Possible Design: Data and UI in Same Object What if we

More information

Widget Toolkits CS MVC

Widget Toolkits CS MVC Widget Toolkits 1 CS349 -- MVC Widget toolkits Also called widget libraries or GUI toolkits or GUI APIs Software bundled with a window manager, operating system, development language, hardware platform

More information

All the Swing components start with J. The hierarchy diagram is shown below. JComponent is the base class.

All the Swing components start with J. The hierarchy diagram is shown below. JComponent is the base class. Q1. If you add a component to the CENTER of a border layout, which directions will the component stretch? A1. The component will stretch both horizontally and vertically. It will occupy the whole space

More information

CS112 Lecture: Reuse, Packages, Patterns

CS112 Lecture: Reuse, Packages, Patterns CS112 Lecture: Reuse, Packages, Patterns Revised 4/20/05 Objectives: 1. To introduce the idea of re-use 2. To introduce some characteristics that make classes re-usable 3. To introduce Java packages. 4.

More information

Graphics. Lecture 18 COP 3252 Summer June 6, 2017

Graphics. Lecture 18 COP 3252 Summer June 6, 2017 Graphics Lecture 18 COP 3252 Summer 2017 June 6, 2017 Graphics classes In the original version of Java, graphics components were in the AWT library (Abstract Windows Toolkit) Was okay for developing simple

More information

Lecture 3: Java Graphics & Events

Lecture 3: Java Graphics & Events Lecture 3: Java Graphics & Events CS 62 Fall 2017 Kim Bruce & Alexandra Papoutsaki Text Input Scanner class Constructor: myscanner = new Scanner(System.in); can use file instead of System.in new Scanner(new

More information

User Interface Design

User Interface Design User Interface Design & Development Lecture 07 Direct Manipulation João Pedro Sousa SWE 632 George Mason University today direct manipulation window UIs support for operations mouse, pen, eye tracking,

More information

Pattern: Model-View-Controller (MVC) Beat Generator Example. Model-View-Controller. Model-View-Controller

Pattern: Model-View-Controller (MVC) Beat Generator Example. Model-View-Controller. Model-View-Controller Pattern: Model-View-Controller (MVC) Beat Generator MVC is an architectural pattern it specifies code organization at a higher level than a design pattern. (But the idea is similar it tells you how to

More information

Interaction Design. Ruben Kruiper

Interaction Design. Ruben Kruiper Interaction Design Ruben Kruiper What do you know? What do you think Interaction Design stands for? 2 What do you expect? Interaction Design will be: Awesome Okay Boring Myself I m not a big fan... This

More information

Interaction Techniques. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Interaction Techniques. SWE 432, Fall 2017 Design and Implementation of Software for the Web Interaction Techniques SWE 432, Fall 2017 Design and Implementation of Software for the Web Today What principles guide the design of usable interaction techniques? How can interaction designs help support

More information

Lecture 10 Usability

Lecture 10 Usability Lecture 10 Usability Mark Woehrer CS 3053 - Human-Computer Interaction Computer Science Department Oklahoma University Spring 2007 [Taken from Stanford CS147 with permission] Learning Goals Understand

More information

Human-Computer Interaction: An Overview. CS2190 Spring 2010

Human-Computer Interaction: An Overview. CS2190 Spring 2010 Human-Computer Interaction: An Overview CS2190 Spring 2010 There must be a problem because What is HCI? Human-Computer interface Where people meet or come together with machines or computer-based systems

More information

where are we? ICS 105: Project in HCI ui toolkits what does the toolkit do? model-view-controller model-view-controller lectures

where are we? ICS 105: Project in HCI ui toolkits what does the toolkit do? model-view-controller model-view-controller lectures where are we? ICS 105: Project in HCI UI Toolkits and Programming Models lectures done with evaluation techniques a couple of lectures on toolkits and programming other topics: graphical design and screen

More information

GUI Implementation Support

GUI Implementation Support GUI Implementation Support Learning Objectives: Why GUIs? What is a GUI? Why is implementation support needed? What kinds of implementation support are available? Basic concepts in OO GUI toolkit & app

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering 3. User Interface Design Mircea F. Lungu Based on a lecture by Oscar Nierstrasz. Roadmap > Interface design > Design principles > Graphical User Interfaces (GUI) >

More information

Model-View-Controller (MVC) Architecture

Model-View-Controller (MVC) Architecture JOHN DEACON Computer Systems Development, Consulting & Training Model-View-Controller (MVC) Architecture Author: John Deacon Synopsis: Although the MVC architecture (or pattern or idiom) has been around

More information

Agenda. Programming Seminar. By: dr. Amal Khalifa. Coordinate systems Colors Fonts Drawing shapes Graphics2D API

Agenda. Programming Seminar. By: dr. Amal Khalifa. Coordinate systems Colors Fonts Drawing shapes Graphics2D API Agenda Coordinate systems Colors Fonts Drawing shapes Graphics2D API By: dr. Amal Khalifa 1 Programming Seminar @12:30 13:30 pm on Wednesday 9/4/2014 Location : 2.505.01 Painting components 2 Every component

More information

Master Informatique - Université Paris-Sud 10/30/13. Outline. Example. (c) 2011, Michel Beaudouin-Lafon 1

Master Informatique - Université Paris-Sud 10/30/13. Outline. Example. (c) 2011, Michel Beaudouin-Lafon 1 Outline The design of everyday things - Don Norman Affordances, Metaphors, and Conceptual modeling Michel Beaudouin-Lafon - mbl@lri.fr Laboratoire de Recherche en Informatique In Situ - http://insitu.lri.fr

More information

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Kevin Zatloukal Summer 2017 Java Graphics and GUIs (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins, Zach Tatlock) Review: how to create

More information

IjX: ImageJ refactored to interfaces for extensibility or Evolving ImageJ to an Extensible Imaging Framework

IjX: ImageJ refactored to interfaces for extensibility or Evolving ImageJ to an Extensible Imaging Framework IjX: ImageJ refactored to interfaces for extensibility or Evolving ImageJ to an Extensible Imaging Framework A Proposal by Grant B. Harris, December 13, 2008. ImageJ has exploded beyond an image processing

More information

Lecture 15. Interaction paradigms-2. CENG 412-Human Factors in Engineering July

Lecture 15. Interaction paradigms-2. CENG 412-Human Factors in Engineering July Lecture 15. Interaction paradigms-2 CENG 412-Human Factors in Engineering July 9 2009 1 Announcements Final project presentations start on July 20 Guidelines will by posted by July 13 Assignment 2 posted

More information

Design Patterns Design patterns advantages:

Design Patterns Design patterns advantages: Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity

More information

BASICS OF GRAPHICAL APPS

BASICS OF GRAPHICAL APPS CSC 2014 Java Bootcamp Lecture 7 GUI Design BASICS OF GRAPHICAL APPS 2 Graphical Applications So far we ve focused on command-line applications, which interact with the user using simple text prompts In

More information

An Introduction to Human Computer Interaction

An Introduction to Human Computer Interaction The contents of this Supporting Material document have been prepared from the Eight units of study texts for the course M150: Date, Computing and Information, produced by The Open University, UK. Copyright

More information

CS 4300 Computer Graphics

CS 4300 Computer Graphics CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 8 September 22, 2011 GUIs GUIs in modern operating systems cross-platform GUI frameworks common GUI widgets event-driven programming Model-View-Controller

More information

Conceptual Models. CS160: User Interfaces John Canny

Conceptual Models. CS160: User Interfaces John Canny Conceptual Models CS160: User Interfaces John Canny Review Task Analysis: What is user trying to do? Contextual Inquiry: What are they thinking? Personae: How are they? Topics Affordances Conceptual Models

More information

Introduction to the JAVA UI classes Advanced HCI IAT351

Introduction to the JAVA UI classes Advanced HCI IAT351 Introduction to the JAVA UI classes Advanced HCI IAT351 Week 3 Lecture 1 17.09.2012 Lyn Bartram lyn@sfu.ca About JFC and Swing JFC Java TM Foundation Classes Encompass a group of features for constructing

More information

Usable Privacy and Security Introduction to HCI Methods January 19, 2006 Jason Hong Notes By: Kami Vaniea

Usable Privacy and Security Introduction to HCI Methods January 19, 2006 Jason Hong Notes By: Kami Vaniea Usable Privacy and Security Introduction to HCI Methods January 19, 2006 Jason Hong Notes By: Kami Vaniea Due Today: List of preferred lectures to present Due Next Week: IRB training completion certificate

More information

What I learned from Assignment 0. This is the first HCI course for most of you. You need practice with core HCI and Design concepts.

What I learned from Assignment 0. This is the first HCI course for most of you. You need practice with core HCI and Design concepts. HCI and Design Today s Reading What I learned from Assignment 0 This is the first HCI course for most of you. You need practice with core HCI and Design concepts. Today: Understanding Users Why do we need

More information

User Interface Design

User Interface Design User Interface Design Lecture #4 Part-B Agenda Principles on User Interface Design Principle 1: Recognize the Diversity Usage Profiles Task Profiles Interaction styles Principle 2: Eight Golden Rules Principle

More information

7 Implementing Interactive Systems

7 Implementing Interactive Systems 7 Implementing Interactive Systems 7.1 Designing Look-And-Feel 7.2 Constraints 7.3 Mapping 7.4 Implementation Technologies for Interactive Systems 7.5 Standards and Guidelines Ludwig-Maximilians-Universität

More information

Mensch-Maschine-Interaktion 1. Chapter 7 (July 15, 2010, 9am-12pm): Implementing Interactive Systems

Mensch-Maschine-Interaktion 1. Chapter 7 (July 15, 2010, 9am-12pm): Implementing Interactive Systems Mensch-Maschine-Interaktion 1 Chapter 7 (July 15, 2010, 9am-12pm): Implementing Interactive Systems 1 Implementing Interactive Systems Designing Look-And-Feel Constraints Mapping Implementation Technologies

More information

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 12 GUI Programming CHAPTER AUTHORS Ang Ming You Ching Sieh Yuan Francis Tam Pua Xuan Zhan Software Development Tools and

More information

Usability I: Principles and Guidelines

Usability I: Principles and Guidelines Usability I: Principles and Guidelines Rob Procter Further Reading Dix et al., chapter 4, p. 162-177 Newman and Lamming, chapter 15, p. 373-85 10/26/01 CS4: HCI Lecture 6 1 Introduction Usability principles

More information

implementation support

implementation support Implementation support chapter 8 implementation support programming tools levels of services for programmers windowing systems core support for separate and simultaneous usersystem activity programming

More information

CS408 Human Computer Interaction Solved Objective Midterm Papers For Preparation of Midterm Exam

CS408 Human Computer Interaction Solved Objective Midterm Papers For Preparation of Midterm Exam CS408 Human Computer Interaction Solved Objective Midterm Papers For Preparation of Midterm Exam What will be the gulf of execution if the user is able to formulate and perform the actions easily; Smaller

More information

Interaction Widget. Mads Ingstrup March 2004

Interaction Widget. Mads Ingstrup March 2004 Interaction Widget Mads Ingstrup ingstrup@daimi.au.dk March 2004 This pattern describes the idea of making a user interface of discrete, reusable entities---here called interaction widgets. The idea behind

More information

Usability and User Interfaces

Usability and User Interfaces Usability and User Interfaces The Importance of User Interface Design A computer system is only as good as the interface it provides to its users. Functionality, easy navigation, elegant design, response

More information

Human-Computer Interaction IS 4300

Human-Computer Interaction IS 4300 Human-Computer Interaction IS 4300 Prof. Timothy Bickmore Overview for Today Brief review. Affordances & Cognitive Models. Norman's Interaction Model Heuristic Evaluation. Cognitive Walk-through Evaluation

More information

Model-View Controller IAT351

Model-View Controller IAT351 Model-View Controller IAT351 Week 17 Lecture 1 15.10.2012 Lyn Bartram lyn@sfu.ca Administrivia CHANGE to assignments and grading 4 assignments This one (Assignment 3) is worth 20% Assignment 4 is worth

More information

Model-view-controller. An architecture for UI

Model-view-controller. An architecture for UI Model-view-controller An architecture for UI 1 The flow of information (idealized) Flow of information 0 Event 1 Changes Controller 3 Pixels O S Application Model View 2 State 2003 T. S. Norvell Engineering

More information

Jonathan Aldrich Charlie Garrod

Jonathan Aldrich Charlie Garrod Principles of Software Construction: Objects, Design, and Concurrency (Part 3: Design Case Studies) Introduction to GUIs Jonathan Aldrich Charlie Garrod School of Computer Science 1 Administrivia Homework

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 33 April 16, 2014 Swing I: Drawing and Event Handling Set set = new TreeSet (); Map map = new TreeMap

More information

Software Quality. Martin Glinz. Thomas Fritz. Lecture 7 UI Design, Usability & Testing. Many thanks to Meghan Allen and Daniel Greenblatt.

Software Quality. Martin Glinz. Thomas Fritz. Lecture 7 UI Design, Usability & Testing. Many thanks to Meghan Allen and Daniel Greenblatt. Institut für Informatik Software Quality Lecture 7 UI Design, Usability & Testing Thomas Fritz Martin Glinz Many thanks to Meghan Allen and Daniel Greenblatt. Overview Introduction to UI design User-centered

More information

The Observer Design Pattern

The Observer Design Pattern The Observer Design Pattern Some common applications Responding to GUI events Responding to changes in data values Model The observing task registers to be notified on any change of state for the object

More information

Design Patterns. CSC207 Fall 2017

Design Patterns. CSC207 Fall 2017 Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the

More information

CS4470: Intro to UI Software CS6456: Principles of UI Software. Fall 2006 Keith Edwards

CS4470: Intro to UI Software CS6456: Principles of UI Software. Fall 2006 Keith Edwards CS4470: Intro to UI Software CS6456: Principles of UI Software Fall 2006 Keith Edwards Today s Agenda Introductions Me TA You Class Overview Syllabus Resources Class Policies 2 Introductions Instructor

More information

Object-Oriented Programming Design. Topic : Graphics Programming GUI Part I

Object-Oriented Programming Design. Topic : Graphics Programming GUI Part I Electrical and Computer Engineering Object-Oriented Topic : Graphics GUI Part I Maj Joel Young Joel.Young@afit.edu 15-Sep-03 Maj Joel Young A Brief History Lesson AWT Abstract Window Toolkit Implemented

More information

HCI and Design SPRING 2016

HCI and Design SPRING 2016 HCI and Design SPRING 2016 Topics for today Heuristic Evaluation 10 usability heuristics How to do heuristic evaluation Project planning and proposals Usability Testing Formal usability testing in a lab

More information

M150 -B / Unit 12. By Wawi. A good user interface design enables the user to effectively interact with the system and perform his tasks.

M150 -B / Unit 12. By Wawi. A good user interface design enables the user to effectively interact with the system and perform his tasks. A good user interface design enables the user to effectively interact with the system and perform his tasks. (True) HCI: (Human-Computer Interaction) is the study of how humans interact with computers

More information

Software System/Design & Architecture. Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering

Software System/Design & Architecture. Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering Software System/Design & Architecture Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering Todays lecture Model View Controller (MVC) Copyright 2012 @ M.Fahad Khan 2 Model-View-Controller

More information

Interfaces. The only means of interaction

Interfaces. The only means of interaction Interfaces The only means of interaction Two components - Action language - Presentation language These are not interfaces, but components of each interface Types of interfaces - Natural language - Question

More information

Cut, Paste, Drag-and-Drop. Benefits, data formats, and Java implementation

Cut, Paste, Drag-and-Drop. Benefits, data formats, and Java implementation Cut, Paste, Drag-and-Drop Benefits, data formats, and Java implementation Direct Manipulation Principles There is a visible and continuous representation of the domain objects and their actions. Consequently,

More information

A Top-Down Visual Approach to GUI development

A Top-Down Visual Approach to GUI development A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084

More information

Tool Kits, Swing. Overview. SMD158 Interactive Systems Spring Tool Kits in the Abstract. An overview of Swing/AWT

Tool Kits, Swing. Overview. SMD158 Interactive Systems Spring Tool Kits in the Abstract. An overview of Swing/AWT INSTITUTIONEN FÖR Tool Kits, Swing SMD158 Interactive Systems Spring 2005 Jan-28-05 2002-2005 by David A. Carr 1 L Overview Tool kits in the abstract An overview of Swing/AWT Jan-28-05 2002-2005 by David

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2017/2018 Joerg Doerr Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

To gain experience using GUI components and listeners.

To gain experience using GUI components and listeners. Lab 5 Handout 7 CSCI 134: Fall, 2017 TextPlay Objective To gain experience using GUI components and listeners. Note 1: You may work with a partner on this lab. If you do, turn in only one lab with both

More information

CS 349 Midterm Exam Spring 2014

CS 349 Midterm Exam Spring 2014 Course Title: User Interfaces Sections: All Instructor: Byron Weber Becker Exam Date: 19-June-2014 Time: 7:00-9:00p.m. Duration: 2 hours Pages: 10 CS 349 Midterm Exam Exam Type: Closed Book Permitted Aids:

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Design Patterns and Frameworks Command

Design Patterns and Frameworks Command Design Patterns and Frameworks Command Oliver Haase Oliver Haase Emfra Command 1/13 Description Classification: Object-based behavioral pattern Purpose: Encapsulate a command as an object. Allows to dynamically

More information

ARCHER Metadata Schema Editor. User Guide METADATA EDITOR. Version: 1.1 Date: Status: Release

ARCHER Metadata Schema Editor. User Guide METADATA EDITOR. Version: 1.1 Date: Status: Release ARCHER Metadata Schema Editor User Guide METADATA EDITOR Version: 1.1 Date: 2008-08-26 Status: Release Change History Version Date Author Description 0.1D 2008-04-15 Ron Chernich First Draft 1.0 2008-05-01

More information

Graphics and Painting

Graphics and Painting Graphics and Painting Lecture 17 CGS 3416 Fall 2015 November 30, 2015 paint() methods Lightweight Swing components that extend class JComponent have a method called paintcomponent, with this prototype:

More information

CS415 Human Computer Interaction

CS415 Human Computer Interaction CS415 Human Computer Interaction Lecture 5 HCI Design Methods (GUI Builders) September 18, 2015 Sam Siewert A Little Humor on HCI Sam Siewert 2 WIMP GUI Builders The 2D GUI is the Killer App for WIMP Floating

More information

User Interface Evaluation

User Interface Evaluation User Interface Evaluation Heuristic Evaluation Lecture #17 Agenda Evaluation through Expert Analysis Cognitive walkthrough Heuristic evaluation Model-based evaluation Cognitive dimension of notations 2

More information

Design Patterns. CSC207 Winter 2017

Design Patterns. CSC207 Winter 2017 Design Patterns CSC207 Winter 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

Software Construction

Software Construction Lecture 11: Command Design Pattern Software Construction in Java for HSE Moscow Tom Verhoeff Eindhoven University of Technology Department of Mathematics & Computer Science Software Engineering & Technology

More information

USER INTERFACE DESIGN

USER INTERFACE DESIGN USER INTERFACE DESIGN Today Before we talk about how to code interfaces in Java, some concepts. Norman: The Design of Everyday Things; General design principles; Activity theory; Gulf of execution; gulf

More information

Inside Smalltalk MVC: Patterns for GUI Programming

Inside Smalltalk MVC: Patterns for GUI Programming Inside Smalltalk MVC: Patterns for GUI Programming Chien-Tsun Chen Department of Computer Science and Information Engineering National Taipei University of Technology, Taipei 106, Taiwan ctchen@ctchen.idv.tw

More information

Choice will depend on choice of interaction devices

Choice will depend on choice of interaction devices 2 Choice will depend on choice of interaction devices - Command line: - pros: powerful (can apply to many objects at once, pipes), flexible (many options/parameters), efficient (direct access to system

More information

How could this dialog box be redesigned to solve some of these problems?

How could this dialog box be redesigned to solve some of these problems? 1 2 Usability is about creating effective user interfaces (UIs). Slapping a pretty window interface on a program does not automatically confer usability on it. This example shows why. This dialog box,

More information

Giving instructions, conversing, manipulating and navigating (direct manipulation), exploring and browsing, proactive computing

Giving instructions, conversing, manipulating and navigating (direct manipulation), exploring and browsing, proactive computing Looking Back Interaction styles Giving instructions, conversing, manipulating and navigating (direct manipulation), exploring and browsing, proactive computing Activity-based vs. object-oriented design

More information

What is interaction design?

What is interaction design? Chapter 1 What is interaction design? 1 2 Good/Bad Designs Elevator controls and labels on the bottom row all look the same, so it is easy to push a label by mistake instead of a control button People

More information

Tips for Preparation

Tips for Preparation Midterm review Tips for Preparation During the term Keep up with readings Before the exam Review readings and lecture notes List concepts Group similar concepts together Make up exam questions Why is this

More information

Introduction to Interactive Systems. Overview. What Is an Interactive System? SMD158 Interactive Systems Spring 2005

Introduction to Interactive Systems. Overview. What Is an Interactive System? SMD158 Interactive Systems Spring 2005 INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Introduction to Interactive Systems SMD158 Interactive Systems Spring 2005 Jan-14-05 1997-2005 by David A. Carr 1 L Overview What is an interactive

More information

Chapter 10 Interactive Systems And Usability Organizational Requirements Engineering

Chapter 10 Interactive Systems And Usability Organizational Requirements Engineering Chapter 10 Interactive Systems And Usability Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Introduction: What is usability? Why is usability an important non-functional

More information

UNIVERSITY OF CALIFORNIA AT BERKELEY. Name:

UNIVERSITY OF CALIFORNIA AT BERKELEY. Name: UNIVERSITY OF CALIFORNIA AT BERKELEY COMPUTER SCIENCE DIVISION - EECS CS160 Second Midterm Examination Prof L.A. Rowe Spring 2001 Name: Score: Question Possible Points 1 (50 points) 2 (10 points) 3 (20

More information

Input: Interaction Techniques

Input: Interaction Techniques Input: Interaction Techniques Administration Questions about homework? 2 Interaction techniques A method for carrying out a specific interactive task Example: enter a number in a range could use (simulated)

More information

CS211 Lecture: The User Interface

CS211 Lecture: The User Interface CS211 Lecture: The User Interface Last revised November 19, 2008 Objectives: 1. To introduce the broad field of user interface design 2. To introduce the concept of User Centered Design 3. To introduce

More information