Software Systems as Complex Networks

View/ Open
Author(s)
Wen, Lian
Kirk, Diana
Dromey, RG
Griffith University Author(s)
Year published
2007
Metadata
Show full item recordAbstract
As software systems become larger and more complex, in order to understand, manage and evolve these systems, we need better ways of characterizing and controlling their macroscopic properties. We suggest complex network theory may be useful for these purposes. In recent years, researchers have shown that many complex systems from different disciplines can be investigated as complex networks and most of them comply with a scale-free network model. We explore the view that a software system can be studied as a network with a number of components (classes) connected by dependency (integration) relationships; we call this network ...
View more >As software systems become larger and more complex, in order to understand, manage and evolve these systems, we need better ways of characterizing and controlling their macroscopic properties. We suggest complex network theory may be useful for these purposes. In recent years, researchers have shown that many complex systems from different disciplines can be investigated as complex networks and most of them comply with a scale-free network model. We explore the view that a software system can be studied as a network with a number of components (classes) connected by dependency (integration) relationships; we call this network the Component Dependency Network (CDN). The CDNs of several Java libraries and applications have been examined and all of them exhibit some scale-free characteristics. This result has some practical value including that it allows us to identify important components (classes) and thereby assists software maintenance and reengineering. We have built a tool to study software systems as complex networks. In the paper we also suggest ways of controlling and changing how systems evolve in order to improve their understandability and maintainability.
View less >
View more >As software systems become larger and more complex, in order to understand, manage and evolve these systems, we need better ways of characterizing and controlling their macroscopic properties. We suggest complex network theory may be useful for these purposes. In recent years, researchers have shown that many complex systems from different disciplines can be investigated as complex networks and most of them comply with a scale-free network model. We explore the view that a software system can be studied as a network with a number of components (classes) connected by dependency (integration) relationships; we call this network the Component Dependency Network (CDN). The CDNs of several Java libraries and applications have been examined and all of them exhibit some scale-free characteristics. This result has some practical value including that it allows us to identify important components (classes) and thereby assists software maintenance and reengineering. We have built a tool to study software systems as complex networks. In the paper we also suggest ways of controlling and changing how systems evolve in order to improve their understandability and maintainability.
View less >
Conference Title
PROCEEDINGS OF THE SIXTH IEEE INTERNATIONAL CONFERENCE ON COGNITIVE INFORMATICS
Publisher URI
Copyright Statement
© 2007 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.