An ML-based Approach to Predicting Software Change Dependencies: Insights from an Empirical Study on OpenStack
2508.05034v1
cs.SE, cs.LG
2025-08-09
Авторы:
Arabat, Ali, Sayagh, Mohammed, Hassine, Jameleddine
Резюме на русском
**Резюме**
В статье предлагается ML-подход для прогнозирования зависимостей между изменениями в программных системах, основанный на данных OpenStack. Растущая сложность современных систем приводит к усложнению управления зависимостями между изменениями, которые являются ключевыми для эффективной работы CI/CD-пайплайнов. Авторы выявили, что 51,08% зависимостей обнаруживаются на этапе кодового ревью, после прохождения средней задержки 5,06 часов. В среднем, разработчики тратят 57,12 часов на поиск зависимостей среди среднего числа 463 изменений.
Предложенный подход включает две ML-модели: предсказывающую вероятность зависимости и идентифицирующую конкретные пары зависимых изменений. Эти модели показали высокую точность: AUC 79,33% и 91,89%, Brier-скорость 0,11 и 0,014, соответственно. Топ-k-рекурренция второй модели заслуживает отметки, но топ-k-прецизия требует доработки. Результаты подтверждают потенциал ML-анализа для улучшения управления зависимостями в разработке программного обеспечения.
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 OpenStack over
the past 10 years are interdependent. Surprisingly, 51.08% of these
dependencies are identified during the code review phase-after a median delay
of 5.06 hours-rather than at the time of change creation. Developers often
spend a median of 57.12 hours identifying dependencies, searching among a
median of 463 other changes. To help developers proactively identify
dependencies, we propose a semi-automated approach that leverages two ML
models. The first model predicts the likelihood of dependencies among changes,
while the second identifies the exact pairs of dependent changes. Our proposed
models demonstrate strong performance, achieving average AUC scores of 79.33%
and 91.89%, and Brier scores of 0.11 and 0.014, respectively. Indeed, the
second model has a good top-k recall across all types of pairs, while the top-k
precision has room for improvement.
Ссылки и действия
Дополнительные ресурсы: