[发明专利]面向协同建模的UML模型合并与一致性检测方法及系统在审
申请号: | 202110424538.5 | 申请日: | 2021-04-20 |
公开(公告)号: | CN113204335A | 公开(公告)日: | 2021-08-03 |
发明(设计)人: | 庄毅;许伟;叶彤;顾晶晶 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/65;G06F8/71;G06F16/23 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 朱炳斐 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 协同 建模 uml 模型 合并 一致性 检测 方法 系统 | ||
1.一种面向协同建模的UML模型合并与一致性检测方法,其特征在于,所述方法包括以下步骤:
步骤1,根据协同建模中的一致性约束与合并规则,创建UML模型操作集合与相应的模型元素;
步骤2,采用模型状态空间搜索方法,在搜索下一个状态时增量地生成状态空间,并通过状态转换进行模型版本的更新;
步骤3,根据模型更新与一致性检测方法,对模型与文档的版本进行检测,若模型出现新版本则对模型进行更新,并对模型进行一致性检测。
2.根据权利要求1所述的面向协同建模的UML模型合并与一致性检测方法,其特征在于,步骤1中所述UML模型操作集合表示为以下三元组:
Modeloperate=(Add,Delete,Modify) (1)
式中,Add(element,type)表示添加操作,包含两个参数,即添加一个新的模型元素element,类型为type;Delete(element,type)表示删除操作,即删除一个现有的类型为type的模型元素element;Modify(element,feature,v0,vn)表示修改操作,包含四个参数,即将模型元素element的特征feature的值从v0修改为vn;以上三个操作的标识符均为模型元素element。
3.根据权利要求2所述的面向协同建模的UML模型合并与一致性检测方法,其特征在于,步骤2所述采用模型状态空间搜索方法,在搜索下一个状态时增量地生成状态空间,并通过状态转换进行模型版本的更新,具体包括:
定义新模型:从原模型Modelold演变成新模型Modelnew之间的过程是一个操作序列,记为集合Δ={Δ1,Δ2,...,Δn},由此定义新模型为:
Modelnew=Modelold+Θ (2)
式中,Θ表示两个模型版本操作序列集合Δ之间的差集,差集Θ的反转记作表示与Θ相反的一系列操作序列集合;
步骤2-1,基于UML模型操作集合与相应的模型元素定义初步合并模型:
给定n个无冲突的操作序列集合{Δ1,Δ2,...,Δn},用conf(Δi,Δj)表示集合Δi与Δj中有冲突的操作集合,用nonconf(Δi,Δj)表示集合Δi与Δj中无冲突的操作集合,i,j=1,2,...,n;设共同的原始模型为Model,经过n个操作序列集合{Δ1,Δ2,...,Δn}生成模型修订版本{Model1,Model2,...,Modeln},n个模型的初步合并模型Modelin为:
Modelin=Model+(Δ′12∪Δ′21∪...∪Δ′1n∪Δ′n1) (3)
式中,Δ′1n=nonconf(Δ1,Δn),Δ′n1=nonconf(Δn,Δ1),Δ′1n表示集合Δ1与Δn中无冲突的操作集合,Δ′n1表示集合Δn与Δ1中无冲突的操作集合;运算符″+″表示将一系列操作集合应用于原始模型,即使用式(1)中的三元组Modeloperate对模型进行添加、删除与修改操作;
步骤2-2,将初步合并模型Modelin包含的操作序列集合Δstas和可用操作序列集合Δavail(该集合表示操作无冲突)均初始化为空集即
步骤2-3,判断不一致性列表S.incosistencies是否为空集,若否,则执行步骤2-4和步骤2-5,否则跳至步骤2-6;
步骤2-4,将S.incosistencies中的第一个冲突的操作序列集合删除,记为S.inconsistency:=S.inconsistencies.rernoveFirst(),并对列表中剩余的每一项操作序列集合l,检查是否满足l∈S.inconsistency,将不满足的l从列表中移除;
步骤2-5,对可用操作序列集合Δavail进行更新:
式中,locn(a)表示操作α的当前状态位信息,Δrepair表示在初步合并过程中获得的修复操作集合,ΔP为操作序列集合,包含当前操作与应用该操作的继承状态位,用来表示从初始状态S到继承状态S′的路径;
步骤2-6,针对可用操作序列集合中的每一个操作Δ′i,若Δ′i属于无冲突的集合,则对操作序列集合Δstas进行更新:
Δstas:=Δstas∪{(S′,Δ′i)},S′=S+Δ′i (5)
重复该步骤直至遍历完可用操作序列集合中的每一个操作;
步骤2-7,根据与对操作序列集合进行排序;其中属于不完全排序中的偏序,为强偏序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110424538.5/1.html,转载请声明来源钻瓜专利网。