[Russell Han] 20 | 软工 2 | 人机交互设计
什么是人机交互设计
- 人机交互设计的目的在于增加可用性
- 不好的交互接口实例
- 不好的人机交互设计
系统用户判断系统好不好常常是通过交互接口来判断,而不是他的功能(设计用户接口时应该与目标人群的技能、经验、用户期望相匹配)
不好的用户接口会导致用户犯大错误 - 好的人机交互接口设计致力于使人获得可用的、有效的经历
- 好的人机交互设计
易用、自然、engaging
好的用户接口的系统行为与人们期待的一致
好的用户接口过渡平滑 - 评价人机交互的好坏——可用性
可用性是多维性质:
易学习;效率高;中断后恢复可继续操作;少犯错、犯错后恢复迅速;用户满意 - 易学性和效率是有冲突的
- 记忆相关
记忆过程:编码——>存储——>recall
不是一次记住所有,而是包括筛选记忆和逐步消化
上下文很重要
两种记忆结构:recognize和recall;recognize比recall容易
GUI的出现超越了命令行
图片比文字好记
图标比名字好记
人机交互设计的三个因素
人
- 人在人机交互中的角色
用户可以是一个人或一群人
用户使用计算机进行工作
用户只看到它们想看到的 - 人的特性
有限的短期记忆(7 ± 2原则)
人会犯错(Avoid, Resume, Help)
使用者很不同(新人用户,熟练用户,专家用户)
不同人有不同的交互爱好 - 同样的界面,不同人看到不同东西
普通用户看到:得分数据
技术人员看到:2D界面,控制组件,文件的显示,软件功能展示 - 精神模型
人只看到自己想看到的——因为人都有自己的精神模型,他们对自己想要做的事都有隐喻 - 隐喻
例子
设计隐喻会使人不自觉地产生某种精神模型
设计目标是:让我们的设计使用户产生的精神模型与用户实际的精神模型相吻合 - 开发精神模型
发现用户想要干什么
用户的需求,工作目标和结果任务
做功能是因为功能帮助用户解决问题,而不是因为这个功能好做;只添加适当的功能,而且加入的功能要保持概念完整性
还要考虑目标用户使用某功能的频率高低 - 用户特点不同,分为三类
新手用户:对业务不熟悉的人,例如新员工或者新接触系统的人;为新手用户设计系统时要关注易学性,进行业务导航,尽量避免出错;如果一个系统大多数用户都是新手用户,整个系统的人机交互设计都要侧重易学性;软件应用越是广泛,越要侧重新手用户
专家用户:能够熟练操作计算机完成业务的人,一般都是长时间使用软件系统并且计算机操作技能熟练的人;为专家用户设计系统时,要关注效率;如果一个系统大多数用户都是专家用户,整个系统的人机交互设计都要侧重效率
熟练用户:somewhere in between - 好的人机交互应该为不同的用户群体提供差异化的交互机制
既为新手用户提供易学性高的人机交互机制(图形界面),又为专家用户提供效率高的人交互机制(命令行、快捷方式、热键)
机
- 人机交互设备
输入设备:键盘、鼠标、手写板等
输出设备:显示屏、喇叭、打印机等 - 可视化设计
从可视化设计语言Visual Basic开始,对可视化构件的布局就成为可视化设计等主要工作
常见的可视化构件包括:窗口,菜单,标签,表单,按钮,列表,树形控件,组合框,输入框等 - 可视化设计要点
按照任务模型设计界面隐喻,不要把软件系统的内部构造机制暴露给用户
暴露了内部构造的例子
可视化设计还应该基于界面隐喻,尽可能把功能和人物细节表现出来;功能要与场景结合起来,不是简单的罗列功能(如例子中选择题,好的设计应该用各自字体显示字体名字)
展示细节的例子
- 常见界面类型
- 交互
交互是双向的:用户主动要求系统;系统主动告知用户
一方面用户主动向软件系统提出请求(输入信息),软件系统给予用户响应(输出信息)
另一方面,软件系统也应该主动告知用户相应的信息,并等待用户的响应 - 交互风格
图形直接操作(窗口图标)
菜单选择
表单
命令
自然语言 - 直接操作
界面上有信息按钮和功能按钮
好处:用户会有可控制电脑的感觉,不会被吓到;用户学习时间相对短;用户在操作后有直接反馈;错误可以被很快监测到并改正
坏处:信息模型和隐喻不易建立;不容易形成好的布局;用户接口很复杂 - 菜单系统
两类菜单:下拉菜单和弹出菜单
下拉菜单:可预测,但是占屏幕空间;展示菜单title;用户可在菜单上选择命令
弹出菜单(如警告、造成注意等):灵活,可容忍性强,容易在用户意料之外;常与实体联系
好处:用户无需掌握命令名称;打字错误很少;可以避免一些用户操作错误(如不该调用的图标就被拉灰);可随附文本帮助
坏处:不易展示与/或逻辑;大菜单结构复杂,需要一步步展开 - 表单
好处:适合展示、填写结构化信息
坏处:只适合展示、填写结构化信息 - 命令行
好处:实现简单;可进行复杂的操作;打字困难小;可避免一些用户操作错误;可随附文本提示
坏处:学习困难,记忆困难;容易出错 - 自然语言
自然语言交互,新技术 - 交互风格总结
交互
导航
- 好的人机交互设计就像一个服务周到的推销员,能够主动将自己的产品和服务简明扼要地告诉用户,这就是个导航
- 好的导航像一个好的餐厅菜单,餐厅菜单能够帮助顾客快速地找到喜欢的食物,软件系统导航也要能帮助用户找到任务入口
- 导航的目的就是为用户提供一个很好的完成任务的入口,好的导航会让这个入口非常符合人的精神模型
- 导航有两类
全局导航:按照任务模型将软件产品的功能组织起来,并区分不同的重要性和主题提供给不同用户(全局结构常用的导航控件包括窗口,菜单,列表,快捷方式,热键等;全局结构的设计主要以功能分层和任务交互过程为主要依据)
局部结构:通过安排界面布局细节,制造视觉上的线索来给用户提供导航(局部结构常用的导航控件包括可视化空间布局与组合、按钮设置、文本颜色或字体大小等;局部结构的设计主要以用户关注的人物细节为主要依据) - 导航实例
反馈
总结经验
- 用户喜欢较短的响应时间
- 较长的响应时间(大于15秒)具有破坏性
- 用户会根据响应时间的变化调整自己的工作方式
- 较短的响应时间导致了较短的用户思考时间
- 较快的节奏可能会提高效率,但是会增加出错率
- 根据任务选择适当的响应时间(要给出不同的响应和反馈)
- 响应时间适度的变化是可以接受的
- 意外延迟可能具有破坏性
- 经验测试有助于设置适当的响应时间
协作式设计
以用户为中心
- 人和计算机是交互的两方,其中人的因素是比较固定的,一定时期内不会发生大的变化,所以要两者交互顺畅,就需要让计算机更多地适应人的因素,这也是人机交互设计以用户为中心的根本原因
- 这种调整计算机因素以更好适应并帮助用户的设计方式被称为协作式设计
设计原则
简洁的原则
如图比文字好
一致的原则
统一结构下应该有统一的设计(除非故意设计的不一致以达到某种目的)
低出错率原则
- 人机交互设计首先要帮助人们避免犯错,尽可能设计不让用户犯严重错误的系统
具体措施包括将不适当的菜单选项功能以灰色显示屏蔽
禁止在数值输入域中出现字母字符 - 当错误出现时,系统还要在人机交互中提供简洁、有建设性、具体的指导来帮助用户消除错误
填写表单时如果用户输入了无效的编码,那么系统应该引导他们对此进行修改,而不是要求用户重新填写整个表单 - 出错信息应当遵循以下四个简单原则
使用清晰的语言来表达,而不是使用难懂的代码
使用的语言应当精炼准确,而不是空泛、模糊的
应当对用户解决问题提供建设性的帮助
出错信息应当友好,不要威胁或责备用户 - 系统还应该提供错误恢复和故障解决帮助手册
易记性原则
A, 减少短期记忆负担
B, 使用逐层递进的方式展示信息,在展示复杂信息时,可以将其分为不同层次,递进展现越来越丰富的信息
C, 使用直观的快捷方式,人的记忆具有短时记忆的特点,时间越长越容易忘记
D, 设置有意义的缺省值
人机交互的设计过程
- 一般人机交互设计与详细设计并行
- 确定对话结构图(即页面是如何跳转的)
- 结构搞好后,为每个页面进行页面设计
4. 根据页面设计制作出原型化界面
5. 做完原型后进行评估