1、南京大学软件学院 人机交互的软件工程方法 2012年春 人机交互的软件工程方法 人机交互概述 主讲教师:冯桂焕 2012 年春季南京大学软件学院 人机交互的软件工程方法 2012年春 什么是人机交互? 你听说过“人机交互” 吗? 能说一些人机交互相关的概念吗? 为什么要学习人机交互? 你觉得人机交互重要吗? 人机交互与软件工程之间是什么样的关系? 如何撰写人机交互方面的学位论文? 不推荐! 人机交互工程师就像品酒师南京大学软件学院 人机交互的软件工程方法 2012年春 日常生活中的交互设计 银行的自动应答系统 电子商务网站上,中国(China) 不在以”C” 开头 的国家列表? “返回桌面”
2、图标的位置 Mac OS 平台和Windows 平台的菜单栏位置 南京大学软件学院 人机交互的软件工程方法 2012年春 身边的交互设计 选择“插入剪贴画”南京大学软件学院 人机交互的软件工程方法 2012年春 南大人力资源页面南京大学软件学院 人机交互的软件工程方法 2012年春南京大学软件学院 人机交互的软件工程方法 2012年春南京大学软件学院 人机交互的软件工程方法 2012年春 课程练习举例 谁将使用你的产品? 用户需要什么样的产品? 用户具有哪些技能? 用户会怎么看待你的产品? 以用户为中心的设计!南京大学软件学院 人机交互的软件工程方法 2012年春 功能完备的软件未必是好软件!
3、 Q :什么样的软件才是好软件?南京大学软件学院 人机交互的软件工程方法 2012年春 课程简介 内容 什么是HCI 相关的认知心理学内容 如何开展交互设计 软件可用性评估方法 考核方式 出勤、日常练习 (10%) 闭卷考试 (50%) 实践项目 (40%)南京大学软件学院 人机交互的软件工程方法 2012年春 课程纪律要求 作业 请及时确定作业分组,截止日期一周后无效 推迟作业将扣除相应分数(每次作业满分10 分) 推迟一天,扣除一分 推迟二天,扣除二分 推迟一周后,分数无效 补交作业请联系助教 抄袭 作业无效南京大学软件学院 人机交互的软件工程方法 2012年春 我的联系方式 办公室 费彝
4、民楼926 室 办公电话 8362 1360 转 936 学院邮箱 TSS 课程模块南京大学软件学院 人机交互的软件工程方法 2012年春 第一部分 背景知识南京大学软件学院 人机交互的软件工程方法 2012年春 相关术语 Man-Machine Interaction (MMI) / Human-Machine Interaction (HMI) “Man-Machine Interaction” politically incorrect Study of the ways how humans use machines Man-Computer Interaction (MCI) /
5、Human-Computer Interaction (HCI) Computer-Human Interaction (CHI) User-Centered Design (UCD) Human Factors (HF) Usability南京大学软件学院 人机交互的软件工程方法 2012年春 什么是人机交互 Human-Computer Interaction 1980s 被正式采用 “HCI is a discipline concerned with the design, evaluation and implementation of interactive computing s
6、ystems for human” -ACM SIGCHI Curricula for HCI南京大学软件学院 人机交互的软件工程方法 2012年春 HCI 的研究内容-SIGCHI 人 计算机 使用上下文 开发过程 H1 人类 信息处理 H2 语言、 通信和交互 D3 评估技术 D1 设计方法 D2 实现技术和工 具 C1 输入 输出设备 C3 对话类型 C5 对话架构 C4 计算机图形 C2 对话技术H3 人机 工程学 U1 社会组织和工 作 U3 人机匹配和适 应 U2 应用领域 D4 示例系统 和案例学习南京大学软件学院 人机交互的软件工程方法 2012年春 市场角度 用户期望简单易用
7、的系统 对设计低劣系统的容忍度越来越差 企业角度 提高员工的生产效率 降低产品的开发成本 降低产品的后续支持成本 用户角度 获得较高的主观满意度 减少时间、金钱、生命损失 HCI 的重要性南京大学软件学院 人机交互的软件工程方法 2012年春 相关领域 HCI psychology sociology computing etc. etc. etc. business & management CSCW computer supported cooperative work visualisation ubiquitous computing etc. etc. etc. e-learning
8、 Human Factor南京大学软件学院 人机交互的软件工程方法 2012年春 HCI 是门交叉学科 孤立地从一个学科出发不可能设计出有效的交互 式系统 Scott Kim 指出,学科就像文化 不同学科的人员必须学着尊重对方的语言、习俗和价 值观 任何能够促进交流的方法都将使设计过程以及最终的 产品获益 Alan Dix 建议,要特别关注作为核心学科的计算 机科学、心理学和认知科学在交互式系统设计方 面的应用南京大学软件学院 人机交互的软件工程方法 2012年春 第二部分 人机交互的历史南京大学软件学院 人机交互的软件工程方法 2012年春 人机交互的发展历史 新的界面变革包含了上一代界面
9、作为一种特例 旧的交互方式仍有其存在的必要性 以前的用户从未消失 学习目的 利用原有技术实现新的交互手段南京大学软件学院 人机交互的软件工程方法 2012年春 重要的学术事件 1945 年, Vannevar Bush, “As we may think”( 诚如所思) 应借助设备或技术帮助科学家检索、记录、分析及传输各种信 息,Memex 工作站 1959 年,HCI 领域第一篇论文 从减轻操作疲劳的角度讨论计算机控制台设计 1960 年 Liklider JCK 提出“Human-Computer Symbiosis”( 人机共生) HCI 的启蒙观点南京大学软件学院 人机交互的软件工程方
10、法 2012年春 HCI 的里程碑 1969 年,第一次人机系统国际大会召开,第一份专业杂志创刊 1970 年,英国拉夫堡(Loughbocough) 大学的HUSAT 研 究中心和Xerox 公司的Palo Alto 研究中心成立(PARC ) 1980s ,出版学术专著,Interface-Interaction 1990s ,智能化交互、多通道交互、虚拟现实、脑机交 互南京大学软件学院 人机交互的软件工程方法 2012年春 主要发展阶段南京大学软件学院 人机交互的软件工程方法 2012年春 批处理阶段 每次只能由一个用户对计算机进行操作 编写程序使用以“0|1” 串表示的机器语言 不符合
11、人的习惯 耗费时间,又容易出错 只有少数专业人士才能够运用自如 世界上第一台电子计算机ENIAC From IBM Archives.南京大学软件学院 人机交互的软件工程方法 2012年春 联机终端时代 1950s ,命令行界面出现 一维界面 回车后不能再对命令内容进行修改 如何为各种命令制定恰当的名称 大部分命令语言对用户输入的要求非常严格 命令名称的缩写在一定程度上减轻了用户的使用负担南京大学软件学院 人机交互的软件工程方法 2012年春 图形用户界面时期 1962 年,Ivan Sutherland 创建Sketchpad 1964 年,Douglas Engelbart 发明了鼠标 W
12、IMP 界面 用户可在窗口内选取任意交互位置,且不同窗口之间能够叠加 二维半界面 “直接操纵”:GUI 的主要特征 问题:图形用户界面优于字符界面? 不同的交互方式本身在可用性方面并没有根本性的不同,更重 要的是认真对待界面设计的态度。 Whiteside 1985 南京大学软件学院 人机交互的软件工程方法 2012年春 著名的人物与事件 Vannevar Bush “As we may think”, 大西洋月刊1945 “ 超文本之父” 预计了PC 和Web 的出现 制造了世界上首台模拟电子计算机 MEMEX 扩展人类记忆 Internet 的原型 被尊为“信息时代的教父”南京大学软件学院
13、 人机交互的软件工程方法 2012年春 Memex南京大学软件学院 人机交互的软件工程方法 2012年春 Ivan Sutherland SketchPad, 1963 第一个交互式绘图系统 许多思想仍沿用 使用光笔画图 计算机图形学之父 第一个虚拟头盔 实现了三维立体显示 虚拟现实之父 1988 Turing Award南京大学软件学院 人机交互的软件工程方法 2012年春 Douglas Engelbart 发明鼠标,1964 被IEEE 列为计算机诞生50 年来 最重大的事件之一 “Augmenting the Human Intellect” 超文本技术的研究 第一个标准化的编辑器 N
14、LS(oNLine System) 1997 Turing Award南京大学软件学院 人机交互的软件工程方法 2012年春 Alan C. Kay 1977 年Xerox PARC 的Alan Kay 提出为服务于个人的直接操作界面 “Dynabook” 这是现代笔记本电脑原型 “每个人都想拥有自己的PC ,就像每个人都想 拥有自己的汽车” 发明面向对象的编程语言“Smalltalk” 2003 Turing Award南京大学软件学院 人机交互的软件工程方法 2012年春 Mark Weiser 普适计算是21 世纪的计算模式 于1988 年在Xerox PARC 的计算机科 学实验室首次
15、提出了这个概念 它把计算机嵌入到各种类型的设备中, 建立一个将计算和通信融入人类生活空 间的交互环境,从而极大地提高个人的 工作以及与他人合作的效率南京大学软件学院 人机交互的软件工程方法 2012年春 Xerox Alto (Star 的前身) 第一个“所见即所得” 的文字处理软件 Bravo南京大学软件学院 人机交互的软件工程方法 2012年春 Xerox Star - 1981 第一个为商务人员设计的商用图形界面PC 桌面隐喻, WYSIWYG 第一个基于可用性工程的系统南京大学软件学院 人机交互的软件工程方法 2012年春 Apple Lisa - 1982 第一个基于GUI 的PC
16、概念成功,商业失败南京大学软件学院 人机交互的软件工程方法 2012年春 Apple Macintosh (1984 ) 获得了商业上的成功 价格低- $2500 界面友好 支持第三方应用 高质量图像和激光打印南京大学软件学院 人机交互的软件工程方法 2012年春 MS Windows (1987) 原定于1983 年发布的Windows 于1987 年8 月11日公布。南京大学软件学院 人机交互的软件工程方法 2012年春 Interactive and command line南京大学软件学院 人机交互的软件工程方法 2012年春 未来的人机交互 图形用户界面正遭受越来越多的批评 One
17、ear, one finger, one eye “ 计算机能像书本一样方便地使用和携带”? 多媒体界面 引入动画、音视频等动态媒体 二维半- 三维 或更高 多通道交互技术 具有并行性,可同时接收来自多个通道的信息 虚拟现实 语音交互 脑机交互南京大学软件学院 人机交互的软件工程方法 2012年春 未来的人机交互 下一代界面的主要风格将是没有命令的用户界面 由更多的媒体类型来构成更高的信息维度 交互也将高度便携和个性化 -Jacob Nielsen南京大学软件学院 人机交互的软件工程方法 2012年春 人机交互与软件工程南京大学软件学院 人机交互的软件工程方法 2012年春 相互独立? 软件工
18、程师与人机交互设计人员关注的重点有很大不同 以功能为中心 vs. 以用户为中心 交互设计的评估方式也与一般软件工程方法存在不同 二者经常分开讨论南京大学软件学院 人机交互的软件工程方法 2012年春 HCI 对SE的促进作用 传统SE方法在实现交互式系统方面的缺陷 没有提出明确地对用户界面及可用性需求进行描述的 方法 不能够在系统开发过程进行中对用户界面进行终端测 试 具有完善的系统功能 产品的可用性、有效性以及满意度并不高南京大学软件学院 人机交互的软件工程方法 2012年春 二者在系统工程中的关系 Buie and Vallone 1997 Buie E.A. and Vallone A.
19、 Integrating HCI Engineering and Software Engineering: A Call to a Larger Vision. In Proceedings of HCI97:525-530.南京大学软件学院 人机交互的软件工程方法 2012年春 将二者结合的困难 价值观不同 SE: 实施策略和方法选择上常有一定的倾向性 HCI: 包含较多的主观性和灵活性 方法论存在差异 SE: 形式化分析方法 HCI: 非形式化方法南京大学软件学院 人机交互的软件工程方法 2012年春 对于软件工程人员最为重要的25 个知识领域 Lethbridge 2000 Timot
20、hy C. Lethbridge. What Knowledge is Important to a Software Professional? IEEE Computer, May 2000, pp. 44-50.南京大学软件学院 人机交互的软件工程方法 2012年春 小结 什么是人机交互 人机交互的重要性 人机交互的发展 人机交互与软件工程南京大学软件学院 人机交互的软件工程方法 2012年春 作业 阅读作业 阅读“What Knowledge is Important to a Software Professional?” 一文,准备课堂报告ppt 实践作业 两人一组,跟帖发布在TSS 上,截止日期:4 月15 日 延期发布者将在大作业总评中减去10% 分数 思考感兴趣的交互式软件系统题目 后续工作:人物角色描述,需求定义,低/ 高保真原型设计 ,原型评估,软件开发,可用性测试