资源描述:
《UML 活动图模型正确性诊断方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第37卷第14期计算机工程2011年7月Vol.37No.14ComputerEngineeringJuly2011·软件技术与数据库·文章编号:1000—3428(2011)14—0047—03文献标识码:A中图分类号:TP391UML活动图模型正确性诊断方法周春燕,李绪蓉,周良(南京航空航天大学信息科学与技术学院,南京210016)摘要:UML活动图的正确性决定了业务流程的正确执行,为此,提出一种UML活动图模型的正确性诊断方法。将模型分解后,对子模型进行模型验证,并对验证错误的子模型进行模型诊断,得到诊断结果。在质量管理过程实例中的应用结果表明,该方法能减小模型空间,减
2、少诊断次数,准确锁定错误,有效地对模型的正确性进行诊断。关键词:活动图;模型正确性;模型分解;模型验证;模型诊断;CorrectnessDiagnosisMethodofUMLActivityGraphModelZHOUChun-yan,LIXu-rong,ZHOULiang(CollegeofInformationScienceandTechnology,NanjingUniversityofAeronauticsandAstronautics,Nanjing210016,China)【Abstract】Thecorrectnessoftheactivitygraphdec
3、idesthatthecorrectnessofexecutionofbusinessflow,sothispaperproposesanmethodfordiagnosisofcorrectnessofUMLactivitygraphmodel.Itverificatesthemodel.Modeldiagnosisofsub-modelswhicharewrongandreceivingthediagnosisresults.Theapplicationofexampleofqualitymanagementprocess,demonstratesthisapproach
4、canreducethespaceofmodel,decreasediagnosisfrequency,lockerroraccurately,diagnosethemodelcorrectnesseffectively.【Keywords】activitygraph;modelcorrectness;modeldecomposition;modelverification;modeldiagnosisDOI:10.3969/j.issn.1000-3428.2011.14.0141概述(5)EN∈N,是模型的结束节点,EN.type=end,EN.dout=0,活动图是提供
5、独立于目标系统的高层次流程描述,多数并且EN.din=1。非常复杂并包含了大量的活动和相关的协作约束,它的正确(6)AC⊆N,是模型的活动节点,AC.type=activity,性决定了系统中实际业务过程执行的正确性。因此,在将其AC.dout=1,并且AC.din=1。运用于目标系统前,必须及时发现并更正错误。(7)JI⊆N,是模型的Joins节点,JI.type∈{ANDJoins,活动图类似于工作流图,结合工作流模型的验证和诊断XORJoins},JI.din≥1,并且JI.dout=1。方法,本文提出先验证后诊断的UML活动图模型正确性诊(8)SP⊆N,是模型的Spl
6、its节点,SP.type∈{ANDSplits,断方法,采用图分解技术来加快诊断速度。同时结合实例进XORSplits},SP.din=1,并且SP.dout≥1。行方法应用,验证其有效性。(9)如果n∈SP,节点n被访问,当n.type=XORSplits时,2基于活动图的模型表示则其中一条出口路径随机被访问;当n.type=ANDSplits时,活动图描述了需要进行的活动以及执行这些活动的顺则所有出口路径都被访问。序。活动图有起点、终点、活动、判断、对象、同步条、泳(10)如果n∈JI,当n.type=XORJoins时,当且仅当一条道、控制流等基本元素。鉴于工作流图模
7、型[1],活动图模型入口路径被访问时,节点n才会被访问;当n.type=ANDJoins定义为一个八元组:G=(N,E,T,ST,EN,AC,JI,SP),其中:时,当其所有入口路径都被访问时,节点n才会被访问。(1)N是节点,是一个七元组,N=(type,dout,din,postNodes,preNodes,inEdges,outEdges)。设n∈N,则:n.type∈T;dout是n的出度;din是n的入度;n.outEdges={e
8、e∈E∩e.fromNode=n}n.inEdges={e
9、