UML的Web应用扩展 UML(Unified Modeling Language)是一种通用的可视化建模语言,适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。但在对Web应用进行建模时,它的一些构件不能与标准UML建模元素一一对应,因此必须对UML进行扩展。
UML的三种核心扩展机制包括构造型、标记值和约束。其中最重要的扩展机制是构造型,它不能改变原模型的结构,但可以在模型元素上附加新的语义,通常用“《构造型名》”来表示。约束是模型元素中的语义关系,定义了模型如何组织在一起,通常用一对“{}”之间的字符串表示。标记值是对模型元素特性的扩展,大多数的模型元素都有与之关联的特性,通常用带括号的字符串表示。
1、Web页建模
Web页可能同时包含客户端脚本和服务器端脚本,因此必须分别进行建模。服务器端Web页面一般包含由服务器执行的脚本,每一次被请求时都在服务器上组合,更新业务逻辑状态,返回给浏览器。客户端Web页可能包含数据、表现形式甚至业务逻辑,由浏览器解释执行,并可以与客户端组件相关联,如Java Applet、ActiveX、插件等。两者之间通过定向关系相互关联。这种关联关系的构造型为?build?。
Web应用中的超级链接代表导航路径,用构造型为?link?的关联关系表示。标记值用于定义随超级链接请求传递的参数列表,供服务器端Web页使用。图3描述了Web页之间的关系。
图3 Web页之间的关系 |
.NET框架中大多数建立的是服务器端Web页,经编译后生成HTML代码传递到客户端浏览器。同时,为了提高效率,对于那些不包含业务逻辑的Web页,在.NET框架中可以直接用HTML元素建立客户端Web页,再建立起与对应的服务器端Web页之间的调用关系。
2、表单建模
表单是Web页的基本输入机制,包括<input>、<select> 和 <textarea>等输入元素,用《Form》构造型进行建模。《Form》没有操作,与之交互的操作是包含表单的Web页的特性。它可以与作为输入控件的 Applet或ActiveX 控件关联,还可以把表单内容提交到服务器进行处理。图4描述了含有表单的客户端Web页与服务器的交互过程。
图4 包含表单的客户端Web页与服务器的交互过程 |
.NET中每一个页面只有一个表单,包含所有的输入元素,通常表现为服务器端控件或客户端控件,其中服务器端控件由服务器端Web页经过编译后传送到客户端。
3、组件建模
Web应用中的组件分为服务器端组件和客户端组件两类。服务器端较复杂的业务逻辑通常由中间层完成,包括一组封装了所有业务逻辑的已编译好的组件。因此,使用中间层不仅可以提高性能,而且可以共享整个应用的业务功能。客户端Web页中常见的组件是Java Applet和ActiveX,利用它们访问浏览器和客户端的各种资源,实现HTML无法实现的功能。
Web应用扩展定义了《static page》和《dynamic page》两个抽象组件构造型。《static page》实现客户端组件。《dynamic page》的主要任务是在运行时系统的物理文件和逻辑视图中的逻辑表现之间提供映射。图5和图6分别表示这两种组件实现的逻辑视图。
图6 由《static page》实现的客户端组件 |
图5 由《dynamic page》实现的逻辑视图类 |
4、框架建模
Web应用扩展定义了构造型《frameset》和《target》以及关联关系构造型《targeted link》来实现对框架的建模。《frameset》直接映射到HTML的<frameset>标记。《target》表示当前Web页引用的其它Web页或框架。《targeted link》是指向另一个Web页的超级链接,但它要在特定目标中才能提供。图7显示了论文管理的框架模型
图7 论文管理框架模型 |