The anatomy of a large-scale hypertextual Web search engine
WWW7 Proceedings of the seventh international conference on World Wide Web 7
On power-law relationships of the Internet topology
Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Fundamentals of Software Engineering
Fundamentals of Software Engineering
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
Selection, tinkering, and emergence in complex networks
Complexity - Special issue: Selection, tinkering, and emergence in complex networks
Software Engineering (7th Edition)
Software Engineering (7th Edition)
Generic ownership: practical ownership control in programming languages
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Use of relative code churn measures to predict system defect density
Proceedings of the 27th international conference on Software engineering
APSEC '05 Proceedings of the 12th Asia-Pacific Software Engineering Conference
Proceedings of the 2006 international workshop on Mining software repositories
Visual exploration of function call graphs for feature location in complex software systems
SoftVis '06 Proceedings of the 2006 ACM symposium on Software visualization
Predicting component failures at design time
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Orbis: rescaling degree correlations to generate annotated internet topologies
Proceedings of the 2007 conference on Applications, technologies, architectures, and protocols for computer communications
Network monitoring using traffic dispersion graphs (tdgs)
Proceedings of the 7th ACM SIGCOMM conference on Internet measurement
Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
Predicting defects using network analysis on dependency graphs
Proceedings of the 30th international conference on Software engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
Can developer-module networks predict failures?
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Latent social structure in open source projects
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Validation of network measures as indicators of defective modules in software systems
PROMISE '09 Proceedings of the 5th International Conference on Predictor Models in Software Engineering
How developer communication frequency relates to bug introducing changes
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Codebook: discovering and exploiting relationships in software repositories
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Profiling-By-Association: a resilient traffic profiling solution for the internet backbone
Proceedings of the 6th International COnference
Assessing programming language impact on development and maintenance: a study on c and c++
Proceedings of the 33rd International Conference on Software Engineering
Identifying program, test, and environmental changes that affect behaviour
Proceedings of the 33rd International Conference on Software Engineering
Network Versus Code Metrics to Predict Defects: A Replication Study
ESEM '11 Proceedings of the 2011 International Symposium on Empirical Software Engineering and Measurement
Review code evolution history in OSS universe
Proceedings of the Fourth Asia-Pacific Symposium on Internetware
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
Categorizing bugs with social networks: a case study on four open source software communities
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
We exploit recent advances in analysis of graph topology to better understand software evolution, and to construct predictors that facilitate software development and maintenance. Managing an evolving, collaborative software system is a complex and expensive process, which still cannot ensure software reliability. Emerging techniques in graph mining have revolutionized the modeling of many complex systems and processes. We show how we can use a graph-based characterization of a software system to capture its evolution and facilitate development, by helping us estimate bug severity, prioritize refactoring efforts, and predict defect-prone releases. Our work consists of three main thrusts. First, we construct graphs that capture software structure at two different levels: (a) the product, i.e., source code and module level, and (b) the process, i.e., developer collaboration level. We identify a set of graph metrics that capture interesting properties of these graphs. Second, we study the evolution of eleven open source programs, including Firefox, Eclipse, MySQL, over the lifespan of the programs, typically a decade or more. Third, we show how our graph metrics can be used to construct predictors for bug severity, high-maintenance software parts, and failure-prone releases. Our work strongly suggests that using graph topology analysis concepts can open many actionable avenues in software engineering research and practice.