Font Size: a A A

Topology Analysis Of The Small-scale Software Networks Based On Class Abstract Level

Posted on:2011-08-14Degree:MasterType:Thesis
Country:ChinaCandidate:J LiuFull Text:PDF
GTID:2178360308975335Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Software developers feel more and more difficult to understand and control software systems which are increasingly complex. The traditional software engineering is nearing its limits of complexity and scalability. Complexity makes software development difficult, and quality is hard to guarantee. Lower the cost, produce high quality software products in the prescribed period of time is the goal that all software engineering approaches strive to achieve. After long-term engineering practice, software developers recognize that relationship is very close between structure, function and quality for a large-scale complex software system. Therefore, how to build a good structure in system design and how to optimize the structure in system maintenance has always been an important issue in the field of software engineering research.The research results of complex systems and complex network provide a strong support for exploring structural characteristics and behavior characteristics of large-scale software systems. Through interdisciplinary research on software engineering and complex systems, from the view of complex systems and complex network to re-examine the software, the concept of software network is created:complex software system can be decomposed into a series of software entities (formed elements) collection, such as classes, subroutines and components etc. Through the interaction of these entities, achieve required (expectations) computing function. If consider classes, subroutines, components and other elements which belong a system as nodes, the interaction between two elements is represented as a directed edge, software structure in essence is expressed as a content interconnected complex network topology pattern.By abstracting a software system as a kind of (artificial) complex network for research, from the perspective of overall situation, to explore and find the structural characteristics, evolution rules, and the resulting behavioral characteristics in it will contribute to know and understand the essential characteristics scientifically for software. Simultaneously, with the tremendous growth in scale, the "Networking" trend of software is becoming increasingly evident (that is a software system can be expressed as an abstract model of complex network), how to analyze and explore its unique characteristics about network structure and evolution rules has been become the focus of research. Currently, topology analysis on the software network has just started at our country and abroad, related work has revealed some common topology characteristics in software network by establishing model. However, existing software network model also has some problems, for instance, ignoring some important relationships between composed elements, however it can not provide a complete view of software. Moreover, dependencies difference between classes of object-oriented software is not included in the existing software model, but the dependency is an important indicator of software reuse, should consider the use of weighted directed networks to describe the topology of object-oriented software system. In addition, in the current research, software system is typically represented by using undirected or non-weighted directed network model, the property of every node is often ignored, but the impact is generated both its own property and dynamic behavior of a single class for the whole structure system can not be ignored.In the context of this research, in this paper, using existing object-oriented software system java source code, scanning the intermediate results (.class or.jar file), and analyzing these intermediate results to obtain the software network model. Learning the related theories and methods of complex network, features analysis of structure of software system as a starting point, with a set of processes, launch a series of studies on the software system structure, and combine with the related software engineering principles to explain experimental results, hope to contribute little strength to research on topology analysis of software network.Concrete research work to obtain the results in the following aspects:(1) With the tool Dependency Finder, extract the relationships between classes from every object-oriented software system (the directed network model with class hierarchy of object-oriented software system is established). Calculate the parameters which are reflecting the network topology characteristics in the established network model, every class-level network of object-oriented software system is proved to has the features of "small world" and "scale-free" which belong to the complex network.. Major analysis is launched around average shortest path length, clustering coefficient and degree distribution in class-level software network. Explain the causes of generated structural characteristics in these software systems from the development process model. To believe, both construction process that followed the principle of encouraging reuse and functional constraints that must be considered are causes eventually lead to reflect the "small-world" and "scale-free" characteristics in object-oriented software systems.(2) By using the tool Pajek, I draw out four global software network structural graphs with class-level for four open-source software systems. And from the visual point of view, I intuitively analyze the structural network of whole software system. On this basis, those core codes are listed which are used to internal interaction for each software network. Both higher clustering coefficient and smaller average distance (that is small-world characteristic) are existing in software dependent networks, showing that a large number of groups are existed when software are designed and implemented, they followed the principle of high cohesion and low coupling. Strong links between the members within the group, but loose connection between groups. Nodes are used to connect different groups as the cores of the internal interaction. They are likely to form the skeleton, which is core software architecture to achieve. Starting from the topology, find and analyze such nodes and node groups, will hope us to exact the architecture and understand the operation mechanism within software systems.(3) With the tool Mfinder, under the discovery and research methods of network motif based on complex network, have researched organizational structural features with class-level software network thorough analyzing 3-4 nodes connected sub-graphs in software networks. Found that large number of sub-structures have simple interactions among software systems so that the software systems tend to simply interact to achieve function. Additionally, four software systems have some common small-scale structures, these small structures in these systems have much larger frequency than they appear in random networks, they can be considered some typical network connections with class-level software network. These typical connections based on a large number of existing structures in the systems, they may represent a commonly used design patterns. Researching small structures will help us fully understand the complexity of software systems, and it plays a very important role of quantitatively analyzing software.(4)Doing statistics for class-nodes WMC distribution among four software systems, Found object-oriented software network not only has a "scale-free" feature, but also reflect the heterogeneity of the functional distribution(classes WMC distribution is roughly follow the power law distribution), however, the causes of the results remains to be further studied.
Keywords/Search Tags:software network, topology analysis, class-level, small-world, scale-free
PDF Full Text Request
Related items