【技术实现步骤摘要】
面向协同建模的UML模型合并与一致性检测方法及系统
本专利技术属于软件工程中协同建模领域,特别涉及一种面向协同建模的UML模型合并与一致性检测方法及系统。
技术介绍
随着分布式软件协同开发和敏捷开发技术的快速发展,软件开发团队成员之间协作、通信和协调的方法变得越来越重要。尤其是近年发生的“新型冠状病毒”疫情,导致很多大企业只能进行远程办公,不同地点不同职位的工作人员,在互联网上通过协同进行工作,这种基于互联网的远程协同工作方式越来越受到人们的关注与重视。这要求在软件协同建模、协同研发与协同部署等领域对技术进行不断的探索。软件协同建模是指多主体借助网络技术,相互通信、共同协作来完成整个软件建模的过程。通过可视化的协同建模工具,不同研发人员可对其负责的部分模型进行建模和更新,并通过视图关联形成软件全局模型。近年来有不少学者对软件的协同建模进行了研究。如美国的NicolaescuP等人提出了一种协同建模方法,通过在一个接近实时的共享编辑环境中进行建模以缩小协同机制与概念模型的差距。匈牙利的DebreceniC等人提出了一种 ...
【技术保护点】
1.一种面向协同建模的UML模型合并与一致性检测方法,其特征在于,所述方法包括以下步骤:/n步骤1,根据协同建模中的一致性约束与合并规则,创建UML模型操作集合与相应的模型元素;/n步骤2,采用模型状态空间搜索方法,在搜索下一个状态时增量地生成状态空间,并通过状态转换进行模型版本的更新;/n步骤3,根据模型更新与一致性检测方法,对模型与文档的版本进行检测,若模型出现新版本则对模型进行更新,并对模型进行一致性检测。/n
【技术特征摘要】
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表示在初步合并过程中...
【专利技术属性】
技术研发人员:庄毅,许伟,叶彤,顾晶晶,
申请(专利权)人:南京航空航天大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。