|
|
|
题名
|
作者
|
年代
|
出处
|
被引量
|
| 1 | 基于复杂软件网络的回归测试用例优先级排序显示文摘测试用例优先级排序技术是一种高效实用的回归测试技术.针对现有排序方法未能有效利用软件结构复杂性信息的不足,提出了一种基于复杂软件网络的回归测试用例优先级排序方法.该方法用加权类依赖网络模型抽象类粒度软件系统,从结构角度测度类引入错误的可能性及错误的严重性,并据此评价类的测试重要性,同时结合测试用例的覆盖信息,对测试用例进行排序.实例研究表明,本文的方法能够显著提高严重错误的发现速率,并且具有较好的稳定性.同时,揭示了方法有效性与软件错误类型和结构度量指标两者间的关系. | 潘伟丰 李兵 马于涛 刘婧 | 2012 | 电子学报2012,40,12: | 10 |
| 2 | 基于多粒度软件网络模型的软件系统演化分析显示文摘软件系统是一类典型的人工参与的复杂系统,理解软件系统的演化规律有助于更好地指导软件工程实践.本文从包、类和特征三个粒度上构建软件系统的网络模型,利用复杂网络理论依次从网络规模、质量、结构控制三方面定量分析软件系统演化规律.以经典的Lehman演化定律为基准,对比软件系统在不同粒度下的演化差异.研究结果表明:(1)不同粒度下软件系统表现出的演化特性有所不同,其中在类粒度下效果更好;(2)持续增长、持续变化、自我调节和主体维持四项定律表现出与构建软件网络的粒度无关;(3)包粒度下系统演化对软件质量影响不大,而反馈系统定律仅在类粒度下成立. | 何鹏 王鹏 李兵 胡思文 | 2018 | 电子学报2018,46,2: | 10 |
| 3 | 基于加权PageRank算法的关键包识别方法显示文摘识别软件中的关键实体对于人们理解软件,控制和降低维护费用具有重要意义.然而现有的工作基本都是针对关键类识别的,针对关键包、方法/属性等的研究甚少;同时现有的工作也未能揭示关键类与软件外部质量属性间的关系.为丰富现有的工作,本文提出了一种基于加权PageRank算法的关键包识别方法.该方法用加权有向软件网络模型抽象包粒度软件系统,提出新度量PR(PackageRank)从结构角度量度节点重要性,并引入加权的PageRank算法计算该度量值.数据实验部分以六个开源Java软件为例,分析了包的PR值与常用复杂网络中心性指标(介数中心性、接近中心性、度数中心性等)间的相关性;使用加权的SIR(Susceptible-Infectious-Recovered)模型分析了PR所识别关键包的传播影响,并与其它相关方法进行比较,验证了本文方法的有效性;最后,以其中两个软件为例,分析了包的PR值与包可理解性间的关系,进一步验证了本文方法的有效性. | 潘伟丰 李兵 马于涛 姜波 | 2014 | 电子学报2014,42,11: | 8 |
| 4 | 基于软件网络错误传播分析的软件质量量度显示文摘基于软件网络错误传播的分析,提出一种量度软件质量的新方法。首先,将软件系统抽象成软件网络(方法调用网络),节点代表方法,有向边代表方法间的调用关系;然后,通过错误植入的方法(随机植入和受控植入),研究错误在方法调用网络中的传播过程,最终构建新度量SQC量度软件质量。真实软件系统的实例研究结果表明:SQC可以有效地量度软件的质量,并且与软件网络边数、结构熵等参数存在明显的负相关性,这对于指导高质量软件开发具有一定意义。 | 潘伟丰 李兵 | 2012 | 中南大学学报(自然科学版)2012,43,11: | 4 |
| 5 | 复杂网络上具有多感染阶段的传染病传播模型显示文摘针对传染病传播模型缺乏多感染阶段的不足,结合SIR和SEIR两种传播模型的特性,提出了一种改进的具有多感染阶段的SIR传染病传播模型(即SInR模型)。该模型充分考虑了不同感染阶段的非均匀感染力对不同网络结构上传染病传播及传播阈值的影响;同时引入相对感染力及传播时间尺度的概念,从网络结构、网络规模及相对感染力方面进行了仿真研究。仿真中无标度网络采用BA模型的生成算法,而小世界网络采用WS模型的生成算法。由仿真可知,感染节点在整个感染过程中大致服从泊松分布,因此在SInR模型下无标度网络的传播速度更快,范围更广;相对感染力对于传染病的大规模爆发存在着一个阈值,当感染力大于阈值时传染病才能大范围地爆发传播,而小于阈值时传染病只会局域小范围传播直至消失,无标度网络的感染力阈值为0.2,小世界网络的感染力阈值为0.24;随着网络规模的增大,传播时间尺度也在增大,相应的传播速度就会降低。仿真结果表明:该模型下无标度网络传染病传播速度更快且影响范围更大;无标度网络的相对传染力的传播阈值小于小世界网络,设置合理阈值有利于降低传染病的传播影响力。 | 廖列法 孟祥茂 | 2014 | 计算机应用2014,34,11: | 3 |
| 6 | 基于错误传播网络的回归测试用例排序方法显示文摘测试用例排序技术通过对测试用例进行排序以提高回归测试的效率.针对现有方法未能充分利用软件结构信息的不足,提出了基于错误传播网络的测试用例排序方法.该方法在类粒度将软件抽象成加权类依赖网络(weighted class dependency network,WCDN)模型,并基于WCDN分析错误在网络上的传播行为,构造错误传播网络(bug propagation network,BPN).测试用例排序时,首先在BPN中定位变更类和可能受变更类波及的类,从而计算类的测试重要性,最后以测试用例覆盖类的测试重要性总和作为最终的排序依据.实例研究表明,基于错误传播网络的测试用例排序方法在错误检出率上相比于其他经典方法有一定的提高,并且具有较好的稳定性. | 潘伟丰 李兵 周晓燕 何鹏 | 2016 | 计算机研究与发展2016,53,3: | 3 |
| 7 | 函数调用网络的结构属性及其静态鲁棒性显示文摘通过对开源软件tar和MySQL源码的分析,构建基于函数调用的有向软件网络模型,研究函数调用网络的度分布、聚类系数等多个结构属性。结果表明,多个主要软件模块的耦合才使得整个函数调用网络具有高聚类特性;节点的依赖度(影响度)与节点的出度(入度)存在正相关性;节点的依赖度与影响度具有负相关性。基于有向软件网络鲁棒性的弱连通和强连通指标,采用不同节点攻击策略验证函数调用网络的静态鲁棒性。研究结果表明,对于tar网络,高出度策略对网络的弱连通性具有最佳的攻击效果;对于MySQL网络,高入度策略对网络的弱连通性具有最佳的攻击效果。 | 王尔申 任虹帆 宏晨 孙庆华 刘畅 徐嵩 | 2021 | 北京航空航天大学学报2021,47,4: | 2 |
| 8 | 数据库复杂网络构造算法及特征分析显示文摘数据库复杂网络是对管理信息系统软件复杂性的一种度量,提供了一种精简的可视化业务逻辑描述,为软件增量设计提供了自说明文档。为抽取数据库复杂网络,提出了两种算法:(1)基于数据表主外键关联的网络构造算法;(2)基于隐性语义关联的构造算法及扩展算法。通过对9个软件数据库的分析,研究了该类网络的统计特性,发现其无标度特性入度分布比出度分布更不均匀,入度大的节点是系统的骨干节点。为精准构造直接辅助软件工程的数据库复杂网络,提出了针对语义隐性关联的一组命名规范。 | 李春芳 刘连忠 刘振国 | 2012 | 电子与信息学报2012,34,11: | 2 |
| 9 | 基于软件网络加权k-核分析的关键类识别方法显示文摘识别关键类可以帮助人们尽快理解不熟悉的软件系统.尽管目前已有一些关键类识别方面的工作,但是大部分方法构建的依赖图是无权的,未考虑类之间交互的种类及次数.有鉴于此,提出了一种基于软件网络加权k-核分析的关键类识别方法.首先,用加权类耦合网络抽象类(接口)、类(接口)间的交互及其次数;然后,引入加权k-核分解方法计算类的加权核数;最后,以加权核数作为类重要性的量度指标,降序排列所有类,并通过过滤得到候选关键类.真实软件上的数据实验验证了本文方法的有效性. | 潘伟丰 宋贝贝 胡博 李兵 姜波 | 2018 | 电子学报2018,46,5: | 1 |
| 10 | Density PSO-based software module clustering algorithm显示文摘Software module clustering is to divide the complex software system into many subsystems to enhance the intelligibility and maintainability of software systems. To increase convergence speed and optimize clustering solution,density PSO-based( DPSO) software module clustering algorithm is proposed. Firstly,the software system is converted into complex network diagram,and then the particle swarm optimization( PSO) algorithm is improved.The shortest path method is used to initialize the swarm,and the probability selection approach is used to update the particle positions. Furthermore,density-based modularization quality( DMQ) function is designed to evaluate the clustering quality. Five typical open source projects are selected as benchmark programs to verify the efficiency of the DPSO algorithm. Hill climbing( HC) algorithm,genetic algorithm( GA),PSO and DPSO algorithm are compared in the modularization quality( MQ) and DMQ. The experimental results show that the DPSO is more stable and more convergent than the other three traditional algorithms. The DMQ standard is more reasonable than MQ standard in guiding software module clustering. | Sun Jiaze Ling Beilei | 2018 | The Journal of China Universities of Posts and Telecommunications2018,25,4: | 1 |
| 11 | 面向群体协作开发的开源软件峭壁分析显示文摘开源软件项目因门槛低、自由度高,在开发过程中存在进度缓慢、效率低下和项目质量偏低等问题;同时,软件峭壁(Software Cliff Wall)作为一种判定项目鲁棒性的依据,表现为软件开发过程中在短时间内完成远超过常规增量开发的一种代码贡献行为,是软件演化过程中可持续发展的一种潜在威胁。为了深入研究开源项目的开发过程,更准确地刻画软件演化,从而提高软件开发效率,分析软件峭壁的成因是一种行之有效的方法。实验以GitHub上9个时间跨度至少有5年的开源软件项目为研究对象,分别以月份和季度为周期,基于150000多个commits上开发者的关注与评论信息构建开发者合作网络(Deve-loper Collaboration Networks,DCN),将代码行数超过1万行的单次commit视为软件峭壁,并从网络规模、网络结构、网络质量3个方面,利用节点数、连边数、节点更新率、模块度、平均路径长度、平均度、节点入度指数、节点出度均值、多样性这9个度量指标来分析软件开发过程中DCN与软件峭壁的关系。研究结果表明:1)当开发团队规模偏小,且成员更新幅度较大时,容易形成软件峭壁;2)保持开发者之间良好的“小世界”特性,有助于避免峭壁的产生;3)以季度为周期来分析软件开发过程中DCN与软件峭壁的关系更为合适,且开发团队成员的组织来源多样化也会在一定程度上促进软件峭壁的产生。 | 何鹏 喻绿君 | 2020 | 计算机科学2020,47,6: | 0 |
| 12 | 软件演化历史的逆向工程生成方法研究显示文摘为了更好地管理软件的演化,越来越多的软件演化管理模型被提出,然而现存的软件演化管理模型或版本管理系统中存储的软件大多是以文件或者项目为单位的,而这些模型中又缺乏软件体系结构及组成构件的演化历史信息,这就致使软件演化管理人员无法直观有效地了解以及管理软件体系结构及其构件的演化。为此,文中通过定义软件演化二叉树这一概念,表示一个软件及其组成构件的演化历史,并提出了一种基于软件体系结构逆向技术逆向出软件体系结构及其组成构件演化二叉树的方法,即利用软件源代码以及体系结构逆向技术逆向出软件系统的(原子)构件与软件体系结构(文中将软件体系结构看作一种特殊的复合构件),并度量相应的原子构件以及复合构件的多维属性,再利用这些属性通过提出的演化二叉树构造算法构造出软件的演化历史。最后设计了两组实验,用以分析演化二叉树构造的影响因素,分别利用Bunch以及ACDC体系结构逆向工具,在不同属性相似度阈值下生成演化二叉树和不同属性组合下生成演化二叉树。通过对8个开源软件(Cassandra,Hbase,Hive,OpenJpa,Zookeeper,RxJava,Groovy,Sqoop)的实验,可以发现属性相似度阈值以及构件属性对演化二叉树构造的影响,也可以看出逆向出的复合构件演化二叉树与真实的演化二叉树十分相似,并且可以得出使用体系结构逆向工具ACDC恢复演化二叉树的准确度更高。由此可见,提出的方法能够有效地逆向出这些开源软件及其组成构件的演化历史。 | 钟林辉 扶丽娟 叶海涛 齐杰 徐静 | 2020 | 计算机科学2020,47,S02: | 0 |
| 13 | 利用改进粒子群优化的软件模块划分算法显示文摘软件模块划分是软件工程领域一个重要并且非常复杂的问题,通过软件模块划分可以将规模庞大的复杂软件系统分解为易于理解和维护的子系统.针对现有软件模块划分算法收敛速度慢、划分效果不佳的问题,提出了一种基于复杂网络和群体智能算法的软件模块划分算法.首先对软件系统抽象形成复杂网络图,然后改进粒子群优化算法,使用最短路径初始化种群,使用概率选择的方式更新粒子位置,最后给出概率选择粒子群算法的全局收敛性证明.采用六个典型复杂软件项目实证结果表明,新算法稳定性更好,收敛速度更快,为软件模块划分问题提供了一个有效的工程化方法. | 孙家泽 令蓓蕾 | 2018 | 小型微型计算机系统2018,39,7: | 0 |