JetBrains Research

Research is crucial for progress and innovation, which is why at JetBrains we are passionate about both scientific and market research

JetBrains Research Digest 2023: Volume 3

In Volume 3 of the JetBrains Research Digest, we’re presenting the latest news from two JetBrains Research labs.

Mobile Robotics Algorithms Lab

The Mobile Robotics Algorithms Lab works on developing intelligent, fully autonomous mobile robots, as well as educational programs in robotics.

In November, J. Meghana and J. Hanumanthappa from the University of Mysore, Mysuru, India, together with S. P. Shiva Prakash from the JSS Science and Technology University, Mysuru, India, and Kirill Krinkin from JetBrains Research published an article titled Relationship-Cluster Head Selection and Data Compression Enabled Cluster-Based Aggregation Model for Social Internet of Things in the Indian Journal of Science and Technology.

The paper is dedicated to the problem of efficient data transmission between devices in the framework of the Social Internet of Things (SIoT). The SIoT combines the IoT with social networking, enabling objects to interact based on social relationships between them (as defined in this article) and facilitating user-device interactions. Critically, SIoT networks generate massive data that must be transmitted and processed efficiently. The authors propose a cluster-based aggregation model for SIoT to address this issue. The model utilizes K-Means to select cluster heads based on object relationships. Objects are clustered using K-Means, and a Decision Tree considers object profiling and relationships to choose the cluster head. The selected cluster heads employ Huffman coding to compress data before transmission to the destination device. The proposed model is evaluated through simulation-based experiments using the SIoTCCN simulator. The evaluation metrics include Silhouette Score, Number Distance between Train and Test K-Means, BIC Score, and Gradient of BIC Scores. The findings demonstrate that the model outperforms existing approaches in terms of energy consumption, network lifetime, and data aggregation accuracy. The authors show that a cluster-based aggregation model for SIoT integrating a K-Means approach to cluster head selection and Huffman coding-based data compression has the potential to enhance SIoT performance.

Kirill Krinkin from the Mobile Robotics Algorithms Lab, together with G. S. Madhan Kumar and S. P. Shiva Prakash from the JSS Science and Technology University, Mysuru, India, co-authored an article titled Gated recurrent unit decision model for device argumentation in ambient assisted living, to be published in the International Journal of Electrical and Computer Engineering in February next year.

The increasing elderly population worldwide is facing a variety of social, physical, and cognitive issues, such as walking problems, falls, and difficulties in performing daily activities. To support the elderly, continuous monitoring and supervision are needed. Due to the busy modern lifestyle of caretakers, taking care of the elderly is difficult. As a result, many elderly people prefer to live independently at home without any assistance. An ambient assisted living (AAL) environment that monitors and evaluates the daily activities of elderly individuals is a potential way of helping such people. An AAL environment has heterogeneous devices such as portable EEGs and ECGs. These devices communicate and exchange information about various activities performed by the users, including going out, preparing a meal, or sleeping. Occasionally, there are conflicting signals that cause the devices to “disagree” about which specific activity is being performed. As a result, the devices need to communicate and resolve the conflict. To address this issue, the paper proposes learning techniques using gated recurrent unit (GRU) architecture to facilitate decision-making in the device argumentation. The proposed model is used to classify various user activities and sensor value statuses. Then, a novel method is used to identify argumentation among devices for activity occurrences in the classified user activities. Lastly, the GRU decision-making model is used to resolve the argumentation and to identify which activity has taken place. The results of this approach were compared with other existing techniques. The proposed model outperformed the other existing methods with an accuracy of 85.45%, precision of 72.32%, recall of 65.83%, and F1-Score of 60.22%.

Machine Learning Methods in Software Engineering Lab

The Machine Learning Methods in Software Engineering Lab (ML4SE) works on ​​improving modern software engineering tools and discovering new ways to develop and maintain code.

On October 27, Mohammed Wiem Mkaeour from the Rochester Institute of Technology and Eman Abdullah Al-Omar from the Stevens Institute of Technology presented the paper Just-in-time Code Duplicates Extraction as a journal-first paper at the 17th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM’23) in New Orleans, Louisiana, USA.

In the talk, the authors demonstrated the AntiCopyPaster tool, developed as a way to deal with unwanted code duplicates as soon as they are introduced in code. The paper, co-authored by Eman Abdullah Al-Omar from Stevens Institute of Technology, Anton Ivanov, Zarina Kurbatova, Yaroslav Golubev, and Timofey Bryksin from JetBrains Research, and Ali Ouni from ÉTS Montreal, University of Quebec, together with Mohamed Wiem Mkaouer, Le Nguyen, Amit Kini, and Aditya Thakur from Rochester Institute of Technology, was published in June. We covered it in the first volume of the JetBrains Research digest.

On November 1, Zarina Kurbatova, Anastasiia Birillo, and Anna Potriasaeva, in collaboration with colleagues from JetBrains Academy, released an in-IDE educational course titled Introduction to IDE Code Refactoring as a part of the team’s efforts to promote IDEs in the area of education. The new course introduces students to refactorings and the IDE features that help users perform refactorings efficiently. Students are taught to recognize refactoring opportunities in the code and ways to approach them. Using automatic IDE refactorings, they can transform code to improve its structure, readability, and maintainability. Each of the course’s eight sections focuses on one group of refactorings and provides a brief theoretical explanation along with several small tasks to practice on. The course moves from small local refactoring changes to more complex ones affecting the entire project architecture. This course, available directly in the IDE, is meant to help students acquire practical skills that all software developers need.

That’s it for now! Stay tuned for future updates from our research teams in the next digest! 

If you have any questions or comments, please contact us at