共查询到20条相似文献,搜索用时 15 毫秒
1.
Bahareh Bafandeh Mayvan Abbas Rasoolzadegan Abbas Javan Jafari 《Journal of Software: Evolution and Process》2020,32(8)
Bad smells are bad practices in developing software. These poor solutions significantly influence the understandability and maintainability of source code. Therefore, bad smell detection plays a vital role in the refactoring, maintaining, and measuring the quality of large and complex software systems. Researchers believe that bad smells should be precisely identified and addressed. However, bad smell detection is complicated by issues such as informal and inconsistent specifications of bad smells and high false positive rates in the detection process, all of which affect the success rate in detection. In this paper, we present a new method to detect bad smells in code by addressing the aforementioned issues. Our proposed method is a multi‐step process using software quality metrics and refactoring opportunities. In this method, after obtaining the bad smell formal specifications based on software metrics, we utilize them to achieve a set of candidates for each bad smell. Afterwards, each of the instances will be examined and compared with the corresponding refactoring situations specified for that bad smell. This examination strikes out the false positives created in the previous step. The evaluation of this method on four open‐source systems demonstrates the improved effectiveness of bad smell detection in code. 相似文献
2.
Haris Mumtaz Mohammad Alshayeb Sajjad Mahmood Mahmood Niazi 《Journal of Software: Evolution and Process》2019,31(3)
Bad smells tend to have a negative impact on software by degrading its quality. It is beneficial to detect model smells to avoid their propagation to later stages of software development. The objective of this paper is to present the state‐of‐the‐art research on techniques for detecting UML model bad smells. The detection techniques are compared and evaluated using a proposed evaluation framework. The framework consists of two parts. The first part of the framework compares the techniques in terms of the implemented approach, the investigated model, and the explored model smells, while the experimental design is explored in the second part of the framework. We found that the detection of bad smells in class and sequence diagrams is accomplished via design patterns, software metrics, and predefined rules, while model smells in use cases are detected using metrics and predefined rules. We also found that the class diagram is the most investigated UML model in the context of model smell detection, whereas there is a lack of work on other UML models. In addition, there is a scarcity of independent studies on sequence diagrams. Furthermore, the studies investigating class diagrams are mostly validated, whereas use case diagrams and sequence diagrams are rarely validated. 相似文献
3.
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. 相似文献
4.
5.
Bad smells are certain flaws in the structure of the code that might not disturb the normal functioning of a program but negatively affects the software quality. Developers use refactoring as a corrective measure for the treatment of bad smells. The current study aids the developers in the application of refactoring by identifying the critical classes, that is, classes that are challenging to maintain and are of degraded quality. In this study, 10 quality metrics and 10 bad smells have been selected to conduct an investigation on different releases of five open-source systems. A new metric, severity factor (SF) has been introduced that categorizes the classes of the selected systems into four criticality levels—severe, major, mid, and low. Also, the relationship between SF, criticality levels, and the refactoring operations has been analyzed. The findings show that 60% of the total classes have been affected by bad smells, and long statement is the most dominant smell present in 27.6% of the classes. The results show 84% of the refactoring operations have been performed on highly critical classes. Thus, the SF metric plays a crucial role in driving the developer's attention to the critical classes that need to be treated urgently. 相似文献
6.
基于模式的软件质量模型研究与应用 总被引:1,自引:0,他引:1
在软件开发周期中的早期进行质量评估对提高软件的质量非常重要.传统的软件质量模型在早期获得的质量信息较少,很难有效、准确地评价软件的质量.针对此问题,本文提出了一种新的基于模式的软件质量模型,通过模式提供的丰富信息,在产品的设计阶段完成对软件质量准确、有效的评估,指导软件的开发,最终提高软件产品的质量. 相似文献
7.
A study is presented in which it is determined whether software product metrics gathered statically from designs or source code may be helpful in predicting the number of run-time faults that will be encountered during execution. Metrics examined include intermodule metrics such as fan-in and fan-out, as well as intramodule metrics such as cyclomatic complexity and size. Our study indicates that it may be possible, with certain classes of software products, to predict the run-time behaviour using well-known static intermodule metrics. 相似文献
8.
Gabriele Manduchi 《Software》2001,31(11):1025-1042
The paper describes the experience gained in the development of Java applications in a nuclear fusion experiment. Two Java tools for graphical data display and experiment configuration set‐up are presented as case studies. Based on these tools, the results derived by the application of some metrics for object oriented software and by the analysis of the design patterns imported in the applications are presented to highlight the effective code reuse achieved with Java. The main issues in the applicability of Java in a demanding environment are then introduced and a few weaknesses of the language are finally discussed. Copyright © 2001 John Wiley & Sons, Ltd. 相似文献
9.
Metrics in a software sense can be roughly divided into two groups, internal metrics and external metrics. Internal metrics can be measured directly, while external metrics are predicted using internal metrics. Factor analysis is a statistical technique which can be applied to analyze the structure of internal metrics and form a prediction model for external metrics A prediction model generated by using factor analysis needs further validation since factor analysis has a non-unique solution for the factor-loading matrix. The computational methodology to establish a model is presented as well as the validation process. This is illustrated by an empirical study of design metrics and a prediction model for design quality. 相似文献
10.
11.
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. 相似文献
12.
The need to improve software productivity and software quality has put forward the research on software metrics technology and the development of software metrics tool to support related activities.To support object-oriented software metrics practice efectively,a model-absed approach to object-oriented software metrics is proposed in this paper.This approach guides the metrics users to adopt the quality metrics model to measure the object-oriented software products .The development of the model can be achieved by using a top-down approach.This approach explicitly proposes the conception of absolute normalization computation and relative normalization computation for a metrics model.Moreover,a generic software metrics tool-Jade Bird Object-Oriented Metrics Tool(JBOOMT)is designed to implement this approach.The parser-based approach adopted by the tool makes the information of the source program accurate and complete for measurement.It supports various customizable hierarchical metrics models and provides a flexible user interface for users to manipulate the models.It also supports absolute and relative normalization mechanisms in different situations. 相似文献
13.
Raed Shatnawi 《Journal of Software: Evolution and Process》2015,27(2):95-113
Software metrics are surrogates of many software quality factors such as fault proneness, reusability, and maintenance effort. Software metrics are numbers collected from software code to assess and evaluate where problems are more probable to happen. These numbers are used to flag warnings of the problematic parts of software code using threshold values. However, the proposed techniques did not consider the data distribution and skewness in data. In this research, we aim to propose a methodology based on log transformation to improve the metrics quality. To explore the effect of log transformation on data analysis, we conduct analysis of using software metrics after transformation in identifying fault-prone areas on multireleases of 11 products (41 releases). The results show that the log transformation can be used to derive threshold values for all metrics under investigation. The results of the transformation are then used to conduct fault-proneness classification based on threshold values and compared against the results without transformation. The fault classification with transformation was more successful than without transformation. Copyright © 2015 John Wiley & Sons, Ltd. 相似文献
14.
基于面向对象系统的质量度量模型PMMSQ的设计和实现 总被引:1,自引:0,他引:1
本文首先从软件质量度量的角度出发,阐述了软件质量度量的理论与方法,介绍了ISO9126模型;针对已有软件质量度量模型中存在的问题,提出了一个适合于软件质量度量实践的实用软件质量度量模型(PMMSQ),并详细介绍了面向对象系统软件质量度量的步骤;最后,根据PMMSQ模型完成了软件度量活动的核心工作--对象特征集存储库的设
计和实现。 相似文献
计和实现。 相似文献
15.
Many existing software systems can benefit from restructuring to reduce maintenance cost and improve reusability. Yet, intuition-based, ad hoc restructuring can be difficult and expensive, and can even make software structure worse. We introduce a quantitative framework for software restructuring. In the framework, restructuring decisions are guided by visualized design information and objective criteria. The design information can be extracted directly from code to restructure existing or legacy software. Criteria for comparing alternative design structures include measures of design-level cohesion and coupling. Restructuring is accomplished through a series of decomposition and composition operations which increase the cohesion and/or decrease the coupling of individual system components. An example and a case study demonstrate the framework. The framework ensures that restructuring results in measurable improvements in design quality. Copyright © 1999 John Wiley & Sons, Ltd. 相似文献
16.
JOEL HENRY ROBERT BLASEWITZ DAVID KETTINGER 《Journal of Software: Evolution and Process》1996,8(2):79-100
This paper describes the measurement-based software maintenance process defined and implemented at Lockheed-Martin, Moorestown, NJ. The documented process includes extensive data collection, a tightly controlled but highly accessible database, data analysis techniques supported by software tools, and process assessment and improvement activities. The methods and techniques used are presented in a ‘how to’ fashion so that other organizations can leverage our efforts to define and implement a measurement-based process of their own. Our approach is an evolutionary one, rather than a revolutionary organizational upheaval. We describe the benefits gained from our process, including statistically validated metric results, and the subsequent process improvements implemented. This paper describes solutions to the ‘real-world’ issues faced by an organization which successfully implemented a measurement-based software maintenance process. 相似文献
17.
软件体系结构层次的结构度量研究 总被引:5,自引:0,他引:5
提出了一套可操作的度量组,利用该度量组可以对软件体系结构模型的结构特征(复杂性、耦合性、形态)进行测量。利用软件度量中常用的相关性分析方法对度量的经验值进行分析,初步得出了各种度量间可能存在的相关关系。此研究为研究软件体系结构的结构特征与软件其它质量属性的关系提供了必要的基础。 相似文献
18.
19.
主要阐述了模式的概念、原理和常用模式的分类,重点研究了软件体系结构中的模式。模式是总结软件开发中现存的、被证明良好的经验,再用来促进好的设计实践,每个模式都是处理一个软件系统的设计或实现一种特定类型的重复出现的问题。 相似文献
20.
Uwe Zdun 《Software》2007,37(9):983-1016
Software patterns provide reusable solutions to recurring design problems in a particular context. The software architect or designer must find the relevant patterns and pattern languages that need to be considered, and select the appropriate patterns, as well as the best order to apply them. If the patterns and pattern languages are written by multiple pattern authors, it might be necessary to identify interdependencies and overlaps between these patterns and pattern languages first. Out of the possible multitude of patterns and pattern combinations that might provide a solution to a particular design problem, one fitting solution must be selected. This can only be mastered with a sufficient expertise for both the relevant patterns and the domain in which they are applied. To remedy these issues we provide an approach to support the selection of patterns based on desired quality attributes and systematic design decisions based on patterns. We propose to formalize the pattern relationships in a pattern language grammar and to annotate the grammar with effects on quality goals. In a second step, complex design decisions are analyzed further using the design spaces covered by a set of related software patterns. This approach helps to systematically find and categorize the appropriate software patterns—possibly even from different sources. As a case study of our approach, we analyze patterns from a pattern language for distributed object middleware. Copyright © 2006 John Wiley & Sons, Ltd. 相似文献