Graph Neural Networks for Predicting Software Architectural Drift
-
DOI:
https://doi.org/10.67228/30713315/IJAIDT-2020PII2R1CPublished 09-03-2020
Software Architecture, Architectural Drift, Graph Neural Networks (GNNs), Software Dependency Graphs, Architecture Conformance, Technical Debt Prediction, Code Evolution Analysis, Machine Learning For Software Engineering, Structural Anomaly Detection, Software Maintainability Issue
Section
ArticlesHow to Cite
[1]S. Rahman, “Graph Neural Networks for Predicting Software Architectural Drift”, IJAIDT, vol. 3, no. 2, pp. 01–24, Sep. 2020, doi: 10.67228/30713315/IJAIDT-2020PII2R1C.Abstract
Software architectural drift arises when a software system’s implementation gradually diverges from its intended architectural design, leading to reduced maintainability, increased technical debt, and higher evolution costs. Traditional drift detection methods rely heavily on manual analysis, rule-based constraints, static metrics, or architectural conformance checking, all of which struggle to capture complex and evolving structural dependencies. This paper proposes a Graph Neural Network (GNN-based) predictive framework for modeling software architecture as heterogeneous dependency graphs and identifying potential drift before it manifests in code-level violations. The approach integrates structural features, semantic code embeddings, version-history evolution patterns, and architectural constraints into a unified graph learning model. Experimental evaluation on open-source and industrial projects demonstrates that the proposed GNN model outperforms conventional static analysis and machine learning baselines in predicting architectural deviations, detecting anomalous dependency formations, and flagging early indicators of structural degradation. The study contributes a scalable, learning-based methodology for proactive architectural governance and long-term software quality preservation.
References
[1] Allamanis, M., Barr, E. T., Devanbu, P., & Sutton, C. (2018). A Survey of Machine Learning for Big Code and Naturalness. ACM Computing Surveys, 51(4), 1–37.
[2] Chen, J., Ma, X., Liu, Y., & Xu, S. (2020). Graph Neural Networks for Code Representation and Analysis. Proceedings of the 42nd International Conference on Software Engineering, 1205–1216.
[3] Joblin, M., Apel, S., Siegmund, J., & Kästner, C. (2017). Classifying Code Changes via Information Flow Analysis Using Graph Representations. Empirical Software Engineering, 22(4), 1832–1863.
[4] Bogart, C., Kästner, C., Herbsleb, J., & Thung, F. (2016). How Developers Diagnose Architecture Decay in Long-Lived Projects. Proceedings of the 38th International Conference on Software Engineering, 467–478.
[5] Kikas, R., Madej, L., & Dumas, M. (2019). Detecting Software Architecture Drift with Dependency Graph Metrics. Information and Software Technology, 110, 39–53.
[6] Hassan, A. E. (2009). Predicting Faults Using the Complexity of Code Changes. Proceedings of the IEEE International Conference on Software Maintenance, 78–87.
[7] Bavota, G., Russo, B., Oliveto, R., & Di Penta, M. (2015). Understanding the Impact of Structural Dependencies on Software Evolution. IEEE Transactions on Software Engineering, 41(4), 341–365.
[8] Zimmermann, T., Nagappan, N., & Zeller, A. (2013). Predicting Bugs Using Dependencies and Change Patterns. Empirical Software Engineering, 18(4), 653–698.
[9] Lin, W., Chen, Z., & Yu, T. (2020). Detecting Architecture Violations Using Deep Graph Representations. ACM Transactions on Software Engineering and Methodology, 29(3), 1–28.
[10] Mens, T., Wermelinger, M., & Ducasse, S. (2005). Studying Software Evolution Through Multiple Views: A Case Study. Proceedings of the 21st IEEE International Conference on Software Maintenance, 1–10.
Downloads
How to Cite
[1]S. Rahman, “Graph Neural Networks for Predicting Software Architectural Drift”, IJAIDT, vol. 3, no. 2, pp. 01–24, Sep. 2020, doi: 10.67228/30713315/IJAIDT-2020PII2R1C.