用户界面是用户与之交互以便使用该软件的前端应用程序视图。如果该软件的用户界面为:
- 有魅力
- 使用简单
- 在短时间内响应
- 清楚了解
- 在所有界面屏幕上均一致
- 命令行界面:命令行界面提供了一个命令提示符, 用户可以在其中键入命令并提供给系统。用户需要记住命令的语法及其用法。
- 图形用户界面:图形用户界面提供了与系统交互的简单交互界面。 GUI可以是硬件和软件的组合。用户使用GUI解释软件。
文章图片
用户界面的分析和设计过程是迭代的, 可以用螺旋模型表示。用户界面的分析和设计过程包括四个框架活动。
- 用户, 任务, 环境分析和建模:最初, 重点是基于将与系统进行交互的用户的个人资料, 即基于用户的个人资料的理解, 技能和知识, 用户类型等, 将用户分为几类。从每个类别中收集需求。根据需求, 开发人员了解如何开发界面。一旦收集了所有需求, 便会进行详细分析。在分析部分中, 将识别, 描述和阐述用户执行以建立系统目标的任务。用户环境的分析着重于物理工作环境。其中要问的问题是:
- 接口将在物理上位于何处?
- 用户是否会坐着, 站着或执行与界面无关的其他任务?
- 接口硬件是否适应空间, 光线或噪声的限制?
- 是否存在由环境因素驱动的特殊人为因素考虑?
- 界面设计:该阶段的目标是定义界面对象和动作的集合, 即使用户能够执行所需任务的控制机制。指出这些控制机制如何影响系统。指定任务和子任务的操作顺序, 也称为用户方案。指示用户执行特定任务时的系统状态。始终遵循Theo Mandel所说的三个黄金法则。在完善设计模型时, 会考虑诸如响应时间, 命令和动作结构, 错误处理以及帮助工具之类的设计问题。此阶段是实施阶段的基础。
- 接口的构建与实现:实施活动从创建原型(模型)开始, 该原型使模型能够评估使用场景。随着迭代设计过程的继续, 允许使用窗口, 菜单, 设备交互, 错误消息, 命令和交互式环境的许多其他元素的创建的用户界面工具包可用于完成界面的构建。
- 接口验证:此阶段专注于测试接口。接口的方式应使其能够正确执行任务, 并应能够处理各种任务。它应该满足用户的所有要求。它应该易于使用和易于学习。用户应将界面视为工作中有用的界面。
以下是Theo Mandel陈述的黄金规则, 在设计界面时必须遵循这些规则。
将用户置于控制之下:
- 定义交互模式的方式不会强迫用户执行不必要或不希望的动作:用户应该能够轻松完成或退出模式。
- 提供灵活的交互方式:不同的人将使用不同的交互机制, 一些人可能使用键盘命令, 某些人可能使用鼠标, 某些人可能使用触摸屏, 等等, 因此应提供所有交互机制。
- 允许用户交互是可中断的和不可撤消的:当用户执行一系列操作时, 用户必须能够中断该序列以执行其他一些工作, 而又不会丢失已完成的工作。用户还应该能够执行撤消操作。
- 随着技能水平的提高而简化交互, 并允许自定义交互:应该为高级或高技能用户提供一个根据用户需要自定义界面的机会, 该界面允许使用不同的交互机制, 从而使用户在使用相同的交互机制时不会感到无聊。
- 向不熟悉的用户隐藏技术内部知识:用户不应了解系统的内部技术细节。他应该与界面进行交互以完成工作。
- 直接与屏幕上出现的对象进行交互的设计:用户应该能够使用这些对象并操纵屏幕上存在的对象以执行必要的任务。这样, 用户感觉容易控制屏幕。
- 减少对短期记忆的需求:当用户参与一些复杂的任务时, 对短期记忆的需求非常重要。因此, 界面的设计应减少给定输入和结果的情况下对先前完成的动作的记忆。
- 建立有意义的默认值:始终应向普通用户提供初始默认值集, 如果用户需要添加一些新功能, 则他应该能够添加所需的功能。
- 定义直观的快捷方式:用户应使用助记符。助记符表示键盘快捷键可在屏幕上执行某些操作。
- 界面的视觉布局应基于真实世界的隐喻:如果你在屏幕上表示的任何内容都是真实世界的隐喻, 则用户将很容易理解。
- 以渐进方式公开信息:界面应按层次进行组织, 即在主屏幕上应首先以较高的抽象级别显示有关任务, 对象或某些行为的信息。用户用鼠标指示感兴趣后, 应提供更多详细信息。
- 允许用户将当前任务置于有意义的上下文中:许多界面都有数十个屏幕。因此, 重要的是要始终如一地提供指标, 以使用户了解正在做的工作。用户还应该知道从哪个页面导航到当前页面以及从当前页面可以导航。
- 在一系列应用程序之间保持一致性:某些应用程序集的开发都应遵循并实现相同的设计规则, 以便在应用程序之间保持一致性。
- 如果过去的交互式模型已经创建了用户期望, 则除非有令人信服的理由, 否则不要进行更改。
推荐阅读
- 如何使用Node.js和MongoDB实现登录表单()
- CSS如何使用图像精灵(用法详细示例)
- Python如何使用OpenCV播放视频(代码实现)
- 算法题(在只有3和4的数字系统中查找第n个数字)
- 如何为ng-repeat指令中的多项选择添加动态选项()
- 亚马逊面试体验| 2020年SDE-1 FTE校园
- Python使用youtube_dl模块下载视频
- PHP Ds\Dequealloc()函数用法示例
- 本图文详细教程教你像手机一样让你的windows10锁屏