发明名称 一种通用的软件产品线领域模型与应用模型的同步方法
摘要 本发明属于软件开发技术领域,具体为一种通用的软件产品线领域模型与应用模型的同步方法。本发明预先将不同类型的领域模型与应用模型的表示及其同步操作进行抽象,前者归纳出一种通用的元模型,后者归纳出基于该元模型的一组针对模型变更的融合与传播规则。在通用元模型以及通用的同步规则基础上,本发明为软件产品线中不同类型的领域模型与应用模型提供一种通用的模型同步机制,该机制支持自动化的模型变更识别、融合与传播,同时在同步过程中为软件产品线的领域工程团队以及应用工程团队提供相应的同步操作选项。使用该方法,仅需编写特定类型模型与其通用表示形式之间的模型转换程序即可支持针对新引入的特定类型模型的演化同步。
申请公布号 CN103279347B 申请公布日期 2016.03.30
申请号 CN201310203589.0 申请日期 2013.05.28
申请人 复旦大学 发明人 沈立炜;丁宝宝;彭鑫;赵文耘
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;盛志范
主权项 一种通用的软件产品线领域模型与应用模型的同步方法,其特征在于具体步骤为:(1)编写特定类型模型与其对应的基于通用元模型的表示形式之间的模型转换程序,该转换程序使用ATL;这组程序支持双向转换,即可自动化地将特定类型的模型转换为基于通用元模型的模型,也可以将基于通用元模型的模型转换为特定类型的模型;(2)领域工程团队根据新需求或质量改进目标,修改特定类型的领域模型,以下简称为SDM;(3)应用工程团队对于应用系统的模型进行相对独立地演化,根据特定应用客户的需求对特定类型的应用模型进行修改,该特定类型的应用模型以下简称为SAM;(4)领域工程团队启动模型同步;通过预编写的ATL转换程序,将SDM转换为基于通用元模型的领域模型,以下简称为GDM;(5)自动识别并记录GDM于演化前后的差异性,作为本次演化的领域变更;(6)通过预编写的ATL转换程序,将SAM转换为基于通用元模型的应用模型,以下简称为GAM;(7)自动识别并记录每个GAM于演化前后的差异性,作为本次演化的应用变更;随后,集成所有GAM上的变更,形成应用变更集合;(8)组合领域变更与应用变更集合,形成总体变更集;使用融合规则,将总体变更集融合入原始的GDM;通过预编写的ATL转换程序,将GDM转换为同步后的SDM;(9)使用传播规则,将总体变更集传播至所有的GAM;通过预编写的ATL转换程序,将所有GAM转换为同步后的SAM;(10)重新进入步骤(2),继续进行软件产品线领域模型与应用模型的演化,以及后续的模型同步操作;其中,所述的通用元模型是针对不同类型的模型结构与可变性语义抽取获得的,在该通用元模型中,任何模型均是由一组实体组成的;可变性信息保存在实体的内部属性中;其中,可变性类型即必选、可选与作为多选一/多选多元素的变体通过variableType定义;具有多选一或多选多特性的模型元素及其可选择变体数目范围通过variableGroup和cardinality定义;模型元素之间的层次关联通过members与group指定;具有可变性的模型元素的绑定条件由selectCondition描述;所述的融合规则,其中每条规则包括三个组成部分:应用模型的变更类型;与变更元素对应的领域模型元素的可变性类型;针对领域模型的可选择的融合操作;具体为:(一)修改一个应用模型的元素且当与其对应的领域模型元素为必选元素时,针对领域模型具有两种可选择的融合操作:(1)修改领域模型中的对应元素;(2)创建多选一且必选的元素,原先的元素与修改的元素作为其变体;(二)修改一个应用模型的元素且当与其对应的领域模型元素为可选元素时,针对领域模型具有两种可选择的融合操作:(1)修改领域模型中的对应元素;(2)创建多选一且可选的元素,原先的元素与修改的元素作为其变体;(三)修改一个应用模型的元素且当与其对应的领域模型元素是一个具有多选一/多选多特性的模型元素的变体时,针对领域模型具有两种可选择的融合操作:(1)修改领域模型中的对应元素;(2)将修改的元素作为一个新的变体添加至具有多选一/多选多特性的模型元素的变体集合中;(四)删除一个应用模型的元素且当与其对应的领域模型元素为必选元素时,针对领域模型具有两种可选择的融合操作:(1)删除领域模型中的对应元素;(2)将领域模型中的对应元素转换为可选类型;(五)删除一个应用模型的元素且当与其对应的领域模型元素为可选元素时,不进行融合;(六)删除一个应用模型的元素且当与其对应的领域模型元素是一个具有多选一/多选多特性的模型元素的变体时,针对领域模型的融合操作是将领域模型中对应的具有多选一/多选多特性的必选模型元素转换为可选类型;(七)为应用模型增加一个元素且当与该元素关联的领域模型元素是一个具有多选多特性的模型元素时,针对领域模型的融合操作是将新增元素作为一个新变体添加至具有多选多特性的模型元素的变体集合中,并且更改具有多选多特性的模型元素的变体可选数量范围;(八)为应用模型增加一个元素且当与该元素关联的领域模型元素不具有可变性时,针对领域模型具有两种可选择的融合操作:(1)将新增元素作为必选元素添加至领域模型;(2)将新增元素作为可选元素添加至领域模型;所述的传播规则,其中每条规则包括三个组成部分:领域模型的变更类型;变更元素的可变性类型;针对应用模型的传播操作;具体为:(一)修改一个领域模型的元素且当该元素是必选时,针对应用模型的传播规则是修改应用模型中的对应元素;(二)修改一个领域模型的元素且当该元素是可选或是一个具有多选一/多选多特性的模型元素的变体时,针对应用模型的传播规则是在应用模型中重定制该模型元素;(三)删除一个领域模型的元素且当该元素是必选时,针对应用模型的传播规则是删除应用模型中的对应元素;(四)删除一个领域模型的元素且当该元素是可选时,针对应用模型的传播规则是:若应用模型中存在对应元素,则将其删除;(五)删除一个领域模型的元素且当该元素是一个具有多选一/多选多特性的模型元素的变体时,针对应用模型的传播规则是在应用模型中重定制该具有多选一/多选多特性的模型元素;(六)为领域模型增加一个元素且当该元素是必选时,针对应用模型的传播规则是在应用模型中增加新增元素;(七)为领域模型增加一个元素且当该元素是可选或是一个具有多选一/多选多特性的模型元素的变体时,针对应用模型的传播规则是在应用模型中重定制该模型元素或与其关联的具有多选一/多选多特性的模型元素。
地址 200433 上海市杨浦区邯郸路220号