Font Size: a A A

Softology:Formation Mechanism Analysis And Modelling For Software Networks

Posted on:2014-02-01Degree:DoctorType:Dissertation
Country:ChinaCandidate:H LiFull Text:PDF
GTID:1318330482454609Subject:Computer system architecture
Abstract/Summary:PDF Full Text Request
The studies on complexity and evolutionary mechanisms of software systems are impor-tant issues in software engineering. The traditional analyzing and modeling methods particu-larly emphasize on describing partial behaviors of software systems. However, these methods represent lacking of overall structure description in the process of the growing network scales and increasing complexity of software systems, and are not suitable for solving corresponding problems in large-scale and complex software systems any more.The analyzing and modeling method based on complex networks provides a practical way to extricate from the predicament. This method has been widely accepted by researchers and designers in software engineering due to its rapid progresses, and becomes the foundation of the studies on structures and evolu-tionary mechanisms of software systems from the overall angle of view.Object-orieted software systems can be treated as complex networks in diverse scales. Particularly, the classes, components and subsystems are respectively extracted and treated as vertices in corresponding scales, and the collaborations between the vertices are treated as edges. In this work, softology, a framework for software network studies, is introduced based on current research contents. The research contents are divided into three parts:structural emergence, metrics and formation mechanisms of software networks. Then the detailed con-tents, purposes, significances and progresses are discussed in the following. Softology can be the cornerstone of further studies for software network research. In the studies of software net-work formation mechanisms, various open source software systems with several versions are empirically studied, the additions of new vertices and linking probabilities are discussed, the hierarchical structures and self-similarity in local area of systems are analyzed. Based on these studies, software network evolution models are proposed with the ingredients of above. And then the effectiveness of the models is verified through the comparisons between simulations and real-world software networks. The detail of this work is described as follows.New vertices are usually treated as the additions to software networks by the mechanism of BA preferential attachment in previous model. Because the directivity of new connections is not considered, it will result in appearances of some vertices with large in-degree and large out-degree. In other words, it could lead to unusual phenomena in real-world software systems that the corresponding classes have complex internal behavior and are frequently reused. How-ever, the nonreversible relationships between classes in software systems determine the fact that software networks are directed. Therefore, varieties of real-world software systems are empir-ically investigated. The first outcome of the statistics on the directions of new connections is that most of these connections are directed to existing vertices.The second is the symmetrical linking probabilities:the probabilities for existing vertices to acquire new incoming and out-going connections are respectively proportional to their in-degree and out-degree, according to the correlations between the numbers of newly incoming and outgoing connections the exist-ing vertices acquire and their in-degree and out-degree. Then the expressions of in-degree and out-degree distributions of software networks are presented through the theoretical deductions, and it is illuminated that the distributions are power-law. Furthermore, the exponents of the distributions are also presented and corresponding with the exponents of real-world software networks. Symmetrical linking probabilities can cover the shortage of BA model for desscrib-ing the formation of directed networks, and it could be helpful for understanding the process of software evolution.The feature of higher modularization presented in software networks is verified through the statistics on Newman modularity. The modularized structure originates from the formation process of software networks. In this work, various real-world software systems are empirical-ly treated as case studies. The newly added sub-graphs are extracted through the comparisons between each adjacent versions of the same software sample. The internal collaborations with-in the sub-graphs indicate that they are composed of some isolated sub-graphs. Thus the new vertices are not added one by one as previous models described, but added to previous networks by modules. Based on this attachment pattern and symmetrical linking probabilities, a modular attachment model is presented and describes the formation of modularized structure in software systems, in which the collaborations between new vertices and existing vertices are controlled by a parameter named coupling rate. Then the effectiveness of the models is verified through the comparison between simulations and real-world software networks. Moreover, this model is verified to represent better performance than other model through the comparisons to simu-lations of these models, and it could be the theoretical foundation of modularization design for software systems.The top-down mechanism of architecture design for software systems potentially results in hierarchical structure. In this work, software networks are divided into multi-layers by k-core decomposition. The divisions to many software samples suggest that software networks display compressed hierarchical structure (compared to other complex networks, such as AS-level Internet). Then the statistics on compactness within the same layer and tightness between different layers imply that the vertices in the same layer are tightly connected, and the highest layer controls the overall network. Moreover, the highest layer is extracted as the backbone of the overall network. The statistics indicate that the vertices in the backbone display small-world; and the degrees of some vertices are not large, though the corresponding classes play an important role in software systems. This method could promote the efficiency of understanding the software system structure.On the principle of hierarchy, modularization and motif represented in software network-s, a multiscale model for software network evolution is proposed. In this model, the structural units are defined as Scale-I elements which characterize the classes,Scale-II elements (are com-posed of some Scale-I elements) which characterize design patterns and components, Scale-Ⅲ elements (are composed of some Scale-Ⅱ elements) which characterize subsystems; symmet-rical linking probabilities are obtained when new elements attach to previous networks; the collaborations between new vertices and existing vertices are controlled by coupling rate; the proportions of incoming and outgoing connections are controlled by the parameter of reuse ratio. Then the effectiveness of the models is verified through the comparison between simula-tions and real-world software networks. Based on the simulations, the trade-off between cohe-sion and coupling, and the trade-off between reuse and modularity in software system design are discussed, while software network predictions and interventions are also achieved, through adjusting the values of parameters to simulate software networks with different network char-acteristics. This model is useful for better understanding the structure and its formation process of software systems.
Keywords/Search Tags:Software networks, preferential attachment, symmetrical linking probabilities, modularization, clustring, k-core, motif, multiscale
PDF Full Text Request
Related items