## 2 Materials and Methods
### Leveraging Changelog Data in Change Propagation
It is a process of finding relationships between items in large datasets. It looks at the frequency of item pairs and then tries to identify patterns that occur frequently. These patterns can be used to make predictions about future events. Third, time series analysis. Some researchers, for instance, [35; 36; 37], applied time series analysis. It is a type of data analysis that studies the patterns and trends of a set of data points over a period of time. Time series analysis is used to identify changes in data points over time and to understand the underlying drivers of such changes. It can be used to forecast future values of data points and analyze the impact of certain events on a set of data points. Time series analysis is a promising approach for dealing with some of the issues associated with rule-based and raw counting algorithms [38]. There is a great deal of research on using historical changes to identify code dependencies in software systems. Various data mining techniques have been employed to predict the change propagation of changes by extracting historical changelogs. [PERSON] et al. [39] uses the history of release of a large software system together with change data to identify potential code restructuring opportunities. [PERSON] et al. [40] incorporates information on development, historical changes, and other metadata to predict the risk of failure in new development changes. [PERSON] et al. [9] propose a heuristic to predict the propagation of change at the element level. [PERSON] et al. [10] annotated software versions to extract association rules to guide programmers on further changes to the code. [PERSON] et al. [34] proposed an approach to assist developers with modification tasks by augmenting analyses based on source code and making them more predictable, based on historical change patterns. [PERSON] et al. [41] used the Hoeffding tree classifier to predict whether a software build will succeed or fail. [PERSON] et al. [42] proposed a framework to analyze the ripple effects of changes proposed to the software and provided a way to evaluate these to predict the impact of the changes. The study by [4] explores the application of data mining techniques to predict change propagation, applicable to open-source software systems, by focusing on Linux, FreeBSD, and Apache. Due to the complex semantics of change propagation and the indirect nature of previously proposed language techniques, it remains difficult to reason about the efficiency of self-adjusting programs and change propagation. In some instances, researchers have applied a hybrid approach to address specific challenges. For example, [PERSON] et al. [38] found that while association rules are often effective, they can fail to capture logical relationships between artifacts that are modified in subsequent change sets. Consequently, the authors proposed a hybrid recommender that combines time series (Granger causality) modeling with association rules to enhance the accuracy of functional change discovery. [PERSON] et al. [43] introduced a method for analyzing the impact of changes in software code by integrating techniques from information retrieval and software evolution. Similarly, [PERSON]. [44] developed a relational topic-based coupling approach for classes, using relational topic models to assess the closeness of two elements and demonstrating how to refine object-oriented coupling metrics. Some of the trends in recent articles to predict change propagation have been to apply a probabilistic approach and other methods at a different level of abstraction. [PERSON] et al. [11] introduced K3B, a probabilistic model to estimate the impact of change propagation, which can be used to estimate the effort required for software maintenance tasks. [PERSON] et al. [12] used the Bayesian belief network as a probabilistic tool to predict possible models of the affected system, given a change in the system at the package level. [PERSON] et al. [6] analyzed change coupling at the file level.