用户界面的UML建模13

􀂄 Concrete Presentation Model 包中所包含的是,在Environment 包中与表示层框架模式中的《apm》类相对应的那些类。

8 结论

本文使用了一个图书馆系统的案例,来论述了关于用户界面的建模。通过使用统一建模语言来对应用系统进行建模,也说明了UML 可以用来进行用户界面的建模。其实UML 有着一组丰富的构建法(constructor),完全可用来对基于窗体的用户界面架构的各个方面进行建模。然而,这样的UI 建模方法并没有像所期望的那样可直接作为一个过程(process)来对待。事实上从该案例中我们还是认识到一些关于建模方面的问题:

􀂄 UML 并没有清晰地描述用例与活动(参见节3)之间的关系。用例并没有提供一些有关用户需求方面的信息(像目标,前置条件和后置条件),来帮助进行活动图的设计。

􀂄 UML 并没有一种描述抽象表示层(参见节4)的标记。事实上,我们认为UML 需要这样的一种标记来支持UI 表示层的设计。

􀂄 UML 并没有提供一种在抽象表示层的类(参见图6 中的AbstractForms)与活动之间的对应关系。事实上,对于那些与包含了用户交互的活动相关联的UI(详情可参见节4.3),我们很难予以标识。

此外,该案例还提供了一个使用多个UML 构造法的图例,来阐述有关用户界面方面的建模。表1 总结了所用到的UML 图,以及在本文图中所用到的构造法。

用户界面元素 UML 资源

领域模型 类图

任务模型 活动图

表示层模型(抽象和具体) 使用了设计模式的类图

交互(序列)图

对象图

事件 -- 与异常处理相关的UI

事件 -- UI 同步

类图

活动图

类图

表1: UI 元素建模中所用的UML 图的总结

由于我们使用了活动图[10],因此可能会用到一些状态图(statechart)[11]的构造法。而且本文也没有考虑有关窗口组件(widget)的设计。基于这个原因,我们在对窗口组件进行建模时,更多地是在论述对象间(inter-object)的转移(活动图),而非对象内(intra-object)的转移(状态图)。

在这个图书馆系统的建模过程中,还能学到以下内容:

􀂄 一个用户界面的设计是一个复杂的过程,这是因为它需要对用户界面的组成元素完全进行理解。其实,在设计的初期,并不需要清楚地知道一般的UI 是由多少个元素组成的。

􀂄 用户界面的元素之间往往存在着大量的依赖关系,可如图15 所示。所以在设计过程中,我们应该将UI建模作为一个整体来看。

在此,我们对如何使用UML 来对用户界面建模作了一些深入的讨论。事实上,还有许多其他的方法可以通过使用UML 来表现用户界面。本文的案例仅仅给出了其中的一种。

致谢

本文的第一位作者Conselho Nacional de Desenvolvimento Cientifico e Tecnologico -- CNPq(Brazil) 。

参考文献

1\]F. Bodart and J. Vanderdonckt. Widget standardization through abstract interaction objects. In Advance in Applied Ergonomics, pages 300-305, Istanbul -- West Lafayette, May 1996. USA Publishing. \[2\]G. Booch, J. Rumbaugh, and I. Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, Reading, MA, 1999. \[3\]R. Cattell, D. Barry, D. Bartels, M. Berler, J. Eastman, S. Gamerman, D. Jordan, A. Springer, H. Strickland, and D. Wade. The Object Database Standard: ODMG 2.0. Morgan Kaufmann, San Francisco, CA, 1997. \[4\]D. Collins. Designing Object-Oriented User Interfaces. Benjamin/Cummings, Redwood City, CA, 1995. \[5\]E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, 1995.

相关推荐
「QT(C++)开发工程师」11 天前
UML | 最好的类图设计工具结合CSDN天启呈现-领路架构师
数据库·uml·类视图
小鱼儿LY11 天前
软考系统架构设计师之UML统一建模语言
系统架构·软考·uml·架构设计师
workflower23 天前
GitHub宕机自救指南
测试用例·需求分析·uml·敏捷流程·结对编程
青草地溪水旁1 个月前
Astah UML 中,状态机(State Machine)的建模最合适使用「UML 状态图(State Diagram)」
uml·状态机
Liquad Li1 个月前
UML(统一建模语言)详解
架构·uml
产品研究员1 个月前
教你3个原型设计的高级交互用法,0基础产品经理适用!
产品经理·交互设计
青草地溪水旁1 个月前
UML函数原型中stereotype的含义,有啥用?
c++·uml
青草地溪水旁1 个月前
UML函数原型中guard的含义,有啥用?
c++·uml
青草地溪水旁1 个月前
UML函数原型中constraint的含义,有啥用?
c++·uml
范纹杉想快点毕业2 个月前
基于 C 语言视角:流程图中分支与循环结构的深度解析
c语言·stm32·单片机·设计模式·架构·流程图·uml