The usage of software, which is used in variety of missions like Loe, Geo and interplanetary missions is increasing from mission to mission. The flight software size is increasing to take care of safety and security p...
详细信息
ISBN:
(纸本)9798350367393;9798350367386
The usage of software, which is used in variety of missions like Loe, Geo and interplanetary missions is increasing from mission to mission. The flight software size is increasing to take care of safety and security parameters, autonomy features and also to handle contingencies like failure detection, isolation and recovery. The growth rate of software will increase for future missions as new functionally gets added in software rather than hardware. This paper mainly concentrates on the software complexity metrics based on the static analysis carried out. This analysis helps to address the risks associated with development in size and complexity of flight software.
software complexity decreases maintenance productivity, as do team attributes of instability and knowledge diversity. We know little about the extent to which the two team attributes interact with software complexity ...
详细信息
software complexity decreases maintenance productivity, as do team attributes of instability and knowledge diversity. We know little about the extent to which the two team attributes interact with software complexity and shape productivity across systems of varying complexity. We address this gap by investigating whether and to what degree software complexity moderates the effects of team instability and knowledge diversity on maintenance productivity over the life of a system. We posit, given the exponential growth of code and task dependencies inherent in complex software systems, that system-level complexity has a significant nonlinear amplifying effect on the adverse effects of the two team attributes. To validate the presence of such an effect, we conduct a robust split-sample econometric analysis using three years of maintenance data from 426 mission-critical systems of a Fortune 100 company. The sampled systems vary in size (50KLOC to 2000KLOC, where 20% exceed 500KLOC), with a considerable portion of the sample manifesting "high" to "very high" software complexity. The analysis corroborates the known adverse effects of team instability, team knowledge diversity, and software complexity on maintenance productivity. More importantly, it shows-as theorized-that the adverse effects of the team attributes on maintenance productivity are significantly amplified only when software complexity grows high. We conclude with practical and research implications about how to manage software teams maintaining complex software over the life of a system.
Individual-based models are doubly complex: as well as representing complex ecological systems, the software that implements them is complex in itself. Both forms of complexity must be managed to create reliable model...
详细信息
Individual-based models are doubly complex: as well as representing complex ecological systems, the software that implements them is complex in itself. Both forms of complexity must be managed to create reliable models. However, the ecological modelling literature to date has focussed almost exclusively on the biological complexity. Here, we discuss methods for containing software complexity. Strategies for containing complexity include avoiding, subdividing, documenting and reviewing it. Computer science has long-established techniques for all of these strategies. We present some of these techniques and set them in the context of IBM development, giving examples from published models. Techniques for avoiding software complexity are following best practices for coding style, choosing suitable programming languages and file formats and setting up an automated workflow. Complex software systems can be made more tractable by encapsulating individual subsystems. Good documentation needs to take into account the perspectives of scientists, users and developers. Code reviews are an effective way to check for errors, and can be used together with manual or automated unit and integration tests. Ecological modellers can learn from computer scientists how to deal with complex software systems. Many techniques are readily available, but must be disseminated among modellers. There is a need for further work to adapt software development techniques to the requirements of academic research groups and individual-based modelling.
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.
Usually the complexity metric of software focuses on the complexity of code level, function level or structure level separately. It lacks of measurement for the comprehensive complexity of software system. This paper ...
详细信息
ISBN:
(纸本)9781538604977
Usually the complexity metric of software focuses on the complexity of code level, function level or structure level separately. It lacks of measurement for the comprehensive complexity of software system. This paper proposes a complexity metric model of three-level cascade network that based on complex network theory. In this metric model, the complexity of code level, function level and structure level are measured and the cascaded relationship between the three levels are analyzed. At last, the three-level cascade network model is built and the comprehensive complexity of software system is measured though the three-level cascade network model. The experiment result shows that the comprehensive complexity of the software system is correlated positively to the number of software defects.
Measuring the software complexity is an important task in the management of software projects. In the recent years, many researchers have paid much attention to this challenging task due to the commercial importance o...
详细信息
Measuring the software complexity is an important task in the management of software projects. In the recent years, many researchers have paid much attention to this challenging task due to the commercial importance of software projects. In the literature, there are some software metrics and estimation models to measure the complexity of software. However, we still need to introduce novel models of software metrics to obtain more accurate results regarding software complexity. In this paper, we will show that neural networks can be used as an alternative method for estimation of software complexity metrics. We use a neural network of three layers with a single hidden layer and train this network by using distinct training algorithms to determine the accuracy of software complexity. We compare our results of software complexity obtained by using neural networks with those calculated by Halstead model. This comparison shows that the difference between our estimated results obtained by Bayesian Regularization Algorithm with 10 hidden neurons and Halstead calculated results of software complexity is less than 2%, implying the effectiveness of our proposed method of neural networks in estimating software complexity.
Usually the complexity metric of software focuses on the complexity of code level, function level or structure level separately. It lacks of measurement for the comprehensive complexity of software system. This paper ...
详细信息
Usually the complexity metric of software focuses on the complexity of code level, function level or structure level separately. It lacks of measurement for the comprehensive complexity of software system. This paper proposes a complexity metric model of three-level cascade network that based on complex network theory. In this metric model, the complexity of code level, function level and structure level are measured and the cascaded relationship between the three levels are analyzed. At last the three-level cascade network model is built and the comprehensive complexity of software system is measured though the three-level cascade network model. The experiment result shows that the comprehensive complexity of the software system is correlated positively to the number of software defects.
software metrics can be classified in to two categories of code metrics and architectural metrics [1,2]. Code metrics basically consider analysis of data structures and algorithms for determining the complexity of the...
详细信息
ISBN:
(纸本)9781509014897
software metrics can be classified in to two categories of code metrics and architectural metrics [1,2]. Code metrics basically consider analysis of data structures and algorithms for determining the complexity of the program [3,4,5]. Whereas architectural metrics consider the mechanism how system is processing data within its components and any existing dependencies between the processed data for estimating the complexity [3,6]. In any pipelined RISC processor program is executed instruction after instruction and it is also possible to have program dependencies between them [7]. These dependencies are of two types, data dependencies and control dependencies [8,9,10,11]. Data dependencies can be resolved by forwarding the data between stages of the pipelined RISC processor. Stall can be induced between the instructions while resolving some of these data dependencies. Stall can also be induced between instructions during branch prediction. The proposed architectural metric considers all those cases which will affect the overall execution of the program by causing stall together with the count of statements actually executed, for estimating the overall software complexity.
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.
暂无评论