• Corpus ID: 15944138

Hierarchical Small Worlds in Software Architecture

  title={Hierarchical Small Worlds in Software Architecture},
  author={Sergi Valverde and Ricard V. Sol{\'e}},
  journal={arXiv: Disordered Systems and Neural Networks},
  • S. Valverde, R. Solé
  • Published 11 July 2003
  • Computer Science
  • arXiv: Disordered Systems and Neural Networks
The components of a large software application do not interact in random ways. Instead, class diagrams exhibit remarkable topological similarities to other natural and artificial systems. The components of a large software application are very well connected because the mean shortest distance between them is very low in spite of having a relatively small number of connections per class. In addition, these diagrams are very heterogeneous. These measurements are of a general nature and are… 

Figures and Tables from this paper

Complex Dependencies in Large Software Systems
Two large, open source software systems are analyzed from the vantage point of complex adaptive systems theory and it is suggested that the eigenvector centrality can play an important role in deciding which open sourceSoftware packages to use in mission critical applications.
On Structural Properties of Large-Scale Software Systems: From the Perspective of Complex Networks
The collaboration relationships between header files in the source node of Linux kernels are analyzed by constructing weighted network- Header File Collaboration Network (HFCN), which can provide a better description of the organizational principles at the basis of the architecture of source codes in large computer software systems.
Power-Laws in a Large Object-Oriented Software System
A comprehensive study of an implementation of the Smalltalk object oriented system, one of the first and purest object-oriented programming environment, searching for scaling laws in its properties, systematically found Pareto - or sometimes log-normal - distributions in these properties.
How multiple-dependency structure of classes affects their functions a statistical perspective
A special structural feature of individual class is defined to investigate the relationship between external structure and internal function and the metric (m) takes in-degree and reachable set of nodes in class-level dependency graphs derived from source code into consideration.
The complex software network evolution of Java Development Kits: topological properties and design principles
The family of Java networks constructed from Java Development Kits is in the category of small-world and scale-free networks owning a disassortative hierarchical structure, whose evolving properties are investigated.
Empirical analysis of software coupling networks in object-oriented software systems
It is found that software coupling network is of small-world and scale-free property, the exponents of in-degree and out-degree distributions are different, and the betweenness distribution of SCN is also power law.
A study of the community structure of a complex software network
It is found that the number of communities in which the software networks can be partitioned and their modularity, average path length and mean degree can be related to the amount of bugs detected in the system.
Evolving Topology of Java Networks
The community structure in the Java networks is identified based on the organization of JDK packages, with which some insights have been shed into the evolution of complex software networks.
Identifying key classes of object-oriented software based on software complex network
This work proposes an approach using various complex network metrics to automatically identify key classes from global and local aspects, and shows that this approach can accurately identifyKey classes compared with existing literature.
Community structure of complex software systems: Analysis and applications


Software systems as complex networks: structure, function, and evolvability of software collaboration graphs
  • C. Myers
  • Computer Science
    Physical review. E, Statistical, nonlinear, and soft matter physics
  • 2003
This work has examined software collaboration graphs contained within several open-source software systems, and found them to reveal scale-free, small-world networks similar to those identified in other technological, sociological, and biological systems.
Scale-free networks from optimal design
This letter presents the first evidence for the emergence of scaling (and the presence of small-world behavior) in software architecture graphs from a well-defined local optimization process, and the consequences for other complex networks.
Approach to a theory of software evolution
  • M. Lehman
  • Business
    Eighth International Workshop on Principles of Software Evolution (IWPSE'05)
  • 2005
The author summarises his most recent results outlining a proof that every E-type program reflects an unbounded number of assumptions about the application implemented, supported or modelled by the program, and that some of these become invalid over time as a consequence of changes in the dynamic real world.
Optimization in Complex Networks
Here it is shown that a simple optimization process can also account for the observed regularities displayed by most complex nets, and constraints provide a new explanation for scaling of exponent about -3.3.
Statistical mechanics of complex networks
A simple model based on these two principles was able to reproduce the power-law degree distribution of real networks, indicating a heterogeneous topology in which the majority of the nodes have a small degree, but there is a significant fraction of highly connected nodes that play an important role in the connectivity of the network.
Design patterns: elements of reuseable object-oriented software
The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns. The nice thing is, most experienced OOP designers will find out
Object-oriented metrics that predict maintainability
Conceptual entropy and its effect on class hierarchies
The article describes an automated classification tool that helps minimize conceptual entropy, which is manifested by increasing conceptual inconsistency as the authors travel down the hierarchy.
Extracting and restructuring the design of large systems
The approach used is to map the resource exchange among modules and then derive a hierarchical design description using a system-restructuring algorithm, using a module interconnection language, NuMIL.
Scale-free Geometry in Object-Oriented Programs
This article examines the graphs formed by object-oriented programs written in a variety of languages, and shows that these turn out to be scale-free networks as well.