Complexity and Nesting Evolution in Open Source Software Systems: Experimental Study

2020 ◽  
Vol 13 (4) ◽  
pp. 572-578 ◽  
Author(s):  
Mamdouh Alenezi ◽  
Mohammad Zarour ◽  
Mohammed Akour

Background: Software complexity affects its quality; a complex software is not only difficult to read, maintain and less efficient, but it also can be less secure with many vulnerabilities. Complexity metrics, e.g. cyclomatic complexity and nesting levels, are commonly used to predict and benchmark software cost and efficiency. Complexity metrics are also used to decide if code refactoring is needed. Objective: Software systems with high complexity need more time to develop and test and may lead to bad understandability and more errors. Nesting level in the target structure may result in developing more complex software in what is so-called the nesting problem. Nesting problem should be shortened by rewriting the code or breaking into several functional procedures. Method: In this paper, the relationship between the nesting levels, the cyclomatic complexity, and lines of code (LOC) metrics are measured through several software releases. In order to address how strong a relationship between these factors with the nesting level, correlation coefficients are calculated. Moreover, to examine to what extent the developers are aware of and tackle the nesting problem, the evolution of nesting levels for ten releases of five open sources systems is studied to see if it is improving over successive versions or not. Results: The result shows that the nesting level has variant effects on the cyclomatic complexity and SLOC for the five studied systems. Conclusion: nesting level has the tendency to have a positive correlation with other factors (cyclomatic complexity and LOC).

2018 ◽  
Author(s):  
Adnan Muslija ◽  
Eduard P Enoiu

Software complexity metrics, such as code size and cyclomatic complexity, have been used in the software engineering community for predicting quality metrics such as maintainability, bug proneness and robustness. However, not many studies have addressed the relationship between complexity metrics and software testing and there is little experimental evidence to support the use of these code metrics in the estimation of test effort. We have investigated and evaluated the relationship between test effort (i.e, number of test cases and test execution time) and software complexity metrics for industrial control software used in an embedded system. We show how to measure different software complexity metrics such as number of elements, cyclomatic complexity, and information flow for a popular programming language named FBD used in the safety critical domain. In addition, we use test data and test suites created by experienced test engineers working at Bombardier Transportation Sweden AB to evaluate the correlation between several complexity measures and the testing effort. We found that there is a moderate correlation between software complexity metrics and test effort. In addition, the results show that the software size (i.e., number of elements in the FBD program) provides the highest correlation level with the number of test cases created and test execution time. Our results suggest that software size and structure metrics, while useful for identifying parts of the system that are more complicated, should not be solely used for identifying parts of the system for which test engineers might need to create more test cases. A potential explanation of this result concerns the nature of testing, since other attributes such as the level of thorough testing required and the size of the specifications can influence the creation of test cases. In addition, we used a linear regression model to estimate the test effort using the software complexity measurement results.


2018 ◽  
Author(s):  
Adnan Muslija ◽  
Eduard P Enoiu

Software complexity metrics, such as code size and cyclomatic complexity, have been used in the software engineering community for predicting quality metrics such as maintainability, bug proneness and robustness. However, not many studies have addressed the relationship between complexity metrics and software testing and there is little experimental evidence to support the use of these code metrics in the estimation of test effort. We have investigated and evaluated the relationship between test effort (i.e, number of test cases and test execution time) and software complexity metrics for industrial control software used in an embedded system. We show how to measure different software complexity metrics such as number of elements, cyclomatic complexity, and information flow for a popular programming language named FBD used in the safety critical domain. In addition, we use test data and test suites created by experienced test engineers working at Bombardier Transportation Sweden AB to evaluate the correlation between several complexity measures and the testing effort. We found that there is a moderate correlation between software complexity metrics and test effort. In addition, the results show that the software size (i.e., number of elements in the FBD program) provides the highest correlation level with the number of test cases created and test execution time. Our results suggest that software size and structure metrics, while useful for identifying parts of the system that are more complicated, should not be solely used for identifying parts of the system for which test engineers might need to create more test cases. A potential explanation of this result concerns the nature of testing, since other attributes such as the level of thorough testing required and the size of the specifications can influence the creation of test cases. In addition, we used a linear regression model to estimate the test effort using the software complexity measurement results.


2021 ◽  
Vol 11 (12) ◽  
pp. 5690
Author(s):  
Mamdouh Alenezi

The evolution of software is necessary for the success of software systems. Studying the evolution of software and understanding it is a vocal topic of study in software engineering. One of the primary concepts of software evolution is that the internal quality of a software system declines when it evolves. In this paper, the method of evolution of the internal quality of object-oriented open-source software systems has been examined by applying a software metric approach. More specifically, we analyze how software systems evolve over versions regarding size and the relationship between size and different internal quality metrics. The results and observations of this research include: (i) there is a significant difference between different systems concerning the LOC variable (ii) there is a significant correlation between all pairwise comparisons of internal quality metrics, and (iii) the effect of complexity and inheritance on the LOC was positive and significant, while the effect of Coupling and Cohesion was not significant.


2014 ◽  
Vol 548-549 ◽  
pp. 1319-1325
Author(s):  
Bouchaib Falah ◽  
Sara El Alaoui ◽  
Hajar Abbadi

Nowadays, software is expected to have an extended lifespan, which makes the evaluation of its complexity at the early stages critical in upcoming maintenance. Indeed, complexity is proportional to the evolution of software. Software metrics were introduced as tools that allow us to obtain an objective measurement of the complexity of software. Hence, enabling software engineering to assess and manage software complexity. Reducing software costs is one of the major concerns of software engineering which creates an increasing need for new methodologies and techniques to control those costs. Software complexity metrics can help us to do so. In this paper, we would investigate how those metrics can be used to reduce software costs. We would first analyze the most popular complexity metrics and distinguish their properties. Then, we will show how each of those metrics fit within the software life cycle. Finally, we will provide a detailed approach to use the complexity metrics to reduce software costs.


Author(s):  
Bello Muriana ◽  
Ogba Paul Onuh

Measures of software complexity are essential part of software engineering. Complexity metrics can be used to forecast key information regarding the testability, reliability, and manageability of software systems from study of the source code. This paper presents the results of three distinct software complexity metrics that were applied to two searching algorithms (Linear and Binary search algorithm). The goal is to compare the complexity of linear and binary search algorithms implemented in (Python, Java, and C++ languages) and measure the sample algorithms using line of code, McCabe and Halstead metrics. The findings indicate that the program difficulty of Halstead metrics has minimal value for both linear and binary search when implemented in python. Analysis of Variance (ANOVA) was adopted to determine whether there is any statistically significant differences between the search algorithms when implemented in the three programming languages and it was revealed that the three (3) programming languages do not vary considerably for both linear and binary search techniques which implies that any of the (3) programming languages is suitable for coding linear and binary search algorithms.


Author(s):  
JIZHOU ZHAN ◽  
XIANZHONG ZHOU ◽  
JIABAO ZHAO

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.


2020 ◽  
Vol 2020 ◽  
pp. 1-20
Author(s):  
Aihua Gu ◽  
Lu Li ◽  
Shujun Li ◽  
Qifeng Xun ◽  
Jian Dong ◽  
...  

Context. Coupling between classes is an important metric for software complexity in software systems. Objective. In order to overcome the shortcomings of the existing coupling methods and fully investigate the weighted coupling of classes in different cases in large-scale software systems, this study analyzed the relationship between classes at package level, class level, and method level. Method. The software system is considered as a set of special bipartite graphs in complex networks, and an effective method for coupling measurement is proposed as well. Furthermore, this method is theoretically proved to satisfy the mathematical properties of coupling measurement, leading to overcome the disadvantages of the majority of existing methods. In addition, it was revealed that the proposed method was efficient according to the analyses of existing methods for coupling measurement. Eventually, an algorithm was designed and a program was developed to calculate coupling between classes in three open-source software systems. Results. The results indicated the scale-free characteristic of complex networks in the statistical data. Additionally, the calculated power-law value was used as a metric for coupling measurement, so as to calculate coupling of the three open-source software. It indicated that coupling degrees of the open-source software systems contained a certain impact on evaluation of software complexity. Conclusions. It indicated that coupling degrees of the open-source software systems contained a certain impact on evaluation of software complexity. Moreover, statistical characteristics of some complex networks provided a reliable reference for further in-depth study of coupling. The empirical evidence showed that within a certain range, reducing the coupling was helpful to attenuate the complexity of the software, while excessively blindly pursuit of low coupling increases the complexity of software systems.


2020 ◽  
Vol 29 (3) ◽  
pp. 429-435
Author(s):  
Patricia C. Mancini ◽  
Richard S. Tyler ◽  
Hyung Jin Jun ◽  
Tang-Chuan Wang ◽  
Helena Ji ◽  
...  

Purpose The minimum masking level (MML) is the minimum intensity of a stimulus required to just totally mask the tinnitus. Treatments aimed at reducing the tinnitus itself should attempt to measure the magnitude of the tinnitus. The objective of this study was to evaluate the reliability of the MML. Method Sample consisted of 59 tinnitus patients who reported stable tinnitus. We obtained MML measures on two visits, separated by about 2–3 weeks. We used two noise types: speech-shaped noise and high-frequency emphasis noise. We also investigated the relationship between the MML and tinnitus loudness estimates and the Tinnitus Handicap Questionnaire (THQ). Results There were differences across the different noise types. The within-session standard deviation averaged across subjects varied between 1.3 and 1.8 dB. Across the two sessions, the Pearson correlation coefficients, range was r = .84. There was a weak relationship between the dB SL MML and loudness, and between the MML and the THQ. A moderate correlation ( r = .44) was found between the THQ and loudness estimates. Conclusions We conclude that the dB SL MML can be a reliable estimate of tinnitus magnitude, with expected standard deviations in trained subjects of about 1.5 dB. It appears that the dB SL MML and loudness estimates are not closely related.


2019 ◽  
Vol 118 (9) ◽  
pp. 118-126
Author(s):  
Augusty P. A ◽  
Jain Mathew

The study evaluates the relationship between Emotional Intelligence and Leadership Effectiveness through a Systematic Review of Literature. The relationship has been evaluated in two steps. First, a Systematic review of literature was done to provide a theoretical framework to link the dimensions of Emotional Intelligence to the elements of effective leadership. Meta-analysis was then used to consolidate empirical evidence of the relationship. The studies for the meta-analysis were sourced from Pro Quest and EBSCO and the correlation coefficients of the studies were analysed. Only articles that presented the direct relationship between the variables were included in the study. The results of the analysis revealed a strong, statistically significant relationship between emotional intelligence and effective leadership. The findings of the study provide evidence for the proposition that Emotional Intelligence and Leadership Effectiveness are interrelated.


Author(s):  
А. I. Grabovets ◽  
V. P. Kadushkina ◽  
S. А. Kovalenko

With the growing aridity of the climate on the Don, it became necessary to improve the methodology for conducting the  breeding of spring durum wheat. The main method of obtaining the source material remains intraspecific step hybridization. Crossings were performed between genetically distant forms, differing in origin and required traits and properties. The use of chemical mutagenesis was a productive way to change the heredity of genotypes in terms of drought tolerance. When breeding for productivity, both in dry years of research and in favorable years, the most objective markers were identified — the size of the aerial mass, the mass of grain per plant, spike, and harvest index. The magnitude of the correlation coefficients between the yield per unit area and the elements of its structure is established. It was most closely associated with them in dry years, while in wet years it decreased. Power the correlation of the characteristics of the pair - the grain yield per square meter - the aboveground biomass averaged r = 0.73, and in dry years it was higher (0.91) than in favorable ones (0.61 - 0.70) , between the harvest and the harvest index - r = 0.81 (on average). In dry years, the correlation coefficient increased to 0.92. Research data confirms the greatest importance of the mass of grain from one ear and the plant in the formation of grain yield per unit area in both dry and wet years. In dry years, the correlation coefficient between yield and grain mass per plant was on average r = 0.80; in favorable years, r = 0.69. The relationship between yield and grain mass from the ear was greater — r = 0.84 and r = 0.82, respectively. Consequently, the breeding significance of the aboveground mass and the productivity of the ear, as a criterion for the selection of the crop, especially increases in the dry years. They were basic in the selection.


Sign in / Sign up

Export Citation Format

Share Document