CN107301040A - 一种基于子树分解的软件产品线产品派生方法 - Google Patents
一种基于子树分解的软件产品线产品派生方法 Download PDFInfo
- Publication number
- CN107301040A CN107301040A CN201710344221.4A CN201710344221A CN107301040A CN 107301040 A CN107301040 A CN 107301040A CN 201710344221 A CN201710344221 A CN 201710344221A CN 107301040 A CN107301040 A CN 107301040A
- Authority
- CN
- China
- Prior art keywords
- subtree
- product line
- characteristic model
- product
- root node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明提供了一种基于子树分解的软件产品线产品派生方法。所述基于子树分解的软件产品线产品派生方法包括如下步骤:从待进行产品派生的产品线提取得到特征模型;采用遗传算法对所述特征模型进行特征选择,形成新的解集;将步骤二得到的所有解集,按照特征模型变异对应的解释,转换为对应的产品配置,并交由产品线其他工序生成最终产品。本发明的有益效果:所述基于子树分解的软件产品线产品派生方法可以在遗传算法的框架下高效地对具体的软件产品线工程特征模型进行产品派生。
Description
技术领域
本发明属于计算机技术领域,具体地涉及一种基于子树分解的软件产品线产品派生方法。
背景技术
软件产品线是一组相关联的系列产品,也被称为产品家族。各软件产品拥有共同的核心资产,产品家族中产品成员之间的差异被称为可变性。通常使用特征模型来描述这样的一个产品集合,特征往往对应着系统的功能模块,组成构件等。而产品是由一组选定的特征构成,特征模型定义了特征与特征之间的约束关系,判定由特征生成产品的有效性。对于软件产品线而言,产品派生是指从其领域工程所得到的特征模型上选择合适的特征,然后由选择的特征构建软件产品的过程。如何复用核心资产并高效率的进行软件产品的派生是研究软件产品线的重要目的。目前主流算法是利用多目标优化算法来进行特征选择。
在具体应用领域,一个合法(没有约束违反情况)的产品才是能实际可行的方案。产品有效率将是软件产品线特征模型选择问题的一个很重要的评估指标。现有算法,例如Sayyad以及Henard等人的研究中,最终种群的有效个体比率(VR)指标则表现不佳。具体到问题本身,由于当前对特征模型进行基因编码时,当前算法大部分对特征模型进行直接编码,基因节点之间的相关性太高,交叉变异过程中难以保持子代的有效性,进而导致最终解集的产品有效率较低的情况出现。
发明内容
本发明的目的在于针对现有技术的缺陷,提供基于子树分解的软件产品线产品派生方法。
本发明的技术方案如下:一种基于子树分解的软件产品线产品派生方法,包括如下步骤:
a、从待进行产品派生的产品线提取得到特征模型;
b、采用遗传算法对所述特征模型进行特征选择,形成新的解集;
c、将步骤b得到的所有解集,按照特征模型变异对应的解释,转换为对应的产品配置,并交由产品线其他工序生成最终产品。
优选地,步骤a具体包括如下步骤:
a1、使用步骤XML格式从待进行产品派生的产品线提取得到特征模型;
a2、将得到的特征模型转化为CNF格式,便于调用步骤AT求解器以及约束违反项的计数。
优选地,在步骤b具体包括如下步骤:
b1、根据步骤a得到的特征模型获得所有特征树子树;
b2、随机选择所述特征模型中的一个特征树子树,并将所述特征树子树对应的基因位进行交叉操作;
b3、将交叉得到的个体进行单点变异操作,融合亲代个体与子代个体形成一个新种群,对所述新种群中的所有个体进行适应度计算,按照适应度大小排序从而得到新的解集。
优选地,在步骤b1中具体包括如下步骤:
b11、建立所述特征树子树的根节点集合,其中,所述根节点集合是特征树所有节点组成的集合;
b12、从跨子树约束集合中取出一条约束,对所述约束中的对应特征树上的两个节点求取最小公共祖先节点,并将所述两个节点到所述最小公共祖先节点路径上的所有节点从所述根节点集合中移除;
b13、不断重复步骤b12直到所述跨子树约束集合为空,则所述根节点集合中包含所有的特征树子树的根节点。
优选地,在步骤b2中具体包括如下步骤:
b21、从所述特征树子树的根节点集合中移除特征树的根节点;
b22、对所有特征树子树所含的节点数进行计数,按照轮盘选择算法选择待交叉的子树根节点,得到所有待交叉的基因位;
b23、判断亲代个体中待交叉的根节点对应的基因位是否均为TRUE,如果是,则进行交叉操作,如果否,则重复步骤b22得到新的待交叉基因位。
本发明提供的技术方案具有如下有益效果:
所述基于子树分解的软件产品线产品派生方法可以在遗传算法的框架下高效地对具体的软件产品线工程特征模型进行产品派生;而且,通过设计基于特征树子树的新交叉算子来改进迭代效果,可以根据实际表现显著地提高最终解集的有效产品率。
附图说明
图1是一个简单手机样例的特征树子树结构示意图;
图2是本发明实施例提供的基于子树分解的软件产品线产品派生方法的流程框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
需要说明的是,产品通常由一组选中的特征构成,特征则对应着具体系统的某项功能。特征模型(Feature Models)则可以被用来描述这样的整个产品家族。特征模型可以用来表达一个产品线上的所有可能产品,并且能够准确的表达各个特征之间的约束关系。一个特征模型可由一颗特征树来描述,由一系列特征以及之间的约束关系构成:
a)亲代特征及其子特征的约束关系;
b)跨子树约束,通常是依赖和互斥关系。
一个特征模型通常能转换成布尔析取范式(CNF)。字句代表了特征之间的约束关系,变量对应着特征,可以是选中的特征(fi)或是未选中的特征整个特征模型可以表示成为一个布尔约束关系:其中lj=fj或如参考图1所示的一个简单手机特征模型为例,产品派生即从图示9个节点中选择需要的节点在满足所有约束条件的情况下组成一个手机产品。
而且,一个产品配置由特征模型的组选中特征构成,可以表示为:C={l1,…,lm},其中lj=fj或fj表示产品配置中存在特征fj,表示产品配置中不存在特征fj。
例如,图1中的一个产品配置为这个配置对应的产品为没有键盘但具备触屏的手机,同时具备重力感应和距离感应两类传感器。由于并没有违反特征模型中的约束条件,这个产品是有效的;
但是,将违反了特征模型中约束关系的配置称为无效配置,例如则为一个无效产品配置,它违反了f6→f3的约束关系。
多目标优化通常用来研究在具体领域下多个目标同时最优化的问题。多目标优化问题可以由一组目标函数以及相关的约束条件组成。令X为产品线步骤PL的所有的可能配置空间,v=[F1(x),…,Fk(x)]T为k个目标函数的优化目标向量。为了使得k个目标函数同时最小,即找到一个配置项,使得目标向量v最小。
基于上述描述,本发明实施例提供的基于子树分解的软件产品线产品派生方法使用IBEA多目标遗传算法实现多目标优化的目的。
具体的,请参阅图2,本发明实施例提供的基于子树分解的软件产品线产品派生方法具体地包括如下步骤:
步骤1、从待进行产品派生的产品线提取得到特征模型。
具体的,在步骤1中,包括如下步骤:
步骤11、使用步骤XML格式从待进行产品派生的产品线提取得到特征模型;
步骤12、将得到的特征模型转化为CNF格式(布尔析取范式),便于调用步骤AT求解器以及约束违反项的计数。
步骤2、采用遗传算法对所述特征模型进行特征选择,形成新的解集。
具体的,在步骤2具体包括如下步骤:
步骤21、根据步骤1得到的特征模型获得所有特征树子树;
步骤22、随机选择所述特征模型中的一个特征树子树,并将所述特征树子树对应的基因位进行交叉操作;
步骤23、将交叉得到的个体进行单点变异操作,融合亲代个体与子代个体形成一个新种群,对所述新种群中的所有个体进行适应度计算,按照适应度大小排序从而得到新的解集。
具体的,在步骤21中具体包括如下步骤:
步骤211、建立所述特征树子树的根节点集合,其中,所述根节点集合是特征树所有节点组成的集合;
步骤212、从跨子树约束集合中取出一条约束,对所述约束中的对应特征树上的两个节点求取最小公共祖先节点,并将所述两个节点到所述最小公共祖先节点路径上的所有节点从所述根节点集合中移除;
步骤213、不断重复步骤212直到所述跨子树约束集合为空,则所述根节点集合中包含所有的特征树子树的根节点。
在步骤22中具体包括如下步骤:
步骤221、从所述特征树子树的根节点集合中移除特征树的根节点;
步骤222、对所有特征树子树所含的节点数进行计数,按照轮盘选择算法选择待交叉的子树根节点,得到所有待交叉的基因位;
步骤223、判断亲代个体中待交叉的根节点对应的基因位是否均为TRUE,如果是,则进行交叉操作,如果否,则重复步骤222得到新的待交叉基因位。
步骤3、将步骤2得到的所有解集,按照特征模型变异对应的解释,转换为对应的产品配置,并交由产品线其他工序生成最终产品。
例如,图1是一个简单手机样例的特征树子树,图中椭圆所围的节点构成所有的特征树子树,在进行交叉时,以特征节点“传感器”作为父节点的子树可以作为一颗特征树子树,设“传感器”、“重力感应”和“距离感应”在编码中分别编码为f4,f2,f9,则进行交叉操作时,亲代的个体的f4,f2,f9三个基因位将同时交换。
又例如,以图1为例,在步骤2中采用遗传算法对所述特征模型进行特征选择,形成新的解集的过程具体如下:
1)设定参数,本次示例中种群大小设为300,变异概率设为为染色体长度的倒数,即1/cLength,cLength为染色体中的基因个数;
2)对特征模型进行染色体编码,采用二进制编码,TURE表示选定,FALSE表示未选定,参考图1所示的模型编码如下:
3)初始化种群,采用随机初始化,即个体的染色体基因位随机选择0或者1;
4)判断是否达到给定的迭代代数,是则结束操作,选择种群中所有未违反约束条件的个体作为最终得到的产品配置。否则继续执行下一步操作;
5)采用锦标赛选择法,挑选出亲代个体进行交叉操作,交叉操作需要按照本发明设计的特征树子树交叉的方法,即随机选择特征模型中的一颗特征树子树,将特征树子树对应的基因块进行交叉;
6)对交叉得到的个体进行单点变异操作;
7)融合亲代个体与子代个体称为一个新种群,对新种群中的所有个体进行适应度计算,按照适应度大小排序,挑选出前300个个体保留,进行操作4)。
相较于现有技术,本发明具有如下有益效果:所述基于子树分解的软件产品线产品派生方法可以在遗传算法的框架下高效地对具体的软件产品线工程特征模型进行产品派生;而且,通过设计基于特征树子树的新交叉算子来改进迭代效果,可以根据实际表现显著地提高最终解集的有效产品率。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (5)
1.一种基于子树分解的软件产品线产品派生方法,其特征在于:包括如下步骤:
a、从待进行产品派生的产品线提取得到特征模型;
b、采用遗传算法对所述特征模型进行特征选择,形成新的解集;
c、将步骤b得到的所有解集,按照特征模型变异对应的解释,转换为对应的产品配置,并交由产品线其他工序生成最终产品。
2.根据权利要求1所述的基于子树分解的软件产品线产品派生方法,其特征在于:步骤a具体包括如下步骤:
a1、使用步骤XML格式从待进行产品派生的产品线提取得到特征模型;
a2、将得到的特征模型转化为CNF格式,便于调用步骤AT求解器以及约束违反项的计数。
3.根据权利要求1所述的基于子树分解的软件产品线产品派生方法,其特征在于:在步骤b具体包括如下步骤:
b1、根据步骤a得到的特征模型获得所有特征树子树;
b2、随机选择所述特征模型中的一个特征树子树,并将所述特征树子树对应的基因位进行交叉操作;
b3、将交叉得到的个体进行单点变异操作,融合亲代个体与子代个体形成一个新种群,对所述新种群中的所有个体进行适应度计算,按照适应度大小排序从而得到新的解集。
4.根据权利要求3所述的基于子树分解的软件产品线产品派生方法,其特征在于:在步骤b1中具体包括如下步骤:
b11、建立所述特征树子树的根节点集合,其中,所述根节点集合是特征树所有节点组成的集合;
b12、从跨子树约束集合中取出一条约束,对所述约束中的对应特征树上的两个节点求取最小公共祖先节点,并将所述两个节点到所述最小公共祖先节点路径上的所有节点从所述根节点集合中移除;
b13、不断重复步骤b12直到所述跨子树约束集合为空,则所述根节点集合中包含所有的特征树子树的根节点。
5.根据权利要求3所述的基于子树分解的软件产品线产品派生方法,其特征在于:在步骤b2中具体包括如下步骤:
b21、从所述特征树子树的根节点集合中移除特征树的根节点;
b22、对所有特征树子树所含的节点数进行计数,按照轮盘选择算法选择待交叉的子树根节点,得到所有待交叉的基因位;
b23、判断亲代个体中待交叉的根节点对应的基因位是否均为TRUE,如果是,则进行交叉操作,如果否,则重复步骤b22得到新的待交叉基因位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710344221.4A CN107301040B (zh) | 2017-05-16 | 2017-05-16 | 一种基于子树分解的软件产品线产品派生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710344221.4A CN107301040B (zh) | 2017-05-16 | 2017-05-16 | 一种基于子树分解的软件产品线产品派生方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107301040A true CN107301040A (zh) | 2017-10-27 |
CN107301040B CN107301040B (zh) | 2020-09-29 |
Family
ID=60138053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710344221.4A Active CN107301040B (zh) | 2017-05-16 | 2017-05-16 | 一种基于子树分解的软件产品线产品派生方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107301040B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919688A (zh) * | 2019-03-29 | 2019-06-21 | 杭州电子科技大学 | 一种考虑市场因素的电子烟产品线规划方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615438A (zh) * | 2015-02-13 | 2015-05-13 | 南京航空航天大学 | 一种软件产品线的特征切片模型检测方法 |
CN105740985A (zh) * | 2016-02-02 | 2016-07-06 | 南京航空航天大学 | 软件产品线特征选择优化方法 |
-
2017
- 2017-05-16 CN CN201710344221.4A patent/CN107301040B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615438A (zh) * | 2015-02-13 | 2015-05-13 | 南京航空航天大学 | 一种软件产品线的特征切片模型检测方法 |
CN105740985A (zh) * | 2016-02-02 | 2016-07-06 | 南京航空航天大学 | 软件产品线特征选择优化方法 |
Non-Patent Citations (5)
Title |
---|
MEZINI ETC.: "Variability management with feature-oriented programming and aspects", 《ACM SIGSOFT SOFTWARE ENGINEERING NOTESOCTOBER 2004 HTTPS://DOI.ORG/10.1145/1041685.1029915》 * |
刘玉梅: ""基于用户需求的特征模型配置分析与优化方法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
孙连山等: ""一种面向特征的软件产品线非功能需求建模方法"", 《计算机工程与科学》 * |
连小利等: ""面向软件产品线中特征选择的多目标优化算法"", 《软件学报》 * |
郭健美: ""基于共性与可变性分析的适应性软件复用与配置技术研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919688A (zh) * | 2019-03-29 | 2019-06-21 | 杭州电子科技大学 | 一种考虑市场因素的电子烟产品线规划方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107301040B (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Affenzeller et al. | Genetic algorithms and genetic programming: modern concepts and practical applications | |
CN103116639B (zh) | 基于用户-物品二分图模型的物品推荐方法及系统 | |
CN109685153B (zh) | 一种基于特征聚合的社交网络谣言鉴别方法 | |
Correa et al. | Visual reasoning about social networks using centrality sensitivity | |
Pagès | Links between root developmental traits and foraging performance | |
CN107784380A (zh) | 一种巡检最短路径的优化方法及优化系统 | |
CN104537303B (zh) | 一种钓鱼网站鉴别系统及鉴别方法 | |
CN107451894A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
Eno et al. | Generating synthetic data to match data mining patterns | |
CN104636978B (zh) | 一种基于多标签传播的重叠社区检测方法 | |
CN107256241A (zh) | 基于网格与差异替换改进多目标遗传算法的电影推荐方法 | |
CN109447698A (zh) | 一种基于神经网络的推荐算法 | |
CN108038575A (zh) | 基于改进型nsga ii的停车点位置规划方法 | |
CN106960017A (zh) | 电子书分类及其训练方法、装置和设备 | |
CN103559320B (zh) | 对异质网络中对象进行排序的方法 | |
Jin et al. | Toward understanding and evaluating structural node embeddings | |
CN103559318B (zh) | 对异质信息网络包含的对象进行排序的方法 | |
CN105930531A (zh) | 一种基于混合模型的农业领域本体知识云维度优选方法 | |
CN107301040A (zh) | 一种基于子树分解的软件产品线产品派生方法 | |
CN104133808B (zh) | 基于复杂对应系统的用户行为一致性度测量方法 | |
CN108171538A (zh) | 用户数据处理方法及系统 | |
CN109636057A (zh) | 基于改进人工免疫系统的链接预测方法及存储介质 | |
Huang et al. | Network-induced nonequilibrium phase transition in the “game of Life” | |
CN109919688A (zh) | 一种考虑市场因素的电子烟产品线规划方法 | |
CN104317913B (zh) | 属性组合的筛选方法和属性组合的筛选装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |