scholarly journals Software Evolution Characterization - A Complex Network Approach

2011 ◽  
Author(s):  
Kecia A. M. Ferreira ◽  
Mariza A. S. Bigonha ◽  
Roberto S. Bigonha ◽  
Bárbara M. Gomes

Software evolution has been the subject of research in the last decades, revealing that a software system has continuing growth, continuing changes, increasing complexity and declining quality. However, the knowledge about how this process occurs is not consolidate yet. This paper presents the results of a study about software evolution characterization based on concepts of Complex Networks. We analyzed 16 open-source software systems and one commercial application, in a total of 129 versions. The results of this study show that: the density of a software network decreases as the software system grows; the diameter of such networks is short; the classes with higher in-degree keep this status; such classes are unstable and their internal cohesion degrades. Our investigations also revealed an interesting picture which models the macroscopic structure of software networks. We called it the little house.

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.


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.


Author(s):  
Luyin Zhao ◽  
Fadi P. Deek

The open source movement can be traced back to the hacker culture in the ’60s and ’70s. In the early 1980s, the tenet of free software for sharing was explicitly raised by Richard Stallman, who was working on developing software systems and invited others to share, contribute, and give back to the community of cooperative hackers. Stallman, together with other volunteers, established the Free Software Foundation to host GNU (Gnu’s Not Unix, a set of UNIX-compatible software system). Eric Raymond, Stallman’s collaborator, is the primary founder of the Open Source Initiative. Both communities are considered the principal drivers of open source movement.


Author(s):  
Jaswinder Singh ◽  
Kanwalvir Singh ◽  
Jaiteg Singh

A Software engineering is an approach to software development. Once software gets developed and delivered, it needs maintenance. Changes in software incur due to new requirements of the end-user, identification of bug in software or failure to achieve system objective. It has been observed that successive maintenance in the developed software reduces software quality and degrades the performance of software system. Reengineering is an approach of retaining the software quality and improving maintainability of the software system. But the question arises “when to reengineer the software”. The paper proposed a framework for software reengineering process using decision tree approach which helps decision makers to decide whether to maintain or reengineer the software systems.


2008 ◽  
Vol 387 (24) ◽  
pp. 6190-6200 ◽  
Author(s):  
Xiaolong Zheng ◽  
Daniel Zeng ◽  
Huiqian Li ◽  
Feiyue Wang

2015 ◽  
Vol 8 (1) ◽  
pp. 62-81
Author(s):  
Héctor J. Macho ◽  
Gregorio Robles ◽  
Jesus M. González-Barahona

In today's world, management often rely on FLOSS (Free/Libre/Open Source Software) systems to run their organizations. However, the nature of FLOSS is different from the software they have been using in the last decades. Its development model is distributed, and its authors are diverse as many volunteers and companies may collaborate in the project. In this paper, the authors want to shed some light on how to evaluate a FLOSS system by looking at the Moodle platform, which is currently the most used learning management system among educational institutions worldwide. In contrast with other evaluation models that have been proposed so far, the one presented here is based on retrieving historical information that can be obtained publicly from the Internet, allowing the authors to study its evolution. As a result, they will show how using their methodology management can take informed decisions that lower the risk that organizations face when investing in a FLOSS system.


2013 ◽  
Vol 278-280 ◽  
pp. 2029-2032
Author(s):  
Hao Hua Zhang ◽  
Yu Ren Zhai ◽  
Wen Jiang Feng ◽  
Hai Shen

The networks of interdependencies in large-scale Object Oriented software systems are complex, visualization and understand become the important issues for developer. We propose that topology structure can be imaged to network and better understood via core structure decomposition based on complex networks. The core structure analysis allows characterizing networks beyond the degree distribution and uncovering some potential characteristics, Such as structural hierarchies, centrality and evolution. We analyze the core structure of some popular open source software and discuss the differences and similarities, get some noticeable properties, the result show the method provides an interesting view helping to comprehend and evaluate system in development.


The software system evolves and changes with the time, so the test suite must be maintained according to code changes. Maintaining test cases manually is an expensive and time-consuming activity, especially for large test suites, which has motivated the recent development of automated test-repair techniques. Several researchers indicate that software evolution shows a direct impact on test suites evolution, as they have strong relationships and they should be evolved concurrently. This article aims to provide statistical evidence of having this significant relationship between the code production and its associated test suites. Seven systems along with releases are collected and eight metrics were calculated to be used in this study. The result shows how the systems under study are evolving and have a high impact on their test suites, although two metrics provide a negative significant relationship.


2016 ◽  
Vol 2016 ◽  
pp. 1-9 ◽  
Author(s):  
Yi Ding ◽  
Bing Li ◽  
Peng He

To help the newcomers understand a software system better during its development, the key classes are in general given priority to be focused on as soon as possible. There are numerous measures that have been proposed to identify key nodes in a network. As a metric successfully applied to evaluate the productivity of a scholar, little is known about whetherh-index is suitable to identify the key classes in weighted software network. In this paper, we introduced fourh-index variants to identify key classes on three open-source software projects (i.e., Tomcat, Ant, and JUNG) and validated the feasibility of proposed measures by comparing them with existing centrality measures. The results show that the measures proposed not only are able to identify the key classes but also perform better than some commonly used centrality measures (the improvement is at least 0.215). In addition, the finding suggests that mE-Weight defined by the weight of a node’s topkedges performs best as a whole.


2010 ◽  
Vol 44-47 ◽  
pp. 3548-3552 ◽  
Author(s):  
Hao Hua Zhang ◽  
Wen Jiang Feng ◽  
Li Juan Wu

Measuring the complexity of a large-scale software system has been a urgent demand in software development practices. The traditional software metrics can hardly describe the structural complexity in modern software. As the complex networks theory has been used to study the software structure, we analyzed a great many software systems. The analyzing results reveal the parameters in complex networks can be used to represent property of software structure. And this paper introduces some efficient metrics and measuring methods based on basic parameters in complex networks. A practice example was described to demonstrate the effectiveness of the metrics.


Sign in / Sign up

Export Citation Format

Share Document