학술논문

Iteration Causes, Impact, and Timing in Software Development Lifecycle: An SLR
Document Type
Periodical
Source
IEEE Access Access, IEEE. 10:65355-65375 2022
Subject
Aerospace
Bioengineering
Communication, Networking and Broadcast Technologies
Components, Circuits, Devices and Systems
Computing and Processing
Engineered Materials, Dielectrics and Plasmas
Engineering Profession
Fields, Waves and Electromagnetics
General Topics for Engineers
Geoscience
Nuclear Engineering
Photonics and Electrooptics
Power, Energy and Industry Applications
Robotics and Control Systems
Signal Processing and Analysis
Transportation
Software
Software engineering
Iterative methods
Taxonomy
Libraries
Task analysis
Systematics
Artificial intelligence
iteration
software engineering
software development lifecycle
impact
causes
taxonomy
Language
ISSN
2169-3536
Abstract
Context: Iteration—performing an activity once it has already been done—is unavoidable and omnipresent during software development. Management of iteration is a challenging task due to the lack of detailed analysis and use of different terms for the iteration at different places in software engineering. Objective: In order to manage iteration in a better way during software development processes, we investigate different iterative situations, the causes, the stages at which it can occur during the development, and its impacts. Method: We use the systematic literature review (SLR) method to search using six bibliographic databases. The SLR includes 153 primary studies published from 2007 to February 2017. Results: We identify twenty-two leading causes, five stages, and positive and negative impacts of iteration. Then, we develop a lucid taxonomy of iteration perspectives based on the causes and timing at which it occurs during the software development lifecycle. Conclusions: The frequently reported causes of iteration are defects, code smell, and conflicts, whereas the least referenced causes are poor management and different methods followed by teams. The most cited phase at which iteration occurs during the software development is maintenance. The most cited positive consequence of iteration is quality improvement, whereas the negative impacts of iteration are increasing time, effort, and cost. Our study provides a framework to understand the nature of iteration, what sources can lead to which iterative perspective, a particular iterative situation can have what kind of impacts on project milestones, and also provide research directions.