首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 140 毫秒
1.
软件库调用规约挖掘   总被引:1,自引:1,他引:0  
钟浩  张路  梅宏 《软件学报》2011,22(3):408-416
软件库调用规约是一种描述软件库提供函数正确调用顺序的规约.客户代码应按此规约描述的内容调用函数,否则可能引入缺陷,从而降低软件的可信性.由于能够描述可信软件应该满足的性质,软件库调用规约在可信软件、模型检测等研究中扮演特殊的角色.但是,受制于编写规约的巨大代价,软件库通常并不提供已编写好的调用规约.为此,研究者提出了各种自动挖掘此种规约的方法.阐述了其中代表性的方法及其最新的研究进展,并在此基础上探讨了将来的研究方向.  相似文献   

2.
蒋竞  吴秋迪  张莉 《软件学报》2021,32(12):3698-3709
在开源社区中,不同开发人员提交的代码水平参差不齐,需要代码评审检查提交代码质量.决策者是代码评审的关键人物,审核提交代码,发现软件缺陷.代码评审情况会对开源软件质量产生影响,因此需要建立评审过程度量体系,了解代码评审情况,促进提高开源软件项目质量.现有的软件过程度量方法主要考虑提交代码和评审评论活动,缺乏考虑决策活动,难以充分度量人员的评审行为.引入决策者因素,提出了一个开源社区评审过程度量体系,包括评审活动指标和人员分布指标.评审活动指标包含评审次数、评审信息长度、评审代码改动行数以及评审时间.人员分布指标主要考虑改动者、评论者和决策者的比例和数量.然后,收集了3个热门开源项目数据,分析评审过程度量指标与软件缺陷数量的关系.通过实证研究分析发现:决策者数量,少改动、少评论、少决策者的比例等决策者相关指标和软件缺陷数量中等正相关.同时,与不考虑决策者的度量体系进行对比分析,发现含有决策者的度量体系与软件缺陷的相关性更高.实证研究结果验证了评审过程度量体系的有效性,说明增加决策者相关指标的必要性.  相似文献   

3.
随着软件的演化,软件规模和复杂性的上升往往会造成代码设计质量的退化,进而导致代码可维护性下降。已有大量软件度量指标用于量化代码设计质量,但是由于数量众多,不同指标体系度量结果可比性较差,使得开发人员难以找到存在设计质量问题的模块。系统调研并整理归类了现有的规模、耦合、内聚、封装、继承和多态等6方面软件度量指标。结合度量指标关系以及实验分析,从每个方面的指标集中发现了与代码设计质量关联度最高的6个指标,从而提出一种面向代码设计质量监控的软件度量指标集。实验表明,该指标集可以有效挑选出存在代码设计质量问题的类,可作为开发人员监控和定位代码设计问题的重点关注指标。  相似文献   

4.
由于混源软件包含自主代码、开源代码等不同来源代码,从而具有更高的多样性和复杂性,对其质量的度量评估与传统软件存在极大区别。为了度量混源软件质量,建立混源软件质量度量模型和方法是非常必要的。通过分析混源软件质量特性,提出混源软件质量模型。然后利用层次分析法、幂性法及线性法构建度量方法体系。最后对UbuntuKylin操作系统进行了实验性的度量评估,验证了模型与方法的可行性和有效性。  相似文献   

5.
软件项目由于其产品的智力密集性和项目的复杂性,在开发过程中,进行风险分析时不同于一般项目有很多客观的指标可供参考,更多地是借助于专家的意见,从而使得专家意见的综合成为软件项目风险分析中一个急需解决的问题。给出了一个基于证据理论的软件项目风险分析模型,通过引入模糊评语集及该集合上的模糊效用值,使用Dempster规则更好地融合各个专家的意见,从而得出了更加合理的风险概率和风险损失评价值。该方法强调了关键专家意见在决策中的重要性,较好地解决了分析结果过于依赖专家选择的问题,从而减少了风险因素量化的复杂性,为风险控制策略的制定提供了依据。并通过算例加以验证。  相似文献   

6.
研究软件项目风险评估准确性问题,软件项目具有复杂性,软件风险因子具有不确定性和非线性,采用传统数学方法无法建立准确软件项目风险评估模型,同时由于受到人为的主观因素的影响,导致软件项目风险评估准确率比较低.为了提高软件项目风险评估准确率,提出一种RBF神经网络的软件项目风险评估模型.模型首先采用专家系统构建软件项目风险评估的指标集,再用德尔菲法对评估指标打分,最后将指标得分和风险等级分别作为RBF神经网络输入和输出,通RBF神经网络的智能学习得到最优软件项目风险评估模型.在MATLAB平台对软件项目评估数据集进行仿真,结果表明,RBF神经网络模型克服了传统数学评估模型的缺陷,提高了软件项目风险评估的准确率,降低软件项目风险评估误差,提供了一种软件项目风险评估的依据.  相似文献   

7.
开源代码托管平台为软件开发行业带来了活力和机遇,但存在诸多安全隐患.开源代码的不规范性、项目依赖库的复杂性、漏洞披露平台收集漏洞的被动性等问题都影响着开源项目及引入开源组件的闭源项目的 安全,大部分漏洞修复行为无法及时被察觉和识别,进而将各类项目的 安全风险直接暴露给攻击者.为了全面且及时地发现开源项目中的漏洞修复行为...  相似文献   

8.
基于依赖矩阵的构件软件复杂性的度量模型   总被引:2,自引:0,他引:2  
目前的构件软件复杂性度量模型未考虑构件之间不同依赖关系和软件构件内部复杂性两个重要因素,度量结果不够完整、准确.针对该问题,通过将软件体系结构抽象为加权的有向图,获得构件之间的依赖矩阵和影响矩阵,进而获取复杂性的度量公式.从度量公式分析和最后的示例可以得出,该度量模型可以更加真实、准确地反映构件之间不同的依赖关系和构件内部复杂性对软件复杂性的影响,而且具有简单、易于实现等特点.  相似文献   

9.
构件软件相较于传统软件系统有更快的演化速度,对其变更进行有效的度量将有利于后期的维护活动.本文分别针对代码可见及不可见两种类型的构件,运用改进的构件依赖图建模,表示构件软件系统.分两步分析构件变更所带来的风险:首先在计算变更比例的基础上度量单个构件的变更风险,再通过将构件依赖图转化成构件依赖树来计算变更的构件集给系统所带来的风险.此外,结合实例系统的分析给出了所提出的变更风险度量的若干性质.  相似文献   

10.
傅妤婧  张俊  王毅恒 《计算机科学》2018,45(Z11):511-517
实体间存在各种各样的依赖关系,尤其是在软件开发过程中,软件实体间的依赖关系对软件的变更影响分析以及风险分析等都具有重大影响。依赖图作为最常用的依赖关系表示方法,其节点与边的定义与属性计算不尽相同,且大部分方法中并没有考虑到节点与边的时态属性。针对时态实体依赖图,文中系统地提出了时态实体依赖关系的形式化定义并分析了其特性,然后分析了时态实体依赖图的节点中心性、节点重要性、节点依赖度和边的重要性等4个度量指标,同时,针对MAVEN数据集分析了上述各个指标随时间变化的规律。  相似文献   

11.
图形用户界面(GUI)是底层代码的前端表示。针对基于现有的模型生成的测试用例集不能尽快找到软件缺陷的问题,本文从代码层和界面层出发对待测程序进行分析,提出一种GUI测试模型WEHG,该模型的特点是:1)根据事件处理函数中定义变量和引用变量的数量和给对应的节点设置权重值,从而保证拥有更多变量的节点能够优先生成测试用例;2)根据事件处理函数的定义引用对给节点之间的依赖关系设置依赖值,使依赖度高的节点能够优先加入测试序列中。对比实验结果表明,该方法能够更快地发现软件中的缺陷,提高测试用例的缺陷探测效率,降低软件测试的成本。  相似文献   

12.
Ontology languages such as OWL are being widely used as the Semantic Web movement gains momentum. With the proliferation of the Semantic Web, more and more large-scale ontologies are being developed in real-world applications to represent and integrate knowledge and data. There is an increasing need for measuring the complexity of these ontologies in order for people to better understand, maintain, reuse and integrate them. In this paper, inspired by the concept of software metrics, we propose a suite of ontology metrics, at both the ontology-level and class-level, to measure the design complexity of ontologies. The proposed metrics are analytically evaluated against Weyuker’s criteria. We have also performed empirical analysis on public domain ontologies to show the characteristics and usefulness of the metrics. We point out possible applications of the proposed metrics to ontology quality control. We believe that the proposed metric suite is useful for managing ontology development projects.  相似文献   

13.
Complexity, cohesion and coupling have been recognized as prominent indicators of software quality. One characterization of software complexity is the existence of dependency relationships. Moreover, the degree of dependency reflects the cohesion and coupling between software elements. Dependencies in the design and implementation phase have been proven to be important predictors of software bugs. We empirically investigated how requirements dependencies correlate with and predict software integration bugs, which can provide early estimates regarding software quality and thus facilitate decision making early in the software lifecycle. We conducted network analysis on the requirements dependency networks of three commercial software projects. Significant correlation is observed between most of our network measures and the number of bugs. Furthermore, many network measures demonstrate significantly greater values for higher severity (or a higher fixing workload). Afterward, we built bug prediction models using these network measures and found that bugs can be predicted with high accuracy and sensitivity, even in cross-project and cross-company contexts. We further identified the dependency type that contributes most to bug correlation, as well as the network measures that contribute more to bug prediction. These observations show that the requirements dependency network can be used as an early indicator and predictor of software integration bugs.  相似文献   

14.
随着规模和复杂性的迅猛膨胀,软件系统中不可避免地存在缺陷.近年来,基于深度学习的缺陷预测技术成为软件工程领域的研究热点.该类技术可以在不运行代码的情况下发现其中潜藏的缺陷,因而在工业界和学术界受到了广泛的关注.然而,已有方法大多关注方法级的源代码中是否存在缺陷,无法精确识别具体的缺陷类别,从而降低了开发人员进行缺陷定位及修复工作的效率.此外,在实际软件开发实践中,新的项目通常缺乏足够的缺陷数据来训练高精度的深度学习模型,而利用已有项目的历史数据训练好的模型往往在新项目上无法达到良好的泛化性能.因此,本文首先将传统的二分类缺陷预测任务表述为多标签分类问题,即使用CWE(common weakness enumeration)中描述的缺陷类别作为细粒度的模型预测标签.为了提高跨项目场景下的模型性能,本文提出一种融合对抗训练和注意力机制的多源域适应框架.具体而言,该框架通过对抗训练来减少域(即软件项目)差异,并进一步利用域不变特征来获得每个源域和目标域之间的特征相关性.同时,该框架还利用加权最大均值差异作为注意力机制以最小化源域和目标域特征之间的表示距离,从而使模型可以学习到更多的域无关特征.最后在八个真实世界的开源项目上与最先进的基线方法进行大量对比实验验证了所提方法的有效性.  相似文献   

15.
李广威  袁挺  李炼 《软件学报》2022,33(6):2061-2081
软件静态缺陷检测是软件安全领域中的一个研究热点.随着使用C/C++语言编写的软件规模和复杂度的逐渐提高, 软件迭代速度的逐渐加快, 由于静态软件缺陷检测不需要运行目标代码即可发现其中潜藏的缺陷, 因而在工业界和学术界受到了更广泛的关注.近年来涌现大量使用软件静态分析技术的检测工具, 并在不同领域的软件项目中发挥了不可忽视的作用, 但是开发者仍然对静态缺陷检测工具缺乏信心.高误报率是C/C++静态缺陷检测工具难以普及的首要原因.因此, 我们选择现有较为完善的开源C/C++静态缺陷检测工具, 在Juliet基准测试集和37个良好维护的开源软件项目上对特定类型缺陷的检测效果进行了深入研究, 结合检测工具的具体实现归纳了导致静态缺陷检测工具产生误报的关键原因.同时, 我们通过研究静态缺陷检测工具的版本迁移轨迹, 总结出了当下静态分析工具的发展方向和未来趋势, 有助未来静态分析技术的优化和发展, 从而实现静态缺陷检测工具的普及应用.  相似文献   

16.
分析了代码依赖可视化在智能化软件开发中的作用,在总结代码依赖特点和信息可视化系统一般流程的基础上,提出了代码依赖可视化系统的设计.该系统使用力导向节点连接图和层次边聚合图作为可视化形式,基于对两种可视化形式布局特点的深入分析,分别针对力导向节点连接图和层次边聚合图创造了过滤子节点和聚合叶节点的交互设计.在使用多种软件技术实现了代码依赖可视化原型系统dpViz之后,将系统试用于企业软件开发中,实验结果表明该可视化原型系统可有效增进代码分析效率.  相似文献   

17.
李显伟 《计算机应用研究》2023,40(12):3545-3550
针对现有智能合约缺陷预测方法未考虑合约代码内部结构对缺陷产生的影响的不足,提出了一种基于网络度量元的Solidity智能合约缺陷预测方法。首先,通过Solidity-Antlr4工具构建Solidity智能合约的抽象语法树(abstract syntax tree, AST);其次,根据抽象语法树构建合约网络,网络中的节点代表函数和属性,边代表函数间的调用关系和函数对属性的操作关系;然后,引入复杂网络领域的知识,构建了一套针对Solidity智能合约的网络度量元;最后,基于多种回归模型和分类模型构建智能合约缺陷预测模型,进而比较不同类型的度量元在Solidity智能合约缺陷预测方面的性能。数据实验表明,结合了网络度量元的缺陷预测模型的预测性能比相应没有结合网络度量元的模型要好。  相似文献   

18.
Behavioral dependency analysis (BDA) and the visualization of dependency information have been identified as a high priority in industrial software systems (in specific, distributed systems). BDA determines the extent to which the functionality of one system entity (e.g., an object or a node) depends on other entities. Among many uses, a BDA is used to perform risk analysis and assessment, load planning, fault tolerance and redundancy provisions in distributed systems. Traditionally, most BDA techniques are based on source code or execution traces of a system. However, as model-driven development is gaining more popularity, there is a need for model-based BDA techniques. To address this need, we proposed in a previous work a metric, referred to as dependency index (DI), for the BDA of distributed objects and nodes based on UML behavioral models (sequence diagrams). However, in our previous BDA work, for simplicity, it was assumed that all messages are equivalent in terms of the dependencies they entail. However, to perform a more realistic BDA on real-world systems, messages must be weighted, e.g., certain messages may be more critical (or important) than others, and thus entail more intensive dependency. To address the above need, we define in this article a family of new BDA metrics, as extensions to our basic DI metric, based on different weighting mechanisms. Through an example application of the proposed metrics, we show that they can be used to predict more realistic dependency information. Furthermore, we derive interesting observations from our dependency analysis that would influence, in practice, practical decisions, which could not have been easily derived without it, e.g., we come up with a suggestion to install more reliable data-transmission network links between two nodes to ensure a reliable communication on links with intensive dependencies.  相似文献   

19.
Component dependency is an important software measure. It is directly related to software understandability, maintainability, and reusability. Two important parameters in describing component dependency are the type of coupling between two components and the type of the dependent component. Depending upon the different types of coupling and the type of the dependent components, there can be different effects on component maintenance and component reuse. In this paper, we divide dependent components into three types. We then classify various component dependencies and analyze their effects on maintenance and reuse. Based on the classification, we present a dependency metric and validate it on 11 open-source Java components. Our study shows that a strong correlation exists between the measurement of the dependency of the component and the effort to reuse the component. This indicates that the classification of component dependency and the suggested metric could be further used to represent other external software quality factors.  相似文献   

20.
软件缺陷预测技术用于定位软件中可能存在缺陷的代码模块,从而辅助开发人员进行测试与修复。传统的软件缺陷特征为基于软件规模、复杂度和语言特点等人工提取的静态度量元信息。然而,静态度量元特征无法直接捕捉程序上下文中的缺陷信息,从而影响了软件缺陷预测的性能。为了充分利用程序上下文中的语法语义信息,论文提出了一种基于混合注意力机制的软件缺陷预测方法 DP-MHA(Defect Prediction via Mixed Attention Mechanism)。DP-MHA首先从程序模块中提取基于AST树的语法语义序列并进行词嵌入编码和位置编码,然后基于多头注意力机制自学习上下文语法语义信息,最后利用全局注意力机制提取关键的语法语义特征,用于构建软件缺陷预测模型并识别存在潜在缺陷的代码模块。为了验证DP-MHA的有效性,论文选取了六个Apache的开源Java数据集,与经典的基于RF的静态度量元方法、基于RBM+RF、DBN+RF无监督学习方法和基于CNN和RNN深度学习方法进行对比,实验结果表明,DP-MHA在F1值分别提升了16.6%、34.3%、26.4%、7.1%、4.9%。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号