第一篇 了解你的用户 1
第一部分 弥合差距 3
数字产品需要更好的设计方法 5
1 目标导向设计 5
数字产品设计的现状 6
我们缺少软件开发过程 9
我们面对利益冲突 9
我们对用户一无所知 9
制造业设计的演变 10
识别用户目标 12
行为规划和设计 12
目标VS任务 13
设计要满足上下文中的目标 14
目标导向的设计过程 15
弥合差距 16
过程概况 18
产品成功的关键是目标,而不是特性 22
实现模型 24
2 实现模型和心智模型 24
表现模型 25
用户心智模型 25
工程师设计的界面遵从实现模型 28
大多数软件遵从实现模型 28
数学思维方式产生实现模型的界面 29
机械时代的表现模型与信息时代的表现模型 30
新技术需要新的表现方式 31
机械时代的表现方式 31
机械时代的表现方式有损用户交互 32
对机械时代表现方式的改善:一个例子 33
永久的中间用户 35
3 新手、专家和中间用户 35
为中间用户优化 37
新手需要什么 38
专家需要什么 39
让新手开始 39
永久的中间用户需要什么 40
定性研究与定量研究 42
4 理解用户:定性研究 42
定性研究的价值 43
定性研究的类型 44
人种学调查:用户访谈和用户观察 47
上下文调查的改进 48
上下文调查 48
为人种学调查做准备 49
进行人种学调查 52
焦点小组 56
其他类型的研究 56
可用性和用户测试 57
市场统计和市场划分 57
5 用户建模:人物角色和目标 59
人物角色 60
为什么要用模型 60
作为设计工具的人物角色的力度 61
作为个体代表的人物角色 63
人物角色产生于研究 63
人物角色代表着场景中不同的用户类 64
发掘了行为深度的人物角色 65
人物角色与用户角色 66
人物角色必须有动机 66
人物角色与市场划分 67
人物角色与用户简要 67
用户人物角色与非用户人物角色 68
目标类型 69
目标必须来自定性数据 69
目标 69
目标激发用户模式 69
成功的产品必须首先满足用户目标 72
构造人物角色 73
识别显著的行为模式 74
将访谈主体映射为行为变量 74
再次讨论人物角色假设 74
综合特征和相关目标 75
检查完整性和独特性 76
展开叙述 77
指定人物角色类型 78
其他模型 80
作为设计工具的叙述 81
6 脚本提纲:将目标转换为设计 81
设计中的脚本提纲 82
基于人物角色的脚本提纲与用例 83
在脚本提纲中使用人物角色 83
定义需求 84
用基于人物角色的设计来构思设计方案 84
定义交互框架 90
优化形式和行为 95
交互设计原则 98
7 综合好的设计:原则和模式 98
在不同细节层次运作的原则 99
原则减少工作量 99
交互和建筑模式 100
交互设计模式 100
原则与风格指南 100
交互设计模式的类型 101
交互设计规则 102
结构模式、模式嵌套和预定制的设计 102
伦理的交互设计 103
注重实效的交互设计 104
优雅的交互设计 105
第二篇 设计行为与形式 109
8 软件姿态 111
第二部分 去除障碍,达到目标 111
独占姿态 112
桌面的姿态 112
暂时姿态 117
精灵姿态 120
辅助姿态 122
面向信息的站点 123
Web的姿态 123
事务网站和Web应用 124
Web门户 125
公用信息亭 126
其他平台的姿态 126
电器 127
手持设备 127
流与透明性 129
9 和谐与流 129
遵循心智模型 130
引导,但不要讨论 131
无模态反馈 132
将工具放在顺手的地方 132
和谐 133
增加的技巧:更少,更好 134
区分可能性和概率 135
提供比较 137
反映程序状态 139
使用图形化输入 139
避免不必要的程序状态报告 140
命令调用与配置 141
避免白板 141
提问与提供选择 142
隐藏弹射座椅控制杆 144
什么是附加工作 146
10 消除附加工作 146
GUI附加工作 147
训练工具 148
附加工作和专家用户 148
视觉附加工作 149
“纯粹”的附加工作 149
停止进度 150
确定什么是附加工作 150
错误、通知和确认信息 151
让用户申请许可 152
不必要的保护措施 153
常见的附加工作陷阱 154
不响应 154
导航是附加工作 155
11 导航和调整 155
在窗格之间导航 156
在多个窗口或者页面之间导航 156
导航类型 156
在工具和菜单之间导航 158
信息导航 159
减少目的地数目 160
改善导航 160
提供导航标志 161
提供总体视图 163
提供合适的控件——功能映射 165
调整界面以适应用户需要 167
避免层次关系 169
用户和撤销 171
12 理解撤销 171
撤销支持用户探索 172
用户有关错误的心智模型 172
撤销的类型和变体 173
设计撤销功能 173
单次撤销和多次撤销 174
隐蔽撤销和解释性撤销 174
渐增动作和过程动作 174
恢复 176
分组多次撤销 177
分类撤销 178
比较:这看起来怎么样 178
类似撤销行为的其他模型 178
里程碑和复原 180
被删除的数据缓冲区 180
防撤销操作 181
冻结 181
保存文件改变怎么了 182
13 重新思考“Files”和“Save” 182
另存为 184
关闭和不想要的改变 184
实现模型存在的问题 184
归档 186
隐藏文件系统的实现模型 187
实现模型与心智模型 187
设计统一的文件表现模型 188
自动保存文档 189
统一文档管理 189
创建文档的拷贝 190
指定文档的存储格式 191
存放和移动文档 191
命名和重命名文档 191
新的文件菜单 192
创建文档的里程碑拷贝 192
对改变进行复原 192
放弃所有的改变 192
文件菜单的新名字 193
磁盘和文件系统是一个特性 194
改变的时机 195
第三部分 提供高效能和愉悦 197
设计体贴的软件 199
14 设计体贴的软件 199
什么使软件更体贴 200
体贴的软件是乐于助人的 201
体贴的软件是恭顺的 201
体贴的软件对用户感兴趣 201
体贴的软件是尽责的 202
体贴的软件预见需求 202
体贴的软件具有常识 202
体贴的软件不会因为自己的问题而增加你的负担 203
体贴的软件是自信的 204
体贴的软件有理解能力 204
体贴的软件及时通知我们 204
体贴的软件失败也不失风度 205
体贴的软件不问许多问题 205
体贴的软件知道什么时候调整规则 206
体贴的软件承担责任 207
体贴的软件是可能的 208
15 设计智能的软件 209
浪费的时钟周期 210
利用计算机的空闲周期 210
给软件赋予记忆 211
更好地利用时钟周期 211
记住选择和默认 212
任务一致性 212
要记住的动作 213
记住模式 213
过去的数据输入 214
多会话撤销 214
文件位置 214
可推论的信息 214
赋予应用程序记忆 215
程序文件的外部活动 215
偏好阈值 216
缩小决策集合 216
记忆带来不同 217
多数情况下,多数是对的 217
存储和检索系统 218
16 改进数据检索 218
基于索引的检索 219
一切都各就其位:通过位置存储和检索 219
物理世界的存储和检索 219
数字世界的存储和检索 220
基于属性的检索系统 221
检索方法 221
数据库存在的问题 223
组织非结构化的事物 223
关系数据库与数字汤 223
基于属性的替代方案 224
自然语言输出:一种基于属性检索系统的理想界面 225
数据完整性与数据免疫 227
17 改进数据输入 227
丢失数据怎么办 229
数据免疫 229
审核与校正 231
数据输入和规避能力 231
命令向量和工作集 234
18 为不同的需要进行设计 234
工作集和人物角色 235
直接向量和教学向量 235
世界向量和头脑向量 236
让新手用户变为中间用户 236
记忆向量 237
个性化和配置 238
特殊的模态行为 239
本土化和全球化 240
库和模板 241
第四部分 应用视觉设计原则 243
视觉艺术和视觉设计 245
19 外观设计 245
视觉界面设计和视觉信息设计 246
图形设计和用户界面 246
图形设计和视觉界面设计 246
可视界面设计原则 247
工业设计 247
避免视觉噪音和杂乱 248
使用对比和分层来区分和组织元素 249
在每个组织层次提供视觉结构和流 251
使用紧凑、一致和上下文适宜的图像 254
全面而有目的地结合风格和功能 256
可视信息设计的原则 257
加强视觉对比 258
显示多个变量 259
显示因果关系 259
在相邻空间上显示事物,而不是按时间堆积 260
确保内容的品质、相关性和完整性 260
在一帧显示中结合文本、图形和数据 260
使用文本 261
在可视界面中使用文本和颜色 261
可量化的数据就要量化 261
颜色的滥用 262
使用颜色 262
界面标准化的益处 263
一致性和标准化 263
标准、指导准则和经验法则 264
界面标准化的风险 264
应用程序之间的一致性和标准 265
什么时候打破规则 265
界面范例 267
20 隐喻、习惯用法和启示 267
隐喻界面 268
实现为中心的界面 268
习惯用法界面 270
找到好的隐喻 272
隐喻的其他局限性 272
使用全局隐喻所带来的问题 273
Mac和隐喻:修正主义观点 274
创建习惯用法 275
手动启示 277
实现用户期望的启示 278
手动启示的语义学 278
第三篇 交互细节 281
第五部分 鼠标和操作 283
直接操作 285
21 直接操作和定点设备 285
直接操作过程的三个阶段 287
程序操作与内容操作 287
直接操作是有效交互的关键 288
直接操作习惯用法的视觉反馈 288
光笔和阴极射线管(CRT) 289
定点设备 289
鼠标和间接操作 290
其他定点设备 291
笔的回归 292
鼠标的使用 293
鼠标左键 295
鼠标按钮知多少 295
用鼠标指向和单击 296
鼠标中间键 296
鼠标右键 296
鼠标释放和按下事件 299
受范性和暗示 300
光标 300
输入焦点 303
元键 304
对象—动词的次序和选择 305
22 选择 305
离散选择和连续选择 306
互斥 307
添加选择 308
插入和替换 309
选择的视觉提示 310
成组选择 310
反色 311
选择彩色对象 312
拖放的定义 313
23 拖放 313
源—目标范例 314
内部拖放和外部拖放 314
拖动数据对象到目标功能 315
源—目标交互 316
拖动功能对象到目标数据 316
拖动时的视觉反馈 317
插入目标 319
完成拖放操作 319
自动滚屏 320
其他拖放交互问题 320
完成时的视觉反馈 320
避免拖放抖动 322
鼠标游标 324
单击—拖动 326
控件操作 326
24 操作控件、对象和连接 326
从捕获中逃逸 327
受范性反应 329
调色板工具的行为 330
单击—拖动控件 330
对象操作 332
调整大小和调整形状 333
调整位置 333
调整大小和调整形状的元键变体 335
三维对象的操作 336
对象连接 340
第六部分 控件及其行为 343
PARC和Alto 345
25 窗口行为 345
PARC原则 346
避免模态 347
视觉隐喻 347
层叠窗口 348
全屏应用程序 349
微软与平铺窗口 349
多窗格应用程序 350
不必要的空间 351
选择你的窗口 351
必要的房间 352
窗口污染 354
窗口状态 355
为什么最小化 356
为何要多元状态 358
MDI与SDI 359
避免布满控件的对话框 361
26 使用控件 361
按钮 362
命令控件 362
图标按钮 363
复选框 365
选择控件 365
触发按钮:一种应该避免的选择习惯用法 366
单选按钮 367
组合图标按钮 369
列表控件 370
输入控件 376
树形控件 376
有界输入控件和无界输入控件 377
微调控制项 378
无界输入:文本编辑控件 379
可恨的滚动条 385
文本控件 385
显示控件 385
抽屉和拉动杆 387
分隔器 387
滑动块和刻度盘 387
拇指轮 387
命令行界面 389
27 菜单:教学向量 389
顺序层次关系菜单 390
Lotus 1-2-3 界面 391
下拉菜单和弹出菜单 393
今天的菜单:教学向量 394
标准菜单 397
28 使用菜单 397
文件菜单 398
帮助菜单 399
窗口菜单 399
编辑菜单 399
格式菜单 400
设置菜单 400
可选菜单 400
视图菜单 400
插入菜单 400
级联菜单 401
一些有问题的菜单习惯用法 401
工具菜单 401
扩展菜单 402
突然弹出式菜单 403
触发菜单项 404
使菜单项具有校验标记 404
菜单项惯例及变体 404
禁止菜单项 404
菜单图标 405
快捷键 406
Windows系统菜单 407
助记符 407
工具条:可见的立即功能按钮 408
29 使用工具条和工具提示 408
工具条和工具条控件 409
工具条使菜单更限于教学目的 409
工具条不是菜单 409
工具条上的图标与文本 410
气球帮助:第一次尝试 411
解释工具条控件 411
标签化图标按钮存在的问题 411
工具提示 412
禁用工具条控件 413
状态指示工具条控件 414
工具条的演化 414
可移动工具条 415
工具条上的菜单 415
可定制工具条 416
开始菜单 417
Windows任务栏:特殊目的的工具条 417
窗口按钮 418
快速启动工具条 418
任务栏上应该有更多的工具条吗 419
状态区 419
对话框暂停了正常交互 420
30 使用对话框 420
模态对话框 422
对话框基础 422
非模态对话框 423
改进非模态对话框的两个方法 424
非模态对话框存在的问题 424
属性对话框 429
目标导向对话框 429
功能对话框 430
进度对话框 431
公告对话框 433
消除进度对话框 433
礼貌是对话框的美德 435
31 对话框礼节 435
标题栏 436
暂时姿态 437
减少附加工作 438
了解是否需要减少附加工作 439
了解需要减少附加工作的位置 439
模态对话框的终止命令 440
关闭框 441
帮助按钮 442
标签对话框 443
键盘快捷方式 443
广度与深度 444
堆叠标签:滥用对话框 445
扩展对话框 446
级联对话框 447
动态对话框 448
直接操作控件 450
32 创建更好的控件 450
例2:指定网格 451
例1:可拖动的阴影 451
摘录控件 452
视觉控件 455
第七部分 与用户的交流 459
错误对话框被滥用了 461
33 消除错误 461
人们讨厌错误消息 462
错误消息怎么啦 462
为什么我们有这么多的错误消息 462
到底是谁的错 463
消除错误消息 465
错误消息不起作用 465
使错误不可能 466
正面反馈 467
有特例吗 468
改进错误消息:最后一招 469
错误的结束 470
提示:宣布显而易见的内容 471
提示和确认 471
34 通知和确认 471
确认 473
丰富的视觉非模态反馈 477
取代对话框:丰富的非模态反馈 477
听觉反馈 479
程序名称 482
桌面上的标志 482
35 与用户的其他交流方式 482
程序图标 483
“关于”对话框 484
辅助应用程序窗口 484
闪屏 486
索引 487
在线帮助 487
共享软件闪屏 487
非模态和交互式帮助 488
不是为新手用户准备的 488
快捷方式和总览视图 488
向导 489
“智能”代理 490
最好的安装就是无须安装 491
36 安装过程 491
接二连三的厄运 492
在不通知后果的情况下,要求用户做出响应 493
不告诉用户动作的影响范围 494
提出用户不可能知道答案的问题 495
不做准备 496
向用户询问计算机自身能够回答的问题 496
不提供卸载方法 497
将文件放在不妥当的地方 498
滥用系统范围内的文件 498
忽略先前活动 498
覆盖共享文件 499
要求用户主动参与 500
混淆配置和安装 500
不向用户提供有关程序的任何信息 500
第八部分 超越桌面的设计 501
37 Web设计 503
好消息和坏消息 504
Web设计的普遍神话 505
Web应用 507
Web站点 507
Web站点与Web应用 507
38 嵌入式系统的设计 514
一般设计原则 514
不要把你的产品当成计算机 515
结合硬件和软件设计 515
上下文驱动设计 516
明智地使用模态 517
限制范围 518
平衡导航与显示密度 518
将输入复杂性最小化 519
为你的平台定制 519
手持设备的设计 520
设计公用信息亭 521
公用信息亭的姿态和导航 522
事务与探索 522
管理输入 523
公共环境下的交互 523
听觉界面的设计 524
附录A 本书公理集 525
附录B 本书设计技巧集 529
跋:给同行的话 533