CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Chapter 12 CS 8532: Advanced Software Engineering Dr. Hisham Haddad Class will start momentarily. Please Stand By … CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad User Interface Design Highlights of user (human) interface design concepts and principles Chapter 12 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Software Interfaces Possible Interfaces: - between the components of the software (collaboration interfaces). - between the software and other software systems (integration interfaces). - between the software and external entities/devices (data gathering and data processing devices). - between the software and the human users (mostly graphicalbased interfaces). (the focus of this chapter) CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Interface Design Goal Goal: User Interface that facilitates effective system usage and and help users (human users) perform their jobs efficiently. How? - Make it easy to learn - Make it easy to use (navigate) - make it easy to understand Note 1: User interface has more with studying potential users of the system. Note 2: User interface design is part of the design phase, but also can be part of the requirements phase. CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Common Design Errors - Lack of user control Lack of consistency among parts of the interface Too much to memorize Lack of help and guidance Lack of detailed response from the system - Unfriendly and mysterious (hidden parts) - Not context sensitive (type of screen, icons, color theme, etc..) - Others … CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad The Golden Rules - 1 1. Place the user in control of the system: Few Principles: - Define interaction modes (system states) in a way that does not force a user into unnecessary or undesired actions. (e.g., spell check example, payment-page example, etc…) - Provide for flexible interaction alternatives (keyboard, mouse, touchpad, pen, voice , etc…). - Allow user interaction to be interruptible and undoable. - Streamline (recurring) interaction as skill levels advance and allow the interaction to be customized (macros, options, templates). - Hide technical internals from the casual user (e.g., OS commands). - Design for direct interaction with objects on the screen similar to working with real-world objects. (e.g., re-size an icon, box, etc…). CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad The Golden Rules - 2 2. Reduce the user’s memory load: Few Principles: - Reduce demand on short-term memory (the need to remember past interactions and results). - Establish meaningful defaults and a “reset” option to restore original defaults. - Define intuitive, easy to find, and easy to remember shortcuts (e.g., alt-Key functions, right-click menu options). - The visual layout should be based on a real world metaphor (e.g., checkbook, invoice format, report, etc..). - Disclose information in a progressive fashion (command hierarchy and levels of details) (e.g., submenu system). CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad The Golden Rules - 3 3. Make the Interface consistent: - organization of visual information on screens - input mechanisms (should be limited to few) - navigation among users tasks Few Principles: - Allow the user to put the current task into a meaningful context. (Indicators for current context and exit (go back) alternatives) - Maintain consistency across a family of applications. (Apply same design rules to related applications) - Don’t change past interactive models accepted by the user. (e.g., alt-key commands, input mechanisms, menus and options ) CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad User Interface Design Models Design models are perceptions of the interface: - User model: Profile of the end-users of the system (age, gender, abilities, education, background, etc..) - System perception: The end-user’s mental image of what the interface is. User experience influences perception accuracy. - System image: The presentation (look and feel of the interface) and support (manuals, tapes, help files, etc…) Goal: Know the users and know their tasks. Note: The interface designer brings these perceptions together. CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Therefore… - be aware of the the importance of the Interface of a software system. - the goal for designing is a successful user interface. - know the importance of understanding the end users and their expectations of the interface. - be aware of the common errors in interface design. - remember the golden rules for interface design. - remember the key elements to design - User Model (profile), System Perception (end-user’s mental image), and System Image (presentation and support). CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Design Process Iterative spiral process with four activities. 4 3 1 2 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Interface Analysis Interface analysis means understanding - the end-user (people) who will interact with the system through the interface; - the tasks that end-users must perform to do their work; - the content that is presented as part of the interface; and - the environment in which these tasks will be conducted. CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad User Analysis (1) • Are users trained professionals, technician, clerical, or manufacturing workers? • What level of formal education does the average user have? • Are the users capable of learning from written materials or have they expressed a desire for classroom training? • Are users expert typists or keyboard phobic? • What is the age range of the user community? • Will the users be represented predominately by one gender? • How are users compensated for the work they perform? • Do users work normal office hours or do they work until the job is done? CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad User Analysis (2) • Is the software to be an integral part of the work users do or will it be used only occasionally? • What is the primary spoken language among users? • What are the consequences if a user makes a mistake using the system? • Are users experts in the subject matter that is addressed by the system? • Do users want to know about the technology that sits behind the interface? • Other questions… CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Task Analysis (1) Answers the following questions: - What work will the user perform in specific circumstances? - What tasks and subtasks will be performed as the user does the work? - What specific problem domain objects will the user manipulate as work is performed? - What is the sequence of work tasks - the workflow? - What is the hierarchy of tasks? - What environmental “physical” factors to consider? (location, user position, HW space, light, noise, weather, etc…) CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Task Analysis (2) Note that - Use-cases define basic interaction with the software. - Object elaboration identifies interface objects (classes). - Workflow analysis defines how a work process is completed when several people (and roles) are involved. (see figure 12.2, page 339, prescription refill work flow) CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Therefore, - Build user profiles (background and skill level) - Create user groups based on skills and knowledge (novice, knowledgeable, and expert) - Understand the tasks of each group (usage scenarios) (how they will use the system) - Consider environmental “physical” factors (location, user position, HW space, light, noise, weather, etc…) - Define each group’s interface requirements (what each groups needs to have on the interface to do their jobs) CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Interface Design Activity - 1 - For each usage scenario, pars its description and identify interface objects and their actions (icons needed on the screen and how they are used - drag/drop, click, slide, etc…). - Perform object layout on screen (object position, window title, description text, etc…) See SafeHome example. - usage scenario - user tasks - objects and actions for each task - screen layout of objects (figure 12.3, page 344) CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Interface Design Activity - 2 Design issues to be considered: - Response time: primary concern of end-user. - Response variability (to establish interaction rhythm). - User help facilities: integrated (context sensitive) or add-on (on-line manuals)? - Error handling: simple, constructive, noticeable, hint-full, and non-judgmental (see page 347 - error message characteristics) - Menu and command labeling: meaningful labels, easy to remember and navigate, and control key (see page 347) - Application accessibility: address hearing, visual, mobility, and speech needs. - Internationalization: Ability to customize the interface for other languages and countries. Make a checklist of such issues. CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Interface Design Patterns Patterns are available for - Complete UI Page layout Forms and input Tables Direct data manipulation Navigation Searching Page elements e-Commerce Others… CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Interface Construction Activity - Interface implementation is iterative process. - Implement initial prototype of the interface for user evaluation and feedback. - Refine the prototype based on feedback (evaluation step next) - Variety of interface design and prototyping tools are available (User-Interface Toolkits or User-Interface Development Systems) (see software tools box, page 348) CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Interface Design Evaluation Activity - Interface design evaluation is iterative process. - Obtain user feedback. Possible feedback forms include - direct comments questionnaires (qualitative or quantitative data) rating forms check lists observing and noting user interactions - Refine the design and prototype based on feedback CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Design Evaluation Cycle CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad In Summary… - User Interface is important part of the software system. It makes user’s first impression of the system and possibly its quality! - Badly designed interface may cause a well-design software to fail (poor utilization). - Apply the golden rules (make the user in control, reduce memory load, maintain consistency). - Interface design is iterative process based on user feedback and good understanding of the user’s expectations and tasks. - Utilize interface design and prototyping tools. CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Suggested Problems Consider working the following problems from chapter 12, page 352: 1, 2, 3, 4, 7, and 12. NO submission is required. Work them for yourself!