With increasing demands on software functions, software systems become more and more complex. This complexity is one of the most pervasive factors affecting software development productivity. Assessing the impact of s...
详细信息
With increasing demands on software functions, software systems become more and more complex. This complexity is one of the most pervasive factors affecting software development productivity. Assessing the impact of software complexity on development productivity helps to provide effective strategies for development process and project management. Previous research literatures have suggested that development productivity declines exponentially with software complexity. Borrowing insights from cognitive learning psychology and behavior theory, the relationship between software complexity and development productivity was reexamined in this paper. This research identified that the relationship partially showed a U-shaped as well as an inverted U-shaped curvilinear tendency. Furthermore, the range of complexity level that is beneficial for productivity has been presented, in which, the lower bound denotes the minimum degree of complexity at which personnel can be motivated, while the upper bound shows the maximum extent of complexity that staff can endure. Based on our findings, some guidelines for improving personnel management of software industry have also been given.
Code readability and software complexity are considered essential components of software quality. They significantly impact software metrics, such as reusability and maintenance. The maintainability process consumes a...
详细信息
Code readability and software complexity are considered essential components of software quality. They significantly impact software metrics, such as reusability and maintenance. The maintainability process consumes a high percentage of the software lifecycle cost, which is considered a very costly phase and should be given more focus and attention. For this reason, the importance of code readability and software complexity is addressed by considering the most time-consuming component in all software maintenance activities. This paper empirically studies the relationship between code readability and software complexity using various readability and complexity metrics and machine learning algorithms. The results are derived from an analysis dataset containing roughly 12,180 Java files, 25 readability features, and several complexity metric variables. Our study empirically shows how these two attributes affect each other. The code readability affects software complexity with 90.15% effectiveness using a decision tree classifier. In addition, the impact of software complexity on the readability of code using the decision tree classifier has a 90.01% prediction accuracy.
In this paper, we have proposed a new system complexity measure which is suitable for finding the optimum decomposition of a given system. For any system, the internal complexity of the modules can be reduced by subdi...
详细信息
In this paper, we have proposed a new system complexity measure which is suitable for finding the optimum decomposition of a given system. For any system, the internal complexity of the modules can be reduced by subdividing it into smaller modules. But there is a tradeoff, because the external complexity caused by their interrelationships will increase. Hence, there will be some optimum level of decomposition and our complexity measure can give an indication of this.
With the evolution of the software development, the scale of the software is increasingly growing to the extent that we cannot hand it easily. Some metrics are proposed to measure the complexity of software in last a ...
详细信息
With the evolution of the software development, the scale of the software is increasingly growing to the extent that we cannot hand it easily. Some metrics are proposed to measure the complexity of software in last a few years. This article aims at a comprehensive survey of the metric of software complexity. Some classic and efficient software complexity metrics, such as Lines of Codes (LOC), Halstead complexity Metric (HCM) and Cyclomatic complexity Metric (CCM), are discussed and analyzed first. Then, some other approaches driven from above classic metrics are also discussed. The comparison and the relationship of these metrics of software complexity are also presented.
Autonomic computing (AC) is a new domain, based on AC theory to design autonomic system is not perfect and implement process is more difficult. Especially, there lack tools and models to test the autonomic system. Acc...
详细信息
ISBN:
(纸本)9781424421077
Autonomic computing (AC) is a new domain, based on AC theory to design autonomic system is not perfect and implement process is more difficult. Especially, there lack tools and models to test the autonomic system. According to above-mentioned reason, this paper mainly discusses dependability of autonomic software. We proposed a model to analyze autonomic maturity of software: First introduces software autonomic characteristics, autonomic manager;Second, summarizes the software complexity, relation between the autonomic and the complex;Third discusses problems of software autonomic and resolve technology. Finally analyses validness of the model. In the future, it is to be optimized in the application.
Testing case prioritization is to sort test cases according to their priorities before executing, expecting to improve the efficiency of regression testing [1]. Given the existing prioritization techniques did not tak...
详细信息
Testing case prioritization is to sort test cases according to their priorities before executing, expecting to improve the efficiency of regression testing [1]. Given the existing prioritization techniques did not take into account the unbalanced nature of the complexity of the software, this paper propose a new method named CCB-TCP (Class complexity-Based Test Case Prioritization): First, by measuring the class complexity to decide the value of BPI (Bug Possibility Index) of a certain class, then proposes the metric ICT to depict the importance of a class being tested, together with the coverage information which can be get by using the tool-Djunit, the metric PTC (Priority of Test Case) –the sum of ICTs of all classes in a certain testing coverage path - is proposed as a measure for test case priority. Finally, the experiment proves the effectiveness of the method in improving the detection rate of serious errors.
software sustainability is critical for Computational Science and Engineering (CSE) software. Highly complex code makes software more difficult to maintain and less sustainable. Code reviews are a valuable part of the...
详细信息
software sustainability is critical for Computational Science and Engineering (CSE) software. Highly complex code makes software more difficult to maintain and less sustainable. Code reviews are a valuable part of the software development lifecycle and can be executed to manage complexity and promote sustainability. We have developed a technique to guide the code review process that considers cyclomatic complexity levels and changes during code reviews. Using real -world examples, this paper analyzes metrics gathered via GitHub Actions for several pull requests, and demonstrates the application of this approach in support of software maintainability and sustainability. We have also conducted a survey as to the usefulness of complexity metrics during code reviews. The results indicate that practitioners find the metrics useful, and that utilizing the metrics during pull request code reviews has the potential to improve the maintainability and sustainability of computational science and engineering software.
This paper concerns the use of design/source-code complexity metrics in analysing C++ software. It describes the use of one suite of object-oriented metrics published by Chidamber and Kemerer(1) to evaluate a commerci...
详细信息
This paper concerns the use of design/source-code complexity metrics in analysing C++ software. It describes the use of one suite of object-oriented metrics published by Chidamber and Kemerer(1) to evaluate a commercial C++ application. It provides an interpretation and critique of these metrics, including the use of two traditional metrics (Cyclomatic complexity(2) and software Science(3)) in association with these object-oriented metrics. The evolution, over a two and a half year period, of one commercial grade C++ application comprising 114 classes with 25,000 lines of code is studied. The efforts consumed in bug fixes and enhancements are correlated with the complexity measures on a per class basis, and results are presented. These results are compared to those from other workers. The paper provides a detailed analysis of the practical strengths and weaknesses of the metrics suite in the light of experiences with its use. (C) 1998 John Wiley & Sons, Ltd.
A number of architectures can be used to integrate different components of a manufacturing enterprise such as machine tools, robots, and guided vehicles. The choice of architecture has a significant impact on system c...
详细信息
A number of architectures can be used to integrate different components of a manufacturing enterprise such as machine tools, robots, and guided vehicles. The choice of architecture has a significant impact on system complexity, which in turn determines properties such as scalability, flexibility, fault-tolerance and modifiability. There is a need to develop metrics that quantify the complexity of a system that can serve as a means for comparing alternative architecture at the design stage. In this paper, we propose metrics used in software engineering to characterize the complexity of manufacturing systems. These metrics have been applied for measuring the complexity of two software systems: material delivery system and distributed scheduling. (c) 2005 Elsevier Ltd. All rights reserved.
This research examines the structural complexity of software and, specifically, the potential interaction of the two dominant dimensions of structural complexity, coupling and cohesion. Analysis based on an informatio...
详细信息
This research examines the structural complexity of software and, specifically, the potential interaction of the two dominant dimensions of structural complexity, coupling and cohesion. Analysis based on an information processing view of developer cognition results in a theoretically driven model with cohesion as a moderator for a main effect of coupling on effort. An empirical test of the model was devised in a software maintenance context utilizing both procedural and object-oriented tasks, with professional software engineers as participants. The results support the model in that there was a significant interaction effect between coupling and cohesion on effort, even though there was no main effect for either coupling or cohesion. The implication of this result is that, when designing, implementing, and maintaining software to control complexity, both coupling and cohesion should be considered jointly, instead of independently. By providing guidance on structuring software for software professionals and researchers, these results enable software to continue as the solution of choice for a wider range of richer, more complex problems.
暂无评论