[发明专利]一种软件开发过程模型差异检测方法有效
申请号: | 201810595370.2 | 申请日: | 2018-06-11 |
公开(公告)号: | CN108920360B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 曹斌;洪峰;范菁;侯晨煜 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
地址: | 310014 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 为了解决软件开发过程中的模型差异识别的技术问题,本发明提供了一种基于过程结构树的软件开发过程模型的差异检测方法,具体包括:首先计算过程循环复杂度,利用TPST模型,把过程扩展成一个树形结构。之后计算独立路径,取得任意两条独立路径之间的差别,利用KM算法进行优化匹配,最终得出两个过程模型之间的差别。 | ||
搜索关键词: | 一种 软件 开发 过程 模型 差异 检测 方法 | ||
【主权项】:
1.一种软件开发过程模型差异检测方法,包括下列步骤:步骤1.计算过程循环复杂度;所有模型以各自路径上第一个变迁的编号为标准,按字典序从小到大排列;通过这样的约束,一个并行结构转换为唯一的顺序结构;基于以上对于并行结构的策略,过程循环复杂度的计算公式:V(G)=E‑V+2‑(n‑m) (2)其中E是过程模型图中的连线数量,V是过程模型图中的节点数量,m是过程中并行结构的数量,n是并行结构中模型的总数;步骤2、构造过程结构树;基于任务的过程结构树TPST是基于过程结构树PST改进的一种半有序树;TPST中包含有序节点和无序节点;其中有序节点可以用来表示顺序结构、循环结构;无序节点可以用来表示选择结构XOR和并行结构AND;有序节点的子节点按照从左到右的顺序排列,而无序节点的子节点则没有顺序。步骤3.建立独立路径;所谓独立路径,就是过程中从开始节点到结束节点的一个可执行模型;每一个新的独立路径,都要求引入至少一个新的节点;对TPST采用宽度优先遍历方法;从树的根节点开始遍历,每次遍历完树的一层后,把得到的模型作为临时模型,继续遍历下一层时;遍历下一层时,将之前临时模型中的非变迁节点(如Sequence、XOR、AND、Loop)用它的子节点代替;共分为三种不同的情况:1)其中Sequence和Loop节点的情况比较简单,只需将它们的子节点要求按照从左到右的顺序排列并代替即可;2)对XOR节点,我们有已访问和未访问两种状态;最初所有XOR节点都是未访问的;当使用子节点对XOR节点进行代替时,分为两种情况:(1)XOR节点未访问:将它的两个子节点分别代替该XOR节点,并将XOR节点标记为已访问;这样就会将原来一个的临时模型变成两个;(2)XOR节点已访问:选择它的第一个子节点代替即可;3)AND节点的子节点直接代替,并做标记;在得到最终独立路径后,对标记的模型再按照字典序排列;这样一直按照宽度优先遍历,直到遍历完树的最后一层,就能把临时模型中的所有非变迁节点都用变迁节点代替;当一个模型中的节点都是变迁节点时,则把该模型作为一个独立路径;当得到的独立路径数量等于过程循环复杂度后,则终止搜索;计算得到每个业务过程的独立模型后,为了对两个业务过程的独立模型进行过程模型差异识别计算,定义两种类型的编辑操作:删除和插入。对于两个独立模型x和y,通过一系列删除和插入的组合,将x转化为y;两种操作的次数代表了x和y的差异,记为dist(x,y);最后通过公式计算两个独立模型的相似度;
删除:Delete(T,P),表示从独立路径P中删除节点T;插入:Insert(T,P,D),表示向独立路径P中的第D位置插入节点T;步骤4.过程模型差异检测;得到过程的独立路径后,通过对两个过程的独立路径进行差异识别来衡量两个过程之间的差别;定义了两种编辑操作,分别是删除节点和插入节点;这两种编辑操作能够对模型中任何位置的节点进行执行,所以进行差异识别时通过计算两个模型之间的最长公共子序列来作为两者之间的共同部分,模型中剩余节点作为两者之间的差别;最后利用公式(3)计算两个模型之间的相似度;对于两个过程的所有独立路径,计算两两之间的相似度,最后利用KM算法进行全局最优匹配,使得整体的相似度最高;KM算法的输入是两个过程之间两个独立路径的相似度,根据要求全局的相似度最高,得到最优的匹配结果;KM算法的输出是一个只有两列的二维数组,数组中每行的两列数据代表一个匹配;结果中一个过程的一个独立路径与另外一个过程的一个独立路径匹配;对于得到的匹配对(path1,path2),将path1通过编辑操作得到path2的操作序列则为最终的编辑序列;具体方法如下:在path1中去掉最长公共子序列的节点后,删除剩余节点;接着向path1中插入path2出去最长公共子序列部分的剩余节点,位置与在path2中的位置保持一致;另外对于两个过程的独立路径数量不同的情况,直接删除经过KM匹配剩余的独立路径。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810595370.2/,转载请声明来源钻瓜专利网。