Agile Software Development: Trends, Challenges and Applications

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

AGILE SOFTWARE DEVELOPMENTA unique title that introduces the whole range of agile software development processes from the fundamental concepts to the highest levels of applications such as requirement analysis, software testing, quality assurance, and risk management. Agile Software Development (ASD) has become a popular technology because its methods apply to any programming paradigm. It is important in the software development process because it emphasizes incremental delivery, team collaboration, continuous planning, and learning over delivering everything at once near the end. Agile has gained popularity as a result of its use of various frameworks, methods, and techniques to improve software quality. Scrum is a major agile framework that has been widely adopted by the software development community. Metaheuristic techniques have been used in the agile software development process to improve software quality and reliability. These techniques not only improve quality and reliability but also test cases, resulting in cost-effective and time-effective software. However, many significant research challenges must be addressed to put such ASD capabilities into practice. With the use of diverse techniques, guiding principles, artificial intelligence, soft computing, and machine learning, this book seeks to study theoretical and technological research findings on all facets of ASD. Also, it sheds light on the latest trends, challenges, and applications in the area of ASD. This book explores the theoretical as well as the technical research outcomes on all the aspects of Agile Software Development by using various methods, principles, artificial intelligence, soft computing, and machine learning. Audience The book is designed for computer scientists and software engineers both in research and industry. Graduate and postgraduate students will find the book accessible as well.

Author(s): Susheela Hooda, Vandana Mohindru Sood, Yashwant Singh, Sandeep Dalal, Manu Sood
Publisher: Wiley-Scrivener
Year: 2023

Language: English
Pages: 386
City: Beverly

Cover
Title Page
Copyright Page
Contents
Preface
Chapter 1 Agile Software Development in the Digital World – Trends and Challenges
1.1 Introduction
1.1.1 Organization of Chapter
1.2 Related Work
1.2.1 Teamwork Development
1.2.2 Project-Based Learning (PJBL)
1.2.3 Planning the Agile Software Development Methodologies
1.3 Agile Architecture Trends in the Digital World
1.3.1 Agile Implementation at Scale
1.4 Challenges Faced in the Digital World Through Agile Software Development
1.4.1 Challenges for Small to Mid-Scale and Large-Scale Agile Projects
1.4.2 Reported Challenges – Cause and Potential Solutions
1.5 Generic Guidelines to Improve the Agile Transformation in Digital World
1.6 Conclusion and Future Perspective
References
Chapter 2 Agile Framework Adaptation Issues in Various Sectors
2.1 Introduction
2.1.1 Human-Human Linkages
2.2 Agile Followers
2.3 Proposed Work
2.4 Resolution Matrix
2.5 Conclusion and Future Work
References
Chapter 3 Vulnerability Assessment Tools for IoT: An Agile Approach
3.1 Introduction
3.2 Agile Methodology: SCRUM
3.3 Scrum Agile Benefits for IoT
3.4 Critical Factors for Implementing Agile Methodology
3.5 Conclusion
References
Chapter 4 Interoperable Agile IoT
4.1 Introduction
4.2 Agile Software Development
4.2.1 Scrum Methodology
4.2.2 Extreme Programming (XP)
4.2.3 Adaptive Software Development (ASD)
4.2.4 Dynamic Software Development Method (DSDM)
4.2.5 Feature Driven Development (FDD)
4.2.6 Kanban Method
4.3 Internet of Things (IoT)
4.4 Agile–IoT Project for Interoperability
4.5 Agile–IoT Project for Smart Domains
4.6 INTER-IoT Framework for Interoperability
4.6.1 Interoperability Aspects
4.7 Conclusion
References
Chapter 5 Functional and Non-Functional Requirements in Agile Software Development
5.1 Introduction
5.2 Agile Requirements Gathering
5.3 Types of Requirements
5.4 Functional Requirement Gathering
5.5 Non-Functional Requirement Gathering
5.6 Testing Functional and Non-Functional Requirements
5.7 Conclusion and Future Scope
References
Chapter 6 Minimizing Cost, Effort, and Implementation Complexity for Adopting Security Requirements in an Agile Development Process for Cyber-Physical Systems
6.1 Introduction
6.2 Literature Review
6.3 Proposed Methodology
6.4 Conclusion
References
Chapter 7 A Systematic Literature Review on Test Case Prioritization Techniques
7.1 The Motivation for Systematic Review
7.1.1 Existing Literature Reviews on Test Case Prioritization
7.1.2 Resources Used for SLR
7.1.3 Search Criteria
7.1.4 Research Questions
7.2 Results
7.2.1 What is the Current Status of Test Case Prioritization?
7.2.2 How Various Test Case Prioritization Techniques are Classified? And What are Those Classifications?
7.2.2.1 Code Coverage-Based
7.2.2.2 Requirements-Based
7.2.2.3 Model-Based Prioritization
7.2.2.4 Time and Cost-Aware Prioritization
7.2.2.5 History-Based Prioritization
7.2.2.6 Risk Factor-Based Prioritization
7.2.2.7 Fault Localization-Based
7.2.2.8 Soft Computing Techniques-Based
7.2.2.9 Web-Based
7.2.2.10 Object Oriented Testing-Based
7.2.2.11 Similarity-Based
7.2.2.12 Combinatorial Interaction Testing-Based
7.2.2.13 Machine Learning-Based
7.2.2.14 Adaptive Random Testing (ART)-Based
7.2.2.15 Prioritization for Continuous Integration (CI) and Software Product Lines (SPL)
7.2.2.16 Hybrid Approaches
7.2.2.17 Comparative Studies
7.2.2.18 Surveys and Reviews
7.3 What Subject Systems Have Been Used to Evaluate Test Case Prioritization Techniques? What is the Type of Programming Platform for Subject Systems?
7.3.1 What is Research Status in Model-Based Test Case Prioritization?
7.3.2 What Evaluation Criterion Has Been Used to Evaluate Model-Based Prioritization and How are The Results Reported?
7.3.3 How Model-Based Test Case Prioritization Has Evolved Over the Years? Which Studies Have Discussed the Benefits of Model-Based Test Case Prioritization in Object-Oriented Systems?
7.3.4 What Subject Systems Are Used to Evaluate the Model-Based Test Case Prioritization?
7.3.5 What is the Research Status of Test Case Prioritization for Object-Oriented Testing?
7.3.6 What Specific Parameters of Object-Oriented Testing Have Been Highlighted by Various Studies?
7.3.7 What Studies Exist Based on Multi-Objective Algorithms for Test Case Prioritization in Object-Oriented Testing?
7.3.8 Whether Comparative Analysis of Multi-Objective Algorithms for Test Case Prioritization in Object-Oriented Testing Has Been Performed? And What are The Results?
7.4 Research Gaps
References
Chapter 8 A Systematic Review of the Tools and Techniques in Distributed Agile Software Development
8.1 Introduction
8.1.1 Why Agile?
8.1.2 Distributed Agile Software Development (DASD)
8.1.3 Challenges of DASD
8.1.3.1 Documentation
8.1.3.2 Pair Programming
8.1.3.3 Different Working Hours
8.1.3.4 Training on Agile Practices
8.1.3.5 Distribution of Work
8.2 Literature Review
8.3 Techniques for DASD
8.3.1 Effective Communication
8.3.2 Face Visits or Contact Visits
8.3.3 Team Distribution
8.3.4 Distribution of Work
8.3.5 Documentation
8.4 Tools for DASD
8.4.1 Monday.com
8.4.1.1 Features
8.4.1.2 Pricing
8.4.2 nTask
8.4.2.1 Features
8.4.2.2 Pricing
8.4.3 Jira
8.4.3.1 Pricing
8.4.3.2 Version Control
8.4.3.3 Key Features
8.4.4 ActiveCollab
8.4.4.1 Pricing
8.4.4.2 Features
8.4.5 Pivotal Tracker
8.4.5.1 Features
8.4.5.2 Pricing
8.4.6 Clarizen
8.4.6.1 Software Features
8.4.7 Axosoft
8.4.7.1 Software Features
8.4.7.2 Pricing
8.4.8 MeisterTask
8.4.8.1 Software Features
8.4.8.2 Pricing
8.4.9 GitLab
8.4.9.1 Features
8.4.9.2 Pricing
8.4.10 Productboard
8.4.10.1 Features
8.4.11 ZohoSprints
8.4.11.1 Features
8.4.11.2 Pricing
8.4.12 Taskworld
8.4.12.1 Features
8.4.12.2 Pricing
8.4.13 CoSchedule
8.4.13.1 Features
8.4.13.2 Pricing
8.4.14 Nostromo
8.4.14.1 Features
8.4.14.2 Pricing
8.4.15 Todo.vu
8.4.15.1 Features
8.4.15.2 Pricing
8.4.16 VersionOne
8.4.16.1 Pricing
8.4.16.2 Features
8.4.17 ProofHub
8.4.17.1 Features
8.4.17.2 Pricing
8.5 Conclusion
References
Chapter 9 Distributed Agile Software Development (DASD) Process
9.1 Introduction
9.2 Distributed Software Development
9.2.1 Factors Influencing Agile Distributed Software Development
9.3 Distributed Agile Software Development Team
9.3.1 Distributed Agile Development/Teams
9.3.1.1 Some Common Practices for Agile Teams are Specified as Below
9.4 Scrum in Global Software Development (GSD)
9.4.1 Aim and Objectives of Scrum Practices in GSD
9.4.2 Background
9.4.3 Scrum Practices in GSD
9.5 Tools and Techniques for Agile Distributed Development
9.6 Conclusion
References
Chapter 10 Task Allocation in Agile-Based Distributed Project Development Environment
10.1 Introduction
10.1.1 Traditional Software Development
10.1.2 Agile Software Development (ASD)
10.1.3 Distributed Software Development
10.1.4 Motivation and Goal
10.2 Task Allocation
10.2.1 Traditional Task Allocation Methods
10.2.2 Need of Machine Learning in Task Allocation
10.3 Machine Learning-Based Task Allocation Model
10.4 Conclusion
References
Chapter 11 Software Quality Management by Agile Testing
11.1 Introduction
11.2 A Brief Introduction to JMeter
11.3 Review of Literature
11.4 Performance Testing Using JMeter
11.5 Proposed Work
11.6 Results and Discussions
11.7 Conclusion
References
Chapter 12 A Deep Drive into Software Development Agile Methodologies for Software Quality Assurance
12.1 Introduction
12.2 Background Work
12.2.1 Factors of Quality Assurance in Agility
12.3 Understanding Agile Software Methodologies
12.3.1 Need for Agile Software Methodology Framework
12.4 Agile Methodology Evaluation Framework
12.4.1 Extreme Programming (XP)
12.4.2 Scrum
12.4.3 Lean Development
12.4.4 Crystal Methodology
12.4.5 Kanban Methodology
12.4.6 Feature Driven Development (FDD) Methodology
12.4.7 Dynamic System Development Method (DSDM)
12.5 Agile Software Development – Issues and Challenges
12.6 Conclusion
References
Chapter 13 Factors and Techniques for Software Quality Assurance in Agile Software Development
13.1 Introduction
13.1.1 Values of the Agile Manifesto
13.1.2 The Twelve Agile Manifesto Principles
13.1.3 Agile for Software Quality Assurance
13.2 Literature Review
13.3 Agile Factors in Quality Assurance
13.3.1 Success Factors
13.3.2 Failure Factors
13.4 Quality Assurance Techniques
13.5 Challenges and Limitations of Agile Technology
13.6 Conclusion and Future Scope
References
Chapter 14 Classification of Risk Factors in Distributed Agile Software Development Based on User Story
14.1 Introduction
14.2 Software Risk Management
14.2.1 Risk Assessment
14.3 Literature Review
14.3.1 Review
14.3.2 Risk Factors in Distributed Agile Software Development
14.3.3 Current Challenges
14.4 User Story-Based Classification of Risk Factors in Distributed Agile Software Development
14.4.1 User Stories
14.4.2 Classification of Risk Factors on the Basis of User Story
14.5 Future Scope
14.6 Conclusion
References
Chapter 15 Software Effort Estimation with Machine Learning – A Systematic Literature Review
15.1 Introduction
15.2 Method
15.2.1 Questionnaires for Research
15.2.2 Search Process
15.2.3 Criteria for Inclusion and Removal
15.2.4 Data Gathering
15.2.5 Analyzing Data
15.3 Result
15.3.1 Findings
15.4 Discussion
15.4.1 What Kinds of Research are Being Conducted?
15.4.2 Who is the Research Leader in SLR?
15.4.3 The Study’s Limitations
15.5 Conclusion
15.6 Future Scope
References
Chapter 16 Improving the Quality of Open Source Software
16.1 Introduction
16.2 Literature Review
16.3 Research Issues
16.4 Research Method and Data Collection
16.5 Results and Discussion
16.6 Conclusion and Future Scope
References
Chapter 17 Artificial Intelligence Enables Agile Software Development Life Cycle
17.1 Introduction
17.2 Literature Survey
17.3 Proposed Work
17.3.1 Advantages and Limitations of Agile Software Development
17.4 Conclusion
References
Chapter 18 Machine Learning in ASD: An Intensive Study of Automated Disease Prediction System
18.1 Introduction
18.2 Overview of ML
18.2.1 Types of Machine Learning
18.2.1.1 Supervised Machine Learning
18.2.1.2 Unsupervised Machine Learning
18.2.1.3 Reinforcement ML
18.2.2 Popular ML Algorithm
18.2.2.1 Artificial Neural Network (ANN)
18.2.2.2 K-Means Clustering Algorithm
18.2.2.3 Hierarchical Clustering
18.2.2.4 Linear Regression in Machine Learning
18.2.2.5 Support Vector Machine (SVM)
18.2.2.6 Decision Tree
18.2.2.7 Random Forests
18.2.2.8 Agile Software Development (ASD)
18.3 Case Study
18.3.1 Methodology
18.3.2 Result Analysis
18.4 Conclusion
References
Index
EULA