当前位置: 首页 > article >正文

用户界面的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.


http://www.kler.cn/a/502652.html

相关文章:

  • 图形验证码是怎样保护登录安全的?
  • 标准Android开发jdk和gradle和gradle AGP和AndroidStudio对应版本
  • Springboot Rabbitmq + 线程池技术控制指定数量task执行
  • VS2015 + OpenCV + OnnxRuntime-Cpp + YOLOv8 部署
  • linux-28 文本管理(一)文本查看,cat,tac,more,less,head,tail
  • 1.CSS的复合选择器
  • spring ApplicationContextAware的使用和执行时机
  • [Qt]控件的核心属性
  • JavaEE——多线程代码案例2:阻塞队列
  • 从 SQL 语句到数据库操作
  • 51单片机——DS18B20温度传感器
  • ue5使用蓝图接口记录
  • 【Docker系列】容器内目录显示异常的解决之道
  • 【JVM-3】深入理解JVM堆内存:结构、管理与优化
  • STM32之LWIP网络通讯设计-上(十四)
  • 如何稳定使用 O1 / O1 Pro,让“降智”现象不再困扰?
  • Swagger生成Api文档的增强解决方案--knife4j
  • http和https有哪些不同
  • 【Ubuntu与Linux操作系统:一、Ubuntu安装与基本使用】
  • 45. 跳跃游戏2
  • 使用 Docker 部署 Java 项目(通俗易懂)
  • Java的Stream流和Option类
  • 深入解析 Python 中的函数参数类型详解
  • ​Vue虚拟DOM:如何提高前端开发效率
  • 44_Lua迭代器
  • 【IPy模块01】Python运维模块之IP 地址、网段的基本处理