Software systems through complex networks science: Review, analysis and applications
Lovro \v{S}ubelj, Marko Bajec

TL;DR
This paper reviews how network science can analyze complex Java software systems, revealing insights into their structure, vulnerabilities, and quality indicators, with implications for software engineering practices.
Contribution
It introduces network-based analysis techniques for software systems, proposing new quality indicators and highlighting their applications in software engineering.
Findings
Software systems are highly vulnerable to bug propagation.
They are difficult to control despite being analyzable with network theory.
Network analysis reveals structural properties relevant to software quality.
Abstract
Complex software systems are among most sophisticated human-made systems, yet only little is known about the actual structure of 'good' software. We here study different software systems developed in Java from the perspective of network science. The study reveals that network theory can provide a prominent set of techniques for the exploratory analysis of large complex software system. We further identify several applications in software engineering, and propose different network-based quality indicators that address software design, efficiency, reusability, vulnerability, controllability and other. We also highlight various interesting findings, e.g., software systems are highly vulnerable to processes like bug propagation, however, they are not easily controllable.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComplex Network Analysis Techniques · Advanced Software Engineering Methodologies · Software Engineering Research
