【软件界面设计 –
软件工程教程】上一章软件工程教程请查看:软件设计策略
用户界面是用户为了使用软件而与之交互的前端应用程序视图。用户可以通过用户界面操作和控制软件和硬件。今天,用户界面几乎存在于所有数字技术存在的地方,从电脑、手机、汽车、音乐播放器、飞机、轮船等。
用户界面是软件的一部分,它的设计方式是提供用户对软件的洞察力。UI为人机交互提供了基础平台。
UI可以是图形化的、基于文本的、基于音频的,这取决于底层的硬件和软件组合。UI可以是硬件或软件,也可以是两者的组合。
如果用户界面是:
- 有吸引力的
- 使用简单
- 响应时间短
- 清晰的理解
- 所有界面屏幕一致
- 命令行界面
- 图形用户界面
CLI提供一个命令提示符,用户在这里输入命令并将其输入到系统。用户需要记住命令的语法和用法。早期的CLI没有被编程来有效地处理用户错误。
命令是一组指令的基于文本的引用,这些指令将由系统执行。有一些方法,如宏、脚本,使用户操作起来很容易。
与GUI相比,CLI使用更少的计算机资源。
CLI元素
文章图片
一个基于文本的命令行界面可以有以下元素:
- 命令提示符——它是基于文本的通知程序,主要显示用户工作的上下文。它是由软件系统生成的。
- 光标-它是一个小横线或竖线的高度,以表示字符的位置,而打字。光标通常处于闪烁状态。它在用户写或删除某些内容时移动。
- 命令——命令是一个可执行的指令。它可能有一个或多个参数。命令执行时的输出以内联方式显示在屏幕上。当产生输出时,在下一行显示命令提示符。
通常,GUI比CLI更消耗资源。随着技术的进步,程序员和设计人员可以创建更高效、准确和快速的复杂GUI设计。
GUI元素
GUI提供了一组与软件或硬件交互的组件。
每个图形组件都提供了一种使用系统的方法。GUI系统有以下元素:
文章图片
- 窗口-显示应用程序内容的区域。如果窗口表示文件结构,则窗口中的内容可以以图标或列表的形式显示。用户更容易在浏览窗口的文件系统中导航。窗口可以最小化、调整大小或最大化到屏幕的大小。它们可以移动到屏幕上的任何地方。一个窗口可以包含同一应用程序的另一个窗口,称为子窗口。
- 选项卡——如果一个应用程序允许执行多个实例,它们将作为单独的窗口出现在屏幕上。在同一个窗口中打开多个文档的选项卡式文档接口。该界面还有助于查看应用程序中的首选项面板。所有现代的web浏览器都使用这个特性。
- 菜单——菜单是一组标准的命令,它们组合在一起,放置在应用程序窗口内一个可见的位置(通常是顶部)。菜单可以通过编程在鼠标点击时显示或隐藏。
- 图标-图标是代表相关应用程序的小图片。当单击或双击这些图标时,将打开应用程序窗口。图标以小图片的形式显示安装在系统上的应用程序和程序。
- 鼠标、触控板、数字笔等与光标交互的设备在图形用户界面中被表示为光标。在屏幕光标遵循指令从硬件几乎实时。游标在GUI系统中也称为指针。它们用于选择菜单、窗口和其他应用程序特性。
- 应用程序窗口——大多数应用程序窗口使用操作系统提供的构造,但许多使用自己的客户创建的窗口来包含应用程序的内容。
- 对话框——这是一个子窗口,它包含用户的消息和一些操作的请求。例如:应用程序生成一个对话,以从用户那里获得删除文件的确认。
- 文本框—为用户提供一个区域来键入和输入基于文本的数据。
- 按钮——它们模仿真实生活中的按钮,用于向软件提交输入。
- 无线按钮-显示可供选择的选项。在所有提供的项目中,只能选择一个。
- 复选框—类似于列表框的函数。当一个选项被选中时,方框被标记为已选中。可以选择由复选框表示的多个选项。
- 列表框—提供可供选择的项目列表。可以选择多个项目。
- 滑块
- 组合框
- 数据网格
- 下拉列表
用于GUI设计和开发的模型应该实现这些GUI特定的步骤。
文章图片
- GUI需求收集——设计人员可能希望拥有GUI的所有功能和非功能需求的列表。这可以从用户及其现有的软件解决方案中获得。
- 用户分析—设计者研究谁将使用软件GUI。随着设计细节随着用户的知识和能力水平的变化而变化,目标受众很重要。如果用户精通技术,可以合并高级和复杂的GUI。对于一个新手用户,更多的信息包括如何操作软件。
- 任务分析——设计人员必须分析软件解决方案要完成的任务。在GUI中,如何实现并不重要。任务可以用分层的方式来表示,将一个主要任务进一步划分为更小的子任务。任务为GUI表示提供了目标。子任务之间的信息流决定了软件中GUI内容的流向。
- GUI设计与实现——设计师在了解了需求、任务和用户环境信息之后,将GUI设计和实现嵌入到代码中,并在后台使用工作软件或虚拟软件嵌入GUI。然后由开发人员进行自我测试。
- 测试——GUI测试可以通过多种方式进行。组织可以有内部检查,用户的直接参与和发布测试版很少。测试可能包括可用性、兼容性、用户接受度等。
GUI实现工具提供了强大的GUI控件数组。对于软件定制,设计人员可以相应地更改代码。
根据不同的使用和平台,GUI工具有不同的部分。
例子
移动GUI、计算机GUI、触摸屏GUI等,这里是一些工具的清单,可以方便地建立GUI:
- FLUID
- AppInventor (Android)
- LucidChart
- Wavemaker
- Visual Studio
- 争取一致性——在类似的情况下,应该要求一致的动作顺序。在提示、菜单和帮助屏幕中应该使用相同的术语。始终使用一致的命令。
- 允许经常使用的用户使用捷径——用户减少交互次数的愿望随着使用频率的增加而增加。缩写、功能键、隐藏命令和宏工具对专业用户非常有帮助。
- 提供信息反馈——对于每个操作员的操作,应该有一些系统反馈。对于频繁和轻微的行动,反应必须是适度的,而对于不频繁和重大的行动,反应必须是更实质性的。
- 设计对话框产生闭包—操作序列应该组织成具有开始、中间和结束的组。信息反馈在完成一组操作给运营商满足成就感,一种如释重负的感觉,信号将应急计划和选择从他们的思想,这表明,未来的道路是明确的为下一组的行动做准备。
- 提供简单的错误处理——尽可能多地设计系统,这样用户就不会犯严重的错误。如果发生了错误,系统应该能够检测到错误,并提供简单易懂的机制来处理错误。
- 允许简单的操作反转——这个特性可以减轻用户的焦虑,因为用户知道错误是可以撤销的。行动的简单逆转鼓励探索不熟悉的选项。可逆性的单位可以是单个动作、一个数据项或一组完整的动作。
- 支持内部控制点-有经验的操作员强烈地渴望他们是系统的主人,系统对他们的行动有反应。设计系统使用户成为动作的发起者而不是响应者。
- 减少短期记忆负荷——短期记忆中人类信息处理的局限性要求显示保持简单,合并多个页面显示,减少窗口移动频率,为代码、助记符和动作序列分配足够的训练时间。
推荐阅读
- 软件设计复杂度 – 软件工程教程
- 软件设计策略 – 软件工程教程
- 软件分析和设计工具 – 软件工程教程
- 软件设计基础 – 软件工程教程
- 软件需求 – 软件工程教程
- 软件项目管理 – 软件工程教程
- 软件开发生命周期 – 软件工程教程
- 软件工程概述 – 软件工程教程
- C++实现Rabin-Karp模式搜索算法及其原理解析