Skip to content

Replication Package for the Master's Thesis: Integrating Structural and Semantic Analysis for Code Smell Refactoring Prediction

Sep 2026 · Zenodo (CERN European Organization for Nuclear Research)

Abstract

This repository contains the official replication package, automation scripts, and machine learning pipelines developed for the Master's Thesis: "Integrating Structural and Semantic Analysis for Code Smell Refactoring Prediction" (Università degli Studi di Milano-Bicocca, 2026). The project bridges traditional static code analysis with advanced embedding representation learning to predict refactoring interventions on code-smelly methods. The predictive framework models a supervised binary classification task across 10 distinct target refactoring operations. Dataset & Feature Space OverviewThe underlying dataset is made of open-source Java systems. Full list included in dataset.md - Tabular Metrics: Implementation smells mined via DesigniteJava alongside a comprehensive suite of 54 object-oriented metrics computed by the CK Analysis Tool.- Control Flow Topologies (Option A): Granular Control Flow Graphs (CFGs) parsed via Joern and translated into 64-dimensional dense vectors using the LINE graph embedding algorithm.- Joint Syntactic-Semantic Bytecode (Option B): Normalized token streams and Program Dependence Graphs (PDGs) extracted directly from the compiler intermediate representation layer (Jimple bytecode) via GraphCode2Vec. Replication Artifacts IncludedThe package is organized to ensure complete scientific reproducibility and includes: - src/core/: Core execution modules for chronological commit mining (RefactoringMiner alignment), smell resolution detection, and target label processing.- src/runners/: Batch automation wrappers and full Linux/WSL execution pipelines (Joern parsing, edge list generation, and node embedding training).- src/utils/: Feature engineering helpers, mean-pooling scripts for graph node aggregation, and multi-source CSV mergers.- src/models_pipeline/: Machine learning workflows implementing dataset balancing/scaling, Bayesian hyperparameter tuning, model training (Logistic Regression, SVM, XGBoost, Deep Neural Networks), and Late Fusion stacking ensembles, along with ablation and explainability outputs (ROC, Calibration, UMAP, SHAP). For detailed environment setup, dependency configurations (such as Joern, GraphCode2Vec, RefactoringMiner, CK, and Designite), and step-by-step reproduction instructions, please refer to the included README.md file. Release Notes / Changelog (v2): - removed venv folder from code.zip

View source

Similar papers

#computer vision Review Sep 2017

Agile Software Development Methods: Review and Analysis

This publication proposes a definition and a classification of agile software development approaches and analyses ten software development methods that can be characterized as being "agile" against the defined criterion.

P. Abrahamsson, O. Salo, Jussi Ronkainen et al. · 727 citations · ⚡54
#computer vision Jun 2008

The impact of agile practices on communication in software development

The study shows that agile practices improve both informal and formal communication, but indicates that, in larger development situations involving multiple external stakeholders, a mismatch of adequate communication mechanisms can sometimes even hinder the communication.

M. Pikkarainen, Jukka Haikara, O. Salo et al. · 401 citations · ⚡48
#machine learning Review Open access Oct 2014

Software development in startup companies: A systematic mapping study

The results indicate that software engineering work practices are chosen opportunistically, adapted and configured to provide value under the constrains imposed by the startup context.

Nicolò Paternoster, Carmine Giardino, M. Unterkalmsteiner et al. · 394 citations · ⚡54

Related blog posts

Microsoft Research Blog Jul 13, 2026

Verifying Rust cryptography in SymCrypt, from standards to code

Cryptographic code supports vital protections in modern computing systems. Learn how a new method helps verify code as developers write it while preserving speed and adaptability as it gets implemented and evolves. The post Verifying Rust cryptography in SymCrypt, from standards to code appeared first on Microsoft Research.

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.