Vladimir Kovalenko

dblp:223/2599 · DBLP profile ↗
← Back
6ranked-venue papers in the field
1as first author
4since 2021 · last 2025
0000-0001-5880-7323ORCID · verified

Domains — venue-derived; a paper can count in several

Other / Interdisciplinary · 6 (1 first)
YearPublicationVenuePosition
2025 RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction
abstract
The dependency graph (DG) of a software project offers valuable insights for identifying its key components and, hence has been leveraged in numerous studies. Nevertheless, there is a lack of reusable tools for DG extraction. Existing tools are either outdated and difficult to configure, or fail to provide accurate analysis. However, Integrated Development Environments (IDEs) are designed to address the above issues. This study introduces RefExpo2, a reusable DG extraction tool that supports multiple languages, such as Java, Python, and JavaScript. RefExpo is a plugin based on IntelliJ which is a wellmaintained and reputed IDE. In addition, we compile an initial version of our dataset consisting of 20 Java and Python projects. We evaluated RefExpo’s validity at two levels: specific language features and comparisons against other existing tools, which we refer to as the micro and macro levels. Our evaluation shows RefExpo achieving 92% and 100% recall on micro test suites Judge and PyCG for Python and Java, respectively. In macrolevel experiments, RefExpo outperformed existing tools by at least 31 % and 7 % in finding unique and shared results (nonoverlapping and overlapping with other tools). The installable version of RefExpo is available on the IntelliJ marketplace3. Additionally, a short video describing its functionality is available on YouTube1.1https://youtu.be/eCnPUlj6YgA
Vahid Haratian, Pouria Derakhshanfar, Vladimir Kovalenko, Eray Tüzün
MSR3
2022 Multimodal Recommendation of Messenger Channels
abstract
Collaboration platforms, such as GitHub and Slack, are a vital instrument in the day-to-day routine of software engineering teams. The data stored in these platforms has a significant value for data-driven methods that assist with decision-making and help improve software quality. However, the distribution of this data across different platforms leads to the fact that combining it is a very time-consuming process. Most existing algorithms for socio-technical assistance, such as recommendation systems, are based only on data directly related to the purpose of the algorithms, often originating from a single system.
Ekaterina Koshchenko, Egor Klimov, Vladimir Kovalenko
MSR3
2021 PSIMiner: A Tool for Mining Rich Abstract Syntax Trees from Code
Egor Spirin, Egor Bogomolov, Vladimir Kovalenko, Timofey Bryksin
MSR3
2021 TNM: A Tool for Mining of Socio-Technical Data from Git Repositories
abstract
Networks of collaboration between engineers are reflected in traces of developers' activity in version control systems (VCSs). Extracting data from Git repositories is an essential task for researchers and practitioners working on socio-technical analysis, but it requires substantial engineering work. With increasing interest in analysing socio-technical data and applying it in practice, there are no flexible and easily reusable tools to retrieve socio-technical information from VCSs. With no common reusable toolkit existing for this task, the burden of mining diverts the focus of researchers from their core research questions.In this paper, we present TNM-an open-source tool for mining socio-technical data from Git repositories. TNM is fast, flexible, and easily extensible.TNM is available on GitHub: https://github.com/JetBrains-Research/tnm.
Nikolai Sviridov, Mikhail Evtikhiev, Vladimir Kovalenko
MSR3
2020 Using Large-Scale Anomaly Detection on Code to Improve Kotlin Compiler
abstract
In this work, we apply anomaly detection to source code and byte-code to facilitate the development of a programming language and its compiler. We define anomaly as a code fragment that is different from typical code written in a particular programming language. Identifying such code fragments is beneficial to both language developers and end users, since anomalies may indicate potential issues with the compiler or with runtime performance. Moreover, anomalies could correspond to problems in language design. For this study, we choose Kotlin as the target programming language. We outline and discuss approaches to obtaining vector representations of source code and bytecode and to the detection of anomalies across vectorized code snippets. The paper presents a method that aims to detect two types of anomalies: syntax tree anomalies and so-called compiler-induced anomalies that arise only in the compiled bytecode. We describe several experiments that employ different combinations of vectorization and anomaly detection techniques and discuss types of detected anomalies and their usefulness for language developers. We demonstrate that the extracted anomalies and the underlying extraction technique provide additional value for language development.
Timofey Bryksin, Victor Petukhov, Ilya Alexin, Stanislav Prikhodko, Aleksei Shpilman, Vladimir Kovalenko, Nikita Povarov
MSR6
2019 PathMiner: a library for mining of path-based representations of code
abstract
One recent, significant advance in modeling source code for machine learning algorithms has been the introduction of path-based representation - an approach consisting in representing a snippet of code as a collection of paths from its syntax tree. Such representation efficiently captures the structure of code, which, in turn, carries its semantics and other information. Building the path-based representation involves parsing the code and extracting the paths from its syntax tree; these steps build up to a substantial technical job. With no common reusable toolkit existing for this task, the burden of mining diverts the focus of researchers from the essential work and hinders newcomers in the field of machine learning on code. In this paper, we present PathMiner - an open-source library for mining path-based representations of code. PathMiner is fast, flexible, well-tested, and easily extensible to support input code in any common programming language. Preprint [https://doi.org/10.5281/zenodo.2595271]; released tool [https://doi.org/10.5281/zenodo.2595257].
Vladimir Kovalenko, Egor Bogomolov, Timofey Bryksin, Alberto Bacchelli
MSR1