Human Computer Interface 简明教程
Human Computer Interface Introduction
人机界面 (HCI) 以前称为人机研究或人机交互。它处理人机系统的设计、执行和评估以及相关现象。
HCI 可用于所有学科中,只要有可能安装计算机。以下列出了一些能够以显著重要性实施 HCI 的领域−
-
Computer Science ——用于应用程序设计和工程。
-
Psychology ——用于理论和分析目的。
-
Sociology − 人机互动技术和组织之间的交互。
-
Industrial Design − 互动产品,比如移动电话,微波炉等。
人机互动的全球领先组织是 ACM − SIGCHI,代表计算机协会-人机交互特殊兴趣小组。SIGCHI 将计算机科学定义为 HCI 的核心学科。在印度,它是作为交互提案出现的,主要基于设计领域。
Objective
学习本学科的目的是了解设计用户友好界面或交互的方式。基于这一点,我们将学习以下内容:
-
设计和评估交互式系统的方法。
-
通过认知系统和任务模型减少设计时间的方法。
-
交互式系统设计的程序和启发法。
Historical Evolution
从执行批处理的早期计算机到以用户为中心的,以下是几个里程碑:
-
Early computer (e.g. ENIAC, 1946) − 硬件技术的发展带来了计算能力的大幅提升。人们开始思考创新理念。
-
Visual Display Unit (1950s) − SAGE(半自动地面环境),美国的一个防空系统,使用了最早版本的 VDU。
-
Development of the Sketchpad (1962) − Ivan Sutherland 开发了 Sketchpad,并证明计算机可以用于更多的数据处理工作。
-
Douglas Engelbart introduced the idea of programming toolkits (1963) − 较小的系统创建了更大的系统和组件。
-
Introduction of Word Processor, Mouse (1968) − 设计 NLS(在线系统)。
-
Introduction of personal computer Dynabook (1970s) − 开发 Xerox PARC 中的 Smalltalk。
-
Windows and WIMP interfaces − 同时在台式机上同时运行多种作业,在工作和屏幕之间切换,顺序交互。
-
The idea of metaphor − Xerox 星和 Alto 是首个使用隐喻概念的系统,这使界面更具自发性。
-
Direct Manipulation introduced by Ben Shneiderman (1982) − 首次在 Apple Mac PC(1984 年)中使用,减少了语法错误的可能性。
-
Vannevar Bush introduced Hypertext (1945) − 表示文本的非线性结构。
-
Multimodality (late 1980s).
-
Computer Supported Cooperative Work (1990’s) − 计算机介导的通信。
-
WWW (1989) −第一个图形浏览器(Mosaic)于 1993 年推出。
-
Ubiquitous Computing −目前 HCI 中最活跃的研究领域。基于传感器/上下文感知计算,也称为普适计算。
Guidelines in HCI
Shneiderman’s Eight Golden Rules
美国计算机科学家 Ben Shneiderman 巩固了一些关于设计的隐含事实,并提出了以下八条一般准则−
-
Strive for Consistency.
-
Cater to Universal Usability.
-
Offer Informative feedback.
-
设计对话以产生闭合。
-
Prevent Errors.
-
允许轻松地逆转操作。
-
支持控制的内部轨迹。
-
减少短期记忆负荷。
这些准则对普通设计师和界面设计师都有利。使用这八条准则,可以将好的界面设计与不好的界面设计区分开来。它们有利于在实验评估中识别更好的 GUI。
Norman’s Seven Principles
为了评估人与计算机之间的交互,唐纳德·诺曼于 1988 年提出了七项原则。他提出了七个阶段,可以用来转换困难的任务。以下是诺曼的七项原则−
-
同时利用世界中的知识和头脑中的知识。
-
Simplify task structures.
-
Make things visible.
-
正确获取映射(用户心智模型=概念模型=设计模型)。
-
将限制转化为优势(物理限制、文化限制、技术限制)。
-
Design for Error.
-
当所有其他方法都失败时−标准化。
Heuristic Evaluation
启发式评估是一种检查用户界面可用性问题的系统方法。一旦在设计中检测到可用性问题,它们将作为持续设计过程的组成部分得到处理。启发式评估方法包括一些可用性原则,例如尼尔森的十项可用性原则。
Nielsen’s Ten Heuristic Principles
-
Visibility of system status.
-
系统与现实世界的匹配性。
-
User control and freedom.
-
Consistency and standards.
-
Error prevention.
-
Recognition rather than Recall.
-
灵活性和使用效率。
-
Aesthetic and minimalist design.
-
错误的救助、诊断和恢复。
-
Documentation and Help
上文提到的尼尔森十大原则在启发式评估员审计界面或产品时,可用作评估和解释问题的一个检查清单。
Interface Design Guidelines
本节介绍了一些更为重要的 HCI 设计准则。以下解释了 HCI 设计准则的三种类别:通用交互、信息显示和数据输入。
General Interaction
通用交互准则是一些全面建议,其关注于通用指令,例如:
-
Be consistent.
-
Offer significant feedback.
-
询问任何非关键性严重动作的认证。
-
授权轻松撤销大多数动作。
-
减少动作中必须记住的信息量。
-
在对话、动作和思考中追求能力。
-
Excuse mistakes.
-
按功能对活动分类并相应地建立屏幕地理。
-
提供语境相关的帮助服务。
-
使用简单的动作动词或短语动词来为命令命名。
Interactive System Design
本章的目标是了解交互式系统(现已成为我们生活中重要组成部分)的设计和开发的各个方面。这些系统的设计和可用性对人们与技术的关系质量产生影响。Web 应用程序、游戏、嵌入式设备等都是该系统的一部分,该系统已成为我们生活中不可或缺的一部分。现在让我们讨论该系统的一些主要组件。
Concept of Usability Engineering
可用性工程是软件和系统进展中的一种方法,它包含了用户从流程开始时的贡献,并通过使用可用性需求和指标来确保产品的有效性。
因此,它指的是抽象、实施和测试硬件和软件产品的整个过程中可用性功能的特性。从需求收集阶段到产品的安装、营销和测试,都属于这个过程。
Usability
可用性有三个组成部分− 有效性、效率和满意度,用户使用这些组成部分在特定环境中实现他们的目标。让我们简要了解一下这些组成部分。
-
Effectiveness − 用户实现其目标的完整性。
-
Efficiency − 使用资源有效实现目标中使用的能力。
-
Satisfaction − 工作系统对其用户来说的简便性。
Software Tools
软件工具是一种程序化软件,用于创建、维护或以其他方式支持其他程序和应用程序。HCI 中一些常用的软件工具如下 −
-
Specification Methods − 用于指定 GUI 的方法。虽然这些方法冗长且模棱两可,但它们易于理解。
-
Grammars − 程序可以理解的书面指令或表达式。它们为完整性和正确性提供了确认。
-
Transition Diagram − 可以以文本、链接频率、状态图等形式显示的一组节点和链接。它们难以评估可用性、可见性、模块性和同步性。
-
Statecharts − 为同时进行的用户活动和外部操作开发的图表方法。它们提供了与界面构建工具的链接规范。
-
Interface Building Tools − 有助于设计命令语言、数据输入结构和小部件的设计方法。
-
Interface Mockup Tools − 用于快速绘制 GUI 草图的工具。例如,Microsoft Visio、Visual Studio .Net 等。
-
Software Engineering Tools − 提供用户界面管理系统的广泛编程工具。
-
Evaluation Tools − 用于评估程序正确性和完整性的工具。
HCI and Software Engineering
Software engineering 是设计、开发和维护软件的研究。它与 HCI 接触以使人机交互更加充满活力和互动性。
让我们看看软件工程中用于交互设计的以下模型。
Prototyping
原型设计是另一种可以使用投影系统的完整功能范围的软件工程模型。
在 HCI 中,原型设计是一种试验和部分设计,可帮助用户在不执行完整系统的情况下测试设计想法。
原型的例子可以是 Sketches 。交互式设计的草图稍后可以制作成图形界面。请参见下图。
上图可以看作是 Low Fidelity Prototype ,因为它使用了手动程序,如在纸上绘制草图。
Medium Fidelity Prototype 涉及系统的部分程序,但不是全部程序。例如,GUI 的第一个屏幕。
最后,[ Hi Fidelity Prototype 将系统的所有功能模拟设计中。此原型需要时间、金钱和劳动力。
GUI Design & Aesthetics
图形用户界面 (GUI) 是用户可以在计算机系统中操作程序、应用程序或设备的界面。用户在此处可以访问图标、菜单、窗口小部件、标签。
GUI 中的每一项都是以用户可以识别且赏心悦目的方式进行排列,这一点非常重要,它体现了 GUI 设计者的审美意识。GUI 美学为任何产品提供了特色和特性。
Interactive Devices
人机交互采用了几种交互设备。其中的某些是已知工具,而另一些是最近开发的,或者是在未来要开发的一个概念。在本章中,我们将讨论一些新旧交互设备。
Touch Screen
几十年前就开始预测触摸屏概念,但是该平台直到最近才获取。现在有许多设备使用触摸屏。仔细选择这些设备后,开发者自定义其触摸屏体验。
制造触摸屏最便宜并且相对容易的方法是使用电极和电压关联的那些方法。除了硬件差异之外,即使使用相同的硬件,软件本身也能给一个触摸设备带来重大的差异。
随着创新的设计以及新的硬件和软件,触摸屏未来可能大大发展。可以通过使触摸与其他设备同步进行进一步开发。
在 HCI 中,触摸屏可被视为新的交互设备。
Gesture Recognition
手势识别是语言技术中的一个科目,其目标是通过数学过程理解人类运动。手势识别目前是关注领域。此技术基于未来。
此新技术使人与计算机之间的关联更为高级,其中不使用机械设备。此新交互设备可能终止旧设备(例如键盘),而且在触摸屏等新设备中使用也十分繁重。
Speech Recognition
口语转换为书面文本的技术是语音识别。此类技术可用在许多设备的高级控制中,例如接通和关闭电器。对于完整的转录,只需要识别某些指令。然而,这对于大词汇量来说没有任何益处。
此 HCI 设备可帮助用户实现双手自由移动,并使基于指令的技术针对用户保持最新。
Design Process & Task Analysis
HCI Design
HCI 设计被认为是一个解决问题的过程,它具有计划使用、目标区域、资源、成本和可行性等组成部分。它决定了产品相似性的要求以平衡取舍。
以下几点是交互式设计的基本活动 −
-
Identifying requirements
-
Building alternative designs
-
发展设计的互动版本
-
Evaluating designs
以用户为中心的方法的三个原则 −
-
早期关注用户和任务
-
Empirical Measurement
-
Iterative Design
Design Methodologies
自创立以来,出现了各种方法论,它们概述了人机交互的技术。以下是一些设计方法论 −
-
Activity Theory − 这是描述人机交互框架的 HCI 方法。活动理论提供了推理、分析工具和交互设计。
-
User-Centered Design − 它为用户提供了设计中心舞台,他们有机会与设计师和技术从业者合作。
-
Principles of User Interface Design − 在界面设计中使用了七个原则:容错性、简单性、可见性、可辨别性、一致性、结构和反馈。
-
Value Sensitive Design − 此方法用于开发技术,包括三种类型研究 − 概念、经验和技术。概念调查研究致力于理解使用技术的投资者的价值观。经验调查是定性或定量设计研究,显示了设计者对用户价值的理解。技术调查包含在概念和经验调查中使用技术和设计。
Participatory Design
参与式设计过程涉及设计过程中的所有利益相关者,以便最终结果满足他们渴望的需求。这种设计用于软件设计、建筑、景观建筑、产品设计、可持续性、平面设计、规划、城市设计甚至医学等各个领域。
参与式设计不是一种风格,而是专注于设计的过程和程序。它被视为一种由设计者取消设计问责制和起源的方法。
Task Analysis
任务分析在用户需求分析中起着重要作用。
任务分析是了解用户和抽象框架、工作流中使用的模式以及与 GUI 交互的按时间顺序实施的过程。它分析用户划分任务和对任务进行排序的方式。
Dialog Design
对话是两个或更多存在者或系统之间交互的构建。在 HCI 中,对话在三个层面上进行研究 -
-
Lexical − 本层处理图标形状、实际按下的键等。
-
Syntactic − 本层描述交互中输入和输出的顺序。
-
Semantic − 本层处理对话对内部应用程序/数据的影响。
Dialog Representation
为了表示对话,我们需要使用可用于以下两个目的的形式化技术 -
-
它有助于更好地理解拟议设计。
-
它有助于分析对话以识别可用性问题。例如,可以回答“该设计实际上是否支持撤消操作?”等问题。
Introduction to Formalism
有许多我们可用来表示对话的形式化技术。在本章中,我们将讨论其中三种形式化技术,即 -
-
状态转换网络 (STN)
-
The state charts
-
The classical Petri nets
State Transition Network (STN)
STN 是最自发的,它知道对话从根本上表示从系统的一个状态到下一个状态的进行。
STN 的语法包含以下两个实体 -
-
Circles − 一个圆圈是指系统的一个状态,通过给状态命名来标记。
-
Arcs − 圆圈通过弧线连接,弧线表示从弧线起始状态到弧线结束状态的转换产生的动作/事件。
StateCharts
状态图表示扩展了有限状态机 (FSM) 的复杂反应系统,处理并发,并将内存添加到 FSM。它还简化了复杂系统的表示。状态图具有以下状态 -
-
Active state − 底层 FSM 的当前状态。
-
Basic states − 这些是单个状态,不包含其他状态。
-
Super states − 这些状态由其他状态组成。
Visual Thinking
视觉材料以绘画、素描、地图、图表、照片等形式帮助人们进行交流的过程已经存在了很长时间。在当今世界,随着科技的发明和进一步发展,视觉信息提供了新的可能性,例如思考和推理。根据研究,在人机交互 (HCI) 设计中对视觉思维的掌握尚未完全被发现。因此,让我们学习支持 HCI 设计中感官活动中视觉思维的理论。
最初发现了一个关于视觉思维的术语,其中包括视觉直接性、视觉推动力、视觉阻抗以及视觉比喻、类比和联想等概念,这些概念在网络的信息设计中得到了应用。
因此,此设计过程在设计过程中作为一种逻辑且协作的方法非常合适。让我们简要地分别讨论这些概念。
Direct Manipulation Programming
直接操作已被公认为一种良好的界面设计形式,并且受到用户的欢迎。此类流程使用许多源来获取输入,并最终使用内置工具和程序将它们转换为用户所需的输出。
“直接性”被认为是一种对操作编程有重要贡献的现象。它有以下两个方面。
-
Distance
-
Direct Engagement
Distance
距离是一个决定了用户目标与系统提供的解释级别之间鸿沟的接口,用户使用该接口。这些被称为执行鸿沟和评估鸿沟。
The Gulf of Execution
执行鸿沟界定了用户目标与实现该目标的设备之间的差距/鸿沟。可用性的主要目标之一是通过消除障碍并采取措施最大程度地减少用户在分心执行预期任务时会阻碍工作流的障碍,从而缩小此差距。
The Gulf of Evaluation
评估鸿沟是对用户在设计中对系统解读的期望的表示。根据唐纳德·诺曼的说法,当系统以一种易于获取、易于解释并且与用户思考系统的方式相匹配的形式提供有关其状态的信息时,该鸿沟就很小。
Item Presentation Sequence
在人机交互中,可以根据任务或应用程序要求来计划呈现顺序。应注意菜单中项目的自然顺序。呈现顺序中的主要因素有:
-
Time
-
Numeric ordering
-
Physical properties
当没有与任务相关的安排时,设计者必须选择以下前景之一:
-
Alphabetic sequence of terms
-
Grouping of related items
-
最常使用的项目排在第一位
-
Most important items first
Menu Layout
-
应使用任务语义来组织菜单。
-
应该更喜欢宽而浅,而不是窄而深。
-
位置应通过图形、数字或标题显示。
-
子树应使用项目作为标题。
-
项目应有意义地分组。
-
项目应当有意义地安排。
-
应当使用简短的项目。
-
应当使用一致的语法、布局和技术。
-
应当允许向前键入、向前跳转或使用其他快捷方式。
-
应当允许跳转到上一个菜单和主菜单。
-
应当考虑在线帮助。
应当为以下组件定义一致性准则−
-
Titles
-
Item placement
-
Instructions
-
Error messages
-
Status reports
Form Fill-in Dialog Boxes
适合多次输入数据字段−
-
用户应当可以查看到完整信息。
-
显示应当类似熟悉的纸质表格。
-
应当对不同类型的条目提供一些说明。
用户必须熟悉−
-
Keyboards
-
使用 TAB 键或鼠标移动光标
-
Error correction methods
-
Field-label meanings
-
Permissible field contents
-
使用回车键和/或返回键。
表单填写设计准则−
-
Title should be meaningful.
-
Instructions should be comprehensible.
-
字段应当按照逻辑分组并安排。
-
表单应当具有可视吸引力。
-
应当提供熟悉的字段标签。
-
应当使用一致的术语和缩写。
-
应提供便捷的光标移动功能。
-
应具备单个字符和整个字段的错误更正功能。
-
Error prevention.
-
应填充不可接受值的错误消息。
-
应明确标注可选字段。
-
应提供字段的说明性消息。
-
Completion signal should populate.
Information Search & Visualization
Database Query
数据库查询是用于从数据库中检索信息的原理机制。它包含数据库问题的预定义格式。许多数据库管理系统都使用结构化查询语言 (SQL) 标准查询格式。
Example
SELECT DOCUMENT#
FROM JOURNAL-DB
WHERE (DATE >= 2004 AND DATE <= 2008)
AND (LANGUAGE = ENGLISH OR FRENCH)
AND (PUBLISHER = ASIST OR HFES OR ACM)
当用户可以查看和控制搜索时,他们的表现会更好,满意度也会更高。因此,数据库查询已经为人类计算机交互界面提供了大量的帮助。
以下几点是对文本搜索的用户界面进行说明的五阶段框架:
-
Formulation − 表达搜索
-
Initiation of action − 启动搜索
-
Review of results - 阅读邮件和结果
-
Refinement - 拟定下一步措施
-
Use - 编制或传播洞察力
Multimedia Document Searches
以下是主要的媒体文档搜索类别:
Image Search
在常见的搜索引擎中进行图像搜索并非易事。但有一些网站可以通过输入您选择的图像来完成图像搜索。通常,简单的绘图工具用于构建搜索用模板。对于指纹匹配等复杂的搜索,已开发出特殊的软件,用户可以搜索机器中预先定义的不同特性数据。
Information Visualization
信息可视化是概念数据交互式视觉插图,它增强了人们的理解。它源于人机交互领域的研究,并且作为一个关键组件应用于各个领域。它使用户能够一次查看、发现和理解大量的信息。
信息可视化也是一种假设结构,通常采用统计假设检验等形式化检查。
Advanced Filtering
以下是高级筛选过程:
-
使用复杂的布尔查询进行筛选
-
Automatic filtering
-
Dynamic queries
-
Faceted metadata search
-
Query by example
-
Implicit search
-
Collaborative filtering
-
Multilingual searches
-
Visual field specification
Object Oriented Programming
Object Oriented Programming Paradigm (OOPP)
面向对象的编程范式在人机界面中起着重要作用。它具有不同的组件,这些组件采用现实世界的对象并对它们执行操作,从而使人机之间产生实时交互。以下是 OOP 的组件 −
-
此范式描述了一个现实生活系统,其中交互发生在真实对象之间。
-
它将应用程序建模为一组相互交互的关联对象。
-
编程实体被建模为一个类,它表示相关现实世界对象的集合。
-
编程是从现实世界对象和类的概念开始的。
-
应用程序被分成许多包。
-
类是一堆对象。
-
类是一组封装在一起的类似的现实世界中的对象。
Human Computer Interface Summary
我们现在已经学习了本教程中关于人机交互的基本方面。从现在开始,我们可以参考完整的参考书和指南,这些内容将深入探讨该学科的编程方面。我们希望本教程能够帮助您理解该主题,并且您对该学科产生了兴趣。
我们希望未来能看到人机交互设计方面诞生新的职业,并从中获得当前设计实践的帮助。明天的 HCI 设计师一定会采用许多技能,而这些技能是今天专家的领域。对于专家的当前实践,我们希望他们像过去其他人一样不断发展。
在未来,我们希望重新发明软件开发工具,让编程有助于人们的工作和业余爱好。我们还希望了解软件开发作为一项协作工作,并研究软件对社会的影响。