Papers by Mohammad Alshayeb
IEEE Transactions on Software Engineering, 2003
This index covers all technical items-papers, correspondence, reviews, etc.-that appeared in this... more This index covers all technical items-papers, correspondence, reviews, etc.-that appeared in this periodical during 2019, and items from previous years that were commented upon or corrected in 2019. Departments and other items may also be covered if they have been judged to have archival value. The Author Index contains the primary entry for each item, listed under the first author's name. The primary entry includes the coauthors' names, the title of the paper or other item, and its location, specified by the publication abbreviation, year, month, and inclusive pagination. The Subject Index contains entries describing the item under all appropriate subject headings, plus the first author's name, the publication abbreviation, month, and year, and inclusive pages. Note that the item title is found only under the primary entry in the Author Index.
a series of events covering a broad spectrum of software-related topics. The conference covered f... more a series of events covering a broad spectrum of software-related topics. The conference covered fundamentals on designing, implementing, testing, validating and maintaining various kinds of software. The tracks treated the topics from theory to practice, in terms of methodologies, design, implementation, testing, use cases, tools, and lessons learnt. The conference topics covered classical and advanced methodologies, open source, agile software, as well as software deployment and software economics and education. The conference had the following tracks: Advances in fundamentals for software development Advanced mechanisms for software development Advanced design tools for developing software Software engineering for service computing (SOA and Cloud) Advanced facilities for accessing software Software performance Software security, privacy, safeness Advances in software testing Specialized software advanced applications Web Accessibility Open source software A...
Software & Systems Modeling, 2017
Software refactoring is the process of changing a software system in a manner that does not alter... more 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. Modeldriven 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-view integrated approach to model-driven refactoring using UML models. We selected a single model from each UML view at metamodel level to construct an integrated metamodel. We selected class diagram to represent the structural view, sequence diagram to represent the behavioral view and use case diagram to represent the functional view. We validated the proposed approach by comparing integrated refactoring approach with refactoring applied to models individually in terms of quality improvement through UML model metrics. Our results indicate that more bad smell instances can be detected using the integrated approach rather than the individual refactoring approach.
Capability Maturity Model Integration (CMMI) is a software process improvement model that aims at... more Capability Maturity Model Integration (CMMI) is a software process improvement model that aims at improving the processes of the software development. CMMI focuses on the “process quality” instead of “product quality”. Studies have shown that focusing on “process quality” alone does not guarantee the quality of the produced software, whereas equal attention to product quality is also essential for ensuring the overall software quality. The objective of this paper is to present the initial structure of the framework we propose to measure and assess the software product maturity level. The measure we use for the product maturity is the level of the product compliance with the internal and external quality attributes defined in the stakeholders’ requirements. In this framework, we focus on the quality of the product of the process. The proposed framework will help assess the quality of the software product through assessment of the final software deliverable. Successful implementation ...
e Informatica Softw. Eng. J., 2019
Background: Goal models describe interests, preferences, intentions, desired goals and strategies... more Background: Goal models describe interests, preferences, intentions, desired goals and strategies of intervening stakeholders during the early requirements engineering stage. When capturing the requirements of real-world systems such as socio-technical systems, the produced goal models evolve quickly to become large and complex. Hence, gaining a sufficient level of understanding of such goal models, to perform maintenance tasks, becomes more challenging. Metric-based approaches have shown good potential in improving software designs and making them more understandable and easier to maintain. Aim: In this paper, we propose a novel metric to measure GRL (Goal-oriented Requirements Language) “actor stability” that provides a quantitative indicator of the actor maintainability. Method: We first, validate the proposed metric theoretically then empirically using a case study of a GRL model describing the fostering of the relationship between the university and its alumni. Results: The pro...
Inteligencia Artificial, 2021
The ongoing development of computer systems requires massive software projects. Running the compo... more 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 size and feature selection algorithms on software defect prediction models. We use two approaches to build software defect prediction models: a statistical approach and a machine learning approach with support vector machines (SVMs). The fault prediction model was built based on four datasets of different sizes. Additionally, four feature selection algorithms were used. We found that applying the SVM defect prediction model on datasets with a reduced number of measures as features may enhance the accuracy of the fault prediction model. Also, it directs the test effort to maintain the most influential set of metrics. We also found that the...
PLOS ONE, 2020
Software systems are often developed in such a way that good practices in the object-oriented par... more 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 divergent, there might be a co-occurrence relation between them. The objective of this paper is to empirically evaluate if the presence of design patterns is related to the presence of code smells at different granularity levels. We performed an empirical study using 20 design patterns and 13 code smells in ten small-size to medium-size, open source Javabased systems. We applied statistical analysis and association rules. Results confirm that classes participating in design patterns have less smell-proneness and smell frequency than classes not participating in design patterns. We also noticed that every design pattern category act in the same way in terms of smell-proneness in the subject systems. However, we observed, based on the association rules learning and the proposed validation technique, that some patterns may be associated with certain smells in some cases. For instance, Command patterns can co-occur with God Class, Blob and External Duplication smell.
International Journal on Integrating Technology in Education, 2018
Communication in and out the classroom is an essential component for education. As the technology... more Communication in and out the classroom is an essential component for education. As the technology emerges, there is a need to adopt to the new technologies to enhance students' learning experience. Social media technologies provide informal communication methods that promote student engagement and satisfaction by removing communication barriers. In this paper, we report our experience in using different social media technologies to enhance students' learning experience and satisfaction with the course. We perform our experiment in software project management course and conduct a survey to assess the students' perspective towards using these different social media technologies in enhancing their learning and satisfaction. Results show that students are satisfied and feel that their learning experience has improved when using social media for class communication.
International Journal of Security and Its Applications, 2020
Use case modelling is an industrial de-facto standard technique to express functional requirement... more Use case modelling is an industrial de-facto standard technique to express functional requirements. Security bad smells are design flaws that can potentially degrade the quality of software by affecting a system's ability to prevent malicious activities. The presence of security bad smells in a use case model is likely to propagate security vulnerabilities to other software artefacts. Therefore, the detection and refactoring of security bad smells in use case models is important for ensuring the overall quality of software systems. In this paper, we propose a genetic algorithm-based detection approach to detect security bad smells. A refactoring process is then applied to correct the security bad smells. Finally, the improvement to security is assessed through the statistical analysis of quality metrics. The practicality of the approach is demonstrated by applying it to a set of use case models. The results show that the proposed security bad smell detection and correction technique can significantly improve the quality of use case models.
Arabian Journal for Science and Engineering, 2020
Code smells are indicators of potential problems in software. They tend to have a negative impact... more 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 community with knowledge about the adopted techniques and practices for code smells detection. We use a systematic literature review approach to review studies that use machine learning techniques to detect code smells. Seventeen primary studies were identified. We found that 27 code smells were used in the identified studies; God Class and Long Method, Feature Envy, and Data Class are the most frequently detected code smells. In addition, we found that 16 machine learning algorithms were employed to detect code smells with acceptable prediction accuracy. Furthermore, we the results also indicate that support vector machine techniques were investigated the most. Moreover, we observed that J48 and Random Forest algorithms outperform the other algorithms. We also noticed that, in some cases, the use of boosting techniques on the models does not always enhance their performance. More studies are needed to consider the use of ensemble learning techniques, multiclassification, and feature selection technique for code smells detection. Thus, the application of machine learning algorithms to detect code smells in systems is still in its infancy and needs more research to facilitate the employment of machine learning algorithms in detecting code smells.
PLOS ONE, 2018
Data mining and search-based algorithms have been applied to various problems due to their power ... more 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 Simulated Annealing (SA) algorithms can aid each other in solving sequence diagram refactoring. Results show that search based algorithms can be used successfully in refactoring sequence diagram on small and large case studies. In addition, the hybridized algorithm obtains good results using selected quality metrics. Detailed insights on the experiments on sequence diagram refactoring reveal that the limitations of SA can be addressed by hybridizing the Kmeans algorithm to the SA algorithm.
Journal of Computer Science and Technology, 2019
Software metrics are used to measure different attributes of software. To practically measure sof... more 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 personal experiences and the subjectivity of opinions. The goal of this paper is to propose an automated clustering framework based on the expectation maximization (EM) algorithm where clusters are generated using a simplified 3-metric set (LOC, LCOM, and CBO). Given these clusters, different threshold levels for software metrics are systematically determined such that each threshold reflects a specific level of software quality. The proposed framework comprises two major steps: the clustering step where the software quality historical dataset is decomposed into a fixed set of clusters using the EM algorithm, and the threshold extraction step where thresholds, specific to each software metric in the resulting clusters, are estimated using statistical measures such as the mean (µ) and the standard deviation (σ) of each software metric in each cluster. The paper's findings highlight the capability of EM-based clustering, using a minimum metric set, to group software quality datasets according to different quality levels.
Information and Software Technology, 2019
Arabian Journal for Science and Engineering, 2019
Software maintenance is an important software quality attribute. Many factors affect software mai... more 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 indicator of code structural similarity. I perform an empirical study to find the relationship between code similarity and stability at the class level. I also conduct clustering to classify stability and similarity metrics into different related groups. Finally, I perform principal component analysis to determine which class stability metrics have the strongest relationship with class similarity. In addition, I built a prediction model to predict class similarity using class stability metrics. The results show that the four investigated stability metrics have a significant relationship with similarity; however, the class stability metric (CSM) has the strongest correlation with code similarity. The clustering results also reveal that classes with high stability tend to have high similarity. In addition, I found that the CSM and class instability metric (CII) can both reveal 74.023% of class similarity. I conclude that stability metrics can be used as a good indicator of class similarity.
Journal of Data and Information Quality, 2017
Software metrics are becoming more acceptable measures for software quality assessment. However, ... more 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 to define software metrics in a precise and reusable form. Metric definitions in SPMDL are based on meta-models extracted from either source code or design artifacts, such as the Dagstuhl Middle Meta-model, with support for various abstraction levels. The language defines several flexible computation mechanisms, such as extended Object Constraint Language queries and predefined graph operations on the meta-model. SPMDL provides an unambiguous description of the metric definition; it is also easy to use and is extensible.
Software & Systems Modeling, 2016
Software metrics have become an essential part of software development because of their importanc... more 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, architecture, and system levels. However, these metrics typically target the source code. This paper proposes a software stability metrics suite at the model level for three UML diagrams: class, use case, and sequence. These three diagrams represent the most common diagrams in the three UML views: structural, functional, and behavioral. We introduce a client-master assessment approach to avoid measurement duplication. We also theoretically and empirically validate the proposed metrics suite. We also provide examples to demonstrate the use of the proposed metrics and their application as indicators of software stability.
Information and Software Technology, 2017
Planning and managing task allocation in Global Software Development (GSD) projects is both criti... more 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 influence task allocation in the GSD project management context. Method: First, we implemented a formal Systematic Literature Review (SLR) approach and identified a set of factors that influence task allocation in GSD projects. Second, a questionnaire survey was developed based on the SLR, and we collected feedback from 62 industry practitioners. Results: The findings of this combined SLR and questionnaire survey indicate that site technical expertise, time zone difference, resource cost, task dependency, task size and vendor reliability are the key criteria for the distribution of work units in a GSD project. The results of the t-test show that there is no significant difference between the findings of the SLR and questionnaire survey. However, the industry study data indicates that resource cost and task dependency are more important to a centralized GSD project structure while task size is a key factor in a decentralized GSD project structure. Conclusion: GSD organizations should try to consider the identified task allocation factors when managing their global software development activities to better understand, plan and manage work distribution decisions.
Goal models represent interests, intentions, and strategies of different stakeholders in early re... more 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 approaches have shown good potential in measuring software designs. In this paper, we propose a structural metric to measure actor external dependencies in GRL (Goal-oriented Requirement Language) models. We illustrate our approach by applying our metric to a goal model describing undergraduate students' involvement in research activities.
Design patterns are abstract descriptions of objectoriented designs, which appear repeatedly for ... more Design patterns are abstract descriptions of objectoriented designs, which appear repeatedly for a possible highquality 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 (XML). In this paper, we propose an extension to the Design Pattern Description Language (DPDL), which is based on XML to support composite design patterns. A composite pattern is a special type of design patterns that is formed from a composition of other patterns. Composite patterns capture the synergy arising from the different roles an object plays in the overall composition structure. The enhanced Design Pattern Description Language (eDPDL) is found to be effective in capturing the composite design pattern while representing the whole composite design pattern in a single description.
Uploads
Papers by Mohammad Alshayeb