115 citations · 386 across the 61 of their papers we have counts for
17 papers · 1 filter
ReSplit: Improving the Structure of Jupyter Notebooks by Re-Splitting Their Cells
Sergey Titov, Yaroslav Golubev, Timofey Bryksin
Jupyter notebooks represent a unique format for programming - a combination of code and Markdown with rich formatting, separated into individual cells. We propose to perceive a Jup…
Hyperstyle: A Tool for Assessing the Code Quality of Solutions to Programming Assignments
Anastasiia Birillo, Ilya Vlasov, Artyom Burylov +5
In software engineering, it is not enough to simply write code that only works as intended, even if it is free from vulnerabilities and bugs. Every programming language has a style…
AntiCopyPaster: Extracting Code Duplicates As Soon As They Are Introduced in the IDE
Eman Abdullah AlOmar, Anton Ivanov, Zarina Kurbatova +7
We developed a plugin for IntelliJ IDEA called AntiCopyPaster, which tracks the pasting of code fragments inside the IDE and suggests the appropriate Extract Method refactoring to…
IntelliTC: Automating Type Changes in IntelliJ IDEA
Oleg Smirnov, Ameya Ketkar, Timofey Bryksin +2
Developers often change types of program elements. Such refactoring often involves updating not only the type of the element itself, but also the API of all type-dependent referenc…
The IntelliJ Platform: a Framework for Building Plugins and Mining Software Data
Zarina Kurbatova, Yaroslav Golubev, Vladimir Kovalenko +1
In software engineering, a great number of new approaches are being actively researched, and a lot of tools are being developed based on them. These tools require a framework for t…
RefactorInsight: Enhancing IDE Representation of Changes in Git with Refactorings Information
Zarina Kurbatova, Vladimir Kovalenko, Ioana Savu +6
Inspection of code changes is a time-consuming task that constitutes a big part of everyday work of software engineers. Existing IDEs provide little information about the semantics…
Revizor: A Data-Driven Approach to Automate Frequent Code Changes Based on Graph Matching
Oleg Smirnov, Artyom Lobanov, Yaroslav Golubev +2
Many code changes that developers make in their projects are repeated and constitute recurrent change patterns. It is of interest to collect such patterns from the version history…
Infrastructure in Code: Towards Developer-Friendly Cloud Applications
Vladislav Tankov, Dmitriy Valchuk, Yaroslav Golubev +1
The popularity of cloud technologies has led to the development of a new type of applications that specifically target cloud environments. Such applications require a lot of cloud…
On the Nature of Code Cloning in Open-Source Java Projects
Yaroslav Golubev, Timofey Bryksin
Code cloning plays a very important role in open-source software engineering. The presence of clones within a project may indicate a need for refactoring, and clones between projec…
PyNose: A Test Smell Detector For Python
Tongjie Wang, Yaroslav Golubev, Oleg Smirnov +3
Similarly to production code, code smells also occur in test code, where they are called test smells. Test smells have a detrimental effect not only on test code but also on the pr…
Sorrel: an IDE Plugin for Managing Licenses and Detecting License Incompatibilities
Dmitry Pogrebnoy, Ivan Kuznetsov, Yaroslav Golubev +2
Software development is a complex process that includes many different tasks besides just writing code. One of the aspects of software engineering is selecting and managing license…
One Thousand and One Stories: A Large-Scale Survey of Software Refactoring
Yaroslav Golubev, Zarina Kurbatova, Eman Abdullah AlOmar +2
Despite the availability of refactoring as a feature in popular IDEs, recent studies revealed that developers are reluctant to use them, and still prefer the manual refactoring of…
Automatic Classification of Error Types in Solutions to Programming Assignments at Online Learning Platform
Artyom Lobanov, Timofey Bryksin, Alexey Shpilman
Online programming courses are becoming more and more popular, but they still have significant drawbacks when compared to the traditional education system, e.g., the lack of feedba…
Unsupervised Learning of General-Purpose Embeddings for Code Changes
Mikhail Pravilov, Egor Bogomolov, Yaroslav Golubev +1
Applying machine learning to tasks that operate with code changes requires their numerical representation. In this work, we propose an approach for obtaining such representations d…
Kotless: a Serverless Framework for Kotlin
Vladislav Tankov, Yaroslav Golubev, Timofey Bryksin
Recent trends in Web development demonstrate an increased interest in serverless applications, i.e. applications that utilize computational resources provided by cloud services on…
Changes from the Trenches: Should We Automate Them?
Yaroslav Golubev, Jiawei Li, Viacheslav Bushev +2
Code changes constitute one of the most important features of software evolution. Studying them can provide insights into the nature of software development and also lead to practi…
PSIMiner: A Tool for Mining Rich Abstract Syntax Trees from Code
Egor Spirin, Egor Bogomolov, Vladimir Kovalenko +1
The application of machine learning algorithms to source code has grown in the past years. Since these algorithms are quite sensitive to input data, it is not surprising that resea…