Modeling the growth of complex software function dependency networks

James Ma, Daniel Zeng, Huimin Zhao

Research output: Contribution to journalArticlepeer-review

14 Scopus citations


Software engineering efforts can potentially benefit much from a good understanding of the structures of existing software systems and the processes governing their development. Towards that end, we study software systems by means of the complex network analysis framework. We model a software package as a network, with nodes representing the functions in the package and edges representing the dependencies among the functions. Our empirical analysis of five widely-adopted open-source software packages reveals a set of interesting features of such networks, which cannot be adequately reproduced by existing complex network models. We then set out to develop a new network growth model, explicitly imitating generally-advocated software development principals, such as divide-and-conquer, modularization, high intra-module cohesion, and low inter-module coupling. Results of our analytical derivations and numeric studies show that our model can more closely reproduce the particular features exhibited by real-world software packages, thus hopefully better explaining the phenomena of concern.

Original languageEnglish (US)
Pages (from-to)301-315
Number of pages15
JournalInformation Systems Frontiers
Issue number2
StatePublished - Apr 2012


  • Cohesion and coupling
  • Complex networks
  • Network growth model
  • Software systems

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Information Systems
  • Computer Networks and Communications


Dive into the research topics of 'Modeling the growth of complex software function dependency networks'. Together they form a unique fingerprint.

Cite this