scholarly journals Towards a systematic approach to manual annotation of code smells

Author(s):  
Nikola Luburić ◽  
Simona Prokić ◽  
Katarina-Glorija Grujić ◽  
Jelena Slivka ◽  
Aleksandar Kovačević ◽  
...  

<div>Code smells are structures in code that indicate the presence of maintainability issues. A significant problem with code smells is their ambiguity. They are challenging to define, and software engineers have a different understanding of what a code smell is and which code suffers from code smells.</div><div>A solution to this problem could be an AI digital assistant that understands code smells and can detect (and perhaps resolve) them. However, it is challenging to develop such an assistant as there are few usable datasets of code smells on which to train and evaluate it. Furthermore, the existing datasets suffer from issues that mostly arise from an unsystematic approach used for their construction.</div><div>Through this work, we address this issue by developing a procedure for the systematic manual annotation of code smells. We use this procedure to build a dataset of code smells. During this process, we refine the procedure and identify recommendations and pitfalls for its use. The primary contribution is the proposed annotation model and procedure and the annotators’ experience report. The dataset and supporting tool are secondary contributions of our study. Notably, our dataset includes open-source projects written in the C# programming language, while almost all manually annotated datasets contain projects written in Java.</div>

2021 ◽  
Author(s):  
Nikola Luburić ◽  
Simona Prokić ◽  
Katarina-Glorija Grujić ◽  
Jelena Slivka ◽  
Aleksandar Kovačević ◽  
...  

<div>Code smells are structures in code that indicate the presence of maintainability issues. A significant problem with code smells is their ambiguity. They are challenging to define, and software engineers have a different understanding of what a code smell is and which code suffers from code smells.</div><div>A solution to this problem could be an AI digital assistant that understands code smells and can detect (and perhaps resolve) them. However, it is challenging to develop such an assistant as there are few usable datasets of code smells on which to train and evaluate it. Furthermore, the existing datasets suffer from issues that mostly arise from an unsystematic approach used for their construction.</div><div>Through this work, we address this issue by developing a procedure for the systematic manual annotation of code smells. We use this procedure to build a dataset of code smells. During this process, we refine the procedure and identify recommendations and pitfalls for its use. The primary contribution is the proposed annotation model and procedure and the annotators’ experience report. The dataset and supporting tool are secondary contributions of our study. Notably, our dataset includes open-source projects written in the C# programming language, while almost all manually annotated datasets contain projects written in Java.</div>


2021 ◽  
Author(s):  
Nikola Luburić ◽  
Simona Prokić ◽  
Katarina-Glorija Grujić ◽  
Jelena Slivka ◽  
Aleksandar Kovačević ◽  
...  

<div>Code smells are structures in code that indicate the presence of maintainability issues. A significant problem with code smells is their ambiguity. They are challenging to define, and software engineers have a different understanding of what a code smell is and which code suffers from code smells.</div><div>A solution to this problem could be an AI digital assistant that understands code smells and can detect (and perhaps resolve) them. However, it is challenging to develop such an assistant as there are few usable datasets of code smells on which to train and evaluate it. Furthermore, the existing datasets suffer from issues that mostly arise from an unsystematic approach used for their construction.</div><div>Through this work, we address this issue by developing a procedure for the systematic manual annotation of code smells. We use this procedure to build a dataset of code smells. During this process, we refine the procedure and identify recommendations and pitfalls for its use. The primary contribution is the proposed annotation model and procedure and the annotators’ experience report. The dataset and supporting tool are secondary contributions of our study. Notably, our dataset includes open-source projects written in the C# programming language, while almost all manually annotated datasets contain projects written in Java.</div>


2018 ◽  
Vol 9 (2) ◽  
pp. 94-110
Author(s):  
Bapuji Rao

Opinions are the central theme to almost all human activities, as well the key influencers of our behaviours. Opinions related to sentiments, evaluations, attitudes, and emotions are the features of studying of opinion mining. It is important to study peoples of various communities sentiments about the schemes implemented by the government agencies as well as NGOs. The opinion mining is about the opinions of various communities of villages of a Panchayat about various social schemes implemented by the government of India. This article proposes an algorithm for opinion mining in a community graph for various social schemes run by the Panchayat using graph mining techniques. The algorithm has been implemented in C++ programming language.


2020 ◽  
Vol 75 ◽  
pp. 04017
Author(s):  
Yuriy Sitsylitsyn

As computer hardware becomes more and more parallel, there is a need for software engineers who are experienced in developing parallel programs, not only by “parallelizing” sequential designs. Teach students a parallelism in elementary courses in computer science this is a very important step towards building the competencies of future software engineers. We have conducted research on “teaching parallel and distributed computing” and “parallel programming” publications in the Scopus database, published in English between 2008 and 2019. After quality assessment, 26 articles were included in the analysis. As a result, the main tool for teaching parallel and distributed computing is a lab course with a C++ programming language and MPI library.


Author(s):  
Amandeep Kaur ◽  
Sushma Jain ◽  
Shivani Goel ◽  
Gaurav Dhiman

Context: Code smells are symptoms, that something may be wrong in software systems that can cause complications in maintaining software quality. In literature, there exists many code smells and their identification is far from trivial. Thus, several techniques have also been proposed to automate code smell detection in order to improve software quality. Objective: This paper presents an up-to-date review of simple and hybrid machine learning based code smell detection techniques and tools. Methods: We collected all the relevant research published in this field till 2020. We extracted the data from those articles and classified them into two major categories. In addition, we compared the selected studies based on several aspects like, code smells, machine learning techniques, datasets, programming languages used by datasets, dataset size, evaluation approach, and statistical testing. Results: Majority of empirical studies have proposed machine- learning based code smell detection tools. Support vector machine and decision tree algorithms are frequently used by the researchers. Along with this, a major proportion of research is conducted on Open Source Softwares (OSS) such as, Xerces, Gantt Project and ArgoUml. Furthermore, researchers paid more attention towards Feature Envy and Long Method code smells. Conclusion: We identified several areas of open research like, need of code smell detection techniques using hybrid approaches, need of validation employing industrial datasets, etc.


2016 ◽  
Vol 66 (1) ◽  
pp. 17-26 ◽  
Author(s):  
Michal Šofer ◽  
Rostislav Fajkoš ◽  
Radim Halama

AbstractThe main aim of the presented paper is to show how heat treatment, in our case the induction hardening, will affect the wear rates as well as the ratcheting evolution process beneath the contact surface in the field of line rolling contact. Used wear model is based on shear band cracking mechanism [1] and non-linear kinematic and isotropic hardening rule of Chaboche and Lemaitre. The entire numerical simulations have been realized in the C# programming language. Results from numerical simulations are subsequently compared with experimental data.


Sign in / Sign up

Export Citation Format

Share Document