Mohammad Alshayeb

Mohammad Alshayeb
King Fahd University of Petroleum and Minerals | KFUPM · Department of Information and Computer Science

Ph.D.

About

111
Publications
117,053
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
2,894
Citations

Publications

Publications (111)
Article
Full-text available
Security is an essential attribute of high‐quality software. However, effectively incorporating security practices into different phases of the software development life cycle (SDLC) remains challenging. Owing to less mature secure testing processes, organizations are prone to ineffective testing practices for defect detection, including severe sec...
Article
Full-text available
Context Bad smells negatively impact software quality metrics such as understandability, reusability, and maintainability. Reduced costs and enhanced software quality can be achieved through accurate bad smell detection. Objective This review aims to summarize and synthesize the studies that used deep learning (DL) techniques for bad smell detecti...
Article
Full-text available
The heart of the application's secure operation is its software code. If the code contains flaws, the entire program might be hacked. The issue with software vulnerabilities is that they reveal coding flaws that hackers could exploit. The prevention of cybersecurity issues begins with the program code itself. When writing software code, a software...
Article
Full-text available
Goal models play a significant role in the early stages of the requirements engineering process. These models are subject to quality problems (a.k.a., bad smells) that may disseminate to the later stages of the requirements engineering process and even to the other stages in software development. To avoid this negative impact, it is important to de...
Article
Full-text available
Over the last three decades, many quality models have been proposed for software systems. These models employ software metrics to assess different quality attributes. However, without adequate thresholds, it is very hard to associate plausible interpretations with software quality attributes. Many attempts are reported in the literature to identify...
Article
Full-text available
Cloud computing (CC) is the delivery of computing services on demand and is charged using a “pay per you use” policy. Of the multiple services offered by CC, SaaS is the most popular and widely adapted service platform and is used by billions of organizations due to its wide range of benefits. However, security is a key challenge and obstacle in cl...
Article
Software evolution, an integral part of the software development process, encompasses frequent and numerous changes and updates that may lead to complex and poor-quality systems. Software engineers and quality practitioners continually refactor the software components to mitigate the negative effects of code and design smells. Although these smells...
Article
Context The refactoring process enhances the software design by modifying the structure of design parts impaired with model smells without altering the overall software behavior. However, handling these smells without proper prioritization will not produce the anticipated effects. Objective In this paper, we solve the prioritization of the model s...
Article
Full-text available
Goal-oriented models are gaining significant attention from researchers and practitioners in various domains, especially in software requirements engineering. Similar to other software engineering models, goal models are subject to bad practices (i.e., bad smells). Detecting and rectifying these bad smells would improve the quality of these models....
Article
Software refactoring solutions aim at mitigating the negative effects of code and design smells on the overall software quality. Many efforts have been exerted to improve the software refactoring process. However, most of these efforts, despite their contributions, overlooked the side effects of the identified refactoring opportunities that may lea...
Article
Full-text available
The ongoing development of computer systems requires massive software projects. Running the components of these huge projects for testing purposes might be a costly process; therefore, parameter estimation can be used instead. Software defect prediction models are crucial for software quality assurance. This study investigates the impact of dataset...
Article
Bad smells are indicators of possible problems in software. Refactoring is usually undertaken to eradicate bad smells. Many studies have investigated the impact of bad smells on software quality, however, only a few have proposed methods to prioritize bad smells. The objective of this paper is to propose a model to prioritize bad smells based on th...
Article
Software smells indicate design or code issues that might degrade the evolution and maintenance of software systems. Detecting and identifying these issues are challenging tasks. This paper explores, identifies, and analyzes the existing software smell detection techniques at design and code levels. We carried out a systematic literature review (SL...
Article
Full-text available
In global software development (GSD), software is developed by a team of geographically dispersed people. Many organizations that develop projects globally do not evaluate their project management readiness to undertake such projects. The objective of this paper is to propose a global project management readiness framework (GLOB) to help organizati...
Article
Full-text available
Refactoring a software artifact is an embedded task in the maintenance phase of the software life cycle. To reduce the time and effort required for this task, researchers proposed methods to automate the software refactoring process at the design and code levels. In this paper, we conducted a systematic literature review of papers that suggest, pro...
Article
Full-text available
There is a significant need to give careful consideration to the Capability Maturity Model Integration (CMMI) level 2 specific practices (i.e. SP 1.1 ‘understand requirements’ and SP 1.2 ‘obtain commitment to requirements’), especially in the context of small- and medium-sized software development organisations, in order to assist such organisation...
Article
Full-text available
Security is considered to be a critical software quality attribute. Tackling security at the requirements phase helps to avoid the need to rework secure software development issues. The aim of this paper is to develop a Requirements Engineering (RE) Security Maturity Model (RESMM) to assist software development organizations to better specify the r...
Article
Full-text available
Software systems are often developed in such a way that good practices in the object-oriented paradigm are not met, causing the occurrence of specific disharmonies which are sometimes called code smells. Design patterns catalogue best practices for developing object-oriented software systems. Although code smells and design patterns are widely dive...
Article
Full-text available
A sequence diagram is a modeling approach for visualizing the behavioral execution of a system. The objective of this research is to investigate the problem of security in a behavioral model (sequence diagram) through the application of model refactoring. We propose detection and correction techniques, empirical evaluation of the proposed technique...
Article
Code smells are indicators of potential problems in software. They tend to have a negative impact on software quality. Several studies use machine learning techniques to detect bad smells. The objective of this study is to systematically review and analyze machine learning techniques used to detect code smells to provide interested research communi...
Article
Full-text available
There has been a tremendous increase in research in the area of cyber security to support cyber applications and to avoid key security threats faced by these applications. The goal of this study is to identify and analyze the common cyber security vulnerabilities. To achieve this goal, a systematic mapping study was conducted, and in total, 78 prim...
Article
Full-text available
Security is one of the most important software quality attributes. Software security is about designing and developing secure software that does not allow the integrity, confidentiality, and availability of its code, data, or service to be compromised. Organizations tend to consider security as an afterthought, and they continue to suffer from secu...
Article
Full-text available
Software metrics are used to measure different attributes of software. To practically measure software attributes using these metrics, metric thresholds are needed. Many researchers attempted to identify these thresholds based on personal experiences. However, the resulted experience-based thresholds cannot be generalized due to the variability in...
Article
Context Software stability is an important object-oriented design characteristic that contributes to the maintainability quality attribute. Software stability quantifies a given systems sensitivity to change between different versions. Stable software tends to reduce the maintenance effort. Assessing software stability during the object-oriented de...
Article
Software maintenance is an important software quality attribute. Many factors affect software maintenance, one of them being code cloning. Code clones are segments of code that are very similar. Software stability tends to measure the unchanged code elements. The objective of this paper is to find whether stability metrics can be used as an indicat...
Article
Full-text available
Software refactoring is the process of changing a software system in a manner that does not alter its external behavior and yet improving its internal structure. Model-driven architecture and the popularity of the UML enabled the application of refactoring at model level, which was earlier applied to software code. In this paper, we propose a multi...
Article
Full-text available
Software metrics have become an essential part of software development because of their importance in estimating cost, effort, and time during the development phase. Many metrics have been proposed to assess different software quality attributes, including stability. A number of software stability metrics have been proposed at the class, architectu...
Article
Bad smells tend to have a negative impact on software by degrading its quality. It is beneficial to detect model smells to avoid their propagation to later stages of software development. The objective of this paper is to present the state‐of‐the‐art research on techniques for detecting UML model bad smells. The detection techniques are compared an...
Article
The need to ensure the quality of software is growing in importance on a daily basis due to the growing role of software in critical products and application areas, such as defense, aerospace, aviation, and medicine. To meet this need, many organizations use the Capability Maturity Model Integration process model to assess and improve software deve...
Article
Full-text available
Data mining and search-based algorithms have been applied to various problems due to their power and performance. There have been several studies on the use of these algorithms for refactoring. In this paper, we show how search based algorithms can be used for sequence diagram refactoring. We also show how a hybridized algorithm of Kmeans and Simul...
Article
Full-text available
CONTEXT: There is a significant need to give more careful consideration to the PPQA process area of CMMI Level 2, especially in the context of small- and medium-sized software development organizations, to help such organizations achieve CMMI Level 2. OBJECTIVE: The objective of this paper is to report on the implementation of the PPQA process area...
Article
Full-text available
The focus on secure software development has been growing steadily in all phases of the software development life cycle. Security awareness in the requirements engineering stage of software development is important in building secure software. One of the major issues faced by the software industry is that many organizations undertake secure softwar...
Article
Software metrics are becoming more acceptable measures for software quality assessment. However, there is no standard form to represent metric definitions, which would be useful for metrics exchange and customization. In this article, we propose the Software Product Metrics Definition Language (SPMDL). We develop an XML-based description language t...
Article
Context Code bad smells indicate design flaws that can degrade the quality of software and can potentially lead to the introduction of faults. They can be eradicated by applying refactoring techniques. Code bad smells that impact the security perspective of software should be detected and removed from their code base. However, the existing literatu...
Article
Full-text available
CONTEXT: There is a significant need to give careful consideration to Capability Maturity Model Integration (CMMI) Level 2 specific practices – SP 1.3 "manage requirements changes," and SP 1.4 "maintain bidirectional traceability of requirements," especially in the context of small- and medium-sized software development organizations in Saudi Arabi...
Article
Full-text available
Context Planning and managing task allocation in Global Software Development (GSD) projects is both critical and challenging. To date, a number of models that support task allocation have been proposed, including cost models and risk-based multi-criteria optimization models. Objective The objective of this paper is to identify the factors that inf...
Article
Full-text available
Managing communication in collaborative global software development (GSD) projects is both critical and challenging. While social computing has received much attention from practitioners, social computing adoption is still an emerging research area in GSD. This research paper provides a review of the academic research in social computing and identi...
Conference Paper
Full-text available
Software product's quality is one of the important aspects that affect the user, the developer, and the product. Measuring quality in the early phases of the project life cycle is a major goal of project planning. Accordingly, several research studies have been proposed to measure the software product quality attributes. In this paper, we empirical...
Article
Full-text available
Project management in the context of global software development (GSD) is challenging due to a number of issues. This paper has a two-fold objective: (1) to identify the factors from the literature related to the successful project management in GSD and to validate the identified factors in the real-world practice; (2) to map the identified factors...
Article
Full-text available
There is an increase use of security driven approaches to support software development activities, such as requirements, design and implementation. The objective of this paper is to identify the existing software security approaches used in the software development lifecycle (SDLC). In order to meet our goal, we conducted a systematic mapping study...
Article
Full-text available
Context Global Software Development (GSD) is the process whereby software is developed by different teams located in various parts of the globe. One of the major reasons for GSD project failure is that a number of organizations endorse global development prior to understanding project management challenges for the global activity. Objective The obj...
Conference Paper
Refactoring has been widely used to improve software design. Refactoring is applied when a bad smell is detected. Several bad smells might be present in the code. In this paper, we conduct an empirical study to find if the order of applying refactoring has any impact on the quality of the final code. We run six experiments by applying three refacto...
Article
A design pattern is a well-defined solution to a recurrent problem. Over the years, the number of patterns and domains of design patterns have expanded, as the patterns are the experiences of the experts of the domain captured in a higher-level abstraction. This led others to work on languages for design patterns to systematically document abstract...
Article
The unified modeling language (UML) is one of the most commonly used modeling languages in the software industry. It simplifies the complex process of design by providing a set of graphical notations, which helps express the objectoriented analysis and design of software projects. Although UML is applicable to different types of systems, domains, m...
Article
A novel low-cost platform for prototyping and characterizing the performance of digital circuit intellectual properties (IPs) has been developed. Compromised of several HW/SW components, it allows developers of circuit IPs to verify the functionality of any number of IPs on the same prototype chip and characterize their speeds without the need for...
Article
The use of Information technology (IT) tools in teaching provides innovative learning environments that increases students' interaction with instructor and among students themselves. It is expected that the use of technology to enhance student learning experience. In this paper, I report my experience in teaching software project management course...
Conference Paper
Full-text available
Over the last decade, an increasing number of organizations have started software development in a globally distributed environment. One of the major challenges is that many organizations endorse the process of global software development without testing their management readiness for the globally distributed development activity. This includes wor...
Article
Full-text available
The Standard Test Interface Language (STIL) is the de-facto standard for transferring test data between the test generation environment and the test equipment. STIL's flexibility and extensibility facilitates its use as the sole input language for automatic test-pattern generation (ATPG). However, STIL format is complex and does not provide support...
Chapter
Software reuse enables the development of software that is of better quality and at lower cost. Software reuse environments are sought to enhance the reuse of software artifacts especially when done at earlystage of the software life cycle. A number of software reuse environments have been proposed, however, there is no framework that helps in anal...
Article
Software stability is an important factor for better software quality. Stable classes tend to reduce the software maintenance cost and effort. Therefore, achieving class stability is an important quality objective when developing software. Designers can make better decisions to improve class stability if they can predict it before the fact using so...
Conference Paper
Full-text available
Global software development (GSD) is continuously increasing because of many factors such as high quality software production in offshore destinations with significant cost-savings. Objective - The objective of this study is to identify the challenges of the existing tools used in GSD projects. Method - The authors applied the systematic literature...
Conference Paper
Full-text available
Design patterns are abstract descriptions of object-oriented designs, which appear repeatedly for a possible high-quality solution. Many design pattern description languages have been proposed. These languages use a combination of a natural language, UML-style diagrams, complex mathematical or logic based formalisms, or eXtensible Markup Language (...
Article
Service-Oriented Architecture has gained considerable attention in construction of enterprise level business solutions. Although this architectural approach provides many benefits, it comes at the cost of increased complexity. This research focuses on the development of a metadata framework using semantic web technologies of XML, Resource Descripti...
Article
Software reuse enables the development of software that is of better quality and at lower cost. Software reuse environments are sought to enhance the reuse of software artifacts especially when done at early-stage of the software life cycle. A number of software reuse environments have been proposed, however, there is no framework that helps in ana...
Article
Full-text available
A comprehensive Arabic handwritten text database is an essential resource for Arabic handwritten text recognition research. This is especially true due to the lack of such database for Arabic handwritten text. In this paper, we report our comprehensive Arabic offline Handwritten Text database (KHATT) consisting of 1000 handwritten forms written by...
Article
Goal models represent interests, intentions, and strategies of different stakeholders in early requirements engineering. When capturing requirements of socio-technical systems, goal models evolve quickly to become large and complex. Hence, understanding and maintaining such goal models become more challenging. Software engineering metric-based appr...
Article
Maintainability is an essential software quality attribute as software maintenance is a costly process. ISO 9126 characterised maintainability with five sub-characteristics, one of which is stability. Unstable software may lead to high maintenance cost and effort. Classes in object-oriented systems form the basic elements of the software architectu...
Conference Paper
It is hard sometime to know the name of the reciter of the Holy Quran "Qarie" and the "Soura/Aya" while listening to Quran recitation. In this paper, we present the technical details of "Sout Albayan" which is an iPhone mobile application that uses audio fingerprinting to identify the details of the reciter, the Aya and the Soura that is being reci...
Conference Paper
Full-text available
context: Real-time collaboration is critical for developing high quality software systems at low cost in a geographically distributed Global Software Development (GSD) environment. It is anticipated that emerging Social Computing tools can play an important role in facilitating real-time effective collaboration among teams working in the GSD. Objec...
Article
Design patterns are rapidly gaining acceptance in the software community not only as reusable constructs for software development but also for the documentation of the software architectural design. Most of the existing design pattern languages describe design patterns using a combination of a natural language, UML‐style diagrams and complex mathem...
Article
Full-text available
Maintenance is an important activity in the software life cycle. No software product can do without undergoing the process of maintenance. Estimating a software's maintainability effort and cost is not an easy task considering the various factors that influence the proposed measurement. Hence, Artificial Intelligence (AI) techniques have been used...
Conference Paper
Full-text available
Software design patterns are solutions to recurring problems. These solutions have been widely accepted and adopted by the software practitioners. Design Patterns were initially described informally through the use of textual descriptions or some object oriented graphical notations. However, informal descriptions of design patterns give rise to amb...
Conference Paper
Systematic software reuse facilitates achieving quality software, faster and at a lower cost. Software reuse environments play an important role in exploiting reusable artifacts to the extent. Environments that support reusing early-stage software artifacts are of great interest. There have been a number of reuse environments proposed in the litera...
Article
Use case diagrams are primary artifacts used for modeling functional requirements. Use case diagrams are part of the Unified Modeling Language (UML) suite of models that has become a de facto standard for modeling object oriented languages. Each model in this suite is described by a metamodel that dictates its syntax and semantics. The use case dia...
Article
Model-driven engineering, an emerging trend in software engineering, has enabled the use of refactoring to UML models. Numerous approaches to model refactoring, problem detection, consistency management, and tool support to automate and verify refactoring are discussed and distributed across numerous research literatures. This paper provides a syst...
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 investigate...
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...
Conference Paper
Full-text available
Global Software Development (GSD) is a collaborative development where one company (client) contracts out all or part of its software development activities to another company (vendor), which provides services in return for remuneration. In today’s world of high cost commitments and limited budgets, GSD provides a viable option for developing lower...
Conference Paper
Full-text available
Over the last decade, many firms in the world have started adopting Global Software Development (GSD) in order to reduce software development cost. GSD helps companies to leverage the benefits of multi-site development with respect to time, cost and access to skillful resource. Recent research suggests that half of the companies that have tried glo...
Conference Paper
Model-driven engineering, an emerging trend in software engineering, has enabled the application of refactoring to UML models. Due to its growing popularity in the domain of refactoring, a number of approaches to specify models and transformation rules have been proposed in literature. A comparison framework is required by researchers and practitio...
Conference Paper
Model-driven engineering, an emerging trend in software engineering, has enabled the application of refactoring to UML models. One of the important steps in refactoring is the identification of refactoring opportunities within the model, also referred to as Model Smells. An Object-Oriented system modeled by UML is built up from many different views...
Article
Full-text available
Refactoring to patterns allows software designers to safely move their designs towards specific design patterns by applying multiple low-level refactorings. There are many different refactoring to pattern techniques, each with a particular purpose and a varying effect on software quality attributes. Thus far, software designers do not have a clear...
Article
Refactoring tends to improve the internal structure of the code without affecting its external behavior by restructuring the software elements. Refactoring is a preferred mechanism to make the code more readable and easier to understand; it also helps in finding bugs and in faster programming. However, refactoring may affect class stability, the ex...
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
Refactoring is the process of improving the design of existing code by changing its internal structure without affecting its external behavior. Refactoring tends to improve software quality by improving design, improving readability and reducing ‘bugs’. There are many different refactoring methods, each having a particular purpose and effect. Conse...