Abstract
Iteration is ubiquitous during software development and particularly notable in complex system development. It has both positive and negative effects; the positives of iteration include improving quality and understandability, reducing complexity and maintenance, leading to innovation, and being cost-effective in the long run; Negatives of iteration include; time, cost, and effort overrun. Its management is a challenging task and becomes more complex due to the non-uniformity of the terminology used at various places. Although Software Development Life Cycles (SDLC) are highly iterative, not much work related to them has been reported in the literature. Insights into iteration are explained in this paper by defining different perspectives (Exploration, Refinement, Rework, and Negotiation) on iteration through literature review, modeling each perspective, and simulating the effect of each iterative perspective on project completion time. An attempt has been made to create awareness about efficient use of iteration during software development by informing which perspective of iteration has what kind of impact on project completion time to avoid delays.
Highlights
Software development processes do not move in a straightforward, linear fashion
This article contributes in two ways; first, by defining different perspectives on iteration —based on source and stage of the Software Development Life Cycles (SDLC) in which it occurs— to clarify the distinctive viewpoints of iteration that consistently exist in the software engineering discipline; second, by modeling the impact of each perspective on project completion time
WORK Different authors use different terms to refer to iteration in the software engineering literature
Summary
Software development processes do not move in a straightforward, linear fashion. Deviation from linear movement is widespread and is depicted as iteration [1]. Iteration reduces code complexity, makes reverse engineering simple, and enhances the software design [27]. It has beneficial outcomes, including investigating ideas, finding and remedying blemishes, removing inconsistencies, and permitting development under unpredictability and change. This article contributes in two ways; first, by defining different perspectives on iteration —based on source and stage of the SDLC in which it occurs— to clarify the distinctive viewpoints of iteration that consistently exist in the software engineering discipline; second, by modeling the impact of each perspective on project completion time. The software, which is developed iteratively, provide flexibility and reduce maintenance It reduces the complexity and code size, removes inconsistencies, fixes defects, and leads towards innovation.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.