Human Computer Interaction User Interface
What is a User Interface? The user interface is the part of a software program that allow users to interact with computer (system) and carry out their task.
User Interface Today, building the Human-Computer Interface consumes 50 – 70 percent of the systems development effort. In other words, to users, the interface is the system. Users care about what they enter into and get out of the system and how the entire experience of interaction feels.
Human Computer Interaction – User Interface development cycle HCI = design, prototyping, evaluation, and implementation of user interfaces (UIs) design Implementation (Prototype) evaluation
Iteration At every stage! Design Prototype Evaluate
Why Study User Interfaces? Major part of work for “real” programs approximately 50% You will work on “real” software intended for users other than yourself Bad user interfaces cost expensive User interfaces are hard to get right people are different and unpredictable Studies have shown that the design, programming, and evaluation of the UI can take up to 50% of the project time and cost for a wide range of commercial and in-house software
Who builds UIs? A team of specialists (ideally) graphic designers interaction / interface designers marketers test engineers software engineers In this course you will wear the hats of many of these specialists.
Five Key Ideas about UIs in HCI Visibility Feedback Goal Affordance Task
Five Key Ideas about UIs in HCI Cont. Visibility: all necessary controls should be visible for the user – he/she is supposed to be able to use them in correct way. Always keep users informed about what is going on, through providing appropriate feedback within reasonable time. Visibility is the mapping between a control and its effect: Show controls (toolbars, menus). Indicate mappings (Toolbar icons and graphics, enable & disable). Provide feedback (Messages). The User Interface should help the user always understand: The current state of the system. What operations can be done.
Five Key Ideas about UIs in HCI Cont. Feedback When anything changes it should be made visible. Feedback concerning the actions executed: When you are executing an action give a feedback to the user. Feedback concerning their results: After an action executed, display results and make user aware of the results. Goal A state the user wants to reach: To be talking with somebody on the phone. To have saved a file.
Five Key Ideas about UIs in HCI Cont. Affordance An affordance is a quality of an object, or an environment, which allows an individual to perform an action The set of operations and procedures that can be done to an object (is the fundamental properties of an object which express how it might be used). ‘Perceived affordance’ is what typical users think can be done to an object Should a door be pulled or pushed? What does this icon mean?
Affordance Every action should be mapped to a graphical icon which can easily be understood by users. After an action is accomplished, a sound should indicate whether the action is successful. Communicate with the user when necessary. Affordance is the first sight opinion from the physical appearance of an object. Design of the object should tell you how to use it.
Five Key Ideas about UIs in HCI Cont. Task An action the user wants to do: To call somebody To save the file Goals tasks, tasks goals.
Bad User Interfaces Hard to tell the difference between the two icons and names
Interface design Interface design is important for several reasons: The better the user interface the easier it is to train people to use it. Reducing training costs. The better your user interface the less help people will need to use it, so reducing your support costs. The better your user interface the more your users will like to use it. Increasing their satisfaction with the work that you have done.
User Interface Malfunctions(الأعطال ) Key idea: “There are no good user interfaces ... just user interfaces that fit(مناسب )” A truly bad user interface never fits To maximize fitness, we must minimize the occurrence of ‘malfunctions’ in the context of the expected use of the system.
Definitions of malfunction “A mismatch between what the user wants, needs or expects and what the system provides”. “A breakdown(تعطل ) in usability”. “An obstacle(عقبة ) to performing a desired task”.
The fit of HCI elements HCI should be designed to achieve a fit between the ( human ) user, computer and task. Fit: The match between the computer design, the user and the task so as to optimize the human resources needed to accomplish the task. Performance: Reflects both the efficiency of performing the task and the quality of the task product. Well-being: reflects an overall concern with the user’s physical and psychological(نفسي ) welfare(خير ).
The fit of HCI elements leads to performance and well-being Human Fit Performance & Well-being Task Computer
What constitutes(يشكل ) a good user interface? Achieve required performance by operator(مشغل ), control and maintenance personnel. Minimize skill and personnel requirements and training time. Achieve required reliability of person-computer combinations ( reliability, availability, security and data integrity ). Foster(تعزيز ) design standardization within and among systems ( integration, consistency and portability ).
Human Computer Interaction Usability and Design
Usability A usable system is: easy to learn easy to remember how to use effective to use efficient to use safe to use enjoyable to use
Why is usability important? Many everyday systems and products seem to be designed with little regard to usability. This list contains examples of interactive products: mobile phone, computer, personal organizer, remote control, coffee machine, ATM, etc….
List of common measurable goals for usability: Time to learn how to operate the system. Speed of performance. Rate of errors made by users. User’s retention(احتفاظ ) time of information presented. User’s satisfaction with the system. Yet high-quality HCI is not just about usability or performance. It is also about emotions and about the overall physical and social experience of interacting with computers.
Principles supporting usability Learnability The ease with which new users can begin effective interaction and achieve maximal performance. Flexibility The multiplicity of ways the user and system exchange information. Robustness ( Powerful ) The level of support provided to the user in determining successful achievement ( Error Handling ).
1. Learnability Principles The ease with which new users can begin effective interaction and achieve maximal performance. There are a lot of aspects which support the learnability principle in usability subject, such as: Predictability. Synthesizability. Generalizability. Familiarity. Consistency.
learnability Principles Cont. Predictability Determining effect of future actions based on past interaction history. Synthesizability(تجميع ) Assessing the effect of past actions. While the user learns the system, the user constructs a picture of the inner of the black box.
learnability Principles Cont. Generalizability Extending specific interaction knowledge to new situations. The user guess the functionality of new commands. Can knowledge of one system/UI be extended to other similar ones? Example: cut & paste in different applications.
learnability Principles Cont. Familiarity How prior knowledge applies to new system. New user get good clues to use the system. Names and icons that are common to the users domain. Consistency Likeness(تشابه ) in input/output behaviour arising from similar situations or task objectives. Operation perform similarly for similar inputs.
2. Flexibility Principles Multiplicity of ways that users and system exchange information, and the following are some aspects which support the flexibility principle: Dialog Initiative(مبادرة ). Multithreading. Task migratability(الهجرة ). Substitutivity(استبدال ). Customizability.
Flexibility Principles Cnt. Dialogue initiative Freedom from system imposed(فرضت ) constraints on input dialogue. Old dialogue boxes are called system pre-emptive. System does all prompts, user responds sometimes necessary. Modern dialogue boxes are called user pre-emptive. More flexible, user initiates actions. Multithreading Ability of system to support user interaction for more than one task at a time. Allow user to perform simultaneous tasks.
Flexibility Principles Cnt. Task migratability Passing responsibility for task execution between user and system. The user perform the task or have the computer perform the tasks. Example: Spell-checking.
Flexibility Principles Cnt. Substitutivity Allowing equivalent values of input and output to be substituted for each other. Assume different forms for equivalent values. Allow different ways of presenting output. The user should be able to see the results in the units of the user's choice.
Flexibility Principles Cnt.
Flexibility Principles Cnt. Customizability Modifiability of the user interface by user or system ( adaptability ). The user modify the interface in order to improve efficiency. The user can add commands, or change font size for better visibility.
3. Robustness(متانة ) Principles Supporting user in determining successful achievement and assessment of goals, by the following concepts: Observability. Recoverability. Responsiveness. Task Conformance.
Principles robustness Cnt. Observability Ability of user to evaluate the internal state of the system from its perceivable representation. Browsability: Explore current state (without changing it). Reachability: Navigate through observable states. Persistence: Is how long the system states or user inputs are visible to the user.
Principles robustness Cnt. Recoverability Ability of user to take corrective action once an error has been recognized. At a minimum the user ought(يجب ) to be able to correct the output, forward recovery, (Ability to fix when we can’t undo). Users have grown accustomed to the undo command, backward recovery.
Principles robustness Cnt. Responsiveness How the user perceives the rate of communication with the system. Response time Time for system to respond in some way to user action (s). The system respond in suitable time. Some applications require msec response, others seconds and some applications can run overnight.
Principles robustness Cnt. Task conformance Degree to which system services support (perform) all of the user's tasks. Task completeness Can system do all tasks? Does it allow user to define new tasks?
User-centred design In UI design the needs of the user are paramount(أهمية قصوى ) and where the user is involved in the design process. UI design always involves the development of prototype interfaces.
The UI design process UI design is an iterative process involving close liaisons(العلاقات المتبادلة ) between users and designers. The 3 core activities in this process are: User analysis. Understand what the users will do with the system; System prototyping. Develop a series of prototypes for experiment; Interface evaluation. Experiment with these prototypes with users.
The design process
User analysis User analyses have to be described in terms that users and other designers can understand. Scenarios where you describe typical episodes(الحلقات ) of use, are one way of describing these analyses.
Analysis techniques Task analysis Interviewing and questionnaires Models the steps involved in completing a task. Interviewing and questionnaires Asks the users about the work they do. Ethnography Observes the user at work.
User interface prototyping The aim of prototyping is to allow users to gain direct experience with the interface. Prototyping may be a two-stage process: Early in the process, paper prototypes may be used; The design is then refined and increasingly sophisticated automated prototypes are then developed.
User interface evaluation Some evaluation of a user interface design should be carried out to assess its suitability. Ideally, an interface should be evaluated against a usability specification.
Information presentation Information presentation is concerned with presenting system information to system users The information may be presented directly or may be transformed in some way for presentation The Model-View-Controller approach is a way of supporting multiple presentations of data
Error messages Error message design is critically important. Poor error messages can mean that a user rejects rather than accepts a system Messages should be polite, concise, consistent and constructive The background and experience of users should be the determining factor in message design.
HCI design models The waterfall life cycle model. The star life cycle model. Rapid prototyping model.
Design Process Models Waterfall model Spiral model The waterfall model assumes that the design is fixed before entering to the next phase of design. Does not fit well in interactive systems. It is a sequence of steps from software engineering field. Spiral model Only continue after step if feedback is positive.
Waterfall Model ( From Software Engineering Field ) Initiation Application Description Analysis Requirements Specification Design System Design Implementation Product
The waterfall model Application description Requirements specification General description of the purpose and the functions of the system to be designed. Requirements specification Detailed description of the functions the system should perform. System design Defining the software functions and software modules. Product The resulting implementation of the system
The star life cycle Task analysis / functional analysis Implementation Evaluation Prototyping Requirements specification Conceptual design / formal design
The star life cycle The design of interactive systems typically does not follow a specific order of steps. The design can start in any step - followed by evaluation. Needs good software tools.
Software prototyping A prototype is an initial version of a system used to demonstrate concepts and try out design options. Different kinds of prototyping: Low fidelity. High fidelity. Compromises in prototyping: Vertical. Horizontal.
Why prototype? Evaluation and feedback are central to interaction design. Stakeholders can see, hold, interact with a prototype easily. Team members can communicate effectively. You can test out ideas for yourself . It encourages reflection: very important aspect of design. Prototypes answer questions, and support designers in choosing between alternatives.
Benefits of prototyping Improved system usability. A closer match to users’ real needs. Improved design quality. Improved maintainability. Reduced development effort.
What to prototype? Work flow, task design. Screen layouts and information display. Difficult, controversial, critical areas.
Low-fidelity(منخفض الدقة ) Prototyping Uses a medium which is unlike the final medium, e.g. paper, cardboard. Is quick, cheap and easily changed. Examples: sketches of screens, task sequences, storyboards, etc…
High-fidelity prototyping Uses materials that you would expect to be in the final product. Prototype looks more like the final system than a low-fidelity version.
Compromises(التسويات ) in prototyping Two common types of compromise: Horizontal: provide a wide range of functions, but with little details. Vertical: provide a lot of details for only a few functions. Compromises in prototypes mustn’t be ignored.
The prototyping process
Sketches Drawing of the outward(الخارجي ) appearance of the intended system. Sketching is important to low-fidelity prototyping Computer Telephone Last Name: First Name: Phone: Place Call Help
Storyboard of a computer telephone Last Name: First Name: Phone: Place Call Help Help-> Return Help Screen You can enter either the person's name or their number. Then hit the place button to call them Call by name-> Computer Telephone Last Name: Greenberg First Name: Phone: Place Call Help Establishing connection-> Computer Telephone Last Name: Greenberg First Name: Phone: Place Call Help Dialling.... Cancel Call connected... Computer Telephone Last Name: Greenberg First Name: Phone: Place Call Help Connected Hang up Call completed...
Return Help Screen You can enter either the person's name or their number. Then hit the place button to call them Computer Telephone Last Name: Greenberg First Name: Phone: Place Call Help Dialling.... Cancel Computer Telephone Last Name: Greenberg First Name: Phone: Place Call Help Connected Hang up Computer Telephone Last Name: First Name: Phone: Place Call Help Computer Telephone Last Name: Greenberg First Name: Phone: Place Call Help Computer Telephone Last Name: First Name: Phone: Place Call Help Computer Telephone Last Name: First Name: Phone: Place Call Help Help- Type name and place call
UI design principles UI design must take account of the needs, experience and capabilities of the system users. Designers should be aware of people’s physical and mental limitations (e.g. limited short-term memory) and should recognise that people make mistakes. UI design principles underlie interface designs although not all principles are applicable to all designs.
Design principles User familiarity Consistency Minimal surprise The interface should be based on user-oriented terms and concepts rather than computer concepts. For example, an office system should use concepts such as letters, documents, folders etc. rather than directories, file identifiers, etc. Consistency The system should display an appropriate level of consistency. Commands and menus should have the same format, command punctuation(الترقيم ) should be similar, etc. Minimal surprise If a command operates in a known way, the user should be able to predict the operation of comparable commands.
Design principles Cnt. Recoverability User guidance The system should provide some resilience(مرونة ) to user errors and allow the user to recover from errors. This might include an undo facility, confirmation of destructive actions, 'soft' deletes, etc. User guidance Some user guidance such as help systems, on-line manuals, etc. should be supplied. User diversity(تنوع ) Interaction facilities for different types of user should be supported. For example, some users have seeing difficulties and so larger text should be available.
User interface design principles
Interactive systems and software life cycle How to develop the Software ? Software is: Large number of connected computer programs. High level of quality.
Factors of Software Quality Correctness Reliable Robustness Friendly User Interface Modifiable Compatible Portable Interpretable Efficiency Well documented
Requirement Engineering Request to develop SW Yes Feasibility Study Requirement Engineering Customer
Requirement Engineering Requirement Elicitation. Requirement Analysis. Requirement Validation. Requirement Specification.
Requirement Types Functional Requirement. Non-Functional Requirement. Data. Domain. Constraint. Glossary.
Interactive systems After the iterative process, the result of the requirement engineering must be: Clear. Accurate. Complete.
Requirement Engineering Request to develop SW Yes Feasibility Study Requirement Engineering Customer Architecture design Problem Solving
Requirement Engineering Phases: Design (1) Domain understanding (7) Req. Specification (2) Req. Elicitation (6) Req. Validation (3) Req. Decomposition (5) Req. Prioritization (4) Conflict Resolution
Architecture design Module Design Coding Unit Unit Testing System integration, linking, connection System testing Accepting testing Deployment Usage