任务:设计用户界面
此任务说明了如何进行重点为可用性的 GUI 设计。
规程:分析和设计
用途
  • 制作支持用户界面可用性的推理和增强的用户界面设计
关系
角色主执行者: 其他执行者:
输入必需:
    可选:
      输出
        流程使用情况
        主要描述

        在设计用户界面时,请记住在需求引发期间创建的任何故事板、在特定于项目的指南中的用户界面指南以及任何现有的用户界面原型。如果发现该任务最终需要改进故事板,则这些更新由系统分析人员执行(请参阅任务:引发项目干系人请求)。

        步骤
        描述相关用户的特征

        描述某些(人类)用户的特征,这些用户将与系统交互来执行当前迭代中考虑的需求。要重点描述主要用户,因为交互的大部分涉及这些用户。该信息对于下面的后续步骤很重要。

        与系统分析人员协作,确定是否需要对参与者描述作出更改,来反映特征描述。有关详细信息,请参阅工作产品指南:参与者,特征

        确定主要用户界面元素

        查看在当前迭代中考虑的需求(特别是任何 用例和/或故事板),确定系统的用户界面的主窗口。我们说的“主窗口”指的是用户将与其交互最多的窗口(那些对于用户想像的系统模型很重要的用户界面元素)。主窗口包含菜单,并且可能包含子窗口或表单。主窗口是用户在它们之间浏览的窗口。非主窗口结果可能会成为主窗口的一部分。

        主要主窗口应该是当用户启动应用程序时打开的窗口。只要应用程序在运行,它一般总是打开的,用户将在其中花费很大一部分“使用时间”。因为它总是打开的,而且组成了用户与系统的首次接触,所以它是实施用户想像中的系统模型的首选载体。主要主窗口一般称为“主页”。

        如果用户界面元素需要一起显示,或者如果它们需要在空间上与其他用户界面元素相关,请尝试将这些用户界面元素分组到同一个主窗口中。但是,由于屏幕区域有限,所以并不总是能做到这一点。请注意,平均对象量是本步骤的重要输入,因为它们说明了一次可能要显示多少对象。对象太多可能意味着它们不能全部出现在同一个窗口上;主窗口而是可能包含对象的压缩表示,然后可能为每个对象(或一组对象)定义独立的主窗口。

        以下是对主窗口的一些建议:

        • 对于用户想像中的系统模型很重要的窗口
        • 用户将在其中花费大部分使用时间的窗口
        • 用于提供用例的启动的窗口

        请记住,目标是将主窗口的个数以及它们之间的导航路径的个数降到最低。

        定义导航图

        根据确定的主窗口集合以及故事板,定义系统的导航图

        导航图应该包含主要的用户界面元素以及它们的导航路径。它不需要包含通过用户界面元素的全部可能的路径,只要主路径就可以了。目标是让导航图成为系统的用户界面的指南。

        导航图中的“顶级”用户界面元素最明显的候选者是主要主窗口(用户在其中花费大部分使用时间的窗口)。

        导航图应该明确指出,用户达到某个特定的屏幕或某个功能需要“点击多少次”。一般情况下,您会希望应用程序最重要的区域离主窗口只有“一击之遥”。窗口导航路径太长不仅会增加不必要的交互开销,而且会使用户更容易在系统中“迷路”。理想的情况下,所有的窗口都应该能从主要主窗口中打开,这样最长的窗口导航长度也只有两层。请努力避免让窗口导航长度超过三层。

        导航图还应该坚持使用并反映系统的用户界面的系统隐喻(如特定于项目的指南中所记录)。

        导航图可以使用各种表示方法。一些示例包括:

        • 分层的“树”图,其中每个级别的图显示到达某个特定的用户界面元素所需的单击次数。
        • 带有自定义图标的自由格式图形
        • UML 类图,其中类用于用户界面元素,关联用于导航路径

        选择使用哪种表示在特定于项目的指南中加以了指定。

        详细描述用户界面元素的设计

        此时,高级别用户界面设计已完成:

        • 主窗口已确定。
        • 用户界面元素和它们的导航路径已定义(导航图)。

        现在就可以执行用户界面元素的详细设计了。下面是设计用户界面元素的不同方面。每个方面描述如下:

        设计主窗口的可视化

        主窗口(特别是主要主窗口)的可视化将对系统的可用性有重大影响。设计这种可视化是关于确定应该将包含的用户界面元素的哪些部分(属性)可视化。事件的故事板流程可以用于帮助确定要显示的属性的优先顺序。如果用户需要看见用户界面元素的许多不同属性,您就可以实施主窗口的数个视图,每个视图将不同的属性组可视化。设计这种可视化还意味着,您必须使用所有可视方面,查看应该如何将包含的用户界面元素的属性可视化。有关详细信息,请参阅指南:用户界面(一般)中的“可视方面”小节。

        在可能的情况下,尝试确定将在主窗口中显示的各元素的“共同特征”。 通过在某个维度将共同特征可视化,用户就可以将元素互相关联,并开始看见模式。这会大大增加用户界面的“带宽”。

        示例:

        假设您有一个客户服务系统,您想在其中显示类似以下的方面:

        • 随着时间的过去,客户提出的抱怨和问题
        • 随着时间的过去,客户购买了什么产品
        • 随着时间的过去,向客户开出了多少的发票额

        这里的共同特征是“时间”。因此,在同一个水平时间轴上并排显示抱怨/问题、购买和发票将使用户能够看见这些内容之间的相关(如果它们相关)模式。

        设计主窗口的用户操作

        在这里您决定如何“实施”可以为主窗口调用的用户操作。主窗口的用户操作常以菜单栏中的菜单项提供,并常通过弹出菜单和工具栏作为备用项和补充项提供。

        请为每个主窗口定义菜单和菜单选项。例如,在文档编辑器中有“编辑”菜单,将一些相关的操作组合到一起,如“剪切”、“复制”等等。

        一些用户操作可能要求与用户进行复杂的交互,因此需要他们自己的辅助窗口。 例如,在文档编辑器中,对文档有“打印”操作。由于该操作有复杂的交互,因此它需要另外的对话框窗口。

        如果窗口中有大量的对象要可视化,可能就有必要设计涉及这些对象的用户操作了。以下是这样的用户操作的一些示例:

        • 在多个对象中搜索
        • 排列多个对象的顺序
        • 浏览多个对象的层次结构
        • 选择多个对象

        有关更多详细信息,请参阅指南:用户界面(一般)

        设计各种特性

        将必需的动态行为添加到用户界面。大多数动态行为由目标平台给出,如“选择-操作”模式、双击打开、鼠标右键弹出菜单等。但是,您需要作出一些决策,包括:

        • 如何支持窗口管理
        • 在会话间存储什么会话信息,如输入光标位置、滚动条位置、打开的窗口、窗口大小、相对的窗口位置等
        • 对于您的主窗口是支持单个文档界面还是支持多个文档界面(SDI 或 MDI)

        同时请评价其他能增强可用性的常用特性,包括以下各项:

        • 是否应该提供“联机帮助”(包括“向导”)
        • 最好提供“撤消”操作,使系统可以安全地探索
        • 是否应该提供“代理程序”来监视用户事件和主动建议操作
        • 是否应该提供“动态突出显示”来使关联可视化
        • 是否应该支持用户定义的“宏”
        • 是否有应该可由用户配置的特定区域

        有关更多详细信息,请参阅指南:用户界面(一般)

        更多信息