Mahmoud O. Elish

dblp:77/5900 · also Mahmoud Elish · DBLP profile ↗
← Back
18ranked-venue papers
11as first author
3since 2021 · last 2026
0000-0002-2767-0501ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 11 · 8 first-author · 2 since 2021Artificial intelligence and machine learning · 4 · 3 first-authorDatabases, data management, data science and information retrieval · 4 · 1 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 3 · 2 first-authorSystems, architecture and hardware · 1 · 1 since 2021
YearPublicationVenuePosition
2026 SMELLDroid: A Dataset for Code Smells in Android Apps
abstract
Code smells are recurring design and implementation issues that degrade software quality and maintainability. While several studies have examined code smells in Android applications, there is a lack of publicly available datasets that systematically capture and quantify them. This paper introduces SMELLDroid, a large-scale dataset designed to support empirical studies on code smells within the Android ecosystem. The dataset comprises code smells extracted from 38,704 Android applications, including 29,201 malware apps and 9,503 benign apps. SMELLDroid encompasses seven code smell types—four object-oriented (BLOB, CC, LM, SAK) and three Android-specific (HAS, HBR, HSS)—with quantitative indicators representing their occurrence across applications. This dataset enables researchers to pursue multiple directions, such as quantifying smell prevalence, analyzing relationships among smell categories, and comparing code quality characteristics between benign and malware apps.
Joyce Champie, Karim O. Elish, Mahmoud O. Elish
MSR3
2025 An Empirical Study on Maintainability Index of Software Design Patterns
abstract
While design patterns are widely used to enhance software quality, there is a need for empirical evidence to understand their impact on software maintainability. This study empirically investigates the maintainability index of object-oriented design patterns at three levels: design, pattern category, and individual patterns. Data were collected from five real-world software systems, which include a total of 63 instances of design patterns spanning 17 GoF design patterns. At the design level, the results show that classes implementing design patterns have a statistically significant higher maintainability index than those that do not. At the pattern category level, creational and structural design patterns exhibit a higher maintainability index compared to behavioral patterns. Finally, at the pattern level, the Builder, State, and Adapter patterns rank as the top three in terms of maintainability index.
Mahmoud O. Elish
SERA1
2022 Lightweight, Effective Detection and Characterization of Mobile Malware Families
abstract
Android malware is an ongoing threat to billions of smart devices’ security, ranging from mobile phones to car infotainment systems. Despite numerous approaches and previous studies to develop solutions for detecting and preventing Android malware, the rapid continuous development of new malware variants requires a careful reconsideration and the development of effective methods to identify malware families given a meager number of malware instances. In this paper, we present DroidMalVet, a novel Android malware family classification and detection approach that does not require to perform complex program analyses or utilize large feature sets. DroidMalVet is the first to use a promising, diverse, and small set of software metrics as features in a supervised learning platform to classify and detect various Android malware families. Our extensive empirical evaluations on two large public malware datasets show that DroidMalVet accurately detects both small and large malware families with F-Score accuracy of 94.4% and 96%, and AUC equal to 99.5% and 99.7% on the malware families in Drebin and AMD datasets, respectively. Moreover, our results demonstrate the superior performance of DroidMalVet in detecting small families (i.e., families with few samples). DroidMalVet complements existing approaches and presents an early warning tool for detecting known and emerging malware families.
Karim O. Elish, Mahmoud O. Elish, Hussain M. J. Almohri
IEEE Trans. Computers2
2015 Fault density analysis of object-oriented classes in presence of code clones
abstract
Code cloning has been a typical practice during software development, by which code fragments are reused with or without changes by copying and pasting. It has been a questionable issue whether cloning has a destructive impact or not on software development and the quality of the delivered software. This paper empirically investigates the relationship between code clones and fault density of object-oriented classes. More than 3000 classes from five open source software systems were analyzed. The results suggest that classes that have clones were less fault dense on average than the classes that do not have clones. However, there was no association between intra/inter-class clone fragments within a class and its fault density. The results also indicate that among the groups of classes that have only one type of clones, the group of classes with Type III clones was the least fault dense. Minor, although statistically significant, correlations were observed between many code clone metrics and class fault density. Furthermore, the fault density predictive powers of these metrics were found to be almost the same. However, no improvement in the accuracy of fault density prediction models was observed when these metrics were used as inputs.
Mahmoud O. Elish, Yasser Al-Ghamdi
EASE1
2015 Quantitative analysis of fault density in design patterns: An empirical study
Mahmoud O. Elish, Mawal A. Mohammed
Inf. Softw. Technol.1
2015 Three empirical studies on predicting software maintainability using ensemble methods
Mahmoud O. Elish, Hamoud Aljamaan, Irfan Ahmad 0001
Soft Comput.1
2013 Assessment of voting ensemble for estimating software development effort
abstract
This paper reports and discusses the results of an assessment study, which aimed to determine the extent to which the voting ensemble model offers reliable and improved estimation accuracy over five individual models (MLP, RBF, RT, KNN and SVR) in estimating software development effort. Five datasets were used for this purpose. The results confirm that individual models are not reliable as their performance is inconsistence and unstable across different datasets. However, the ensemble model provides more reliable performance than individual models. In three out of the five datasets that were used in this study, the ensemble model outperformed the individual models. In the other two datasets, the ensemble model achieved the second best performance, which was still very competitive as there was no statistically significant difference between it and the best models in these two datasets.
Mahmoud O. Elish
CIDM1
2013 Empirical taxonomy of refactoring methods for aspect-oriented programming
abstract
SUMMARY Refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. Improving one quality attribute may impair other quality attributes. A number of refactoring methods were proposed specifically for aspect‐oriented systems. However, there are no guidelines to help aspect‐oriented software designer decide which refactoring methods to apply to optimize a software system with regard to certain design goals. In this paper, we propose a taxonomy/classification of refactoring methods for aspect‐oriented programming based on their measurable effect on software quality attributes using six open‐source aspect‐oriented software systems. Copyright © 2011 John Wiley & Sons, Ltd.
Mohammad R. Alshayeb, Hamdi A. Al-Jamimi, Mahmoud O. Elish
J. Softw. Evol. Process.3
2013 A suite of metrics for quantifying historical changes to predict future change-prone classes in object-oriented software
abstract
ABSTRACT Software systems are subject to series of changes during their evolution as they move from one release to the next. The change histories of software systems hold useful information that describes how artifacts evolved. Evolution‐based metrics, which are the means to quantify the change history, are potentially good indicators of the changes in a software system. The objective of this paper is to derive and validate (theoretically and empirically) a set of evolution‐based metrics as potential indicators of the change‐prone classes of an object‐oriented system when moving from one release to the next. Release‐by‐release statistical prediction models were built in different ways. The results indicate that the proposed evolution‐based metrics measure different dimensions from those of typical product metrics. Additionally, several evolution‐based metrics were found to be correlated with the change‐proneness of classes. Moreover, the results indicate that more accurate prediction of class change‐proneness is achieved when the evolution‐based metrics are combined with product metrics. Copyright © 2012 John Wiley & Sons, Ltd.
Mahmoud O. Elish, Mojeeb Al-Rhman Al-Khiaty
J. Softw. Evol. Process.1
2012 A Systematic Review on the Impact of CK Metrics on the Functional Correctness of Object-Oriented Classes
Yasser A. Khan, Mahmoud O. Elish, Mohamed El-Attar 0001
ICCSA (4)2
2010 Exploring the Relationships between Design Metrics and Package Understandability: A Case Study
abstract
In object-oriented designs, packages represent important high-level organization units that group classes. This paper explores the relationships between five package-level metrics and the average effort required to understand a package in object-oriented design. These metrics measure different structural properties of a package such as size, coupling and stability. A case study was conducted using eighteen packages taken from two open source software systems. Correlation, collinearity, and multivariate regression analyses were performed. The results obtained from this study indicate statistically significant correlation between most of the metrics and understandability of a package.
Mahmoud O. Elish
ICPC1
2009 An empirical study of bagging and boosting ensembles for identifying faulty classes in object-oriented software
abstract
Identifying faulty classes in object-oriented software is one of the important software quality assurance activities. This paper empirically investigates the application of two popular ensemble techniques (bagging and boosting) in identifying faulty classes in object-oriented software, and evaluates the extent to which these ensemble techniques offer an increase in classification accuracy over single classifiers. As base classifiers, we used multilayer perceptron, radial basis function network, Bayesian belief network, nave Bayes, support vector machines, and decision tree. The experiment was based on well-known and respected NASA dataset. The results indicate that bagging and boosting yield improved classification accuracy over most of the investigated single classifiers. In some cases, bagging outperforms boosting, while in some other cases, boosting outperforms bagging. However, in case of support vector machines, neither bagging nor boosting improved its classification accuracy.
Hamoud Aljamaan, Mahmoud O. Elish
CIDM2
2009 Improved estimation of software project effort using multiple additive regression trees
Mahmoud O. Elish
Expert Syst. Appl.1
2008 Predicting defect-prone software modules using support vector machines
Karim O. Elish, Mahmoud O. Elish
J. Syst. Softw.2
2006 Do Structural Design Patterns Promote Design Stability?
abstract
Stability is one of the most desirable quality attributes of any software design. The stability of a class diagram indicates its resistance to interclass propagation of changes that the diagram would have when it is modified. This short paper discusses with examples the impact of four structural design patterns (adapter, bridge, composite and facade) on the stability of class diagrams
Mahmoud O. Elish
COMPSAC (1)1
2006 Design Structural Stability Metrics and Post-Release Defect Density: An Empirical Study
Mahmoud O. Elish, David C. Rine
COMPSAC (2)1
2005 Indicators of Structural Stability of Object-Oriented Designs: A Case Study
abstract
The structural stability of an object-oriented design (OOD) refers to the extent to which the structure of the design is preserved throughout the evolution of the software from one release to the next. This paper empirically investigates potential indicators of measures of structural stability of OODs. Both product-related and process-related indicators are considered. These indicators were evaluated through a case study that involves 13 successive releases of Apache Ant. The results showed that each one of the stability metrics is significantly correlated with at least one of the investigated indicators. To make early predictions of the values of each one of the stability metrics, statistically significant regression models were constructed from subsets of the investigated indicators
Mahmoud O. Elish, David C. Rine
SEW1
2002 A tool for measuring inheritance coupling in object-oriented systems
Jarallah AlGhamdi, Mahmoud O. Elish, Moataz A. Ahmed
Inf. Sci.2