摘 要:介绍了一种可视化的建模工具——统一建模语言(UML),阐述了它的显著特点以及可视化的建模方法,并以大坝安全辅助决策系统为例,在分析了该系统功能需求的基础上,运用统一建模语言建立了该系统的静态模型(用例图、包图)和动态模型(活动图、顺序图),这些模型将有利于开发人员有效地对目标系统进行需求分析、系统设计、源程序自动生成,以及通过逆向工程返回到分析设计阶段,使系统能适应需求变化的要求,从而缩短软件开发周期,提高大坝安全辅助决策系统的质量。
关键词:大坝安全;辅助决策系统;统一建模语言UML
我国修建数量众多的拦河大坝,随着大坝运行时间的延长,坝体材料逐渐老化,环境地质条件也有了变化,有些大坝出现了危及大坝安全的裂缝和病变,使得大坝安全性降低[1],这将影响水利工程的效益,甚至威胁着上、下游人民的生命财产的安全。与此同时,大坝的规模日趋巨大(如三峡、二滩、小浪底等)。因此,大坝的安全性显得尤为重要。大坝安全决策支持系统应用现代计算机网络技术,对大坝监测资料实现科学有序的管理,依据资料分析、反分析的成果以及专家经验,对大坝的安全状况进行综合安全评价,对不安全因素经过成因分析后,提出辅助决策建议。使大坝在保证安全运行的前提下,充分发挥工程效应。依据综合安全评价和辅助决策的目标,大坝安全决策支持系统设有综合评价、辅助决策以及支持库群(数据库、模型库、方法库、知识库和图库)等分系统。由此可见,该系统是一个复杂的应用软件系统。目前,水利水电工程中普遍运用的应用软件系统有:大坝、堤防安全评价系统,防洪决策支持系统,水库调度系统,水电站综合自动化系统等,这些系统都涉及大量的信息和复杂的科学计算,属于大型的软件系统。它们的质量直接影响着水工建筑物的安全和防洪调度的科学决策,稍有失误,将会给人民的生命财产和国家的社会经济带来巨大的损失。由于在软件开发过程中的个体化行为,导致系统在开发和维护过程中遇到一系列严重的问题。因此,作为水利工程技术人员在开发这些大型软件系统时,除了关注本专业领域的关键技术问题外,还应该吸收和应用计算机软件工程的开发模式,尽可能利用先进有效的软件工具,对目标系统进行分析、设计和实现,使开发的应用软件系统具有开放性、先进性、可靠性、可维护性和适用性的特点。下面将简要介绍一种先进的可视化建模工具——统一建模语言UML(Unified
Modeling Language)。
1 UML简介
统一建模语言UML是一种可视化面向对象建模技术,它统一了Booch,OMT和OOSE等方法中的基本概念,并吸取了面向对象技术领域中其他流派的长处,成为一个更具综合性的统一方法。在美国,UML获得了工业界、科技界和应用界的广泛支持。1996年底,UML已成为可视化建模语言事实上的工业标准。1997年,OMG采纳UML1.1作为基于面向对象技术的标准建模方法,表明UML代表了软件开发技术的发展方向[2]。下面以支持UML可视化模型开发的软件工具Rational
Rose为例,介绍其可视化建模及其功能特点[3]。
1.1功能特点
(1)可视化建模:Rose提供了多种统一的标准图形,可以使用它们建立和修改使用案例、角色、类、对象、包的模型及其相互关系,并自动维护视图中有关内容与相关说明书在语义上的一致性。(2)正向和逆向转出工程代码:根据创建的模型自动生成相应的计算机源代码,可支持C++,Java,VB,Power
Builder等语言(正向工程)。通过对源代码的语义分析,还可以逆向转出工程代码,输出模型文件(逆向工程)。上述特点有利于开发人员方便地进行系统分析、设计、程序生成的一体化和逆向工程。首先由Rose软件工具创建并保存分析设计过程中的图表文档和模型,然后自动生成程序源代码,完成一次原型系统地开发。如果用户不满意,可以通过逆向转出工程代码返回到分析设计阶段,对模型进行修改后,再生成程序代码,直至用户满意为止[4]。这将避免结构化方法对系统分析、设计、编码过程不能逆向返回的缺点,使系统能够适应用户需求变化以及软件复用的要求。
1.2 UML框图
UML是一种表达能力丰富的可视化建模语言,标准对于实现可视化建模的通信功能至关重要。UML将模型中的信息用标准图形元素直观地显示,UML提供了5类10种统一的标准图形。从应用的角度可将它们归纳为两大类:(1)静态模型:包括用例图(Use
Case Diagram)、类图(Class Diagram)、对象图(Object Diagram)、包图(Package
Diagram)、组件图(Component Diagram)、配置图(Deployment Diagram);(2)动态模型:包括活动图(Activity
Diagram)、顺序图(Seuence Diagram)、合作图(Collaboration Diagram)和状态图(State
Diagram)。系统的结构可以用静态模型来描述,系统的行为则用动态模型来描述。
UML提供的丰富的图符体系,代表了可视化建模的发展方向。有利于用户、开发人员、分析人员、测试人员、管理人员和其他涉及项目的人员之间的通信。UML适用于从需求分析到系统实现的软件开发的全过程,在系统开发的不同阶段,可以通过灵活运用UML视图,构建目标系统的需求模型、设计模型和实现模型[5]。下面以大坝安全辅助决策系统为例,说明在系统分析、设计阶段采用的几种典型的可视化建模方法。
2 系统的需求分析
需求分析的目的是对目标系统提出尽可能完整、准确的需求,并建立相应的模型加以描述。大坝安全辅助决策系统主要有两个方面的功能需求:一方面是针对综合评价系统确定的异常或不安全因素,对大坝的安全运行提出辅助决策的建议;另一方面是对综合评价系统尚未找出成因的疑难杂症,通过召集专家,由专家组经过查询资料和分析计算后,进行安全评价,并提出辅助决策建议,根据大坝安全决策的要求,辅助决策系统应由下面3个子系统来满足其功能需求。
(1)资料查询子系统。当综合评价分系统判断为结构异常(或险情)时,根据专家的查询需要,将相关的监测量及其相应的环境量的观测资料、分析评价的成果以及疑难杂症部位的有关设计、施工资料等信息,经过联想和智能处理,快速地提供给专家查询,为专家综合诊断提供全面的信息支持。
(2)专家综合诊断子系统。本子系统的功能是对综合评价分系统找不出成因的建筑物结构异常等疑难杂症,进行专家综合诊断。首先召集有关专家成立专家组,专家们通过查询建筑物结构异常的相关资料,对疑难杂症进行影响因素分析,物理成因分析,找出疑难杂症的成因,然后对大坝进行整体安全评价。
(3)辅助决策建议子系统。当已分析出大坝结构异常(或险情)的物理成因,并提出相应的报警级别后,则调用辅助决策建议子系统,利用知识库中的专家经验和技术规范进行智能推理判断,对结构异常(或险情)提出相应的辅助决策建议,并上报有关单位和领导决策参考。
3 需求分析建模
3.1 用例图
用例代表的是一个完整的功能,用例图将从用户的角度描述辅助决策系统的功能,并指出各功能的操作者。需要说明的是,用例图是站在外部用户的角度识别系统能完成什么样的工作,它不考虑系统内部是如何实现的。用例图中包含系统、角色和用例3种模型元素。(1)系统:系统的边界用来说明构建的用例模型的应用范围。用例图中用一个“方框”表示系统。(2)角色:角色是与所建系统交互的人或事,角色是一个群体概念,代表的是一类能使用某个功能的人或事。用“小人”图符表示。在这里角色指与辅助决策系统交互的人,它包括:①大坝安全专家;②上级有关领导。(3)用例:在UML中,用例被定义成系统执行的一系列动作,用一个“椭圆”来表示。这里用例指辅助决策系统提供的功能或服务。它主要包括:①资料查询;②影响因素分析;③物理成因分析;④安全评价;⑤召集专家;⑥辅助决策建议。用例图描述整个系统中角色和角色、用例和角色,用例和用例的关系。即直观地显示了辅助决策系统为“谁”提供了哪些“功能”(图1)。
3.2活动图
在进行用例分析时,可以使用UML提供的动态模型——活动图,来刻画用例的动态特性。活动图能直观清晰地描述工作流以及并行过程的行为。辅助决策建议用例的活动图见图2所示。从图中看出活动图与常用的程序流程图相似,它们的主要区别在于程序流程图一般用来表示串行过程,而活动图则可以用来表示并行过程。如图中用加黑的粗线段表示同步条,同步条上引出3个活动(辅助决策建议)——降低扬压力、控制运行水位和工程措施建议,这3个活动是并行的,就是说它们的执行顺序是不受限制的,交叉进行、同时进行都可以。在模型中保留这种并行行为的描述,对于在实现阶段充分发现那些可以并行的工作非常有利,这将有助于提高工作效率和系统反映的灵敏程度。
|
|
图1
大坝安全辅助决策系统用例模型 |
图2
辅助决策建议活动图 |
4 系统设计
系统设计阶段的任务是在需求分析的基础上,更加深入、综合地考虑辅助决策系统的目标、技术要求和约束,扩展和细化需求分析阶段的模型,其目的是设计易于转化成代码的方案。
传统的结构化方法是采用功能来分解复杂的大系统,而客观世界是由各种“对象”组成,每个对象都属于具有相同特征的对象类,因此结构化的方法对客观世界的描述不够准确。随着面向对象技术的发展,彻底改变了这种设计方法,它的基本思路是将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。在UML中把这种分组机制称为包。辅助决策系统的结构设计可以使用UML提供的包图和类图反映系统的结构(图3)。大坝安全辅助决策系统采用3层分布式体系结构,在UML建模的逻辑视图中表示为用户界面包、应用服务包和数据服务包。应用服务包包括各种应用子系统,如资料查询、专家综合诊断及辅助决策建议等。包图是保持系统整体结构简明、清晰的重要工具。在系统详细设计阶段,要对系统中引入的所有类进行细化,这时可以运用UML提供的动态模型,对系统的控制、转移、事件和条件进行描述。例如资料查询的动态实现细节可用顺序图表示(图4)。顺序图着重描述资料查询过程中多个对象消息传递的时间顺序。即在对象间如何发送和接收消息。顺序图有两个坐标轴,水平轴显示不同的对象,垂直轴表示时间。消息按发生的时间顺序从上到下排列。
|
|
图3
大坝安全辅助决策系统包图 |
图4
资料查询顺序图 |
5 结语
论文以大坝安全辅助决策系统为例,说明UML在实际应用系统中的可视化建模机制。用户可以根据目标系统的特点,灵活调用UML提供的多种图形,以多视点的角度从不同的层面为系统的需求分析、系统设计以及实现的整个过程,建立富有弹性和扩充性的可视化软件开发模型。可以看出UML面向对象的思想以及丰富的标准图视,为大型软件的开发提供了强有力支持,有利于提高软件开发的质量和效率。如何运用UML技术解决实际软件开发中所面临地问题,仍然是该领域研究的热点。本文使用可视化面向对象建模技术为大坝安全辅助决策系统的分析、设计作了一些探索性的工作,相信随着该技术的普及,UML将有更加广阔的应用前景。
|