Abstract

We present a multi-level formation model for complex software systems. The previous works extract the software systems to software networks for further studies, but usually investigate the software networks at the class level. In contrast to these works, our treatment of software systems as multi-level networks is more realistic. In particular, the software networks are organized by three levels of granularity, which represents the modularity and hierarchy in the formation process of real-world software systems. More importantly, simulations based on this model have generated more realistic structural properties of software networks, such as power-law, clustering and modularization. On the basis of this model, how the structure of software systems effects software design principles is then explored, and it could be helpful for understanding software evolution and software engineering practices.

Highlights

  • Many systems in nature and society reveal network organizations

  • The main contribution of this paper is that a multi-level model for software network evolution is proposed

  • Through the comparisons with the real software networks from different aspects, the model has been proven to be inherently close to describing the formation process of real software systems

Read more

Summary

Introduction

Many systems in nature and society reveal network organizations. These networks, such as biological protein networks [1], science collaborations [2,3], social networks [4] and the Internet [5], have been found to represent some attributes, such as scale free, small world, etc. For the software systems with a more complex structure, the corresponding software networks are organized to be highly functional, modularized [19] and evolvable [15] This brings some further studies on software networks, such as community detection [20,21], quality assessment [10], important unit identification [22], bug classification [23] and developer social collaboration [24,25], which are helpful to various phases in software engineering practices. In view of the current situation discussed above, we aim at more accurately understanding the general mechanism that governs the evolution of software systems and exploring the cause-effect relationship between a variety of software development principles and the structure of software systems To accomplish this goal, we have developed a multi-level model of software evolution, which represents software systems as directed networks and adopts a modular binding process for new component attachments.

Levels of Software Systems
Level I
Level II
Level III
The Mechanism of Software Evolution
Direction of Attachment
Probability of Attachment
Simulation Results
Degree Distributions
Correlation between In-Degree and Out-Degree
Level of Clustering and Modularity
Cohesion and Coupling
Reuse and Modularity
Influence of Motifs on Software Structure
Conclusions

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.