当前课程知识点:软件工程 >  第12章 软件交互设计 >  12.4 KLM效率模型 >  Video

返回《软件工程》慕课在线视频课程列表

Video在线视频

下一节:讲授视频

返回《软件工程》慕课在线视频列表

Video课程教案、知识点、字幕

设计原理方面

下面我需要给大家

介绍两个非常有用的量化方法

它关乎我们界面设计的

交互效率

就是大家使用起来的

这种速度体验

第一个是我们叫做KLM模型

中文叫击键层的效率模型

就是Keystroke-level model

它是用来测量任务完成的时间

有具体交互任务完成的时间

那么我们的界面设计本身

实际上决定了这样一个时间量

下面我们来介绍一下

这个模型的组成和计算规则

进一步地我们还会讨论

基于这个模型

我们如何来做界面效率的优化

那么它叫做击键层这个模型

有这样几个方面

就是说我刚才要

介绍它的组成和优化

那么我们来看一下

具体的这个模型的组成

那么它考虑两类

很简单

但是非常基本的

一共四种击键动作

所以它叫Keystroke-level

那么一类是关于键盘的操作

就是键盘的键的按键操作

一类我们称为GID

叫Graphical Input Devices

就是图形输入设备

就是很典型的

我们的鼠标 我们的触屏

那么在键盘的操作上

我们只考虑这个Tap

就是按下这个键

那么鼠标的操作就如表上所示

有单击 双击和拖拽

这样严格的定义

比如Tap就定义为按下

并且松开一个键

就是在我们的键盘上

按下并且松开

而Click

大家都知道是什么意思了

Drag就是一个拖拽动作

用鼠标拽着一个对象

到它的目的地以后要松开

这是一个非常细节的

就是关于击键动作的定义

两类 四个动作

那么这个键盘

也就是说在这个图形输入

以及键盘上

按键方式的详细定义

和简化表示

大家可以阅读

我们用KLM描述的界面操作

我们有这样的一些定义

我们可以看到

比如这里有一个复杂的

组合按键

有一些简化的

比如我们这个是表示

我按下Shift

但是并没有松开

而我们完整地按一个键

我们可以有三种表示

像这个T按下并松开

按下并松开

就不再重复讲这个T了

或者是非常简单

就是表示一个字母

我们来举一个

比较复杂一点的例子

这个是苹果的

硬键盘上的一个操作

比如把Shift键按下去

这个时候并不松开

而我们再敲一个N这个键

然后再把Ctrl键按下去

也不松开

再敲一个K

然后再把我们刚才按的

这个Shift键松开

再敲一个W

然后把刚才按下的Ctrl松开

这是苹果其实隐含了

一个界面的一个命令

大家可以试一下

那么这是我们前面

就是说我们KLM的组成

那下面是这个KLM是

要以时间来进行度量的

它定义了就是说

接口操作的一些典型的时间

这个也非常简单

它就是用了大量

就是用户研究做实验以后

得到了这样一些典型的值

这个是用来

将来我们带入到模型中计算

来进行使用的

我们看到有这样几个参数

一个叫做Key

我们平均按一个键

就是敲键盘敲一下 是0.2秒

然后我们Pointing

就是说我们

鼠标移动到一个点上

这个Pointing的过程

平均是1.1秒

这个值可能我们平时不去考虑

叫Homing

也就是说我们如果有

俩图形输入设备

包括键盘和鼠标以及其他的

那么我们在一个界面上

有可能运用两类输入设备

那你要在设备之间进行切换

我们叫Homing

所以这个是0.4秒

就是我把手从键盘移到鼠标上

或者反过来

那么这个时间叫

我们是说心理准备的一个时间

也就是我在界面上

我并不是说人是很机械的

一个一个就下去了

人可能要判断一下

我什么时候要进行什么操作

以及这个时间

我们叫心理准备的时间

当然每个人的值不一样

这都是一个平均的典型的值

那么系统还要

对用户的交互请求有反应

那么如果实时的话就是零

现在机器很快

这个时间看实际的测试了

通常我们希望它是比较小的

规则实际上一共有六条

都是关于M的

一旦我们设计出来

一个用户界面以后

就有了跟某个任务相对应的

KLM的序列

包括我们刚才提到的

这个K P以及R H

这样的一些操作

但是中间是没有M的

也就是说我们事先准备好的

这个时间

那么六条计算规则中

只有一条是关于加进去M的

另外五条都是关于

减掉多余的M的

加法是发生在几乎每一个敲键

和指点动作

也就是K和P之前我们做加法

就是规则零

要把前面全部加上M

但是加显然是

有一些是没必要的

就是加多了的

所以下面我们一共有五条规则

都是如何把它减掉的

那么第一种

我们称为是可预知的M

比如固定的连续操作

像我们指点以后

要有一个点击

根据规则零

这个之间会有一个M

就是我们在Pointing之后

要Click

那么按照规则零

它会加入一个M

而这个是我们一个固定的

连续的动作

除非初学者

因为现在我们很少

有这样的初学者

所以这个M是不必要的

我们就把它简化为PK

把这个M去掉

那么规则二是说

要删除一个认知单元内

除了第一个M

其他的M

比如这个例子就是说

如果现在我有一个对话框

用户需要输入这样4567.89

我们看有七个敲键

按照规则零前面的都有M

但是整个数值

实际上在用户敲的时候

他就知道是整体的数值

只不过他组成要使用这七个键

所以除了第一个

剩下的那些M

我们都要把它删除掉

那么规则三是说

要删掉连续终止符前的

那些多余的M

也就是说它属于一个认知单元

结束时比较冗余的

分隔符的这个K之间的这个M

比如一个命令

就是说我们要敲一个命令

它的分隔符连着一个

参数的一个分隔符的情况

这个在语法上

在语法定义本身上

我们认为用户应该知道

它是一个整体

所以要把中间插上的

多余的M给它删掉

那么这个规则四

是删除命令终止符前的M

也就是说我命令终止符

如果是我的一个语法定义的

连续操作的话

前面多余的M

我要把它删掉

但是最后一个是说

系统响应之前这个R之前

如果有M

不管怎么样原因加上的

我们要把它删掉

就是要把多余的删掉

那么我们利用这个KLM模型

来计算完成一个任务的

界面操作效率

这里我们可以用它

来做这样的一个事情

也就是界面设计出来了

它的效率到底是怎么样

我们可以用这个KLM模型

来计算你一个任务

需要用户花多长时间

当然这个不是实测的

是根据前面典型值代入的

这是一个例子

这个例子非常简单

是说让计算机做这样一个事

就是说我可以做温度转换器

也就是做一个华氏温度到

摄氏温度或者是反过来

摄氏温度到华氏温度的

这样一个转换器

那么计算大家可能脑子想一下

这个公式很简单

那么界面需要表达

转换的温度的数值

和进行什么方向的转换

这个可能是我们很容易想到的

一种界面形式

也就是说我进行这个选择

看起来也很简洁

那么我们这时候就用一下

这个KLM模型来计算一下

温度转换器的界面设计的效率

我们来看一下

首先我们默认用户的初始位置

是在键盘上

这个时候我需要去选择

它的这种转换的方向

所以有一个H

然后选择了这个转换的方向

也就是在我的

Radio button上

来进行一个选择

然后我再指到那并Click

看到我再回到

这个时候

因为我就可以输入这个数值了

我再回到键盘

去在这个输入框里面

来输入就要进行转换的数值

比如我敲了假定是四个字符

组成的一个值

完了以后回车

也就表示结束

那么又敲了一个K

那么我们用KLM模型

用规则零要把所有的M要加上

用规则以后

我们会看到有一些不必要的M

也就是说我们在

同一个认知单元内的

加进去的这个M把它删掉

比如我们四个字母

组成的这样一个数值

像这四个K

我们就只保持它前面这个M

那么这些规则运用完成以后

我们还可以代入这个典型的值

那么这个典型的值

因为代入过程很简单

我们可以计算出来

这种方式也就是一开始

我的转换方向

默认的转换方向

不是我希望的转换方向的话

那么是这样7.15秒

我们还有另外一种

就是说如果现在就是我的

转换的方向

也就是说我不用再进行

Radio button的选择

这个操作序列要简化的多

那么得到的值是3.7秒

我们也知道

一个平均值的计算方法

这个可以到5.4秒

对这个任务完成的

这样的一个效率

那么大家可能问题就来了

同一个任务

可能有多种界面设计

那么KLM模型

我们用它来进行计算结果

肯定有大有小

就是说刚才比如温度转行器

我们作为作业布置给过同学们

大家上来有各种各样的

这种设计

那么用KLM模型

可以为每个设计它的交互效率

来排个序

就是计算出来的

平均操作的时间

这种有大有小

当然是越小越好

如果我们是来追求效率的转化

那么有没有所谓的最快的设计

这个时候我们就要回到

一开始讲的人机交互的

基本的定义

讲是人与机之间的

一个信息交换的过程

那么界面是我们

进行信息交换的媒介

它应该只携带和我任务所需的

这种必要的信息

此外的设计

都应该是所谓冗余的

那么具体的这个温度转换器

我们必须要告诉他的

不管是我们通过键盘

还是别的方式

就是转换的这个温度

因为你不告诉他转换的

你可能有人设计的是说

我的天气预报的

你可以从天气预报的程序

直接给他

但是更多的时候

我只是要它计算一个

温度的转换

你必须把原始的数值告诉他

比如这里我们假定就是说

是一个四位的表示的一个数值

就为了一致

我们就这样来进行表示

因为前面的那个例子里面

我们也说是一个四个字符

组成的一个数值

这个是我们必须告诉

你的界面的

就是在界面上

我们必须来提供的信息

那么如果我们设计一个界面

它只要求用户输入

这样四个敲键来组成的

一个需要转换的数值

我们就认为这是有最高的

这种交互效率的

那这个有没有

如果有

其实用我们KLM模型设计出来

就是它只需要输入

四个字母组成的一个数值

那么要想一下它具体的形式

所以它代入KLM模型以后

是2.15秒

要远小于前面我们的5.4秒

这样的界面存在吗

有还是没有

其实是有的

我们这里给了这样

虽然只是个形式

可能没有画的很漂亮

故意来这样来表示一下

它的基本功能

只有一个

没有方向的选择

而方向的选择是靠用户

他的视觉来进行选择

因为计算资源

本身已经不是问题了

我可能一个数值进去以后

F到C和C到F我同时计算

也就是有两个输出

至于用户你要做的选择

你要通过视觉来进行选择

不需要手的动作系统

来进行选择了

所以如果从这个方面

我们也看到

就是说一旦你设计出来

一个界面以后

我们还可以再分析一下

界面必要的交互任务

然后可以力争

使得交互效率

所谓达到最优

软件工程课程列表:

第1章 初识软件工程

-1.1 软件无处不在

--讲课视频

-1.2 软件的本质特性

--讲授视频

-1.3 软件工程的产生与发展

--讲授视频

-1.4 软件工程的基本概念

--讲授视频

-1.5 软件质量实现

--讲授视频

-1.6 业界人士谈软件工程

--海芯科技创始人施侃乐访谈

-测验题--作业

-讨论题

--讨论题

-作业题

--第一张 作业题

第2章 编写高质量代码

-2.1 编程过程与规范

--讲课视频

-2.2 良好的编程实践

--讲课视频

-2.3 Python集成开发环境

--讲课视频

-2.4 代码静态检查

--讲课视频

-2.5 代码性能分析

--讲课视频

-2.6 结对编程实践

--讲课视频

-2.7 刘贺谈软件工程

--讲课视频

--讨论

-测验题--作业

-作业题

--第二章 作业题

第3章 单元测试

-3.1 单元测试概述

--讲课视频

-3.2 黑盒测试方法

--黑盒测试方法

-3.3 白盒测试方法

--基本概念

--代码覆盖标准

--基本路径测试

-3.4 单元测试工具

--单元测试工具

--html

-测验题--作业

-作业题

--第三章 作业题

--作业题附件

第4章 软件开发过程

-4.1 软件过程

--讲课视频

-4.2 软件过程模型

--讲课视频

-4.3 敏捷开发过程

--讲课视频

-4.4 微软公司开发过程

--邹欣经理自我介绍

--微软开发过程之一

--微软开发过程之二

-测验题--作业

第5章 团队开发管理

-5.1 团队组织与管理

--讲课视频

-5.2 项目沟通管理

--讲课视频

-5.3 软件项目计划

--讲课视频

-5.4 软件项目估算

--讲课视频

-测验题--作业

-讨论题

--讨论

第6章 敏捷开发与配置管理

-6.1 敏捷开发之Scrum

-- 敏捷开发之Scrum

--html

-6.2 用户故事与估算

--讲课视频

-6.3 团队协作工具Tower

--Tower工具介绍(1)

--Tower工具介绍(2)

-6.4 配置管理

--讲课视频

-6.5 配置管理工具Git

--讲课视频

-测验题--作业

-作业题--作业

第7章 需求获取

-7.1 需求工程师

--讲课视频

-7.2 需求定义

--讲课视频

-7.3 需求的类型

--讲课视频

--讲课视频(2)

-7.4 需求工程过程

--讲课视频

-7.5 需求的主要来源

--讲课视频

-7.6 需求获取技术

--讲课视频

--讲课视频二

--讲课视频三

-7.7 撰写需求文档

--讲课视频

-测验题--作业

-讨论题

--讨论

第8章 用例建模

-8.1 用例建模概念

--讲课视频

-8.2 用例建模过程

--讲课视频

-8.3 用例建模精讲

--讲课视频

-8.4 建模工具介绍

--讲课视频

-8.5 微信抢票应用案例

--讲课视频

-测验题--作业

-讨论题

--讨论

第9章 面向对象分析与设计

-9.1 面向对象分析

--讲课视频

-9.2 CRC卡片分拣法

--讲课视频-1

--讲课视频-2

-9.3 面向对象设计

--讲课视频-1

--讲课视频-2

-9.4 类图建模

--讲课视频-1

--讲课视频-2

-第9章 面向对象分析与设计--测验题

-讨论题

--讨论

第10章 行为建模

-10.1 顺序图概念

--讲课视频

-10.2 顺序图建模

--讲课视频

-10.3 顺序图风格

--讲义视频

-10.4 状态建模

--讲课视频

-10.5 状态图

--讲课视频

-10.6 状态图精讲

--讲义视频

-测验题--作业

-讨论题

--讨论

第11章 软件系统设计

-11.1 软件体系结构概念

--讲授视频

-11.2 软件设计原则

--讲授视频

-11.3 软件体系结构风格(一)

--讲授视频

-11.4 软件体系结构风格(二)

--讲授视频

-11.5 软件体系结构风格(三)

--讲授视频

-11.6 软件设计过程

--讲授视频

-11.7 Web系统架构设计

--讲授视频

-11.8 数据库选择策略

--讲授视频

-测验题--作业

-作业题

--html

--html

--html

-作业题--作业

第12章 软件交互设计

-12.1 交互设计概述

--讲授视频

-12.2 交互设计目标

--讲授视频

-12.3 GUI设计原则

--讲课视频

-12.4 KLM效率模型

--Video

-12.5 Fitts定律

--讲授视频

-12.6 交互设计过程

--讲授视频

-测验题--作业

第13章 软件系统测试

-13.1 软件测试概念

--讲课视频

-13.2 软件测试类型

--讲课视频

-13.3 软件功能测试

--讲课视频

-13.4 软件性能测试

--讲课视频

-测验题--作业

第14章 软件交付与维护

-14.1 软件部署与交付

--讲课视频

-14.2 软件演化与维护

--讲课视频

-测验题--作业

第15章 期末考试与总结

-第一部分:基础知识

-第二部分:编程与测试(选做)

--编程与测试(选做)

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。