基于 UML 的 Web 应用系统设计
摘要
本文主要对UML的WEB应用建模扩展展开一些讨论,并对建模工具Rational Rose做一定介绍。详细描述基于UML的Web应用设计及建模,同时以素颜DIY网上购物系统为例,用UML进行分析和设计。并总结用UML做WEB应用设计的关键点,这种使用UML的分析设计方法不但为开发人员和客户、开发人员和开发人员提供方便的交流,同时也提高了系统重用性和可维护性,提高了系统开发的效率。
关键词:UML Rational Rose Web应用设计 网上购物系统
面向对象分析与设计(Object-Oriented Analysis and Design,简称OOA&D或OOAD方法)的发展促成了统一建模语言UML的产生。目前,UML是一种先进实用的标准建模语言,它可以为软件系统的产出建立可视化模型,是系统的结构变得直观,易于理解,同时UML符号具有定义良好的语义,不会引起歧义,这就使得用UML建立的模型不但利于交流,还有利于对软件的维护。另外,UML还定义了开发软件系统过程中所做的所有重要的分析、设计和实现决策的规格说明,这就意味着用UML建立的模型是准确的、无歧义的。随着网络技术的发展,Web应用程序的应用越来越广泛。Web应用程序与传统应用程序相比,具有重要的优势。但是到目前为止Web应用程序开发的中心一直是工具,开发人员往往忽略了极其重要的系统分析和设计过程。如今,Web应用程序变得越来越复杂,为Web应用程序建模的重要性日益突出,UML逐渐被应用于Web应用程序的分析与设计过程。本文讨论了UML在Web应用程序设计中,尤其是瘦Web客户端模式的应用程序中的应用,并且利用UML针对网上购物系统进行面向对象的建模,按照面向对象分析与设计的一般过程对系统进行需求分析。
Web应用程序正变得越来越复杂,越来越重要。为了帮助管理这种复杂性,需要为Web应用程序建模。UML是软件密集型系统的标准建模语言。在尝试用UML为Web应用程序建模时,很明显它的一些构件不能与标准的UML建模元素一一对应。为了让整个系统(Web构件,以及传统的中间层构件)使用同一种建模表示法,必须扩展UML。进行扩展是为了让Web特有的构件能与系统模型的其余部分集成,向Web应用程序的设计员、实施员以及构架设计师展示适当的抽象和明细级别。
Web应用程序的总体构架是一个客户机服务器系统,但二者有几点显著的区别。Web应用程序最重要的优点之一在于它的部署。部署Web应用程序通常指的是建立网络的服务器端构件。客户端不需要特别的软件或配置。两者的另一个重大差异在于客户机和服务器通信的本质。Web应用程序的基本通信协议是HTTP,这是一个无连接协议,它不是为最大的通信吞吐量设计的,而是为强壮性和容错而设计的。在Web应用程序中,客户机和服务器的通信通常围绕Web页导航进行,而不是在服务器端和客户端对象之间直接通信。在一定的抽象程度上,Web应用程序中所有的信息传递都可描述为Web页实体的请求和接收。通常所说的Web应用程序构架与动态Web站点的构架并无太大区别。
Web应用程序与Web站点,甚至是与动态Web站点的区别都要涉及到使用。Web应用程序实现的是业务逻辑,它的使用改变了业务的状态(其状态为系统捕获)。这是很重要的,因为它确定了建模工作的重点。Web应用程序执行业务逻辑,因此大多数重要的系统模型都侧重于业务逻辑和业务状态,而不是表示细节。表示很重要(否则系统将毫无用处),不过应尽量将业务和表示所关注的问题区分开。如果表示问题是重要的,甚至是复杂的,那么也需要对它们建模,但不必将它们作为业务逻辑模型的构成部分。此外,用于表示的资源更注重外观设计,而与实施业务规则关系不大。
从逻辑上讲,服务器端的Web页行为与客户端是完全不同的。在服务器上执行时,页有权访问服务器端资源(中间层构件、数据库、文件系统等),即与这些资源具有某些关系。同一页(或者是该页的HTML流输出)在客户端有完全不同的行为和关系集。在客户端,脚本页与浏览器本身(通过文档对象模型,即DOM),以及该页指定的所有JavaApplet、ActiveX控件或插件相关。对于认真的设计员而言,页还可能与客户机上在另一个HTML框架或浏览器实例出现的其他“活动”页相关。
通过分别考虑,我们就可以用一个类为Web页的服务器端建模,用另一个类为客户端建模。我们采用UML扩展机制为两者分别定义构造型和图标:«server page»和«client page»,以此来区分两者。UML中的构造型允许我们为建模元素定义新的语义。已指定构造型的类在UML图中可用定制图标表示,或者仅仅用(«»)之间的构造型名称说明。图标对概述图很有用,在概述图中,最好使用简单的标记对显示出的类属性和操作进行标注。
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。就像一个戏剧导演设计一个剧本一样,一个软件设计师使用Rational Rose,以演员(数字)、使用拖放式符号的程序表中的有用的案例元素(椭圆)、目标(矩形)和消息/关系(箭头)设计个种类,来创造(模型)一个应用的框架。当程序表被创建时,Rational Rose记录下这个程序表然后以设计师选择的C++, Visual Basic,Java, Oracle8,CORBA或者数据定义语言(Data Definition Language)来产生代码。Rational Rose的两个受欢迎的特征是它的提供反复式发展和来回旅程工程的能力。Rational Rose允许设计师利用反复发展(有时也叫进化式发展),因为在各个进程中新的应用能够被创建,通过把一个反复的输出变成下一个反复的输入。(这和瀑布式发展形成对比,在瀑布式发展中,在一个用户开始尝试之前整个工程被从头到尾的完成。)然后,当开发者开始理解组件之间是如何相互作用和在设计中进行调整时,Rational Rose能够通过回溯和更新模型的其余部分来保证代码的一致性,从而展现出被称为"来回旅程工程"的能力,Rational Rose是可扩展的,可以使用刻下载附加项和第三方应用软件,它支持COM/DCOM (ActiveX),JavaBeans 和 Corba组件标准。
Web应用程序是从Web站点或Web系统发展而来的,它扩充了Web站点,使用户可以调用其业务逻辑,改变服务器中业务的状态。Web应用程序至少包括了三个重要组件:客户端浏览器、Web服务器和应用程序服务器,另外还可能包含数据库服务器。Web应用程序的体系结构模式描述了软件系统的基本结构组织机制。其体系结构模式一般分为三种:瘦Web客户端模式、胖Web客户端模式和Web发送(Delivery)模式。一般的基于Internet的Web应用程序均采用瘦Web客户端模式。瘦Web客户端模式的基本架构如图1所示。
图1 瘦Web客户端模式的基本架构
瘦Web客户端模式的重要组件主要位于Web服务器上,所有的业务逻辑均在Web服务器上执行,客户端的计算能力极其有限。UML主要由图和原型组成,从不同的视角为系统的架构建模,由此系统的不同视图。这些视图包括用例图、类图、对象图、时序图、协作图、活动图、状态图、组件图和配置图。每一种视图都是由一个或多个图组成的。一般建模时用用例图、类图和对象图描述系统的静态结构,建立系统的静态结构模型,用时序图、协作图、活动图和状态图描述系统的动态行为,建立系统的动态行为模型;用组件图和配置图描述系统的物理模型。在进行系统分析与设计时,一般先给出系统的需求,进行系统的需求分析。需求分析的目标是识别系统参与者、系统用例,得到系统的用例图,并用系统的用例事件流说明系统的业务流程。接着进一步分析系统需求,确定类以及类与类之间的关系,确定它们的静态结构和动态行为,最终应用类图和对象图描述系统的静态结构,用时序图、协作图、活动图和状态图描述系统的动态行为。系统分析与设计的最后,利用组件图和配置图构建系统的物理模型。在利用UML为Web应用程序建模时,因为UML的符号表示是有限的,因此大量使用UML的扩充机制,如原型、标机值、约束等。利用这些扩充机制来定义代表Web技术组件的UML符号,分别用来代表服务器页面、客户端页面、JavaApplet等Web技术组件。
素颜DIY网上购物系统是专门提供电脑配件销售的零售商业网站,提供CPU、主板、内存等一系列商品的销售。提供商品的图片、简介、价格等一系列信息。用户在登陆后,就可以使用购物车对商品进行选购。用户可以对商品的种类、数量进行选择,并且可以对已经选择的商品进行增删。
5.1 系统功能需求分析
系统需求分析是系统分析和设计的第一步,也是关键的一步。UML是采用用例驱动的分析方法,其分析需求的主要任务是准确地分析系统的功能需求,识别出系统的参与者(Actor)和用例(Use Case) ,建立用例图(Use Case Diagrams) ,为系统分析和设计的后续工作打好基础。
系统的用例图如图2所示
图2 素颜DIY网上购物系统用例图
5.2 系统静态结构模型
网上购物系统的静态结构模型此处用类图描述。系统包含的类图包括实体类图和用户界面类图等。本文以实体类图为例,介绍如何用UML建立系统静态结构模型。
下面以登陆用例为例,用类图描述涉及的各个实体的关系,如图3所示
图3 用户登录的实体类图
5.3 系统动态行为模型
UML语言建模时一般采用时序图描述用例的主要场景,采用状态图描述了对象的动态行为。网上购物系统的主要用例是网上购物,它的主要场景用户在网上选择要买的商品进行购买。描述该用例的主要场景的时序图如图4所示。
图4 网上购物时序图
利用UML对Web应用程序建模时,应注意区别Web应用程序与以往传统程序设计的不同。以瘦Web客户端应用程序建模为例。瘦客户端模式的Web应用程序中,服务器页面常常由Web服务器载入。尽管服务器页面可以实现某些业务逻辑,但是由于这些业务逻辑被重用于网页处理,因此服务器页面不是放置这些业务逻辑的最优位置。这时就应当考虑将这些业务逻辑放置在已被编译过的服务器组件中,这样非Web应用程序系统也可以重用他们,从而提高了系统的可重用性。另外,在瘦客户端模式下,服务器负责协调服务器端的业务对象活动,建立用户界面并将其发送给客户端浏览器,这样就常常导致服务器页面过载。鉴于此,在系统分析和设计时,可以考虑将域的细节放在服务器页面外减轻服务器页面的责任并使服务器页面易于维护,这个设计思想可以通过分离业务逻辑协调与用户界面建立的方法来实现。系统设计时应识别出网页、重要的协作和责任,然后再逐一设计各个页面。重点要考虑服务器页面、链接(Links)、表单(Forms)和框架(Frames)等元素的设计。
随着Internet的迅猛发展,Web应用程序因其优势被越来越广泛应用。但目前开发Web应用程序的中心很少关注开发的过程。利用UML为Web应用程序建模,按照面向对象分析与设计的一般过程对系统进行需求分析可以有效的进行Web应用程序的设计。实践证明,将此方法应用于素颜DIY网上购物系统的分析、设计和建模过程,不但降低了系统开发的复杂性,还为开发人员提供交流的工具,同时提高了系统重用性和可维护性,提高了系统开发的效率。
参考文献
1.《UML 系统分析设计与应用案例》 冀振燕
2.《使用 UML 为 Web 应用程序构架建模》 Jim Conallen
3. 《UML基础、案例与应用》 Joseph Schmuller
4. 《UML中文FAQ》 http://www.uml.org.cn
5. 《福建电脑》 2004年第11期