Challenges in Developing Software in Today's Scenario: An Analysis at Developmental Stage Level

Challenges in Developing Software in Today's Scenario: An Analysis at Developmental Stage Level

Srinivasan Vaidyanathan, Lakshmi Priya B.
Copyright: © 2021 |Pages: 24
DOI: 10.4018/978-1-7998-4900-1.ch012
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Software engineering emphasises to adopt a well-defined and structured approach to develop any software. Nonetheless, serious challenges exist in the software development process and these challenges are faced in developing software in today's scenario. This is majorly to satisfy the need for developing good quality product which has the capability to meet the “volatile user requirements” in organizations. As new products are developed to tend to the current technological needs, new challenges arise inevitably. So, until a new challenge is encountered, solutions to these unknown and newly arising challenges cannot be devised. Hence, a better software development strategy would be to realise all the previously encountered, more frequent or obvious challenges, and to design an efficient solution to these known challenges beforehand so that no more extra resources and time need to be diverted during the software development cycle in order to overcome the challenges. Therefore, recognizing and addressing the challenges in software development at each and every developmental stage is extremely necessary in order for organizations to succeed. In this study, the authors have attempted to structurally and systematically reviewing the literature to arrive at the software development challenges and provided ways of addressing those challenges. The study also provided for possible solutions and recommendations and scope for future research in this area.
Chapter Preview
Top

Background

Research Method

Research method adopted was a systematic review of the existing literature and presenting the software development challenges and solutions. To identify the challenges and solutions, relevant set of articles were picked by searching well-known online databases such as, IEEE Xplore, ResearchGate, Elsevier, ScienceDirect, ProQuest. No filtration criteria applied for geography and publication times of articles. From the list, English is applied to reduce the list to match our choice. The following are the search strings used for finding articles.

  • “Software+planning+challenges”

  • “Software+Analysis+challenges”

  • “Software+Testing+challenges”

  • “Software+programming+challenges”

  • “Software+Maintenance+challenges”

  • “Agile+methodology+Benefits+and+challenges”

  • “Scrum+Benefits+and+challenges”

  • “DevOps+Benefits+and+challenges”

Heeding only qualified papers for analysis, articles of adequate discussions on the theme of the chapter were carefully culled out from peer-reviewed and scholarly publications. List was further reduced and seminal articles of relevance covering the concepts searched for were hand-picked for further critical analysis.

Delineation of Challenges

Analysis of various renowned research papers, journals and websites have provided great clarity regarding the various challenges and difficulties in the software development lifecycle in various product development approaches such as waterfall model, agile methodology, scrum, DevOps, etc. The particular choice of one model over the other depends on various different factors such as project objectives, constraints, size of the project, etc and appropriate approach is chosen considering the benefits and challenges of that particular approach. A lot of references collected serve as proof for the fact that sequential model is less efficient for product development in the current scenario compared to iterative improvement models. Nonetheless, the specific project scenario has to be analysed well to choose the appropriate approach. Referencing research papers, journals, books, websites, etc from different geographies and publication times helped to preserve the diversity in the software development process and challenges related to the development process.

Key Terms in this Chapter

Regression Testing: A type of software testing to confirm that new modifications done to the product has induced great changes before the change. In regression testing, not all possible paths in the program are tested. Rather a part of the test cases is selected and re-run to find the error in the program.

Data Integrity: The support and the affirmation of the precision and consistency of information over its whole life cycle, and is a basic viewpoint to the plan, execution and use of any framework which stores, processes, or recovers information.

Cyber Physical System: A framework where a component is controlled or observed by computer-based calculations. In these systems, the physical and programming segments are profoundly interlaced, ready to work on various spatial and transient scales, display numerous and unmistakable behavioural modalities, and interface with one another in manners that change with setting.

Test Specification: A report which specifies what functionalities and capabilities of the software are to be tested during the testing phase, the method of testing and the frequency of the testing process.

Internet of Things: An arrangement of interrelated processing gadgets which may be mechanical and computerized machines and the capacity to move information over a network without expecting human-to-human or human-to-computer cooperation.

Requirements Volatility: The requirements for a product is not fixed but it is constantly changing throughout the software development life cycle.

Open-Source Software: A program in which source code is delivered under a permit where the copyright holder awards clients the rights to study, change, and distribute the product to anybody and for any reason. Open-source programming might be done in a cooperative public way. Open-source programming is a case of open collaboration.

Prioritizing Requirements: The method of distinguishing and ordering a given set of requirements with the objective of getting a common reasoning for apportioning them into subsequent product releases.

Complete Chapter List

Search this Book:
Reset