2.5 用户界面设计
用户界面设计指的是对应用程序的终端用户界面和服务的编程接口所做的设计。
对于在线应用程序来说,用户界面由应用程序所要显示的各种画面组成。在设计用户界面的时候,笔者不会详细地设计这些画面的布局或风格,因为这些内容可以稍后再做,而且最好是有专业的图形设计师帮着做。笔者在该阶段要做的是逻辑画面设计(logical screen design),这种设计用来确定每个画面上应该显示哪些数据、用户可以在画面中执行什么操作,以及这些画面之间如何切换,也就是说,用户是怎样从一个画面转到另一个画面的。图2-8以一个联网的银行业应用程序为例,演示了其中的一部分用户界面设计。图中的方框表示画面,连线表示画面之间的切换。左上角的虚线框表示菜单条,它会出现在应用程序里的每一个画面之中。
这种用示意图来展示用户界面设计的办法,有一个缺点,那就是有可能要画许多张图,每张图只演示整个界面之中的某一小块。假如把这些全都用一张大图来表示,那就太乱了。
我们还可以用文本形式来简单地表示画面之间的切换,这样做还可以包含更多的细节,例如,画面中应该显示的数据、用户输入数据所用的字段,以及单击按钮的效果和该动作与数据库之间的联系等。这些详细信息,通常可以从情境设计方案之中复制过来。实际上,笔者觉得一开始最好是以文本形式来展示用户界面的设计,因为这种形式编辑起来比较方便,等到要把这些信息拿给别人看的时候,再去绘制图表。第8章将会更详细地讨论这种文本形式。
之所以要从逻辑上进行用户界面的设计,其主要原因是想强调易用性。易用性比画面的视觉效果重要得多。用这种轻便的方式来展示设计,可以使大家把注意力放在与视觉效果无关的那些方面,而且也使得设计者更愿意去讨论各种替代方案,因为他们无需在界面的显示效果上面投入过多的时间。
如果能够保证情境设计之中的每项功能,都在用户界面的设计之中有着对应的部分,那么这套用户界面的设计方案就是完整的。
在评估易用程度的时候,还有很多其他的问题需要考虑。你应该请项目的利益相关者也参与到设计过程之中,这不仅可以很好地检查用户界面,而且还能够判断出早前的情境设计是否有效。
服务与在线应用程序不同,它没有终端用户可言,对它来说,别的程序就是它的用户。对服务所做的用户界面设计,指的是设计该服务的可编程接口。我们通常要考虑的问题是:应该把服务数据放在一条大的消息里面,还是应该分成许多条小的消息来提供。这种设计所需的技能与技术知识,与设计屏幕画面时所需的知识完全不同,我们将在第7章中详细地讨论服务设计。