- Software Engineering Research
- Software Engineering Techniques and Practices
- Open Source Software Innovations
- Mobile Crowdsensing and Crowdsourcing
- Software Reliability and Analysis Research
- Software System Performance and Reliability
- Advanced Software Engineering Methodologies
- Innovative Teaching and Learning Methods
- Outsourcing and Supply Chain Management
- Imbalanced Data Classification Techniques
- Collaboration in agile enterprises
- Peer-to-Peer Network Technologies
- Caching and Content Delivery
- Advanced Malware Detection Techniques
- Opportunistic and Delay-Tolerant Networks
- Text and Document Classification Technologies
- Green IT and Sustainability
- Big Data and Business Intelligence
- Complex Network Analysis Techniques
- Islamic Finance and Banking Studies
- Sentiment Analysis and Opinion Mining
- Digital Marketing and Social Media
- Business Process Modeling and Analysis
- Recommender Systems and Techniques
- Smart Grid Security and Resilience
King Saud University
2015-2024
Cardiff University
2011-2012
Software systems are now ubiquitous and used every day for automation purposes in personal enterprise applications; they also essential to many safety-critical mission-critical systems, e.g., air traffic control autonomous cars, SCADA systems. With the availability of massive storage capabilities, high speed Internet, advent Internet Things devices, modern software growing both size complexity. Maintaining a quality such complex while manually keeping error rate at minimum is challenge....
Automated software defect prediction is an important and fundamental activity in the domain of development. However, modern systems are inherently large complex with numerous correlated metrics that capture different aspects components. This number makes building a model very complex. Thus, identifying selecting subset enhance method's performance but challenging problem has received little attention literature. The main objective this paper to identify significant metrics, build evaluate...
In the last fifteen years, an immense expansion has been witnessed in mobile app usage and production. The intense competition tech sector also rapidly constantly evolving user requirements have led to increased burden on creators. Nowadays, fulfilling users’ expectations cannot be readily achieved new unconventional approaches are needed permit interested crowd of users contribute introduction creative apps. Indeed, developers apps most influential candidates engage any engineering...
Managing development progress in agile projects is a co-ordination problem. Several technical factors (e.g. source code versioning, unit testing, acceptance continuous integration and releasing) affect the status, hence, they need to be managed. In distributed projects, manual-based methods (such as communication via video-conferencing tools) are insufficient. Distributed teams find it difficult, with infrequent communications, understand how work of one team member at site influences...
Software development outsourcing is becoming more and famous because of the advantages like cost abatement, process enhancement, coping with scarcity needed resources. Studies confirm that unfortunately a large proportion software projects fails to realize anticipated benefits. Investigations into failures such divulge in several cases are failed issues associated requirements engineering process. The objective this study identification ranking commonly occurring case outsourcing. For...
Design defects affect project quality and hinder development maintenance. Consequently, experts need to minimize these in software systems. A promising approach is apply the concepts of refactoring at higher level abstraction based on UML diagrams instead code level. Unfortunately, we find literature many that are described textually there no consensus how decide if a particular design violates model quality. Defects could be quantified as metrics rules represent combination metrics....
Progress in agile development is determined by the amount of 'working software' produced. Source code versioning, unit testing, continuous integration and acceptance testing (AT) are technical factors that affect maturity software artefects Therefore, progress subject to change due impact these (e.g. modifying source may completed user stories). In co-located projects, face-to-face interaction used share information about changes progress. However, distributed team members find it harder...
Crowdsourcing is a new phenomenon with great opportunities and benefits; it refers to outsourcing task the internet crowds. Crowdsourced Software Testing (CST) specific, valuable crowdsourcing service. Its scale, flexibility, cost effectiveness fast turnaround times are just few reasons why web-based crowdsourced testing services have recently received deal of attention. Major software companies used CST test their applications. However, has its own challenges limitations (e.g., tester...
Agile process and User Centered Design (UCD) approach are two fields with high beneficial opportunities when integrated together. Both based on minimal design up front frequent feedback from users, both human-centered. However, one of the main concerns in integrating them is how to coordinate work properly specially distributed projects. The traditional methods used (e.g. video conferencing) do not provide full support involve UX-designers during daily project activities. may struggle know...
Object-oriented programming (OOP) is prone to defects that negatively impact software quality. Detecting early in the development process crucial for ensuring high-quality software, reducing maintenance costs, and increasing customer satisfaction. Several studies use object-oriented metrics identify design flaws both at model level code level. Metrics provide a quantitative measure of quality by analyzing specific aspects such as complexity, cohesion, coupling, inheritance. By examining...
Planning is an integral part of agile software project management. Several planning tools were developed; they grow in number and complexity. Our analysis 30 the most known shows that while majority them support key activities, still have limitations. In this paper, we presented three limitations to current developed features overcome them. A questionnaire used evaluate identified proposed features. The evaluation are sound exist real projects. addition, participants agree about how...
Requirement change management (RCM) is a critical activity during software development because poor RCM results in occurrence of defects, thereby resulting failure. To achieve RCM, efficient impact analysis mandatory. A common repository good approach to maintain changed requirements, reusing and reducing effort. Thus, better needed tailor knowledge for requirements architecture global (GSD).The objective this research introduce an innovative handling changes simultaneously development. The...
Crowdsourced software testing (CST) is an emerging trend in testing. Companies and developers assign tasks through CST platforms to thousands of online testers. Currently, platform managers are trying find resolve challenges order reach the best practice. Many features have been applied by improve activities, including notification emails, chat rooms, forums and, most importantly, a dashboard view all projects tasks; these enabled operate efficiently. Still, users it difficult stay abreast...
This article discusses a computer-based holistic approach to raise the awareness of development progress in distributed agile projects. The analyses how technical activities (i.e. source code versioning, unit testing, acceptance integration and releasing) affects provides automatic mechanisms that help co-ordinate change with team members. has been evaluated through practical scenarios validated these research prototype. result shows use can provide better members than traditional relies on...
The expansion of software development industry has led to having team members distributed across different geographical areas. While using agile by teams many benefits, it raises challenges and difficulties as well. Managing remote customer involvement is one the faced teams. This article aims 1) identify key activity dependencies existing during in development, 2) design a computer-based system capable providing coordination support through managing these dependencies. In order achieve...
Crowdsourced software engineering (CSE) is an emerging area that has been gaining much attention in the last few years. It refers to use of crowdsourcing techniques activities, including requirements engineering, implementation, design, testing, and verification. CSE alternative traditional uses open call which online developers can respond obtain work on various tasks, as opposed assigning tasks in-house developers. The great benefits have attracted many researchers, studies recently...
Crowdsourcing software design (CSD) platforms allow clients to submit a task be performed by designers. The participating designers face the problem of lack coordination that arises from dependencies between activities when performing tasks. A sufficient mechanisms can lead failure and delayed delivery. This research aims support among participants in CSD identifying limitations they proposing address problems result through using questionnaire. questionnaire shows most suggested process...
Crowdsourced software testing (CST) uses a crowd of testers to conduct testing. Currently, the microtasking model is used in CST; it, task sent individual who work separately from each other. Several studies mentioned that quality test reports produced by individuals was drawback because large number invalid defects were submitted. Additionally, workers tended catch simple defects, not those with high complexity. This research explored effect having pairs collaborating working together...
Agile software projects require frequent interactions between customer and team members especially during requirements analysis acceptance testing. Though these phases normally availability on-site, this type of involvement might be difficult with globally distributed where customer's location is different from members' location. The traditional methods in agile such as using the rich communication technologies (e.g. video-conferencing solutions) are commonly used. problem that may not...
Development Progress in agile methods is based on the amount of "working software" completed by team members.Changes to source code might be introduced that affect working software.Team members face difficulties understanding and sharing changes development progress especially distributed projects.They may not recognise there an effect, or know who affected a change.In addition, are perceived current tracking systems hence if these progress, they will discovered.This lead weak awareness...