Object-Oriented Software Engineering Practical Software Development using UML and Java Emphasis on the User Interface Design (Taken from authors web site and modified for classroom use by your instructor.)
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks2/22 User Centred Design Software development should focus on the needs of users Understand your users Design software based on an understanding of the users tasks. What is it that they need to do? Ensure users are involved in decision making processes Are they comfortable with the UI? Do they see what they feel they need to see? Design UI following guidelines for good usability (ahead) Have users work with and give their feedback about prototypes, on-line help and draft user manuals (Use-cases can drive the prototype development!)
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks3/22 The Importance Of Focusing On Users Reduced training and support costs Is it natural to use? Intuitive? Reduced time to learn the system Learnability; expert … novice features? Reduced costs by developing features that are needed Nice to have; have to have; perks… Remember: to the client, the UI is the application!! A poorly designed interface will create a poor opinion of your application! Greater attractiveness of the system, so users will be more willing to buy and use it
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks4/22 Characteristics of Users Software engineers must develop understanding of the users Goals for using the system What is the work the users need to get done? Potential patterns of use 24-7? EOM/EOD/EOY? On-line; batch? Peak load times? Down times? MTTR? Demographics Cultures; religions; sensitivities Knowledge of the domain and of computers Finance and accounting? Manufacturing? Process control? Real time? Student environment? Physical ability ADA? Other physical limitations
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks5/22 Basics of User Interface Design Undertake UI Design along with other software engineering activities. Use Case Analysis helps define the tasks that the UI must provide to the user Use cases drive Use-case driven !!! Can do iterative UI prototyping to address the use cases. Results of prototyping will enable you to finalize the requirements. UI prototyping is not undertaken to define requirements; but it will help to discover missing requirements, etc… Nothing better than running the prototype by the end-users to elicit comments!
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks6/22 Usability vs. Utility – Essential but Different! Utility: Does the system provide the raw capabilities to allow the user to achieve their goal? Are the features there to help me do my job? Usability Does the system allow the user to learn and to use the raw capabilities easily? Can I use the application easily or is it difficult / awkward to learn? Both utility and usability are essential They must be measured in the context of particular types of users.
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks7/22 Usability - Aspects Usability can be divided into separate aspects: Learnability The speed with which a new user can become proficient with the system. Efficiency of use How fast an expert user can do their work. Error handling The extent to which it prevents the user from making errors, detects errors, and helps to correct errors. Acceptability. The extent to which users like the system. E.g. Is there always a back button? A way to retrace? Undo? Are these features always in the same position in each page??
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks8/22 Some Basic Terminology Of User Interface Design Dialog: A specific window with which a user can interact, but which is not the main UI window. Control or Widget: Specific components of a user interface. Affordance: Set of operations a user can do at any given point in time. State: At any stage in the dialog, the system is displaying certain information in certain widgets, and has a certain affordance. Mode: A situation in which the UI restricts what the user can do. Modal dialog: A dialog in which the system is in a very restrictive mode. Feedback: The response from the system whenever the user does something, is called feedback. Encoding techniques. Ways of encoding information so as to communicate it to the user.
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks9/22 Some encoding techniques Text and fonts Icons Photographs Diagrams and abstract graphics Colors Grouping and bordering Spoken words Music Other sounds Animations and video Flashing
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks10/22 Evaluating User Interfaces Heuristic evaluation 1. Pick some use cases to evaluate. 2. For each window, page or dialog that appears during the execution of the use case Study it in detail to look for possible usability defects. 3. When you discover a usability defect write down the following information: A short description of the defect. Your ideas for how the defect might be fixed.
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks11/22 Evaluating User Interfaces Evaluation by observation of users Select users corresponding to each of the most important actors Select the most important use cases Write sufficient instructions about each of the scenarios Arrange evaluation sessions with users Explain the purpose of the evaluation Preferably videotape each session Converse with the users as they are performing the tasks When the users finish all the tasks, de-brief them Take note of any difficulties experienced by the users Formulate recommended changes
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks12/22 Difficulties and Risks in Use Case Modelling and User Interface Design Users differ widely Account for differences among users when you design the system. Design it for internationalization. When you perform usability studies, try the system with many different types of users. User interface implementation technology changes rapidly Stick to simpler UI frameworks widely used by others. Avoid fancy and unusual UI designs involving specialized controls that will be hard to change.
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks13/22 Difficulties and Risks in Use Case Modelling and UI Design User interface design and implementation can sometimes require the majority of work in an application: Make UI design an integral part of the software engineering process. Allocate time for many iterations of prototyping and evaluation. Developers often underestimate the weaknesses of a GUI Ensure all software engineers have training in UI development. Always test with users. Study the UIs of other software.