Font Size: a A A

Analysis And Modeling Of Complexity On Software Structure By Applying Complex Network Methodology

Posted on:2010-07-10Degree:DoctorType:Dissertation
Country:ChinaCandidate:H LiFull Text:PDF
GTID:1228330332485626Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
As scale and complexity of software increase rapidly, how to understand, mea-sure, manage and control software complexity is a great challenge for software engineering. After many years of software engineering practice, software designers have acknowledged that software structure is closely related to software quality. Good structure is the key to the success of software design. Therefore, how to project well structured software is one of the most researched problems in software engineering.The traditional research on software structure pay much attention on rather small granularity and the local structural characteristics, while on larger scales average approach is not usually considered. As a result, much information is lost. In the long run, this situation obstructs us from understanding and explaining the evolution of software structure and reusing successful development experiences on the system level.Recent research achievements in complex networks introduce new mathemat-ical foundations and software engineering methods for software complex systems and find that the structures of these systems share small world and scale free prop-erties of complex networks. These achievements emphasize understanding system as a whole instead of focusing on local structure and behaviors. This new approach helps us to see software system from a different angle. Although the researches on complex network mainly aim at exploring the common characteristics in various complex networks and their formation rules, some problem exist. For example, there is a, lack of analysis of evolution processes from system level; there is a lack of complex software network model for evolution; there is a kind of puzzle whether the approach that is used to abstract software network is reasonable, etc.To address the above mentioned problems, the objective of this paper is to explore the complex of software structural, to analyze the dynamical evolution processes of software system from system level, to construct models that can pre-dict the emergence of scale-free state of software network, and to measure coupling interactions of software components that induce complexity. In the follows, the primary contributions of this paper will be summarized.(1) software evolution plays a vital role in software engineering. On the one hand, the continuous evolution and development of software may improve the effi-ciency of development project. On the other hand, software evolution can decrease the system maintenance costs and also enhance the normal development of soft-ware systems. Based on the theories and methods of complex networks, we select three sets of representative object-oriented software complex systems and then fur-ther analyze the dynamical evolution processes of their source codes from system level. It is the first time in literature to report the discovery of the underlying evolution dynamics and rules of a class of object-oriented software systems from theory. All these rules provide a theoretical basis for the recognizing, understand-ing, and control of system structure and evolving characteristic of object-oriented software systems from macroscopic view.(2) Basing on analyzing evaluative structure of the software networks we con-sider accelerating growth of network as power-law growth, which can be easily generalized to real systems as better than linear growth. For accelerating growth via a power law and scale-free state with preferential linking, we focus on exploring the generic property of complex networks. Generally, two scenarios are possible. In one of them, the links are undirected. In the other scenario, the links are directed. We propose two models that can predict the emergence of power-law growth and scale-free state in good agreement with these two scenarios and can simulate much more real systems than existing scale- free network models. Moreover, we use the obtained predictions to fit accelerating growth and the connectivity distribution of software networks describing scale- free structure. The combined analytical and numerical results indicate the emergence of a novel set of models that consider-ably enhance our ability to understand and characterize complex networks, whose applicability reaches far beyond the quoted examples.(3) We explore the approach and tool to analyze dynamic software network. By analytical experiment, we conclude that the world of real time software net-works is indeed small world and scale free, just like the Web, the Internet, and many other networks we routinely use in our everyday lives. The unexpected dis-covery bring important meanings for OO program design, debugging costs, and garbage collection, etc. (4) How to measure and control coupling interactions of software compo-nents is a largely explored research problem in software network. In terms of graph theory and linear algebra, this paper investigates a pair of coupling metrics to evaluate coupling interactions between the classes of object-oriented systems. These metrics differ from the majority of existing metrics in three aspects:taking into account the strength that one class depends on other ones, reflecting indirect coupling, and distinguishing various coupling interaction. An empirical compar-ison of the novel measures with one of the most widely used coupling metrics is described. Specifically, an experiment about the relationships of this pair metrics is conducted. The result shows that software complexity derived from coupling interaction could not be accurately reflected by one dimension of coupling metric for negative correlation.This conception will help deepen our understanding of the essential of software complexity. At present the interdisciplinary research between complex networks and software engineering just grow. The approach that adopt complex network will help deepen our understanding of the essential of software complexity and provide a new insight into software engineering and raise the profile for dealing with software crisis.
Keywords/Search Tags:software structure, complex network, complexity, model
PDF Full Text Request
Related items