Empirical studies have shown complexitymetrics to be good predictors of testing effort and maintainability in traditional, imperative programming languages. Empirical validation studies have also shown that complexit...
详细信息
Empirical studies have shown complexitymetrics to be good predictors of testing effort and maintainability in traditional, imperative programming languages. Empirical validation studies have also shown that complexity is a good predictor of initial quality and reliability in object-oriented (OO) software. To date, one of the most empirically validated OO complexitymetrics is the Chidamber and Kemerer Weighted Methods in a Class (WMC). However, there are many more OO complexitymetrics whose predictive power has not been as extensively explored. In this study, we explore the predictive ability of several complexity-related metrics for OO software that have not been heavily validated. We do this by exploring their ability to measure quality in an evolutionary software process, by correlating these metrics to defect data for six versions of Rhino, an open-source implementation of JavaScript written in Java. Using statistical techniques such as Spearman's correlation, principal component analysis, binary logistic regression models and their respective validations, we show that some lesser known complexitymetrics including Michura et al.'s standard deviation method complexity and Etzkorn et al.'s average method complexity are more consistent predictors of OO quality than any variant of the Chidamber and Kemerer WMC metric. We also show that these metrics are useful in identifying fault-prone classes in software developed using highly iterative or agile software development processes. Copyright (c) 2008 John Wiley & Sons, Ltd.
complexitymetrics for object-oriented systems are plentiful. Numerous studies have been undertaken to establish valid and meaningful measures of maintainability as they relate to the static structural characteristics...
详细信息
complexitymetrics for object-oriented systems are plentiful. Numerous studies have been undertaken to establish valid and meaningful measures of maintainability as they relate to the static structural characteristics of software. In general, these studies have lacked the empirical validation of their meaning and/or have only succeeded in evaluating partial aspects of the system. In this study we have determined, through limited empirical means, a practical and holistic view by analyzing and comparing the structural characteristics of UML class diagrams as those characteristics relate to or impact maintainability. Class diagrams are composed of three kinds of relation, association, generalization, and aggregation, which make their overall structure difficult to understand. We propose combining these three relations in such a way that enables a comprehensive measure of complexity. Theoretically, this measure is applicable among different class diagrams (including different domains, platforms or systems) to the extent that the measure is widely comparative and context free. Further, this property does not preclude comparison within a specific class diagram (or family) and is therefore very useful in evaluating a given class diagram's strengths and weaknesses. We are reporting empirical results that provide a small measure of validity to enable an objective appraisal of both complexity and maintainability without equating the two. Therefore, to evaluate our structural complexity metric, we determined the level of understandability of the system by measuring the time needed to reverse engineer source code into class diagrams including the number of errors produced while creating the diagram. The number of errors produced offers one indicator of maintainability. The results, as compared with other complexitymetrics, indicate that our metric shows promise especially if proven to be scalable. Copyright (C) 2006 John Wiley & Sons, Ltd.
暂无评论