Skip to content

Dataset: Integrating Structural and Semantic Analysis for Code Smell Refactoring Prediction

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

Abstract

The project bridges traditional static code analysis (Object-Oriented metrics) 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. Data Source The underlying dataset (the source for the data collection pipeline) is made of 79 open-source Java systems. Full list included in dataset.md. Dataset (pipeline output) & Feature Space Overview Object-Oriented Metrics & Code Smells: code smells mined via DesigniteJava alongside a comprehensive suite of 74 Object-Oriented metrics computed by DesigniteJava and the CK Analysis Tool. Control Flow Topologies (Embeddings 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 (Embeddings 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 the code zip file 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. Additionally, you can find the raw datasets corresponding to the different data collection pipeline configurations within the classification_report zip file, allowing you to work directly on model configuration and training. Alternatively, you can use the files in the refactoringminer zip file, which provide chronological commit sequences defining the analysis time windows, as pre-computed outputs to save you from running the tool yourself, enabling you to operate on the entire pipeline and perform the collection independently.

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.