首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 0 毫秒
1.
The goal of this paper is to investigate the relation between object-oriented design choices and defects in software systems, with focus on a real-time telecommunication domain. The design choices are measured using the widely accepted metrics suite proposed by Chidamber and Kemerer for object oriented languages [S.R. Chidamber, C.F. Kemerer, A metrics suite for object oriented design, IEEE Transactions on Software Engineering 20 (6) (1994) 476-493].This paper reports the results of an extensive case study, which strongly reinforces earlier, mainly anecdotal, evidence that design aspects related to communication between classes can be used as indicators of the most defect-prone classes.Statistical models applicable for the non-normally distributed count data are used, such as Poisson regression, negative binomial regression, and zero-inflated negative binomial regression. The performances of the models are assessed using correlations, dispersion coefficients and Alberg diagrams.The zero-inflated negative binomial regression model based on response for a class shows the best overall ability to describe the variability of the number of defects in classes.  相似文献   

2.
The quality of a pull request is the primary factor integrators consider for its acceptance or rejection. Code smells indicate sub-optimal design or implementation choices in the source code that often lead to a fault-prone outcome, threatening the quality of pull requests. This study explores code smells in 21k pull requests from 25 popular Java projects. We find that both accepted (37%) and rejected (44%) pull requests have code smells, affected mainly by god classes and long methods. Besides, we observe that smelly pull requests are more complex and challenging to understand as they have significantly large sizes, long latency times, more discussion and review comments, and are submitted by contributors with less experience. Our results show that features used in previous studies for pull request acceptance prediction could be potentially employed to predict smell in incoming pull requests. We propose a dynamic approach to predict the presence of such code smells in the newly added pull requests. We evaluate our approach on a dataset of 25 Java projects extracted from GitHub. We further conduct a benchmark study to compare the performance of eight machine learning classifiers. Results of the benchmark study show that XGBoost is the best-performing classifier for smell prediction.  相似文献   

3.
This paper presents the results of an empirical study on the subjective evaluation of code smells that identify poorly evolvable structures in software. We propose use of the term software evolvability to describe the ease of further developing a piece of software and outline the research area based on four different viewpoints. Furthermore, we describe the differences between human evaluations and automatic program analysis based on software evolvability metrics. The empirical component is based on a case study in a Finnish software product company, in which we studied two topics. First, we looked at the effect of the evaluator when subjectively evaluating the existence of smells in code modules. We found that the use of smells for code evaluation purposes can be difficult due to conflicting perceptions of different evaluators. However, the demographics of the evaluators partly explain the variation. Second, we applied selected source code metrics for identifying four smells and compared these results to the subjective evaluations. The metrics based on automatic program analysis and the human-based smell evaluations did not fully correlate. Based upon our results, we suggest that organizations should make decisions regarding software evolvability improvement based on a combination of subjective evaluations and code metrics. Due to the limitations of the study we also recognize the need for conducting more refined studies and experiments in the area of software evolvability.
Casper LasseniusEmail:
  相似文献   

4.
Metric monsters are stumbling blocks that prevent software metrics-guided methodologies from attaining product and process improvement. Metric monsters can occur during the identification, collection or application of software metrics. In our research, we have developed and tested our design metrics over a five-year period and have found them to be excellent predictors of error-prone modules. Based on this research, we will identify some of the monsters that occur in the quantitative analyses of software and its development processes, and present our approach in formulating a design metrics model that avoids these monsters. This model consists of software tools, guidelines and actions for the application of software design metrics.  相似文献   

5.
软件体系结构层次的结构度量研究   总被引:5,自引:0,他引:5       下载免费PDF全文
提出了一套可操作的度量组,利用该度量组可以对软件体系结构模型的结构特征(复杂性、耦合性、形态)进行测量。利用软件度量中常用的相关性分析方法对度量的经验值进行分析,初步得出了各种度量间可能存在的相关关系。此研究为研究软件体系结构的结构特征与软件其它质量属性的关系提供了必要的基础。  相似文献   

6.
Context—Design patterns represent recommended generic solutions to various design problems, whereas code smells are symptoms of design issues that could hinder further maintenance of a software system. We can intuitively expect that both concepts are mutually exclusive, and the presence of patterns is correlated with the absence of code smells. However, the existing experimental evidence supporting this claim is still insufficient, and studies separately analyzing the impact of smells and patterns on code quality deliver diverse results.Objective—The aim of the paper is threefold: (1) to determine if and how the presence of the design patterns is linked to the presence of code smells, (2) to investigate if and how these relationships change throughout evolution of code, and (3) to identify the relationships between individual patterns and code smells.Method—We analyze nine design patterns and seven code smells in two medium-size, long-evolving, open source Java systems. In particular, we explore how the presence of design patterns impacts the presence of code smells, analyze if this link evolves over time, and extract association rules that describe their individual relationships.Results—Classes participating in design patterns appear to display code smells less frequently than other classes. The observed effect is stronger for some patterns (e.g., Singleton, State-Strategy) and weaker for others (e.g., Composite). The ratio between the relative number of smells in the classes participating in patterns and the relative number of smells in other classes, is approximately stable or slightly decreasing in time.Conclusion—This observation could be used to anticipate the smell-proneness of individual classes, and improve code smell detectors. Overall, our findings indicate that the presence of design patterns is linked with a lower number of code smell instances. This could support programmers in a context-sensitive analysis of smells in code.  相似文献   

7.
This paper presents a case history of Mentor Graphics using a set of quality metrics to track development progress for a recent major software release. It provides background on how Mentor Graphics originally began using software metrics to measure product quality, how this became accepted, and how these metrics later fell out of favour. To restore these metrics to effective use, process changes were required for setting quality and metric targets, and for the way the metrics are used for tracking development progress. With these process changes in place, and the addition of a new metric, the case history demonstrates that the metric set could be used effectively to indicate problems in this release and help manage changes to the plan for completion of the release. The lessons learned in this case history are presented, along with subsequent data that further validates these metrics.  相似文献   

8.
Cultivation and engineering of a software metrics program   总被引:1,自引:0,他引:1  
Abstract. This paper reports from a case study of an organization that implements a software metrics program to measure the effects of its improvement efforts. The program measures key indicators of all completed projects and summarizes progress information in a quarterly management report. The implementation turns out to be long and complex, as the organization is confronted with dilemmas based on contradictory demands and value conflicts. The process is interpreted as a combination of a rational engineering process in which a metrics program is constructed and put into use, and an evolutionary cultivation process in which basic values of the software organization are confronted and transformed. The analysis exemplifies the difficulties and challenges that software organizations face when bringing known principles for software metrics programs into practical use. The article discusses the insights gained from the case in six lessons that may be used by Software Process Improvement managers in implementing a successful metrics program.  相似文献   

9.
The approach to defining software metrics in terms of software models such as control graphs or call graphs has two limitations. First, since a model of the software will not, by its very nature, have all the properties of the software itself, the model-based approach is not well suited as a basis for comprehensive programmes of software measurement. Secondly, although software metrics are usually well defined in terms of the software models to which they relate, the models themselves are often not well defined in terms of the source code, or other software artefact, which they purport to measure. The paper describes approaches to metric definition designed to overcome these limitations.  相似文献   

10.
随着基于构件软件开发实践的深入,构件的质量将影响到最终的软件质量,但目前缺乏对构件在实际应用中有效的评价模型.基于Perry所提出的度量方法,给出了应用在UML中的度量模型,并且设计实现了对应的度量工具,以便构件使用者能够在实际开发应用中找出合适的构件.  相似文献   

11.
Software metrics are used to evaluate the software developmentprocess and the quality of the resultingproduct. We used five metrics during the testing phase of the Shuttle Mission Control Center (MCC) Upgrade (MCCU) at the National Aeronautics and Space Administration's (NASA) Johnson Space Center. All but one metric provided useful information. Based on our experience we recommend using metrics during the test phase of software development and propose additional candidate metrics for further study.  相似文献   

12.
Abstract: This paper describes the development of a prototype expert system for the selection of design patterns that are used in object-oriented software. Design patterns provide one method of software reuse, which supports the goal of improved software development productivity. The prototype system represents an initial step towards providing an automated solution regarding the design pattern application problem, i.e. leading a designer to a suitable design pattern which is applicable to the problem at hand. The feasibility of using expert system technology to aid in the selection problem is demonstrated.  相似文献   

13.
The design and analysis of the structure of software systems has typically been based on purely qualitative grounds. In this paper we report on our positive experience with a set of quantitative measures of software structure. These metrics, based on the number of possible paths of information flow through a given component, were used to evaluate the design and implementation of a software system (the UNIX operating system kernel) which exhibits the interconnectivity of components typical of large-scale software systems. Several examples are presented which show the power of this technique in locating a variety of both design and implementation defects. Suggested repairs, which agree with the commonly accepted principles of structured design and programming, are presented. The effect of these alterations on the structure of the system and the quantitative measurements of that structure lead to a convincing validation of the utility of information flow metrics.  相似文献   

14.
Software products, especially large applications, need to continuously evolve, in order to adapt to the changing environment and updated requirements. With both the producer and the customer unwilling to replace the existing application with a completely new one, adoption of design constructs and techniques which facilitate the application extension is a major design issue. In the current work we investigate the behavior of an object-oriented software application at a specific extension scenario, following three implementation alternatives with regards to a certain design problem relevant to the extension. The first alternative follows a simplistic solution, the second makes use of a design pattern and the third applies Aspect-Oriented Programming techniques to implement the same pattern. An assessment of the three alternatives is attempted, both on a qualitative and a quantitative level, by identifying the additional design implications needed to perform the extension and evaluating the effect of the extension on several quality attributes of the application.  相似文献   

15.
迭代和增量把软件开发分成可以重复的不同活动的流程,是现代软件开发过程的基本特征。迭代地执行每个流程就相应地增加软件产品,直至完成产品的开发。为定量地指导和管理迭代式增量软件开发,提出了基于UML模型的一组软件度量。这组度量针对UML的可视化以及一致地应用在多个软件开发活动的特性,对UML各种图所表达的信息量、可视化大小以及复杂性三个方面度量软件制品,进而度量迭代的增量。分析并通过案例讨论了这组度量的有效性及其在软件项目管理中的应用。  相似文献   

16.
针对软件可靠性预测中软件度量维数灾难问题,提出一种基于自适应遗传算法和KNN算法相结合的软件度量属性选择方法,筛选出与软件可靠性关系最为密切的关键属性集。该方法在属性子集搜索上采用遗传算法进行随机搜索,在属性子集评价上采用KNN分类准确率和属性子集规模作为学习算法及评价指标。实验结果表明,该算法可有效地找出具有较好可分离性的属性子集,从而实现降维并提高软件可靠性预测精度。  相似文献   

17.
面向对象设计复杂性度量计算与分析   总被引:1,自引:0,他引:1  
黄勰  高建华 《计算机工程与设计》2006,27(8):1346-1348,1356
软件维护在软件开发过程中占有相当重要的位置,但是其成本往往是很难控制的.在对一种能够对软件维护性能进行预测的面向对象复杂性度量进行分析的基础上,结合实际情况分析了该算法集3个度量的缺点及联系.对于3个度量不够深入的地方补充了一些新观点.  相似文献   

18.
A multivariate statistical procedure called multidimensional scaling is used to study the relationship of various software complexity metrics and program modules. The program modules that make up a software system are analysed and their effects towards the overall characteristics of a software are viewed. This multidimensional scaling technique is applied to a sample data set. The scaling procedure clustered the similar and dissimilar software complexity metrics. Program modules with low complexity and few errors clustered together, while modules which were complex were isolated. This technique shows promise in the identification of complex modules that potentially contain disproportionate errors prior to the testing phase. The ability of the scaling techniques to cluster similar and dissimilar characteristics is explained and graphically presented.  相似文献   

19.
给出了COTS构件可信度度量的概念及构件测试的若干决策模型。该模型可以指导用户在COTS构件交易过程中对构件进行何种程度的测试做出选择并对风险管理和控制提供支持,从而帮助用户在能较好地进行风险管理和控制的前提下尽量减少测试的时间和成本。  相似文献   

20.
基于GQM的软件体系结构适应性度量方法研究*   总被引:1,自引:0,他引:1  
基于GQM方法,结合当前的研究现状,根据实际需要,提出了一个新的面向过程的软件体系结构适应性度量方法.该方法在GQM方法的基础上,提出了面向过程的度量方法建模步骤,引入数据项分层和确认分层,增加了度量的结构化描述,定义了新的度量指标并提出了基于区间AHP和DEA的决策方法,对GQM方法进行了进一步的扩展和改进.  相似文献   

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

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