Abeer Hamdy | British University in Egypt (BUE) (original) (raw)
Papers by Abeer Hamdy
Smart innovation, systems and technologies, Dec 31, 2022
Systematic Reviews in Pharmacy, 2020
In software engineering practice, bug triaging, assigning a developer for a bug report to fix it,... more In software engineering practice, bug triaging, assigning a developer for a bug report to fix it, consumes time besides being error-prone process. Most of previously proposed automation approaches focus on classification techniques. However, the developer workload and developer availability are taken into account in only a handful number papers. In this work, a new automated triaging approach is proposed, which automates the triaging process and optimizes the total fixing time, considering the developer workload, developer availability and the developer previous experience. The proposed solution leverages text mining and clustering technique (K-medoids algorithm). Linux, Eclipse and Apache repositories are explored for evaluating the proposed algorithm. Experimental results showed that the proposed algorithm (1) reduces the total fixing time by 58.16%, 22.84%, and 23.17% in Linux, Eclipse and Apache respectively, (2) normalizes the developer workload and (3) considers the developer ...
Engineering World
World is running fast. With the speed of communication technology, there is a boom in the transpo... more World is running fast. With the speed of communication technology, there is a boom in the transportation industry also. The transportation vehicles are operating day and night to provide proper support of the need. This is really tiring for the transportation workers, especially the drivers who are driving the vehicle. A slight negligence of a driver may cause huge loss. The increasing number of road accidents are therefore a big concern. There is huge research going on to comfort the drivers and increase the security features of vehicles to avoid accidents. Here is this work, a model is proposed, which can efficiently detect driver drowsiness. The work mainly focused on building the learning model. A modified convolutional neural network is built to solve the purpose. The model trained with a dataset of 7000 images of open and closed eyes. For testing purposes, some real-time experiments are done by some volunteer drivers in different conditions, like gender, day, night, etc. the m...
2022 6th International Conference on Computer, Software and Modeling (ICCSM)
arXiv (Cornell University), Jul 14, 2022
International Journal of Open Source Software and Processes
Bug triage is an essential task in the software maintenance phase. It is the process of assigning... more Bug triage is an essential task in the software maintenance phase. It is the process of assigning a developer (fixer) to a bug report. A personnel (triager) has to analyze the developers' profiles and bug reports for the purpose of making a suitable assignment. Manual bug triage consumes time and effort, so automating this process is a necessity. The previous research studies addressed the triage problem as an information retrieval problem, where the new bug report is the query. Other researchers tackled this problem as a classification problem and utilized traditional machine learning or deep learning techniques. A handful of research studies handled this problem as an optimization problem and utilized optimization algorithms such as Hungarian. This paper briefs and analyzes the previous bug triage approaches in addition to conducting an empirical comparison among five of the previous approaches.
Bug triage can be defined as the process of assigning a developer to a bug report. The duty of th... more Bug triage can be defined as the process of assigning a developer to a bug report. The duty of the bug triage team is to study the developers profiles well in order to make an appropriate match between the developers and the incoming bug reports. Thus, this process is a vital step in issue management system. In fact, the number of bug reports submitted every day is gradually increasing which affects the developer workload. Thus, the triage team should consider this factor in distributing the bugs and because of the manual approach, many developers are burden. In particular, triaging bug reports without considering the workload does not only affect the developers workload but also leads to an increase in the number of unaddressed bug reports. As a result, the fixing time of the reported bugs will relatively increase. Unlike other researchers who focus on automating the bug triage and ignoring the developer workload, in this work, we handle the triaging process from a different perspe...
Proceedings of the International Conference on Geoinformatics and Data Analysis, 2018
Design pattern is a high-quality and reusable solution to a recurring software design problem. It... more Design pattern is a high-quality and reusable solution to a recurring software design problem. It is considered an important concept in the software engineering field due to its ability to enhance some of the quality attributes of the software systems including maintainability and extensibility. However, novice developers need to be provided by a tool to assist them in selecting the fit design pattern to solve a design problem. The paper proposes a novel approach for the automatic selection of the fit design pattern. This approach is based on using Latent Dirichlet Allocation (LDA) topic model. The topic is a set of words that often appear together. LDA is able to relate words with similar meaning and to differentiate between uses of words with multiple meanings. In this paper LDA is used to analyze the textual descriptions of design patterns and extract the topics then discover the similarity between the target problem scenario and the collection of patterns using Improved Sqrt-Cosine similarity measure (ISCS). The proposed approach was evaluated using Gang of four design patterns. The experimental results showed that the proposed approach outperforms approach based on the traditional vector space model of Unigrams.
Integrating Research and Practice in Software Engineering, 2019
Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scal... more Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scale software projects, to fix the bugs that appear. In this paper we propose an approach to automate one of the important activities of bug triage which is the bug severity assignment. The proposed approach is based on mining the historical bug repositories of software projects. It utilizes the Hierarchical Dirichlet Process (HDP) topic modeller to extract the topics shared by the historical bug reports, then categorizing them according to their proportions in the extracted topics using the K-means clustering algorithm. For each new submitted report, the top K similar reports are retrieved from their cluster using a novel weighted K-nearest neighbour algorithm that utilizes a similarity measure called Improved-Sqrt-Cosine similarity. The severity level of the new bug is assigned using a Dual-weighted voting scheme. The experimental results demonstrated that our proposed model improved the performance of the bug severity assignment task when compared against three baseline models in the context of two popular bug repositories, Eclipse and Mozilla.
International Journal of Open Source Software and Processes, 2021
Regression testing is one of the essential activities during the maintenance phase of software pr... more Regression testing is one of the essential activities during the maintenance phase of software projects. It is executed to ensure the validity of an altered software. However, as the software evolves, regression testing becomes prohibitively expensive. In order to reduce the cost of regression testing, it is mandatory to reduce the size of the test suite by selecting the most representative test cases that do not compromise the effectiveness of the regression testing in terms of fault-detection capability. This problem is known as test suite reduction (TSR) problem, and it is known to be an NP-complete. The paper proposes a multi-objective adapted binary bat algorithm (ABBA) to solve the TSR problem. The original binary bat (OBBA) algorithm was adapted to enhance its exploration capabilities during the search for a Pareto-optimal surface. The effectiveness of the ABBA was evaluated using six Java programs with different sizes. Experimental results showed that for the same fault disc...
Design pattern is a high-quality reusable solution to a commonly occurring design problem in cert... more Design pattern is a high-quality reusable solution to a commonly occurring design problem in certain context. Using design patterns in software development improves some of the quality attributes of the system including productivity, understandability and maintainability. However, it is hard for novice developers to select a fit design pattern to solve a design problem. The paper proposes a text retrieval based approach for the automatic selection of the fit design pattern. This approach is based on generating a vector space model (VSM) of unigrams and topics to the catalogue of patterns. The topic is a set of words that often appear together. Latent Dirichlet Allocation topic model is adopted to analyze the textual descriptions of the patterns to extract the key topics and discover the hidden semantic. The similarity between the target problem scenario and the collection of patterns is measured using an improved version of the popular Cosine similarity measure. The proposed approac...
Code smells are symptoms of poor software design and implementation choices. Previous empirical s... more Code smells are symptoms of poor software design and implementation choices. Previous empirical studies have underlined their negative effect on software comprehension, fault-proneness and maintainability. A number of approaches have been proposed to identify the existence of code smells in the source code; recent studies have shown the potential of machine learning models in this context. However, previous approaches did not exploit the lexical and syntactical features of the source code; they instead modelled the source code using software metrics only. This paper proposes an approach for detecting the occurrence of the God class smell which utilizes both, the source code textual features and metrics to train three deep learning networks (i) Long short term memory, (ii) Gated recurrent unit and (iii) Convolutional neural network. We proposed utilizing deep leaning networks as they are reported to outperform traditional machine learning models in several domains including software ...
Intelligent Automation & Soft Computing, 2022
International Journal of Computers and Applications, 2020
Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the ... more Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the bugs’ fixes and store their information. Mining bug repositories is essential to automate some maint...
Journal of Software, 2018
International Journal of Mechanical Engineering and Robotics Research, 2016
International Journal of Machine Learning and Computing, 2019
Smart innovation, systems and technologies, Dec 31, 2022
Systematic Reviews in Pharmacy, 2020
In software engineering practice, bug triaging, assigning a developer for a bug report to fix it,... more In software engineering practice, bug triaging, assigning a developer for a bug report to fix it, consumes time besides being error-prone process. Most of previously proposed automation approaches focus on classification techniques. However, the developer workload and developer availability are taken into account in only a handful number papers. In this work, a new automated triaging approach is proposed, which automates the triaging process and optimizes the total fixing time, considering the developer workload, developer availability and the developer previous experience. The proposed solution leverages text mining and clustering technique (K-medoids algorithm). Linux, Eclipse and Apache repositories are explored for evaluating the proposed algorithm. Experimental results showed that the proposed algorithm (1) reduces the total fixing time by 58.16%, 22.84%, and 23.17% in Linux, Eclipse and Apache respectively, (2) normalizes the developer workload and (3) considers the developer ...
Engineering World
World is running fast. With the speed of communication technology, there is a boom in the transpo... more World is running fast. With the speed of communication technology, there is a boom in the transportation industry also. The transportation vehicles are operating day and night to provide proper support of the need. This is really tiring for the transportation workers, especially the drivers who are driving the vehicle. A slight negligence of a driver may cause huge loss. The increasing number of road accidents are therefore a big concern. There is huge research going on to comfort the drivers and increase the security features of vehicles to avoid accidents. Here is this work, a model is proposed, which can efficiently detect driver drowsiness. The work mainly focused on building the learning model. A modified convolutional neural network is built to solve the purpose. The model trained with a dataset of 7000 images of open and closed eyes. For testing purposes, some real-time experiments are done by some volunteer drivers in different conditions, like gender, day, night, etc. the m...
2022 6th International Conference on Computer, Software and Modeling (ICCSM)
arXiv (Cornell University), Jul 14, 2022
International Journal of Open Source Software and Processes
Bug triage is an essential task in the software maintenance phase. It is the process of assigning... more Bug triage is an essential task in the software maintenance phase. It is the process of assigning a developer (fixer) to a bug report. A personnel (triager) has to analyze the developers' profiles and bug reports for the purpose of making a suitable assignment. Manual bug triage consumes time and effort, so automating this process is a necessity. The previous research studies addressed the triage problem as an information retrieval problem, where the new bug report is the query. Other researchers tackled this problem as a classification problem and utilized traditional machine learning or deep learning techniques. A handful of research studies handled this problem as an optimization problem and utilized optimization algorithms such as Hungarian. This paper briefs and analyzes the previous bug triage approaches in addition to conducting an empirical comparison among five of the previous approaches.
Bug triage can be defined as the process of assigning a developer to a bug report. The duty of th... more Bug triage can be defined as the process of assigning a developer to a bug report. The duty of the bug triage team is to study the developers profiles well in order to make an appropriate match between the developers and the incoming bug reports. Thus, this process is a vital step in issue management system. In fact, the number of bug reports submitted every day is gradually increasing which affects the developer workload. Thus, the triage team should consider this factor in distributing the bugs and because of the manual approach, many developers are burden. In particular, triaging bug reports without considering the workload does not only affect the developers workload but also leads to an increase in the number of unaddressed bug reports. As a result, the fixing time of the reported bugs will relatively increase. Unlike other researchers who focus on automating the bug triage and ignoring the developer workload, in this work, we handle the triaging process from a different perspe...
Proceedings of the International Conference on Geoinformatics and Data Analysis, 2018
Design pattern is a high-quality and reusable solution to a recurring software design problem. It... more Design pattern is a high-quality and reusable solution to a recurring software design problem. It is considered an important concept in the software engineering field due to its ability to enhance some of the quality attributes of the software systems including maintainability and extensibility. However, novice developers need to be provided by a tool to assist them in selecting the fit design pattern to solve a design problem. The paper proposes a novel approach for the automatic selection of the fit design pattern. This approach is based on using Latent Dirichlet Allocation (LDA) topic model. The topic is a set of words that often appear together. LDA is able to relate words with similar meaning and to differentiate between uses of words with multiple meanings. In this paper LDA is used to analyze the textual descriptions of design patterns and extract the topics then discover the similarity between the target problem scenario and the collection of patterns using Improved Sqrt-Cosine similarity measure (ISCS). The proposed approach was evaluated using Gang of four design patterns. The experimental results showed that the proposed approach outperforms approach based on the traditional vector space model of Unigrams.
Integrating Research and Practice in Software Engineering, 2019
Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scal... more Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scale software projects, to fix the bugs that appear. In this paper we propose an approach to automate one of the important activities of bug triage which is the bug severity assignment. The proposed approach is based on mining the historical bug repositories of software projects. It utilizes the Hierarchical Dirichlet Process (HDP) topic modeller to extract the topics shared by the historical bug reports, then categorizing them according to their proportions in the extracted topics using the K-means clustering algorithm. For each new submitted report, the top K similar reports are retrieved from their cluster using a novel weighted K-nearest neighbour algorithm that utilizes a similarity measure called Improved-Sqrt-Cosine similarity. The severity level of the new bug is assigned using a Dual-weighted voting scheme. The experimental results demonstrated that our proposed model improved the performance of the bug severity assignment task when compared against three baseline models in the context of two popular bug repositories, Eclipse and Mozilla.
International Journal of Open Source Software and Processes, 2021
Regression testing is one of the essential activities during the maintenance phase of software pr... more Regression testing is one of the essential activities during the maintenance phase of software projects. It is executed to ensure the validity of an altered software. However, as the software evolves, regression testing becomes prohibitively expensive. In order to reduce the cost of regression testing, it is mandatory to reduce the size of the test suite by selecting the most representative test cases that do not compromise the effectiveness of the regression testing in terms of fault-detection capability. This problem is known as test suite reduction (TSR) problem, and it is known to be an NP-complete. The paper proposes a multi-objective adapted binary bat algorithm (ABBA) to solve the TSR problem. The original binary bat (OBBA) algorithm was adapted to enhance its exploration capabilities during the search for a Pareto-optimal surface. The effectiveness of the ABBA was evaluated using six Java programs with different sizes. Experimental results showed that for the same fault disc...
Design pattern is a high-quality reusable solution to a commonly occurring design problem in cert... more Design pattern is a high-quality reusable solution to a commonly occurring design problem in certain context. Using design patterns in software development improves some of the quality attributes of the system including productivity, understandability and maintainability. However, it is hard for novice developers to select a fit design pattern to solve a design problem. The paper proposes a text retrieval based approach for the automatic selection of the fit design pattern. This approach is based on generating a vector space model (VSM) of unigrams and topics to the catalogue of patterns. The topic is a set of words that often appear together. Latent Dirichlet Allocation topic model is adopted to analyze the textual descriptions of the patterns to extract the key topics and discover the hidden semantic. The similarity between the target problem scenario and the collection of patterns is measured using an improved version of the popular Cosine similarity measure. The proposed approac...
Code smells are symptoms of poor software design and implementation choices. Previous empirical s... more Code smells are symptoms of poor software design and implementation choices. Previous empirical studies have underlined their negative effect on software comprehension, fault-proneness and maintainability. A number of approaches have been proposed to identify the existence of code smells in the source code; recent studies have shown the potential of machine learning models in this context. However, previous approaches did not exploit the lexical and syntactical features of the source code; they instead modelled the source code using software metrics only. This paper proposes an approach for detecting the occurrence of the God class smell which utilizes both, the source code textual features and metrics to train three deep learning networks (i) Long short term memory, (ii) Gated recurrent unit and (iii) Convolutional neural network. We proposed utilizing deep leaning networks as they are reported to outperform traditional machine learning models in several domains including software ...
Intelligent Automation & Soft Computing, 2022
International Journal of Computers and Applications, 2020
Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the ... more Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the bugs’ fixes and store their information. Mining bug repositories is essential to automate some maint...
Journal of Software, 2018
International Journal of Mechanical Engineering and Robotics Research, 2016
International Journal of Machine Learning and Computing, 2019