1、引 言 Web技术的发展,使得管理系统的开发更方便、功能更强大,在此系统的开发过程中,Web技术起了一个骨架式的支持作用;与此同时组件技术的发展为系统的开放性、集成性提供了便利,有效合理地引入组件技术是当前Web系统开发与发展的一个方向;通过对系统的开发进行建模,形象直观的图形化表示,可以显示系统的流程与功能。选择有效的建模方法,充分利用Web技术与组件技术,提高软件的开发效率,提高的软件的可靠性和可维护性,是每个软件开发人员所关心的问题。 UML(Unified Modeling Language)是基于对象技术的标准建模语言,定义良好、易于表达、功能强大的特点使它在面向对象的分析与设计中更具优势。在基于Web技术和组件技术的系统建模中,它完善的组件建模思想和可视化建模的优势更利于系统开发人员理解程序流程和功能,进一步提高Web系统的开发效率以及Web组件的可重用性和可修复性。 本文将结合我们自主开发的活塞PDM系统中的项目审批流程的建模,介绍UML在基于WEB技术和组件技术的系统建模中的应用。 2、基于Web的应用系统结构 对于基于Web技术的应用系统,用户直接面对的是客户端浏览器,用户在使用系统时,请求之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的。运算后得到的结果再通过浏览器的方式返回给用户。这个过程可分成一些子步骤,每一个子步骤的完成可理解为通过一个单独的应用服务器来处理,这些应用服务器在最终得到用户所需的结论之前,相互之间还会进行一定的数据交流和传递。图1就是Web的应用结构简图。
随着Web应用技术的发展,对Web数据流程的解释上还会有相应的改进或补充。 3、Web应用系统的UML建模方法 页面、脚本、表单和框架是Web应用系统的关键部分,数据流程的模型化表示关键就是用UML对上述Web元素应用及其关系建模,下面对这几种元素的模型化表示作一个简要介绍。 (1)页面建模。用户在使用Web应用系统时,是通过页面进行系统的操作。在页面建模中可用两个类别模板《Client Page》和《Sever Page》分别表示客户端页面和服务器端页面。客户端页面的属性是页的作用域中定义的变量,方法是页面脚本中的函数;服务器页面的属性是页面脚本中的变量,方法是脚本中定义的函数。在使用页面信息传递时,还可能出现服务器页面的重定向,在UML建模中,用类别模板《redirect》来表示;对于客户端页面和服务器页面的构造关联用类别模板《bulid》表示,这种关联是一种单向关联,由服务器页面指向客户端页面,具体表示如图2所示。
在Web应用系统中,还会经常用到的就是超级链接,在UML建模中,用类别模板《link》表示超级链接,它的参数模拟为链接属性。 (2)表单建模。用户的要求一般通过表单与数据库交互。在UML建模中,表单用类别模板《form》表示,属性是表单中的域,表单没有方法。表单在处理请求时,要与Web页面交流数据,这个交流过程是用提交按钮submit来完成,为了在建模中表示这种关系,用类别模板《submit》表示。 (3)组件建模。在使用组件技术的Web应用系统建模中,对组件的建模是个重要环节,在UML基本的图形化建模元素中,设立了专门的组件图。组件在使用过程中,同样的分成了客户端组件(如Java Applet,ActiveX控件)和服务器端组件。在系统的UML模型化表示中,用类别模板《Client Component》表示客户端组件,用《Sever Component》表示服务器端组件。 (4)框架建模。框架通过定义类别模板元素《frameset》来实现,frameset指定并命名各个框架,每个框架容纳一个页面;框架的使用还涉及到目标target,建模时用《target》来表示。 4、UML在活塞PDM系统建模中的运用 活塞PDM系统是在传统PDM系统的基础上,引入了组件技术和Web技术,对数据流程的处理更趋于简易性和方便性。在对该系统的建模过程中,要体现整个系统前台与后台间数据交互的流程。在设计时,主要是考虑设计它的class diagram(类图)和component diagram(组件图),用这两类模型图来体现UML的用例驱动和系统组件结构的特性。由于在系统的开发中采用了模块化的设计方法,因此在构划模型图时,采用了先整体后局部的思路,首先考虑整个系统的案例图,再对子模块进行分析和设计,在每个子模块数据流的入口和出口设置模型图间数据交互的接口。下面以活塞PDM系统中项目审批流程子模块的建模为例说明UML在此系统建模中的应用。 4.1 项目审批流程 项目审批是项目管理流程的一部分,功能就是实现审批过程和数据传递的自动进行,取消了传统审批流程中大量纸质文件的使用。下面以活塞新产品开发的项目审批为例来说明UML对项目审批流程的建模方法。 活塞新产品开发的项目审批过程有7个环节组成,分别是项目申请、组织评审、制定实施方案、技术委员会及专家委员会评审、技术副总审核、总经理审核和董事会审核。通过这七个环节来决定一个项目实施的可行性或者合理性。 审批过程自动化的实现方法,是在Web技术和组件技术的基础上,对每一个环节设置了评审状态tag。当tag=1时,表明项目已通过该环节评审,可进入下步评审;当tag=0时,表明项目还未经过评审,或者未通过评审,需要返回去修改项目运行的可行性研究,等待再一次的评审。同时在每个环节进行评审时,还要考虑该项目是否已进入了下一级评审,如若项目已进行了下一级的评审,这时该环节的操作人员都无权再对该环节所填写的评审意见进行编辑。也就是在对每个环节进行维护时,还要考虑下一级的评审状态。 在建模之前,首先看一下项目审批流程图,如图3所示。
除了这七个审批环节,为了让用户及时了解交叉投入生产的项目审批或进展情况,提供了项目浏览功能,用户按照管理员所授予的权限,在权限范围内并且利用项目浏览子模块中提供的关键字段、项目评审状态或者进展状态进行分类检索。 在项目评审流程的每个环节,一般设置了两部分功能需求,即填写该环节评审的内容、编辑该环节评审的内容。 比如总经理评审环节,它的功能设置如图4所示。
为了实现网上审批的自动化,在整个流程的环节功能设置时,遵照了如下的规则要求:在每个环节的查看已填评审内容时,列出的项目都是正在等待进入该环节评审的项目,而不属于这种情形的项目在此环节中是显示不出来的;同样,对于在编辑此环节评审内容上,已经进行了下一级评审的项目也是不可能列出的,每个环节的负责人只可以对此环节以前的评审内容具有浏览功能,而不具备编辑功能。如果要查看整个项目的评审状况,在管理员授予项目浏览功能的权限下,通过项目浏览一项完成。 整个流程所包括的各个环节,在功能设置上是类似的,差异是评审环节在整个评审流程中所处的位置。在进行UML建模时采用了把这些环节分开的方法,先对每个环节建模,最后再把单个的环节模型图整合成一个完整流程的模型图。由于篇幅所限,下面以总经理评审的环节为例说明UML的建模方法。 4.2 总经理评审的类图(Class Diagram) 在项目审批流程中,设计了总经理审核环节的Class Diagram,如图(5)、图(6)、图(7)所示。图(6)和图(7)是图(5)的延续。该类图显示了总经理审核环节中各个页面之间的关系。为简化,在此类图中没有列出各个类的属性和方法。整个类图实现了查看已填写评审内容、填写总经理评审内容和编辑评审内容。
4.3 总经理评审的组件图(Component Diagram) 组件图是分析该环节所涉及的功能是如何实现的,这部分与具体的编码工作相关。总经理评审环节的模块组件图如图(8)所示。
4.4 由模型图到代码的转换 类图和组件图说明了在基于Web技术的信息交互流程,页面的超级链接和页间的重新导向在JSP代码设计中,由模型图就可以掌握它们之间交互的逻辑,这样使程序编写更富条理性和方便性。在实际工作中,可以设置为CRC卡,方便编程人员的使用。如若再比较详细地设计出对象图和顺序图,对于整个系统的类定义和方法设置,会提供更大的方便。 5、结束语 建模对系统的开发过程中起着很重要的作用,在系统的开发和维护中有必要建立系统的模型。UML是一种图示化的面向对象建模语言,它形象直观、应用广泛,并对Web技术和组件技术在系统开发中的建模方法有了比较合理有效的定义。在UML提供的各种模型图的基础上,还可以依照所有开发技术的特点对它的表示进行扩展,在本文的建模中就是用了UML的类别模块扩充机制,为某些模型元素添加新的语义,构造新的模型,来说明开发过程中的隐含特性。 通过利用UML建模,对基于Web的PDM系统中的项目审批流程进行了分析和设计,对整个流程的功能有了一个清晰的认识,利于开发人员对系统的开发与维护,同时可为系统的升级或者二次开发提供一个理论依据。 |