An ML-based Approach to Predicting Software Change Dependencies: Insights from an Empirical Study on OpenStack
Ali Arabat, Mohammed Sayagh, Jameleddine Hassine

TL;DR
This paper presents an empirical study on dependency management in OpenStack and introduces ML models to predict change dependencies, significantly aiding developers in proactive dependency identification and reducing manual effort.
Contribution
The paper offers the first empirical analysis of change dependencies in OpenStack and proposes two ML models that effectively predict dependency likelihood and specific dependent change pairs.
Findings
Over 50% of dependencies are identified during code review after delays.
Developers spend median 57 hours to identify dependencies.
ML models achieve high AUC scores of 79.33% and 91.89%.
Abstract
As software systems grow in complexity, accurately identifying and managing dependencies among changes becomes increasingly critical. For instance, a change that leverages a function must depend on the change that introduces it. Establishing such dependencies allows CI/CD pipelines to build and orchestrate changes effectively, preventing build failures and incomplete feature deployments. In modern software systems, dependencies often span multiple components across teams, creating challenges for development and deployment. They serve various purposes, from enabling new features to managing configurations, and can even involve traditionally independent changes like documentation updates. To address these challenges, we conducted a preliminary study on dependency management in OpenStack, a large-scale software system. Our study revealed that a substantial portion of software changes in…
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
TopicsSoftware System Performance and Reliability · Software Engineering Research · Software Engineering Techniques and Practices
