Font Size: a A A

Research Of Object-oriented Software Structure Based On Local-world Directed And Weighted Network

Posted on:2012-01-07Degree:MasterType:Thesis
Country:ChinaCandidate:W W LiFull Text:PDF
GTID:2178330332990409Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With the development of computer technology, the effect of computer software becomes more and more important in all walks of life, which aims to solve complicated and practical problems. In order to continuously meet the new demands of customers, and constantly adapt to changes in application environment, software entities and the interactive relationships which constitute the software system show magnitude growth. The scale of software systems has growing larger, the complexity has increasing, software developers feel more and more difficult to understand and control software system. The software complexity has greatly influenced the development and quality of software systems, which is the main factor leading to software crisis. The whole performance of system depends on its structure, the performance of software systems are often influenced by structural characteristics and properties of the system. The software structure is closely related with its function and quality. The key to solve the crisis of software quality is to study the structure of software systems and further achieve the purpose of controlling the software complexity.Complex systems and complexity science are the forefront of scientific development in 21st century. From the whole and global perspective, the study of complex network provides a powerful tool to the research on structure and behavior of complex systems. Through the interdisciplinary research between Software Engineering and Complex Systems, software systems are abstracted as artificial complex networks with a view of network. Software system can be seen as a complex network which is composed of classes, subroutines, components and the interrelationships between them. If we consider the software entities as nodes, and see the relationships between software entities as edges, the software system can be abstracted as the form of network topology.Through drawing theories and methods of complex networks, and using the large-scale tool named DependencyFinder to analyze the source code of object-oriented software systems, this article abstracts object-oriented software system as the network. Based on the previous researches, we introduce the concept of the edge weight and give it special significance, and conduct a series of research on the network structure of software systems. The main work of the paper is as follows: we analyzed the whole topology characteristics based on the weighted-network of software, verified that the JDK software network has complex network properties. We also proposed concepts of dependency level and effect index on the basis of edge weight, they are used to measure the dependence extent between two nodes and the effect extent of different class nodes on the entire software network. Analysis of the complex interrelations between software entities revealed the importance of dependencies between the entities. Based on the guiding principles in object-oriented software development, we explained the reasons for these complex network properties. Finally, based on local-worlds, we proposed an evolution model in order to simulate the evolution process of object-oriented software system and revealed the evolution rule.The mainly contents of this paper are composed of the following three parts:Firstly, we analyzed the whole topology characteristics of the weighted-network of software. The definition of software network is: the classes of object-oriented software system are seen as the nodes, the edges are the dependency relations between classes which are extracted by analytical tools, and the number of inter-dependency is defined as edge weight. Experiments showed that the weighted JDK network obey the power law, and have small average path length, large clustering coefficient. The above results mean that the weighted JDK software network have"small-world property"and"scale-free property". In addition, we also found that the distribution of EI show the power law properties, the existence of multiple local-worlds in software network. Local-world is a group of related functionally classes, the interaction between local-worlds constitutes the entire software network.Secondly, we analyzed the formation mechanism of complex network properties. Based on the guiding principles in object-oriented software development, we explained the reasons for these complex network properties. In object-oriented software network, if the distance is greater between classes, this will add complexity to program, easily hide potential hazard, and decrease its readability. All of those will go against encoding, modification and testing. Large clustering coefficient shows there is a large number of edges in local area, this is in conformity with the modularization principle which software development asks for. The reason why object-oriented software network exhibits the scale-free property is that software development promote reuse. In order to reduce the cost of development, there are some classes with high reuse extent and basic functions. The results that the distribution of EI have the power law properties indicated that classes with high reuse extent are in a tiny minority. Effect index of nodes reveals some guiding principles in software development process. If class nodes with high EI have a serious design fault, or the change of these classes is not reasonable, it will affect most classes, and lead to a decline in reusability. These results have an important quantization and guidance role in software modularity and reuse for software development and testing. Finally, based on local-worlds, we proposed an evolution model to simulate the evolution process of object-oriented software system. Experimental results show that the evolved system still maintains its complex network features, and the model can reflect the evolution of statistical properties of the software network. The model helps developers better understand features and evolution of large-scale object-oriented software systems, has important guiding significance to the further evolution and upgrade.
Keywords/Search Tags:complex networks, object-oriented software network, software architecture, evolution model
PDF Full Text Request
Related items