• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

使用 UML 为 Web 应用程序构架建模

发布: 2009-10-27 10:56 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 86次 | 进入软件测试论坛讨论

领测软件测试网


目前的 Web 服务器已经在这个基本设计上有所改进。它们现在已非常注重安全性,而且包含了一些特性:如在服务器端的客户机状态管理、事务处理集成、远程管理、资源共享等,这里只列举了其中的几种。总的来说,最新一代 Web 服务器处理的都是那些对构架设计师来说非常重要的问题,它们关系到任务至上、可缩放和强壮的应用程序。

根据 CGI 脚本的作用,可以将现今的 Web 服务器分为三大类:脚本页、编译页,以及两者的混合体。在第一类中,客户机浏览器能请求的每一个 Web 页在 Web 服务器的文件系统中都用一个脚本文件来表示。这个文件一般是 HTML 和其他一些脚本语言的混合。对页发出请求后,Web 服务器委派一个可识别该页的引擎对其进行处理,最终结果以格式为 HTML 的流的形式返回给发出请求的客户机。Microsoft 的 Active Server Pages、Java Server Pages 和 Cold Fusion 都属于这一类。

在第二类中,Web 服务器加载并执行一个二进制构件。这个构件和脚本页一样,有权访问与页请求一起发送的所有信息(表单字段值和参数)。经过编译的代码利用请求的详细信息,并通常要访问服务器端的资源,以生成 HTML 流并返回给客户机。编译页包含的功能往往比脚本页大,尽管并未明确这一规律。通过向编译页请求传递不同的参数,可获得不同的功能。任何一个编译构件实际都可以包含整个目录脚本页的所有功能。Microsoft 的 ISAPI 和 Netscape 的 NSAPI 就是表示这种构架类型的技术。

第三类指的是那些一旦发出请求即进行编译的脚本页,以后的所有请求都使用编译过的页。只有最初页的内容改变了,该页才会进行另一次编译。这类页介于灵活的脚本页和高效的编译页之间。

Web 页建模
Web 页,不管是脚本页还是编译页,都一对一地映射到 UML 中的构件。构件是系统的“物理”可更换部件。模型的实施视图(构件视图)描述了系统的构件及它们之间的关系。在 Web 应用程序中,这个视图描述了系统的所有 Web 页及它们彼此之间的关系(如超链接)。在一定程度上,Web 系统的构件图就相当于站点图。

由于构件仅仅代表了接口的物理打包方式,它们并不适用于对页内部的协作关系建模。这一抽象级别仍需要成为模型的组成部分,而且对设计员和实施员而言极其重要。为引入正题,我们可以说每个 Web 页在模型的设计视图(逻辑视图)中都是一个 UML 类,它与其他页的关系(关联关系)即代表了超链接。但如果考虑到任何 Web 页都可能既代表一组只存在于服务器上的功能和协作,同时又代表只存在于客户机上的一组完全不同的功能和协作,那么这种抽象就不成立了。举例来说,使用动态 HTML(客户端脚本)作为部分输出的所有服务器 Web 脚本页都是这样的页。对这个问题的直接反应可能就是为类中的每个属性或操作设计原型,指明它是在服务器端还是在客户端有效。至此,运用模型倒让问题变得复杂了,而我们的初衷是要简化问题。

一个更好的解决方案是“分别考虑”。从逻辑上讲,服务器端的 Web 页行为与客户端是完全不同的。在服务器上执行时,页有权访问服务器端资源(中间层构件、数据库、文件系统等),即与这些资源具有某些关系。同一页(或者是该页的 HTML 流输出)在客户端有完全不同的行为和关系集。在客户端,脚本页与浏览器本身(通过文档对象模型,即 DOM),以及该页指定的所有 Java Applet、ActiveX 控件或插件相关。对于认真的设计员而言,页还可能与客户机上在另一个 HTML 框架或浏览器实例出现的其他“活动”页相关。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网