Human Computer Interaction User Interface 1 What is

  • Slides: 81
Download presentation
Human Computer Interaction User Interface 1

Human Computer Interaction User Interface 1

What is a User Interface? The user interface is the part of a software

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. 2

User Interface • Today, building the Human-Computer Interface consumes 50 – 70 percent of

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. 3

Human Computer Interaction – User Interface development cycle • HCI = design, prototyping, evaluation,

Human Computer Interaction – User Interface development cycle • HCI = design, prototyping, evaluation, and implementation of user interfaces (UIs) Implementation (Prototype) design evaluation 4

Iteration At every stage! Design Evaluate Prototype 5

Iteration At every stage! Design Evaluate Prototype 5

Why Study User Interfaces? • Major part of work for “real” programs – approximately

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 6

Who builds UIs? • A team of specialists (ideally) – graphic designers – interaction

Who builds UIs? • A team of specialists (ideally) – graphic designers – interaction / interface designers – marketers – test engineers – software engineers 7

Five Key Ideas about UIs in HCI • • • Visibility Feedback Goal Affordance

Five Key Ideas about UIs in HCI • • • Visibility Feedback Goal Affordance Task 8

Five Key Ideas about UIs in HCI Cont. • Visibility: all necessary controls should

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. 9

Five Key Ideas about UIs in HCI Cont. • Feedback – When anything changes

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. 10

Five Key Ideas about UIs in HCI Cont. • Affordance – An affordance is

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? 11

Affordance • Every action should be mapped to a graphical icon which can easily

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. 12

Five Key Ideas about UIs in HCI Cont. • Task – An action the

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. 13

Bad User Interfaces • Hard to tell the difference between the two icons and

Bad User Interfaces • Hard to tell the difference between the two icons and names 14

15

15

16

16

Interface design • Interface design is important for several reasons: 1. The better the

Interface design • Interface design is important for several reasons: 1. The better the user interface the easier it is to train people to use it. 2. Reducing training costs. 3. The better your user interface the less help people will need to use it, so reducing your support costs. 4. The better your user interface the more your users will like to use it. 5. Increasing their satisfaction with the work that you have done. 17

User Interface Malfunctions( ﺍﻷﻌﻄﺎﻝ ) Key idea: • “There are no good user interfaces

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. 18

Definitions of malfunction • “A mismatch between what the user wants, needs or expects

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”. 19

The fit of HCI elements • HCI should be designed to achieve a fit

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( ﻧﻔﺴﻲ ) 20 welfare( ﺧﻴﺮ ).

The fit of HCI elements leads to performance and well-being Human Fit Task Performance

The fit of HCI elements leads to performance and well-being Human Fit Task Performance & Well-being Computer 21

What constitutes( ﻳﺸﻜﻞ ) a good user interface? • Achieve required performance by operator(

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 ). 22

Human Computer Interaction Usability and Design 23

Human Computer Interaction Usability and Design 23

Usability • A usable system is: – easy to learn – easy to remember

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 24

Why is usability important? • Many everyday systems and products seem to be designed

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…. 25

List of common measurable goals for usability: • • Time to learn how to

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. 26

Principles supporting usability Learnability The ease with which new users can begin effective interaction

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 ). 27

1. Learnability Principles • The ease with which new users can begin effective interaction

1. Learnability Principles • The ease with which new users can begin effective interaction and achieve maximal performance. There a lot of aspects which support the learnability principle in usability subject, such as: – – – Predictability. Synthesizability. Generalizability. Familiarity. Consistency. 28

learnability Principles Cont. Predictability – Determining effect of future actions based on past interaction

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. 29

learnability Principles Cont. Generalizability – Extending specific interaction knowledge to new situations. – The

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. 30

learnability Principles Cont. Familiarity – How prior knowledge applies to new system. – New

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. 31

2. Flexibility Principles • Multiplicity of ways that users and system exchange information, and

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. 32

Flexibility Principles Cnt. Dialogue initiative – Freedom from system imposed( ﻓﺮﺿﺖ ) constraints on

Flexibility Principles Cnt. Dialogue initiative – Freedom from system imposed( ﻓﺮﺿﺖ ) constraints on input dialogue. – Old dialogue boxes are called system preemptive. System does all prompts, user responds sometimes necessary. – Modern dialogue boxes are called user preemptive. 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. 33

Flexibility Principles Cnt. Task migratability – Passing responsibility for task execution between user and

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. 34

Flexibility Principles Cnt. Substitutivity – Allowing equivalent values of input and output to be

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. 35

Flexibility Principles Cnt. 36

Flexibility Principles Cnt. 36

Flexibility Principles Cnt. Customizability – Modifiability of the user interface by user or system

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. 37

3. Robustness( ﻣﺘﺎﻧﺔ ) Principles • Supporting user in determining successful achievement and assessment

3. Robustness( ﻣﺘﺎﻧﺔ ) Principles • Supporting user in determining successful achievement and assessment of goals, by the following concepts: – Observability. – Recoverability. – Responsiveness. – Task Conformance. 38

Principles robustness Cnt. Observability – Ability of user to evaluate the internal state of

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. 39

Principles robustness Cnt. Recoverability – Ability of user to take corrective action once an

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. 40

Principles robustness Cnt. Responsiveness – How the user perceives the rate of communication with

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. 41

Principles robustness Cnt. • Task conformance – Degree to which system services support (perform)

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? 42

User-centred design • In UI design the needs of the user are paramount( ﻗﺼﻮﻯ

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. 43

The UI design process • UI design is an iterative process involving close liaisons(

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. 44

The design process 45

The design process 45

User analysis • User analyses have to be described in terms that users and

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. 46

Analysis techniques • Task analysis – Models the steps involved in completing a task.

Analysis techniques • Task analysis – 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. 47

User interface prototyping • The aim of prototyping is to allow users to gain

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. 48

User interface evaluation • Some evaluation of a user interface design should be carried

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. 49

Information presentation • Information presentation is concerned with presenting system information to system users

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 50

Error messages • Error message design is critically important. • Poor error messages can

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. 51

HCI design models • The waterfall life cycle model. • The star life cycle

HCI design models • The waterfall life cycle model. • The star life cycle model. • Rapid prototyping model. 52

Design Process Models • Waterfall model The waterfall model assumes that the design is

Design Process Models • Waterfall 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. 53

Waterfall Model ( From Software Engineering Field ) Initiation Application Description Analysis Requirements Specification

Waterfall Model ( From Software Engineering Field ) Initiation Application Description Analysis Requirements Specification System Design Implementation Product 54

The waterfall model • Application description – General description of the purpose and the

The waterfall model • Application description – 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 55

The star life cycle Implementation Task analysis / functional analysis Evaluation Prototyping Requirements specification

The star life cycle Implementation Task analysis / functional analysis Evaluation Prototyping Requirements specification Conceptual design / formal design 56

The star life cycle • The design of interactive systems typically does not follow

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. 57

Software prototyping • A prototype is an initial version of a system used to

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. 58

Why prototype? • Evaluation and feedback are central to interaction design. • Stakeholders can

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. 59

Benefits of prototyping • • • Improved system usability. A closer match to users’

Benefits of prototyping • • • Improved system usability. A closer match to users’ real needs. Improved design quality. Improved maintainability. Reduced development effort. 60

What to prototype? • Work flow, task design. • Screen layouts and information display.

What to prototype? • Work flow, task design. • Screen layouts and information display. • Difficult, controversial, critical areas. 61

Low-fidelity( ﺍﻟﺪﻗﺔ )ﻣﻨﺨﻔﺾ Prototyping • Uses a medium which is unlike the final medium,

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… 62

High-fidelity prototyping • Uses materials that you would expect to be in the final

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. 63

Compromises( )ﺍﻟﺘﺴﻮﻳﺎﺕ in prototyping • Two common types of compromise: • Horizontal: provide a

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. 64

The prototyping process 65

The prototyping process 65

Sketches – Drawing of the outward( ) ﺍﻟﺨﺎﺭﺟﻲ appearance of the intended system. –

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 66

Storyboard of a computer telephone Computer Telephone Last Name: First Name: Phone: Place Call

Storyboard of a computer telephone Computer Telephone Last Name: First Name: Phone: Place Call Help-> Help Computer Telephone Dialling. . Last Name: Greenberg First Name: Cancel Phone: Place Call Help Screen You can enter either the person's name or their number. Then hit the place button to call them Computer Telephone Call by name-> Last Name: Greenberg First Name: Phone: Place Call Return Establishing connection-> Help Computer Telephone Call Connected Name: Greenberg connected. . . Last First Name: Hang up Phone: Place Call completed. . . Help 67

Computer Telephone Help Screen Computer Telephone You can enter either the Last Name: Greenberg

Computer Telephone Help Screen Computer Telephone You can enter either the Last Name: Greenberg person's name or their Dialling. . Connected Greenberg Last Name: First Name: number. Then hit the First Name: Phone: Cancel Hang up place Phone: button to call them Place Call Return Help. Type name and place call 68

UI design principles • UI design must take account of the needs, experience and

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. 69

Design principles • • • User familiarity – The interface should be based on

Design principles • • • User familiarity – 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. 70

 • • • Design principles Cnt. Recoverability – The system should provide some

• • • Design principles Cnt. Recoverability – 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 71 available.

User interface design principles 72

User interface design principles 72

Interactive systems and software life cycle • How to develop the Software ? •

Interactive systems and software life cycle • How to develop the Software ? • Software is: – Large number of connected computer programs. – High level of quality. 73

Factors of Software Quality • • • Correctness Reliable Robustness Friendly User Interface Modifiable

Factors of Software Quality • • • Correctness Reliable Robustness Friendly User Interface Modifiable Compatible Portable Interpretable Efficiency Well documented 74

Request to develop SW Yes Feasibility Study Requirement Engineering Customer 75

Request to develop SW Yes Feasibility Study Requirement Engineering Customer 75

Requirement Engineering • • Requirement Elicitation. Requirement Analysis. Requirement Validation. Requirement Specification. 76

Requirement Engineering • • Requirement Elicitation. Requirement Analysis. Requirement Validation. Requirement Specification. 76

Requirement Types • • • Functional Requirement. Non-Functional Requirement. Data. Domain. Constraint. Glossary. 77

Requirement Types • • • Functional Requirement. Non-Functional Requirement. Data. Domain. Constraint. Glossary. 77

Interactive systems • After the iterative process, the result of the requirement engineering must

Interactive systems • After the iterative process, the result of the requirement engineering must be: – Clear. – Accurate. – Complete. 78

Request to develop SW Yes Feasibility Study Requirement Engineering Customer Problem Architecture design Solving

Request to develop SW Yes Feasibility Study Requirement Engineering Customer Problem Architecture design Solving 79

Requirement Engineering Phases: (1) Design Domain understanding (7) Req. Specification (2) Req. Elicitation (6)

Requirement Engineering Phases: (1) Design Domain understanding (7) Req. Specification (2) Req. Elicitation (6) Req. Validation (3) Req. Decomposition (5) Req. Prioritization (4) Conflict Resolution 80

Architecture design System testing Accepting testing Module Design System integration, linking, connection Coding Unit

Architecture design System testing Accepting testing Module Design System integration, linking, connection Coding Unit Testing Deployment Usage 81