共查询到6条相似文献,搜索用时 0 毫秒
1.
Jehad Al Dallal 《Information and Software Technology》2011,53(9):914-928
Context
Class cohesion is an important object-oriented quality attribute. It refers to the degree of relatedness between the methods and attributes of a class. Several metrics have been proposed to measure the extent to which the class members are related. Most of these metrics have undefined values for a relatively high percentage of classes, which limits their applicability. The classes that have undefined values lack methods, attributes, or parameter types, or they include only a single method.Objective
We improve the applicability of the class cohesion metrics by defining their values for such special classes. In addition, we theoretically and empirically validate the improved metrics.Method
We theoretically examine whether the defined values satisfy the key cohesion properties. In addition, we empirically validate the metrics before and after the improvements to test whether the defined values improve the ability of the metrics to evaluate class cohesion. We also explore the correlation between the metrics and the presence of faulty classes to indirectly determine the strength or weakness of the metrics in indicating class quality.Results
The results show that our assigned values for the undefined cases do not violate the key cohesion properties and considerably improve the ability of the metrics to explain the presence of faulty classes and may therefore improve their ability to indicate the quality of the class design.Conclusions
Having the class cohesion metrics defined for all possible cases improves the applicability of the metrics and potentially increases their precision in indicating class quality. 相似文献2.
Packages are important high-level organizational units for large object-oriented systems. Package-level metrics characterize the attributes of packages such as size, complexity, and coupling. There is a need for empirical evidence to support the collection of these metrics and using them as early indicators of some important external software quality attributes. In this paper, three suites of package-level metrics (Martin, MOOD and CK) are evaluated and compared empirically in predicting the number of pre-release faults and the number of post-release faults in packages. Eclipse, one of the largest open source systems, is used as a case study. The results indicate that the prediction models that are based on Martin suite are more accurate than those that are based on MOOD and CK suites across releases of Eclipse. 相似文献
3.
Zhijie Zhou Changhua Hu Hongdong Fan Jin Li 《Simulation Modelling Practice and Theory》2008,16(6):690-703
Fault prediction which can forecast the fault in advance to avoid large calamity has attracted more and more attention. However, the current filter based fault prediction methods for the nonlinear systems are all based on the framework of the probability theory, and cannot realize fault prediction of the nonlinear systems with fuzzy uncertainty. Based on the extended fuzzy Kalman filter (EFKF) and the extended orthogonality principle, an improved fuzzy Kalman filter (IFKF) is firstly proposed to estimate the system states or the parameters in this paper. Then, according to the IFKF, a multi-step improved fuzzy Kalman predictor (MIFKP), which can be considered as an adaptive predictor, is obtained. Once the characteristic parameter is chosen, the MIFKP can be used to implement the multi-step fault prediction. Simulation results demonstrate that the proposed approach has the better prediction ability and stronger robustness than the traditional multi-step extended fuzzy Kalman predictor (MEFKP). 相似文献
4.
Jehad Al Dallal 《Journal of Systems and Software》2012,85(5):1042-1057
Class cohesion is a key attribute that is used to assess the design quality of a class, and it refers to the extent to which the attributes and methods of the class are related. Typically, classes contain special types of methods, such as constructors, destructors, and access methods. Each of these special methods has its own characteristics, which can artificially affect the class cohesion measurement. Several metrics have been proposed in the literature to indicate class cohesion during high- or low-level design phases. The impact of accounting for special methods in cohesion measurement has not been addressed for most of these metrics. This paper empirically explores the impact of including or excluding special methods on cohesion measurements that were performed using 20 existing class cohesion metrics. The empirical study applies the metrics that were considered to five open-source systems under four different scenarios, including (1) considering all special methods, (2) ignoring only constructors, (3) ignoring only access methods, and (4) ignoring all special methods. This study empirically explores the impact of including special methods in cohesion measurement for two applications of interest to software practitioners, including refactoring and predicting faulty classes. The results of the empirical studies show that the cohesion values for most of the metrics considered differ significantly across the four scenarios and that this difference significantly affects the refactoring decisions, but does not significantly affect the abilities of the metrics to predict faulty classes. 相似文献
5.
大型注水机组故障预测系统由于系统复杂,采用传统的开发方式,开发周期长并且硬件系统庞大。虚拟仪器可以通过软件把计算机强大的计算处理能力和仪器硬件的测量、控制能力有机的结合起来。利用PC-DAQ与LabWindows/CVI构建大型旋转机组故障分析系统,减少了系统所需的硬件资源,加快了系统软件的开发速度,实现集成运行环境,使操作人员操作起来更加方便。 相似文献
6.
Software quality engineering comprises of several quality assurance activities such as testing, formal verification, inspection, fault tolerance, and software fault prediction. Until now, many researchers developed and validated several fault prediction models by using machine learning and statistical techniques. There have been used different kinds of software metrics and diverse feature reduction techniques in order to improve the models’ performance. However, these studies did not investigate the effect of dataset size, metrics set, and feature selection techniques for software fault prediction. This study is focused on the high-performance fault predictors based on machine learning such as Random Forests and the algorithms based on a new computational intelligence approach called Artificial Immune Systems. We used public NASA datasets from the PROMISE repository to make our predictive models repeatable, refutable, and verifiable. The research questions were based on the effects of dataset size, metrics set, and feature selection techniques. In order to answer these questions, there were defined seven test groups. Additionally, nine classifiers were examined for each of the five public NASA datasets. According to this study, Random Forests provides the best prediction performance for large datasets and Naive Bayes is the best prediction algorithm for small datasets in terms of the Area Under Receiver Operating Characteristics Curve (AUC) evaluation parameter. The parallel implementation of Artificial Immune Recognition Systems (AIRS2Parallel) algorithm is the best Artificial Immune Systems paradigm-based algorithm when the method-level metrics are used. 相似文献