CN106775915A - 一种软件体系结构的动态演化优化方法 - Google Patents

一种软件体系结构的动态演化优化方法 Download PDF

Info

Publication number
CN106775915A
CN106775915A CN201710070267.1A CN201710070267A CN106775915A CN 106775915 A CN106775915 A CN 106775915A CN 201710070267 A CN201710070267 A CN 201710070267A CN 106775915 A CN106775915 A CN 106775915A
Authority
CN
China
Prior art keywords
component
function
represent
software architecture
dynamic evolution
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
Application number
CN201710070267.1A
Other languages
English (en)
Other versions
CN106775915B (zh
Inventor
徐洪珍
付亮
章鹤松
刘自强
王强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Institute of Technology
Original Assignee
East China Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by East China Institute of Technology filed Critical East China Institute of Technology
Priority to CN201710070267.1A priority Critical patent/CN106775915B/zh
Publication of CN106775915A publication Critical patent/CN106775915A/zh
Application granted granted Critical
Publication of CN106775915B publication Critical patent/CN106775915B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种软件体系结构的动态演化优化方法,所述动态演化优化方法包括:原始软件体系结构进行动态演化编码,定义组成所述原始软件体系结构的原始构件为:Gi={ni,pi,fi,odi,idi,noi,Ii};对原始软件体系结构进行初始化,随机生成初始构件;构建适应度函数,计算各所述初始构件的适应度值;选出大于或等于设定阈值的适应度值对应的初始构件作为目标构件,并对小于设定阈值的适应度值对应的初始构件进行交叉操作和变异操作以更新初始构件;根据全部的目标构件生成目标软件体系结构。本发明通过选择操作从优化搜索的角度进行选择,使构件一代又一代地优化演化,并逼进最优构件,从而保证软件体系结构能够快速高效地完成全局择优演化。

Description

一种软件体系结构的动态演化优化方法
技术领域
本发明涉及计算机领域,特别是涉及一种软件体系结构的动态演化优化方法。
背景技术
随着计算机技术的不断发展,软件的用户需求、计算环境等也不断发生改变。当面对这些变化的需求和环境时,软件往往需要不断演化才能增强生命力,才能适者生存。软件演化描述了一个软件系统适应未来变化的能力,已经成为当前软件生命周期中的重要组成部分。软件演化可分为静态演化和动态演化,支持动态演化的软件能够在运行时改变系统的实现,包括对系统进行功能完善、扩充、改变体系结构等,而不需重启或重编译系统。由于具有持续可用等优点,软件动态演化已逐渐成为软件工程领域研究的热点。
现代软件的复杂性决定了软件构件群体数量较大,在进行软件体系结构动态演化时,传统优化算法是从单个初始值迭代求最优解,容易误入局部最优解,无法快速高效地完成全局择优。
发明内容
本发明的目的是提供一种软件体系结构的动态演化优化方法,所述动态演化优化方法能够快速高效地完成全局择优演化。
为实现上述目的,本发明提供了如下方案:
一种软件体系结构的动态演化优化方法,所述动态演化优化方法包括:
对原始软件体系结构进行动态演化编码,定义组成所述原始软件体系结构的原始构件为:
Gi={ni,pi,fi,odi,idi,noi,Ii},
其中,i表示构件序号,Gi表示第i个构件,ni、pi、fi、odi、idi、noi和Ii为第i个构件的编码分量,ni表示第i个构件对应的名称,pi表示第i个构件的参数,所述参数为所述第i个构件的内部元素,pi=(Ri1,Ri2,...,RiM),其中M为第i个构件的内部元素的个数,Rin为在第i个构件内,第n个内部元素所依赖的除第n个内部元素之外的内部元素的个数,fi表示第i个构件的功能数,odi表示第i个构件的出耦合度,idi表示第i个构件的入耦合度,noi表示第i个构件的失效次数,Ii表示第i个构件的接口数;
对所述原始软件体系结构进行初始化,随机生成各所述原始构件对应的初始构件;
构建适应度函数,计算各所述初始构件的适应度值;
比较各所述初始构件的适应度值与设定阈值的大小,从中选择出大于或等于设定阈值的适应度值对应的初始构件作为目标构件,并对小于设定阈值的适应度值对应的初始构件进行交叉操作和变异操作以更新初始构件;
根据全部的目标构件生成目标软件体系结构,所述目标软件体系结构的组成构件为各所述目标构件。
可选的,所述随机生成各所述原始构件对应的初始构件的方法为:采用下式计算各所述原始构件中的每个分量的初始值,
其中,||为取整函数,cij表示第i个构件第j个分量初始值,cijmax表示第i个构件第j个分量在取值范围内的最大值,cijmin表示第i个构件第j个分量在取值范围内的最小值,Xi表示第i个构件对应的随机数,所述随机数的取值区间为(0,1)。
可选的,所述适应度函数f(Q)为:
f(Q)=w1*f1(FC)+w2*f2(FD)+w3*f3(IC)
+w4*f4(CP)+w5*f5(CH)+w6*f6(EC)
其中,wi表示各质量指标的权值,f1(FC)为功能正确性函数,f2(FD)为功能独立性函数,f3(IC)为接口正确性函数,f4(CP)为构件耦合性函数,f5(CH)为构件内聚性函数,f6(EC)为演化兼容性函数。
可选的,所述功能正确性函数f1(FC)为:
f1(FC)=1-Fn/Fa
其中,Fn为在构件的功能中,检测出未实现或已实现但有缺陷的功能数,Fa为构件的功能总数;
所述功能独立性函数f2(FD)为:
f2(FD)=1-Fd/Fa
其中,Fd为构件中检测出依赖环境的功能数;
所述接口正确性函数f3(IC)为:
f3(IC)=1-In/Ia
其中,In为在构件的接口中,检测出未实现或已实现但有缺陷的接口数,Ia为构件的接口总数;
所述构件耦合性函数f4(CP)为:
f4(CP)=od/(od+id),
其中,od为构件的出耦合度,id为构件的入耦合度;
所述构件内聚性函数f5(CH)为:
其中,M为构件内部元素的个数,Rn为构件内第n个元素所依赖的同一构件内,除第n个内部元素之外的内部元素的个数;
所述演化兼容性函数f6(EC)为:
f6(EC)=1/(C+1),
其中,C为该软件构件的新版本替换旧版本时,发生失效的次数。
可选的,所述变异操作包括增加功能到所述构件,从所述构件中去除功能,从所述构件中修复功能,引进接口到所述构件,从所述构件中去除接口,从所述构件中修复接口,修改所述构件的出耦合度,修改所述构件的入耦合度,修改所述构件的参数,修改所述构件的失效次数中的至少一种。
可选的,所述交叉操作包括:以所述构件的至少一个所述编码分量为交叉点,交换构件的编码分量。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明将遗传算法中的选择操作、交叉操作和变异操作引入软件体系结构动态演化方法中,由于交叉操作和变异操作的迁移规则是随机的,保证了所述动态演化方法能够在全局范围内择优。同时,与一般的随机搜索方法所进行的无向搜索不同,通过选择操作可以从优化搜索的角度出发进行选择,使构件一代又一代地优化演化,并逼进最优构件,从而保证软件体系结构动态演化时,能够快速高效地完成全局择优。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1动态演化优化方法的流程图;
图2为本发明实施例1交叉操作前的构件编码图;
图3为本发明实施例1交叉操作后的构件编码图;
图4为本发明实施例2智能家居系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种软件体系结构的动态演化优化方法,以快速高效地完成全局择优演化。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:如图1所示,软件体系结构的动态演化优化方法包括以下步骤:
步骤100:将软件体系结构对应到染色体,软件体系结构的组成构件对应到染色体的基因,对原始软件体系结构进行动态演化编码,所述原始软件体系结构的组成构件为各原始构件;
步骤101:对原始软件体系结构进行初始化,随机生成各原始构件对应的初始构件;
步骤102:构建适应度函数,计算各所述初始构件的适应度值;
步骤103:判断是否满足条件:所述初始构件的适应度值大于或等于设定阈值,所述设定阈值是事先设定的;
步骤104:若否,对小于设定阈值的适应度值对应的初始构件进行交叉操作和变异操作,执行步骤102;
步骤105:若是,选择出大于或等于设定阈值的适应度值对应的初始构件作为目标构件;
步骤106:判断是否选出所有目标构件,若否,执行步骤102;
步骤107:若是,根据全部的目标构件生成目标软件体系结构,所述目标软件体系结构的组成构件为各所述目标构件。
具体地,步骤100中对原始软件体系结构进行动态演化编码的方法为:
如表1所示为一个具有q个构件的原始软件体系结构的编码,将软件体系结构对应到染色体,软件体系结构的组成构件对应到染色体的基因,一个构件定义为:
Gi={ni,pi,fi,odi,idi,noi,Ii} (1)
其中,i表示构件序号,Gi表示第i个构件,ni、pi、fi、odi、idi、noi和Ii为第i个构件的编码分量,ni表示第i个构件对应的名称,pi表示第i个构件的参数,所述参数为所述第i个构件的内部元素,pi=(Ri1,Ri2,...,RiM),其中M为第i个构件的内部元素的个数,Rin为在第i个构件内,第n个内部元素所依赖的除第n个内部元素之外的内部元素的个数,fi表示第i个构件的功能数,odi表示第i个构件的出耦合度,idi表示第i个构件的入耦合度,noi表示第i个构件的失效次数,Ii表示第i个构件的接口数;
表1软件体系结构的编码
具体地,步骤101:对所述原始软件体系结构进行初始化,随机生成各所述原始构件对应的初始构件的方法为:
由于软件体系结构是由构件组成的,因此如果生成的构件可以分布在整个搜索空间,那么就能在一定程度上保证软件体系结构的多样性。因此,软件体系结构的初始化过程可以随机生成每个构件,构件中的每个分量采用公式(2)计算:
cij=|(cijmax-cijmin)×Xi+cijmin| (2),
其中,||为取整函数,cij表示第i个构件第j个分量初始化后的取值,cijmax表示第i个构件第j个分量在取值范围内的最大值,cijmin表示第i个构件第j个分量在取值范围内的最小值,Xi表示第i个构件对应的随机数,所述随机数的取值区间为(0,1),其值在初始化时给定。
具体地,步骤102:构建适应度函数,计算各构件的适应度值的方法为:
为了测量一个构件的质量以获得整个软件系统的质量,这里根据《软件构件产品质量》标准,定义了6个质量指标,具体定义如下:
(1)功能正确性(FC)。该指标被用来描述功能符合用户需求规格说明的程度,其计算方法如下:
f1(FC)=1-Fn/Fa (3)
其中,Fn为在构件的功能中,检测出未实现或已实现但有缺陷的功能数,Fa为构件的功能总数,0≤f1(FC)≤1,且越接近1,说明构件中符合用户需求的功能数越多。
(2)功能独立性(FD)。该指标被用来描述构件在功能上不依赖于其他环境的程度,其计算方法如下:
f2(FD)=1-Fd/Fa (4)
其中,Fd为构件中,检测出依赖环境的功能数,Fa为构件的功能总数,0≤f2(FD)≤1,且越接近1,说明构件在功能上对环境的依赖越少。
(3)接口正确性(IC)。该指标被用来描述接口符合用户需求规格说明的程度,其计算方法如下:
f3(IC)=1-In/Ia (5)
其中,In为在构件的接口中,检测出未实现或已实现但有缺陷的接口数,Ia为构件的接口总数,0≤f3(IC)≤1,且越接近1,说明构件中符合用户需求的接口数越多。
(4)构件耦合性(CP)。该指标被用来描述构件对其他构件的依赖程度,其计算方法如下:
f4(CP)=od/(od+id) (6)
其中,od为构件的出耦合度,即被该构件影响的构件数,id为构件的入耦合度,即影响该构件的构件数,0≤f4(CP)≤1,且越接近1,说明构件对其他构件的依赖性越强。
(5)构件内聚性(CH)。该指标被用来描述构件内部元素的联系程度,其计算方法如下:
其中,M为构件内部元素的个数,Rn为构件内第n个元素所依赖的同一构件内,除第n个内部元素之外的内部元素的个数,0≤f5(CH)≤1,且越接近1,说明构件的内聚度越高。
(6)演化兼容性(EC)。该指标被用来描述新版本软件构件替换旧软件构件时,前者对后者的兼容性,其计算方法如下:
f6(EC)=1/(C+1) (8)
其中,C为该软件构件的新版本替换旧版本时,发生失效的次数,0≤f6(EC)≤1,且越接近1,说明构件演化兼容性越好。
综合以上所有的构件质量指标,构件的适应度函数定义为:
其中,wi(i=1,……,6)分别为上述6个质量指标的权值且ω123456=1,本实施例中设定w1=0.2,w2=0.15,w3=0.2,w4=0.15,w5=0.15,w6=0.15,但并不以此为限。
具体地,通过步骤103和步骤105对各构件进行选择操作。
选择操作的目的是为了对构件进行择优筛选,通过选择操作选出适应度值大于或等于设定阈值的构件作为目标构件,所述目标构件作为最优构件组成最优软件体系结构,即目标软件体系结构。
具体地,步骤104中的变异操作是指对软件体系结构中的一个现有构件进行某些改变操作,从而形成一个新的构件,以达到增加或改变特性的目的。本实施例定义的变异操作如下:
增加一个功能Fk到构件Gi
从构件Gi中去除功能Fi
修复构件Gi中有缺陷的功能Fj
引进一个接口Ik到构件Gi
从构件Gi中去除接口Ii
修复构件Gi中有缺陷的接口Ij
修改构件Gi的出耦合度;
修改构件Gi的入耦合度;
修改构件Gi的参数;
修改构件Gi的失效次数。
步骤104中的交叉操作是通过交换构件中的某些编码分量来实现的,交叉操作的目的是为了结合两个构件中的最优特性。例如,假设交叉操作前构件G1和G2的编码如图2所示,以构件的功能数以及构件的接口数为交叉点,则交叉操作后得到的构件分别为G1′和G2′,经过交叉操作后构件G1′和G2′的编码如图3所示。
软件体系结构演化的遗传操作包括选择操作、变异操作和交叉操作。本实施例设定的构件演化终止条件为:当各最优构件的适应度值均达到给定的阈值时,遗传算法终止。
实施例2:如图4所示,一个智能家居系统1包括五个子系统,分别是烟雾检测11,温度调节12,燃气检测13,自动窗帘14和湿度调节15,每个子系统包括三个功能性构件和一个数据构件,其中,功能性构件用Cf(i)表示,数据构件用Cd(i)表示。该系统是为了及时地、准确地对安防事件进行报警和处理,以保证系统的稳定性、可靠性和实时性。该系统共包含了15个功能性构件Cf(i)和5个数据构件Cd(j),其中i∈(0,15],j∈(0,5],它们的具体参数数据如下表2和表3所示:
表2初始软件体系结构的功能性构件质量指标
表3初始软件体系结构的数据构件质量指标
假设这些子系统之间是相互独立的,则每个子系统分别对应一个子软件体系结构。由于该系统包括五个相对独立的子系统模块,因此每个子系统的处理过程都是类似的,下面以烟雾检测子系统为例进行分析。
烟雾检测11子系统包括视频采集111构件(用Cf(vc)表示),烟雾颜色检测112构件(用Cf(scd)表示),烟雾识别模块113构件(用Cf(sim)表示)和烟雾的模糊度计算114构件(用Cd(soc)表示)。即该子系统包括3个功能性构件Cf(vc),Cf(scd),Cf(sim)和1个数据构件Cd(soc)。下面进行软件体系结构的动态演化,具体步骤如下:
1)将软件体系结构对应到染色体,软件体系结构的组成构件对应到染色体的基因,对烟雾检测子系统的构件进行编码,如表4所示为组成烟雾检测子系统的构件编码。
表4烟雾检测子系统的编码
2)软件体系结构初始化:对软件体系结构的各个构件进行初始化,生成初始构件。例如,初始化后的视频采集构件的Cf1(vc)初始构件如表5所示。
表5初始化后的视频采集构件Cf1(vc)
3)利用适应度函数f(Q)计算各初始构件的适应度值。根据表2和表3中的参数,以及公式(3)-(8)计算6个质量指标的取值,然后根据公式(9)进行加权求和得到各个构件的适应度函数值。例如,视频采集构件Cf1(vc)的适应度函数值的具体计算过程如下:
步骤1:根据(3)-(8)计算6个质量指标的取值:
f1(FC)=1-Fn/Fa=1-2/5=0.6 (10)
f2(FD)=1-Fd/Fa=1-1/5=0.8 (11)
f3(IC)=1-In/Ia=1-1/5=0.8 (12)
f4(CP)=od/(od+id)=2/(1+2)=2/3 (13)
f6(EC)=1/(C+1)=1/(2+1)=1/3 (15)
步骤2:根据公式(9)计算构件的适应度值:
f(Q)=0.2*f1(FC)+0.15*f2(FD)+0.2*f3(IC)+0.15*f4(CP)+0.15*f5(CH)+0.15*f6(EC)
=0.2*0.6+0.15*0.8+0.2*0.8+0.15*2/3+0.15*0.25+0.15*1/3
=0.625
(16)
采用同样的计算方法分别计算出烟雾颜色检测构件Cf1(scd),烟雾识别模块构件Cf1(sim)和烟雾的模糊度计算构件Cd1(soc)的适应度值。
4)对上述各构件进行选择操作,选出适应度值大于或等于设定阈值的构件作为目标构件,用于生成目标软件体系结构。
5)对适应度值小于设定阈值的构件进行变异操作和交叉操作:
对于不同的质量指标权值及设定阈值,经过选择操作后剩余的不满足要求的构件可能不同,针对烟雾检测子系统中的不满足要求的构件可随机进行不同的变异操作,如增加功能到视频采集构件Cf(vc),从视频采集构件Cf(vc)中去除功能,从视频采集构件Cf(vc)中修复功能,引进接口到烟雾颜色检测构件Cf(scd),从烟雾颜色检测构件Cf(scd)中去除接口,从烟雾颜色检测构件Cf(scd)中修复接口,修改烟雾识别模块构件Cf(sim)的出耦合度,修改烟雾识别模块构件Cf(sim)的入耦合度,修改烟雾识别模块构件Cf(sim)的参数,修改烟雾模糊度计算构件Cd(soc)的失效次数。
对变异操作后产生的新的构件进行交叉操作,可随机选择构件的编码分量作为交叉点,交换构件的编码分量。然后通过适应度函数的公式重新计算新的构件的适应度值,重新进行选择操作选出适应度值大于或等于给定设定阈值的构件作为目标构件。当目标软件体系结构的所有构件的适应度值均达到给定的设定阈值时,遗传算法终止。最终使得烟雾检测子系统的四个构件均满足设定要求,以保证烟雾检测子系统能够标示出烟雾发生的区域,触发报警,从而预防火灾的发生或减轻火灾的危害。
本发明通过变异操作和交叉操作,从优化搜索的角度出发,对不符合要求的构件进行高效有向的演化,可使构件一代又一代地优化,并逼进最优构件,从而保证软件体系结构动态演化时,能够快速高效地完成全局择优。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种软件体系结构的动态演化优化方法,其特征在于,所述动态演化优化方法包括:
对原始软件体系结构进行动态演化编码,定义组成所述原始软件体系结构的原始构件为:
Gi={ni,pi,fi,odi,idi,noi,Ii},
其中,i表示构件序号,Gi表示第i个构件,ni、pi、fi、odi、idi、noi和Ii为第i个构件的编码分量,ni表示第i个构件对应的名称,pi表示第i个构件的参数,所述参数为所述第i个构件的内部元素,pi=(Ri1,Ri2,...,RiM),其中M为第i个构件的内部元素的个数,Rin为在第i个构件内,第n个内部元素所依赖的除第n个内部元素之外的内部元素的个数,fi表示第i个构件的功能数,odi表示第i个构件的出耦合度,idi表示第i个构件的入耦合度,noi表示第i个构件的失效次数,Ii表示第i个构件的接口数;
对所述原始软件体系结构进行初始化,随机生成各所述原始构件对应的初始构件;
构建适应度函数,计算各所述初始构件的适应度值;
比较各所述初始构件的适应度值与设定阈值的大小,从中选择出大于或等于设定阈值的适应度值对应的初始构件作为目标构件,并对小于设定阈值的适应度值对应的初始构件进行交叉操作和变异操作以更新初始构件;
根据全部的目标构件生成目标软件体系结构,所述目标软件体系结构的组成构件为各所述目标构件。
2.根据权利要求1所述的软件体系结构的动态演化优化方法,其特征在于,所述随机生成各所述原始构件对应的初始构件的方法为:采用下式计算各所述原始构件中的每个分量的初始值,
cij=|(cijmax-cijmin)×Xi+cijmin|,
其中,| |为取整函数,cij表示第i个构件第j个分量初始值,cijmax表示第i个构件第j个分量在取值范围内的最大值,cijmin表示第i个构件第j个分量在取值范围内的最小值,Xi表示第i个构件对应的随机数,所述随机数的取值区间为(0,1)。
3.根据权利要求1所述的软件体系结构的动态演化优化方法,其特征在于,所述适应度函数f(Q)为:
f(Q)=w1*f1(FC)+w2*f2(FD)+w3*f3(IC)
+w4*f4(CP)+w5*f5(CH)+w6*f6(EC)
其中,wi表示各质量指标的权值,f1(FC)为功能正确性函数,f2(FD)为功能独立性函数,f3(IC)为接口正确性函数,f4(CP)为构件耦合性函数,f5(CH)为构件内聚性函数,f6(EC)为演化兼容性函数。
4.根据权利要求3所述的软件体系结构的动态演化优化方法,其特征在于,
所述功能正确性函数f1(FC)为:
f1(FC)=1-Fn/Fa
其中,Fn为在构件的功能中,检测出未实现或已实现但有缺陷的功能数,Fa为构件的功能总数;
所述功能独立性函数f2(FD)为:
f2(FD)=1-Fd/Fa
其中,Fd为构件中检测出依赖环境的功能数;
所述接口正确性函数f3(IC)为:
f3(IC)=1-In/Ia
其中,In为在构件的接口中,检测出未实现或已实现但有缺陷的接口数,Ia为构件的接口总数;
所述构件耦合性函数f4(CP)为:
f4(CP)=od/(od+id),
其中,od为构件的出耦合度,id为构件的入耦合度;
所述构件内聚性函数f5(CH)为:
f 5 ( C H ) = 1 M = 1 Σ n = 1 M R n M × ( M - 1 ) M > 1 ,
其中,M为构件内部元素的个数,Rn为构件内第n个元素所依赖的同一构件内,除第n个内部元素之外的内部元素的个数;
所述演化兼容性函数f6(EC)为:
f6(EC)=1/(C+1),
其中,C为该软件构件的新版本替换旧版本时,发生失效的次数。
5.根据权利要求1所述的软件体系结构的动态演化优化方法,其特征在于,所述变异操作包括增加功能到所述构件,从所述构件中去除功能,从所述构件中修复功能,引进接口到所述构件,从所述构件中去除接口,从所述构件中修复接口,修改所述构件的出耦合度,修改所述构件的入耦合度,修改所述构件的参数,修改所述构件的失效次数中的至少一种。
6.根据权利要求1所述的软件体系结构的动态演化优化方法,其特征在于,所述交叉操作包括:以所述构件的至少一个所述编码分量为交叉点,交换构件的编码分量。
CN201710070267.1A 2017-02-09 2017-02-09 一种软件体系结构的动态演化优化方法 Expired - Fee Related CN106775915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710070267.1A CN106775915B (zh) 2017-02-09 2017-02-09 一种软件体系结构的动态演化优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710070267.1A CN106775915B (zh) 2017-02-09 2017-02-09 一种软件体系结构的动态演化优化方法

Publications (2)

Publication Number Publication Date
CN106775915A true CN106775915A (zh) 2017-05-31
CN106775915B CN106775915B (zh) 2019-08-20

Family

ID=58956743

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710070267.1A Expired - Fee Related CN106775915B (zh) 2017-02-09 2017-02-09 一种软件体系结构的动态演化优化方法

Country Status (1)

Country Link
CN (1) CN106775915B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153431A (zh) * 2021-11-15 2022-03-08 西安电子科技大学 基于群体智能的大规模网络化软件自优化装置及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963940A (zh) * 2010-10-26 2011-02-02 合肥工业大学 面向软件演化的可信性动态评估方法
US20110231817A1 (en) * 2010-03-17 2011-09-22 Computer Associates Think, Inc. System and method for evaluating and selecting software components and services
CN102831063A (zh) * 2012-09-03 2012-12-19 东华理工大学 一种软件体系结构并行演化冲突的检测方法
CN102830976A (zh) * 2012-08-21 2012-12-19 东华理工大学 一种基于关联矩阵的软件体系结构动态演化方法
CN103279364A (zh) * 2013-06-19 2013-09-04 东华理工大学 一种分层软件体系结构的动态演化方法
CN105893257A (zh) * 2016-03-30 2016-08-24 东南大学 一种基于演化的软件架构评估方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110231817A1 (en) * 2010-03-17 2011-09-22 Computer Associates Think, Inc. System and method for evaluating and selecting software components and services
CN101963940A (zh) * 2010-10-26 2011-02-02 合肥工业大学 面向软件演化的可信性动态评估方法
CN102830976A (zh) * 2012-08-21 2012-12-19 东华理工大学 一种基于关联矩阵的软件体系结构动态演化方法
CN102831063A (zh) * 2012-09-03 2012-12-19 东华理工大学 一种软件体系结构并行演化冲突的检测方法
CN103279364A (zh) * 2013-06-19 2013-09-04 东华理工大学 一种分层软件体系结构的动态演化方法
CN105893257A (zh) * 2016-03-30 2016-08-24 东南大学 一种基于演化的软件架构评估方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
唐运璇: ""基于构件的软件系统动态演化研究"", 《信息与电脑》 *
杨春河,晏海华,金茂忠,高仲仪: ""软件构件质量度量"", 《计算机工程与设计》 *
林英,李彤,张雁: ""构件演化度量方法研究"", 《计算机应用与软件》 *
谷红星: "面向领域的软件构件演化度量研究", 《硕士》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153431A (zh) * 2021-11-15 2022-03-08 西安电子科技大学 基于群体智能的大规模网络化软件自优化装置及方法
CN114153431B (zh) * 2021-11-15 2024-04-30 西安电子科技大学 基于群体智能的大规模网络化软件自优化装置及方法

Also Published As

Publication number Publication date
CN106775915B (zh) 2019-08-20

Similar Documents

Publication Publication Date Title
CN105930277B (zh) 一种基于缺陷报告分析的缺陷源代码定位方法
CN101478534B (zh) 一种基于人工免疫原理的网络异常检测方法
CN106779441B (zh) 一种预测变更风险方法和装置
CN107544904A (zh) 一种基于深度cg‑lstm神经网络的软件可靠性预测模型
WO2003012738A1 (fr) Procede, dispositif et programme permettant de determiner un parametre d'adaptation optimal
CN107909194B (zh) 系统级测试性设计多目标优化方法
CN104539601B (zh) 动态网络攻击过程可靠性分析方法及系统
CN107169557A (zh) 一种对布谷鸟优化算法进行改进的方法
CN106202665A (zh) 基于域映射与加权关联规则的早期故障根原因识别方法
CN105550747A (zh) 一种新型卷积神经网络的样本训练方法
CN115019510A (zh) 一种基于动态自适应生成对抗网络的交通数据修复方法
CN113554213A (zh) 一种天然气需求预测方法、系统、存储介质及设备
CN112883632A (zh) 一种基于改进蚁群算法的锂电池等效电路模型参数辨识方法
CN103885867A (zh) 一种模拟电路性能的在线评价方法
CN108768750A (zh) 通信网络故障定位方法及装置
CN108647772A (zh) 一种用于边坡监测数据粗差剔除的方法
CN109961129A (zh) 一种基于改进粒子群的海上静止目标搜寻方案生成方法
CN114064459A (zh) 基于生成对抗网络和集成学习的软件缺陷预测方法
CN106775915A (zh) 一种软件体系结构的动态演化优化方法
Garg et al. Modeling of multiple valued gene regulatory networks
Cao et al. A grey wolf optimizer–cellular automata integrated model for urban growth simulation and optimization
CN109656904A (zh) 一种案件风险检测方法及系统
CN110231593A (zh) 室内定位方法、装置、计算机可读存储介质及终端设备
CN108665002A (zh) 一种二分类任务标签噪声容忍分类器学习方法
Ping et al. A mixed isomorphism approach for kinematic structure enumeration graphs based on intelligent design and manufacturing

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190820

Termination date: 20210209

CF01 Termination of patent right due to non-payment of annual fee