Mahmoud Elish

Mahmoud Elish
Gulf University for Science and Technology (Kuwait) · Department of Computer Science

Doctor of Philosophy

About

44
Publications
13,469
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,109
Citations

Publications

Publications (44)
Article
Full-text available
Test smells have been defined as indicators of poorly designed tests. Their presence negatively affects the maintainability of a test suite as well as the production code. Despite the many studies that address the negative impacts of various test smells, until now there has been no empirical evidence considering the relation between the evolution o...
Chapter
Effective and efficient software security inspection is crucial since the existence of vulnerabilities represents severe risks to software users. This paper aims to empirically evaluate and compare different types of Artificial Neural Networks (ANNs) in predicting components that are prone to vulnerabilities in web applications. We considered five...
Article
Purpose Effective and efficient software security inspection is crucial as the existence of vulnerabilities represents severe risks to software users. The purpose of this paper is to empirically evaluate the potential application of Stochastic Gradient Boosting Trees (SGBT) as a novel model for enhanced prediction of vulnerable Web components comp...
Article
Full-text available
Software systems are subject to a series of changes due to a variety of maintenance goals. Some parts of the software system are more prone to changes than others. These change-prone parts need to be identified so that maintenance resources can be allocated effectively. This paper proposes the use of Group Method of Data Handling (GMDH)-based abduc...
Article
Full-text available
There are several claimed benefits for the impact of design patterns (DPs) on software quality. However, the association between design patterns and fault-proneness has been a controversial issue. In this work, we evaluate the fault-proneness of design patterns at four levels: the design level, category level, pattern level, and role level. We used...
Conference Paper
Full-text available
Design patterns are common solutions to specific design problems. There are many claimed benefits of the application of design patterns on design quality. This paper empirically evaluates and compares the modularity of design patterns in object-oriented software. Coupling and cohesion of classes that participate in design patterns were compared wit...
Conference Paper
Full-text available
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 relations...
Article
More accurate prediction of software maintenance effort contributes to better management and control of software maintenance. Several research studies have recently investigated the use of computational intelligence models for software maintainability prediction. The performance of these models, however, may vary from dataset to dataset. Consequent...
Conference Paper
Full-text available
This paper empirically evaluate the effectiveness of a set of coupling metrics, identified in a literature survey, as early indicators of change-prone classes from one release to the next in object-oriented software evolution process. Several hypotheses were tested, and different logistic regression models were constructed for predicting change-pro...
Article
Full-text available
Accurate estimation of software development effort is essential for effective management and control of software development projects. Many software effort estimation methods have been proposed in the literature including computational intelligence models. However, none of the existing models proved to be suitable under all circumstances; that is,...
Article
Full-text available
Software change size prediction can be very useful and helpful in guiding the maintenance team; distributing the resources more efficiently; and, thus, enabling project managers and their teams to focus their effort and attention on the highly unstable artifacts during the software evolution process. This paper empirically explores a set of package...
Conference Paper
Full-text available
More accurate prediction of software maintenance effort contributes to better management and control of software maintenance. Several research studies have recently investigated the use of computational intelligence models for software maintainability prediction. The performance of these models however may vary from dataset to dataset. Consequently...
Conference Paper
Full-text available
Many different factors influence the quality of software systems. One factor is the use of design patterns. In this paper we survey the literature for the existing empirical evidence on the impact of the GoF design patterns on software quality attributes. There are two objectives of conducting this survey. The first objective is to evaluate the cov...
Article
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 so...
Conference Paper
Full-text available
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...
Article
Full-text available
Purpose ‐ The purpose of this paper is to investigate the relationships between some aspect-oriented metrics and aspect fault proneness, content and fixing effort. Design/methodology/approach ‐ An exploratory case study was conducted using an open source aspect-oriented software consisting of 76 aspects, and 13 aspect-oriented metrics were investig...
Article
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...
Article
Full-text available
This paper investigates and empirically evaluates and compares six popular computational intelligence models in the context of fault density prediction in aspect-oriented systems. These models are multi-layer perceptron (MLP), radial basis function (RBF), k-nearest neighbor (KNN), regression tree (RT), dynamic evolving neuro-fuzzy inference system...
Article
PURPOSE: Robustness analysis is a technique that can be performed to help ensure the correctness, completeness and consistency of use case and domain models. Robustness analysis also helps bridge the gap between the analysis and design phases by providing a guided approach to identify a first-guess set of objects that will realize scenarios describ...
Conference Paper
Full-text available
The Chidamber and Kemerer (CK) metrics suite is one of the most popular and highly cited suites for measuring Object-Oriented (OO) designs. A great amount of empirical studies have been conducted to evaluate these metrics as indicators of the functional correctness of classes in OO systems. However, there has been no attempt to systematically revie...
Article
The subject of "Design Requirements" (DR) is central to the design of software and engineering systems. The main reason for this is that quality aspects are usually closely tied to requirements, among other things. In this review paper, we consider how the subject of requirements is being managed in these two seemingly different design disciplines....
Article
Full-text available
Stability assessment provides software managers with early insight into trends in software evolution, and thus assists them in managing and controlling long-lived software systems. However, there are few empirical studies that have been conducted to relate software metrics with external quality attributes of aspect-oriented software in general, and...
Article
Full-text available
Packages are important high-level organizational units for large object-oriented systems. Package-level metrics characterize the attributes of packages such as size, complexity, and coupling. There is a need for empirical evidence to support the collection of these metrics and using them as early indicators of some important external software quali...
Article
Stable software, the capability of software to evolve while preserving its design, is an important software feature that software engineers strive for. Stable software tends to reduce maintenance cost and effort. Object-oriented (OO) classes form the basic components of the software systems; hence, stable OO classes may contribute to reducing the m...
Conference Paper
Refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. A number of refactorings were proposed specifically for Aspect-Oriented (AO) systems. AO techniques are emerging to cope with the challenges of current software development and to address shortcomings...
Conference Paper
Full-text available
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, coupli...
Article
Accurate estimation of software project effort is crucial for successful management and control of a software project. Recently, multiple additive regression trees (MART) has been proposed as a novel advance in data mining that extends and improves the classification and regression trees (CART) model using stochastic gradient boosting. This paper e...
Conference Paper
Full-text available
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 off...
Article
Effective prediction of defect-prone software modules can enable software developers to focus quality assurance activities and allocate effort and resources more efficiently. Support vector machines (SVM) have been successfully applied for solving both classification and regression problems in many applications. This paper evaluates the capability...
Conference Paper
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 facad...
Conference Paper
Full-text available
This paper empirically explores the correlations between a suite of structural stability metrics for object-oriented designs and post-release defect density. The investigated stability metrics measure the extent to which the structure of a design is preserved throughout the evolution of the software from one release to the next. As a case study, th...
Conference Paper
Full-text available
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 indic...
Conference Paper
Design structural stability refers to the extent to which the structure of a design is preserved throughout the evolution of the software from one release to the next. This paper investigates whether there are some structural characteristics (metrics) of object-oriented design that are indicators of its structural stability. Investigated metrics ar...
Conference Paper
Full-text available
As changes are made to an object-oriented design, its structure and/or behavior may be affected. Modifications made to one class can have ripple effects on other classes in the design. The stability of an object-oriented design indicates its resistance to interclass propagation of changes that the design would have when it is modified There are two...
Article
Analyzing object-oriented systems in order to evaluate their quality gains its importance as the paradigm continues to increase in popularity. Consequently, several object-oriented metrics have been proposed to evaluate different aspects of these systems such as class coupling. In object-oriented design, three types of coupling may exist between cl...
Conference Paper
Many collaborative software tools have been developed in the recent years to accelerate the growing interest of many organizations to become learning organizations. Selecting a collaborative tool that best suits an organization's needs is a challenging task, given that there are no evaluation criteria against which these tools could be evaluated wi...
Conference Paper
Full-text available
The use of agreed-upon coding practices is believed to enhance program comprehension, which directly affects reuse and maintainability. This paper describes a controlled small-scale experiment that tries to determine how well open source Java programmers adhere to a set of well publicized coding practices. The experiment evaluated 100 arbitrarily s...

Network

Cited By

Projects

Projects (3)
Archived project
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 project, we provided 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.