File(s) under permanent embargo
Using the k-core decomposition to analyze the static structure of large-scale software systems
journal contributionposted on 2010-08-01, 00:00 authored by H Zhang, H Zhao, W Cai, J Liu, Wanlei Zhou
The structures of large-scale software systems are complex and difficult to understand for designers and developers. Traditional software metrics can hardly describe the structural complexity in modern software, and finding a quantitative method to depict and analyze large-scale software is still a challenge. In this paper we use complex networks theory to study software structure; in particular, we visualize the software graph and use the k-core to study it based on a recursive pruning of the least connected vertices. Different types of software are analyzed and some new noticeable properties are found, such as similar coreness, the vital highest core, high-core connecting tendency, and evolution stability. These features suggest that software is organized in a defined hierarchy of increasing centrality from outside to inside. The k-core analysis can help developers to improve software understanding, instruction test, and measurement and evaluation of the system in development.