Machine Learning, Software Engineering, COVID, Maintainability Prediction, Data Science
15
Scopus Publications
Scopus Publications
Real-Time Wrong-Way Vehicle Detection System with Automatic Number Plate Recognition for Enhanced Road Safety Krish Gaur, Miran Ahmad Siddique, Krishna Beernally, Nityam Madaan, and Sandhya Tarwani IEEE In the pursuit of enhancing road safety, the development of real-time detection systems has become imperative. This paper presents a smart approach to wrong-way vehicle detection utilizing computer vision technology for enhanced road safety. The proposed system presents a combination of YOLO for vehicle and license plate detection and OpenCV for license plate recognition, specifically tailored for Indian vehicle number plate dataset. By integrating YOLO’s single-pass object detection capabilities, the system achieves real-time performance, in order to take immediate intervention in traffic violations. Utilizing methods such as centroid tracking and ‘entry-exit’ analysis, the system effectively differentiates between vehicles traveling in correct lanes and those in wrong lanes, enabling immediate enforcement measures. Centroid tracking assigns and tracks centre points of vehicle bounding boxes across frames, ensuring computational efficiency and simplicity in implementation. The ‘entry-exit’ approach utilizes designated lines in video frames to determine the direction of vehicle movement, leading towards accurate wrong-way detection. Moreover, the system leverages EasyOCR for text extraction, ensuring high accuracy in capturing license plate information. This integration of technologies allows for comprehensive monitoring of traffic patterns and swift identification of violations, contributing to proactive enforcement strategies and improved road safety. Through extensive experimentation on the Indian vehicle number plate YOLO annotated dataset, the proposed system demonstrates robust performance in real-world scenarios, exhibiting high accuracy and reliability in wrong-way vehicle detection and automatic number plate recognition. This research represents a significant advancement in leveraging computer vision for proactive traffic management and underscores the potential of technology in enhancing road safety measures.
Ensemble Machine Learning Model for Predicting Postpartum Depression Disorder Anand, Yash Sharma, Vansh Jain, and Sandhya Tarwani IEEE This study explores the development of an ensemble machine learning (ML) model to predict Postpartum Depression (PPD) disorder, leveraging chi-square test driven feature selection techniques and a diverse array of ML algorithms. Initially, chi-square test is employed to select the most influential features for PPD prediction. From a pool of candidate features, nine key attributes demonstrating the highest association with PPD are identified for model input. Subsequently, eight distinct ML techniques, including K Nearest Neighbors (KNN), Support Vector Machine (SVM), Random Forest (RF), Logistic Regression (LR), Decision Tree (DT), XG Boost (XGB), and Artificial Neural Network (ANN), are applied to develop individual predictive models. Following the training and evaluation of individual models, an ensemble approach is adopted to combine the strengths of multiple algorithms, enhancing prediction accuracy and robustness. The ensemble model aggregates predictions from diverse ML techniques, leveraging their complementary strengths to yield more accurate and reliable predictions of PPD risk. Performance evaluation metrics, such as accuracy, precision, recall, and F1-score, are employed to assess the efficacy of the ensemble model in comparison to individual ML algorithms. The results demonstrate the effectiveness of the ensemble approach in improving prediction accuracy and generalization capability, thereby offering a valuable tool for early identification and intervention in PPD cases. This research contributes to the advancement of predictive modelling in mental health by showcasing the utility of ensemble ML techniques in PPD prediction. The findings underscore the potential of feature selection and ensemble modelling in enhancing the accuracy and effectiveness of PPD risk assessment, thereby facilitating proactive interventions to support maternal mental health.
A Comparative Analysis of Machine Learning and Deep Learning Approaches in Deepfake Detection Mudit Vashistha, Sarthak Jain, Shubham Pandey, Aryan Pradhan, and Sandhya Tarwani IEEE Deepfakes refer to the visual media where the faces, bodily movements have been digitally altered using some software or program, this has proven to be more of a double edged sword as it also contributes towards content creation and media creation that may be used for positive purposes. To combat this situation, measures to detect deep fake in the media is a credible approach. This work showcases a comparative analysis among 3 Deep Learning as well as 3 Machine Learning algorithms in order to reach a conclusive state of determining the best algorithms that can be implemented for Deepfake detection. For the machine learning algorithms, KNN, SVM and Logistic Regression have been used whereas CNN, TCN and CNN + LSTM have been used for the Deep Learning Algorithm. Detection of deepfakes through these algorithms works by sequentially processing, analyzing and classifying the features on the basis of the dataset fed for the algorithms. The chosen metrics for performing a comparison between each of the algorithms are Accuracy and F1 Score. The development, implementation and comparison of the algorithms was carried out on Google Collab and Jupyter Notebook. Upon comparative analysis of the algorithms between each other, it was found that CNN had the highest accuracy and Fl-score of 0.9409 and 0.7225 respectively with KNN being the worst-performing algorithm with an accuracy 0.5770 and F1 score of 0.4088 respectively.
Application of Deep Learning models for Code Smell Prediction Sandhya Tarwani and Anuradha Chug IEEE Software developer always strives for quality of the software as it tends to be more robust and easier to maintain. Code smells play as a hinder to the quality of the software as they are the surface indication of deeper problem in the source code and hence required to be removed as early as possible. Refactoring is one of the methods to improve the quality of the software without affecting its external behavior. It removes bad smells present in the code as they are surface indication of deeper problem which may lead towards the failure of the software. In this work, we have proposed an approach to predict code smells in the source code using Deep learning algorithms. More specifically, we have trained three deep learning algorithms (CNN, LSTM and MLP) with open-source dataset. Information Gain feature selection algorithm is also applied to get the most prominent attributes for the code smell prediction. After evaluating the performance of these algorithms, results shows that CNN outperforms all other deep learning algorithms with the accuracy of 99% on the selected dataset. This study would be useful for software developer team as they can utilize CNN algorithm in code smell prediction. Results would also help in predicting the code smell which in turn will help in the removal of these smells to enhance the quality of the software.
Identifying the Optimal Refactoring Dependencies Using Heuristic Search Algorithms to Maximize Maintainability Anuradha Chug and Sandhya Tarwani World Scientific Pub Co Pte Lt Bad smells represent imperfection in the design of the software system and trigger the urge to refactor the source code. The quality of object-oriented software has always been a major concern for the developer team and refactoring techniques help them to focus on this aspect by transforming the code in a way such that the behavior of the software can be preserved. Rigorous research has been done in this field to improve the quality of the software using various techniques. But, one of the issues still remains unsettled, i.e. the overhead effort to refactor the code in order to yield the maximum maintainability value. In this paper, a quantitative evaluation method has been proposed to improve the maintainability value by identifying the most optimum refactoring dependencies in advance with the help of various meta-heuristic algorithms, including A*, AO*, Hill-Climbing and Greedy approaches. A comparison has been done between the maintainability values of the software used, before and after applying the proposed methodology. The results of this study show that the Greedy algorithm is the most promising algorithm amongst all the algorithms in determining the most optimum refactoring sequence resulting in 18.56% and 9.90% improvements in the maintainability values of jTDS and ArtOfIllusion projects, respectively. Further, this study would be beneficial for the software maintenance team as refactoring sequences will be available beforehand, thereby helping the team in maintaining the software with much ease to enhance the maintainability of the software. The proposed methodology will help the maintenance team to focus on a limited portion of the software due to prioritization of the classes, in turn helping them in completing their work within the budget and time constraints.
Code smells signal that something is wrong in the source code that requires immediate attention. Over the years, many research studies have been carried out in this field using various tools and techniques. Exception handling is a powerful mechanism for handling run-time errors, which improves the robustness to enhance software's quality. However, exception handling design problem is the least explored research area that requires sincere intervention. It is often ignored by the developers, thereby having a negative impact on the software concerning reliability, maintainability, etc. In order to understand the exception handling design smells, nine different types of smells, namely careless cleanup, dummy handler, empty catch block, exception thrown in finally block, nested try statement, unprotected main, return code, ignored checked exception and catch clause as spare handler in java have been illustrated to provide a clear view of these smells with the help of the proposed design template. This design template will help software practitioners understand exception handling bad smells more efficiently. The suggested refactoring can further be applied to improve the source code and hence software maintainability.
Application of AO* Algorithm in Recognizing the Optimum Refactoring sequence for examining the effect on Maintainability: An empirical study Sandhya Tarwani and Anuradha Chug IEEE Bad smells are an indication of deeper problems in source code that need to be identified in order to decrease the accumulation effect in the SDLC which implies that at each stage smells may transform into bugs, faults or even failure of the working software resulting in loss of efforts. Refactoring, on the other hand, helps in removal of smells without affecting the external attributes of the software. Nowadays, researchers are focusing on the detection of optimum refactoring sequences well in advance so that software maintenance cost can be reduced and subsequently the efforts may minimize. In this paper, authors have identified a total of eleven bad smells present in the critically affected class selected on the basis of prioritization technique. After that, an attempt have been made to find optimum refactoring technique sequence using AO* algorithm which will eliminate identified bad smells and thereby helping the team to complete project within budget and time constraints. The obtained results showed that there is a considerable amount of improvement in maintainability value after applying optimum refactoring sequence on every class. This approach will help researchers and practitioners to use heuristic algorithms in finding the sequences in the early phase and hence maintain the source code under surveillance.
Determination of optimum refactoring sequence using A∗ algorithm after prioritization of classes Anuradha Chug and Sandhya Tarwani IEEE Bad smells are the surface indication of deeper problem into source code; therefore, they need to be identified as early as possible without compromising on the quality of the software. This lead towards the requirement of refactoring that is the process used in improving the internal attributes like maintainability of the software without affecting its external attributes. Hence, to enhance quality in terms of maintainability refactoring should be done in a controlled and iterative manner. In this study, we have proposed a method that will help researchers and developers to generate a refactoring sequence in advance with the help of heuristic search A∗ algorithm. We have chosen one class of an open source project with the help of prioritization technique to illustrate the generation of the sequence. A∗ algorithm helps in finding an appropriate sequence which has maximum value of maintainability by choosing a path of minimum metrics value. We have identified ten bad smells and used nine refactoring techniques to remove them. With the help of this technique, software developers and maintainers team would be able to figure out refactoring sequence in advance and hence will help them in completing their work within time and budget constraints.
Prioritization of code restructuring for severely affected classes under release time constraints Sandhya Tarwani and Anuradha Chug IEEE Bad smells help us to look deeper into the problem as they are threat to design principles and quality of software. Redesigning helps us in restructuring code without any change in its external behavior. It is not feasible to restructure each class of the software due release time constraints. Therefore, there is a need to prioritize classes so that effort and quality can be improved. In this study, we have proposed a framework based on the combination of C & K metric suite and eleven types of bad smells. A new metric, Quality Decline Factor (QDF), has been proposed which identify the severity of the classes and helps the software maintenance team to focus only on severely affected code. Pareto analysis is also valid in this study which states that 80% of the code quality can be improved by providing redesigning treatments to 20% of the severely affected code. This study will reduce the work of software maintenance practitioners and will help them to complete their work on time.
Investigating the effectiveness of greedy algorithm on open source software systems for determining refactoring sequence
Predicting maintainability of open source software using Gene Expression Programming and bad smells Sandhya Tarwani and Anuradha Chug IEEE Software maintenance phase of Software Development Lifecycle (SDLC) is the most expensive and complex phase that requires nearly 60-70% of the total project cost. Due to this, many software fails to get repair within real time constraint. Ascribe to technology advancements and changing requirements, software must be well developed and maintained to get adapted. Hence, it is necessary to predict software maintainability in the early phases of the lifecycle so that optimization of resources can be possible and cost can be reduced. Software Maintainability is the quality attribute of software product that explains the ease with which modifications can be performed. The main focus in this study is to propose the use of Gene Expression Programming (GEP) for the software maintainability prediction and measure its performance with various machine leaning techniques such as Decision Tree Forest, Support Vector Machine, Linear regression, Multilayer Perceptron and Radial basis function neural network. The empirical study is conducted with the help of four open source datasets. Eleven bad smells are identified and is considered as maintenance effort. Results of this study show that GEP algorithm performs better than machine learning classifiers; hence it can be used as sound alternative in the prediction of software maintainability. This study would be helpful in achieving better resource allocation hence it will be useful for developers and maintainers.
Sequencing of refactoring techniques by Greedy algorithm for maximizing maintainability Sandhya Tarwani and Anuradha Chug IEEE Software maintainability is the ease with which a software system can be modified to correct faults, improve performance or other attributes of the source code. Bad smells are symptoms of deeper problem that indicates the need for refactoring which is the process of changing internal structure of the software without affecting its external attributes. Applying different refactoring techniques in different parts of a code results in changed maintainability value every time. Therefore, sequence in which refactoring should be applied is important so that optimal results can be obtained. In this study, we have proposed an approach for evaluating sequence of refactoring by with the help of greedy algorithm. The algorithm selects locally optimal solution at each stage with the hope of finding global optimal solution. Different sequences are generated and applied to the source code to calculate sum of software maintainability values. Greedy algorithm helps in finding the optimal sequence out of all the search space. We have evaluated the approach with source code having god class, long method, feature envy, long parameter list, data clumps, data class, class hierarchy problem, empty catch block, exception thrown in finally block and nested try statement bad smells which are detected manually. Hence our approach is able to identify sequence for refactoring as well as best refactoring which will increase maintainability and enhance software quality.
An empirical investigation of evolutionary algorithm for software maintainability prediction Ashu Jain, Sandhya Tarwani, and Anuradha Chug IEEE Software maintenance is one of the tedious as well as costly phases in the software development life cycle. It starts immediately after the software product is delivered to the customer and ends when the product is no longer in use. There are various activities carried out during software maintenance phase such as the addition of new features, deletion of obsolete features, correction of errors, adaption to new environment etc. Software maintainability is the quality attribute of the software product which determines the ease with which these modifications can be performed. If we can predict the maintainability accurately, cost and time associated with the maintenance activity can be highly reduced. The main aim of this study is to propose the use of evolutionary technique particularly genetic algorithm for the software maintainability prediction and compare its performance with various machine leaning techniques such as Decision Table, Radial Basis Function Neural Network, Bayes Net and Sequential Minimal Optimization (SMO). In order to carry out this empirical investigation, datasets from four open source software systems are collected. The maintenance effort is calculated by counting the number of changes in terms of line of code from one version of the software to another. Based on the experiments conducted, we conclude that the evolutionary algorithm outperformed all the other classifiers, thus, very useful for the concise prediction of software maintainability. Results of this would be helpful to practitioners as they can use the maintainability prediction in order to achieve precise planning of resource allocation.
Agile methodologies in software maintenance: A systematic review