Tools

The Machine Learning Methods for Software Engineering group develops a lot of useful practical tools for various software engineering purposes. Some of these tools support research, some are meant for the end-users. This page aims to list all of our main tools.

AntiCopyPaster

A plugin for IntelliJ IDEA that tracks the pasting of code inside the IDE and suggests appropriate Extract Method refactorings to combat the propagation of duplicates.

Tool Paper pre-print

Buckwheat

A multi-language tokenizer for extracting identifiers from source code.

Tool

IntelliJDeodorant

An IntelliJ IDEA plugin that detects code smells in Java code and recommends appropriate refactorings to resolve them.

Tool

KInference

A library that makes possible execution of complex ML models (written via ONNX) in vanilla Kotlin.

Tool

Kotless

Kotlin serverless framework that aims to reduce the routine of serverless deployment creation by generating it straight from the code of the application itself.

Tool Video Paper DOI Paper pre-print

PythonChangeMiner

A tool for creating fine-grained program dependence graphs (fgPDG) for Python code, creating change graphs from them, and mining these graphs for change patterns.

Tool Paper pre-print