软件用户界面设计
用户界面是用户与软件交互的前端应用视图。通过用户界面,用户可以操纵和控制软件以及硬件。如今,用户界面几乎存在于所有数字技术设备中,从计算机、手机、汽车、音乐播放器、飞机、船舶等。
用户界面是软件的一部分,其设计旨在向用户提供软件的洞察。UI 为人机交互提供了基本平台。
根据底层硬件和软件组合的不同,UI 可以是图形化的、基于文本的、音视频的。UI 可以是硬件、软件或两者的组合。
如果用户界面具有以下特点,软件会更受欢迎:
- 吸引人
- 易于使用
- 响应迅速
- 清晰易懂
- 在所有交互界面上一致
UI 大致分为两大类:
- 命令行界面
- 图形用户界面
命令行界面 (CLI)
在视频显示监视器出现之前,CLI 一直是与计算机交互的强大工具。CLI 是许多技术用户和程序员的首选。CLI 是软件可以为其用户提供的最小界面。
CLI 提供命令提示符,这是用户输入命令并提交给系统的地方。用户需要记住命令的语法及其用法。早期的 CLI 无法有效处理用户错误。
命令是一组指令的基于文本的引用,系统预期执行这些指令。还有像宏、脚本这样的方法,可以让用户更容易操作。
与 GUI 相比,CLI 使用更少的计算机资源。
CLI 元素
基于文本的命令行界面可以包含以下元素:
命令提示符 - 它是基于文本的通知器,通常显示用户正在工作的上下文。由软件系统生成。
光标 - 它是一个小横线或与行高相同的竖线,用于表示输入字符时的位置。光标通常处于闪烁状态。随着用户输入或删除内容,它会移动。
命令 - 命令是可执行的指令。它可能有一个或多个参数。命令执行的输出会直接显示在屏幕上。当输出生成时,命令提示符会显示在下一行。
图形用户界面
Graphical User Interface 为用户提供与系统交互的图形化方式。GUI 可以是硬件和软件的组合。通过 GUI,用户可以理解软件。
通常,GUI 比 CLI 消耗更多的资源。随着技术的发展,程序员和设计师创建了更复杂、高效、准确和快速的 GUI 设计。
GUI 元素
GUI 提供一组组件用于与软件或硬件交互。
每个图形组件都提供了一种与系统交互的方式。GUI 系统具有以下元素:
Window - 一个显示应用程序内容的区域。如果窗口表示文件结构,其内容可以以图标或列表的形式显示。在探索窗口中,用户更容易在文件系统中导航。Windows 可以最小化、调整大小或最大化到屏幕大小。它们可以在屏幕上任意移动。一个窗口可能包含同一应用程序的另一个窗口,称为子窗口。
Tabs - 如果应用程序允许多个实例同时运行,它们会以单独的窗口形式出现在屏幕上。Tabbed Document Interface 出现了,可以在同一窗口中打开多个文档。这种界面还有助于在应用程序中查看首选项面板。所有现代 web 浏览器都使用此功能。
Menu - 菜单是一组标准命令的数组,组合在一起并放置在应用程序窗口的可见位置(通常是顶部)。菜单可以编程为在鼠标点击时显示或隐藏。
Icon - 图标是一个表示相关应用程序的小图片。当点击或双击这些图标时,会打开应用程序窗口。图标以小图片形式显示系统上安装的应用程序和程序。
Cursor - 交互设备如鼠标、触控板、数字笔在 GUI 中表示为光标。屏幕光标几乎实时跟随硬件指令。在 GUI 系统中,光标也被称为指针。它们用于选择菜单、窗口和其他应用程序功能。
应用程序特定的 GUI 组件
应用程序的 GUI 包含一个或多个列出的 GUI 元素:
Application Window - 大多数应用程序窗口使用操作系统提供的构造,但许多使用自己自定义创建的窗口来容纳应用程序内容。
Dialogue Box - 它是一个子窗口,包含给用户的信息并请求执行某些操作。例如:应用程序生成一个对话框,从用户那里获取删除文件的确认。

Text-Box - 为用户提供一个区域,用于输入基于文本的数据。
Buttons - 它们模仿现实生活中的按钮,用于向软件提交输入。

Radio-button - 显示可供选择的可用选项。其中只能选择一个。
Check-box - 功能类似于列表框。当选项被选中时,框被标记为已选中。可以选择多个由复选框表示的选项。
List-box - 提供可供选择的可选项目列表。可以选择多个项目。

其他令人印象深刻的 GUI 组件包括:
- Sliders
- Combo-box
- Data-grid
- Drop-down list
用户界面设计活动
设计用户界面需要进行多项活动。GUI 设计和实现的过程类似于 SDLC。可以为 GUI 实现使用任何模型,例如 Waterfall、Iterative 或 Spiral Model。
用于 GUI 设计和开发的模型应满足这些 GUI 特定的步骤。
GUI 需求收集 - 设计师可能希望获取 GUI 的所有功能性和非功能性需求列表。这些需求可以从用户及其现有软件解决方案中获取。
用户分析 - 设计师需要研究谁将使用软件 GUI。目标受众非常重要,因为设计细节会根据用户的知识水平和能力水平而变化。如果用户技术娴熟,可以引入高级且复杂的 GUI。对于新手用户,则需要包含更多关于软件使用方法的说明。
任务分析 - 设计师必须分析软件解决方案需要完成哪些任务。在 GUI 中,不需要考虑如何完成这些任务。任务可以以层次结构表示,将一个主要任务进一步分解为更小的子任务。任务为 GUI 呈现提供目标。子任务之间的信息流决定了软件中 GUI 内容的流向。
GUI 设计与实现 - 设计师在了解需求、任务和用户环境后,设计 GUI 并将其实现为代码,然后将 GUI 与后台的工作软件或虚拟软件嵌入在一起。随后由开发者进行自测。
测试 - GUI 测试可以通过多种方式进行。组织可以进行内部检查、直接让用户参与,或发布 beta 版本等。测试可能包括可用性、兼容性、用户验收等内容。
GUI 实现工具
有多种工具可用,设计师只需点击鼠标即可创建完整的 GUI。有些工具可以嵌入到软件环境(IDE)中。
GUI 实现工具提供了强大的 GUI 控件阵列。对于软件定制,设计师可以相应地修改代码。
根据不同的用途和平台,GUI 工具分为不同的类别。
示例
Mobile GUI、Computer GUI、Touch-Screen GUI 等。以下是一些用于构建 GUI 的实用工具列表:
- FLUID
- AppInventor (Android)
- LucidChart
- Wavemaker
- Visual Studio
用户界面黄金法则
以下规则被视为 GUI 设计的黄金法则,由 Shneiderman 和 Plaisant 在他们的著作《Designing the User Interface》中描述。
追求一致性 - 在类似情况下,应要求使用一致的操作序列。在提示、菜单和帮助屏幕中使用相同的术语。整个系统中应采用一致的命令。
为频繁用户提供快捷方式 - 用户希望减少交互次数的愿望随着使用频率的增加而增强。缩写、功能键、隐藏命令和宏功能对专家用户非常有帮助。
提供信息丰富的反馈 - 对于每个操作员的操作,都应有系统反馈。对于频繁且次要的操作,反馈应适度;对于不频繁且重要的操作,反馈应更充分。
设计对话以实现闭合 - 应将操作序列组织成具有开头、中间和结尾的组。在一组操作完成时的信息反馈,能给操作员带来成就感、解脱感,并信号他们可以从脑海中丢弃应急计划和选项,这表明前方道路清晰,可以准备下一组操作。
提供简单的错误处理 - 尽可能设计系统,使用户不会犯严重错误。如果发生错误,系统应能够检测到它,并提供简单、易懂的错误处理机制。
允许轻松撤销操作 - 此功能能缓解焦虑,因为用户知道错误可以被撤销。轻松撤销操作鼓励用户探索不熟悉的选项。可逆单位可以是单个操作、数据输入或完整的一组操作。
支持内部控制中心 - 经验丰富操作员强烈希望感受到他们掌控系统,系统对他们的操作做出响应。设计系统使用户成为操作的发起者,而不是响应者。
减少短期记忆负担 - 人类短期记忆信息处理的局限性要求显示保持简单、多页显示进行整合、减少窗口移动频率,并为代码、助记符和操作序列分配足够的训练时间。