SDLC: Methodology and Key Stages


(Spratt, 2018)

Defining SDLC

SDLC stands for Software Development Life Cycle, and Swarupa (2014) in an article defines SDLC as a procedure adopted in a software company for managing software projects. It encompasses a comprehensive blueprint that outlines the approach to creating, sustaining, replacing, modifying, or improving particular software. This life cycle establishes a structured methodology aimed at enhancing both the software's quality and the overall development process.


Rao (2017) in an article also defines SDLC as a theoretical framework utilized in project management to outline the phases of an information system development project, spanning from an initial feasibility assessment to the ongoing upkeep of the finalized application.


Models and Methodologies

Swarupa (2014) in the same article lists 5 Models adopted in the SDLC: 


1-Waterfall Model: Typically, the outcome of one phase acts as the input for the next phase sequentially.


2-Iterative Model: Interative process starts with a simple implementation of a subset of the software requirements and iteratively enhances the evolving versions until the full system is implemented.


3-Spiral Model: The spiral model has four phases. A software project repeatedly passes through these phases in iterations called Spirals.


4-V-Model: The V-Model application is almost same as the waterfall model, as both the models are of sequential type


5-Big Bang Model: The big bang model comprises on focusing all the possible resources in software development and coding, with very little or no planning.


Key Stages of the SDLC 

An article published by Gillis (2019) shows that the SDLC encompasses 7 stages which are: 


Planning: If there is pre-existing software in place, it undergoes evaluation to identify any shortcomings before retirement. This evaluation involves interviewing users, consulting support personnel, and reviewing metrics collected through application performance monitoring tools. This step offers insights into the strengths and weaknesses of the current software and informs decisions for the new software. 


Defining: Addressing deficiencies in the existing software is a priority. Additionally, proposals are formulated for enhancements, such as new features and functionalities. In cases where no previous software exists, this phase involves defining the requirements for the proposed software, encompassing considerations like hardware, operating systems, programming, and security.


Designing: During the design phase, software specifications are transformed into a comprehensive design plan. This plan covers aspects such as architecture, hardware, operating systems, programming, communication, and security strategies.


Development: The development phase involves the actual creation of the software code. Developers are tasked with acquiring and installing new components and programs as required.


Testing: In this phase, rigorous testing is carried out to ensure that the software functions correctly before integration and management. The specific tests employed are determined by the software's structure. For instance, if the software is designed as a set of microservices instead of a monolithic structure, regression testing may not be necessary with subsequent updates or iterations. In some organizations, testing is treated as a separate stage from development.


Deployment: The deployment of the software can be executed through various approaches. Some organizations opt for a phased introduction of the new software, gradually replacing the old product based on application or location. In contrast, others may choose to shut down the old system entirely and switch all users to the new system simultaneously.


Maintenance: After deployment, the new software undergoes thorough evaluation for performance and stability. Organizations employ logs and metrics-gathering tools, such as APM, to monitor its operation. Any concerns or issues that arise are reported to the development team for remediation through patches or ongoing software maintenance efforts.




Reference(s): 

Spratt, A (2018) Team work, work colleagues, working together Available at: Group of people using laptop computer photo – Free Business Image on Unsplash (Accessed: 05/09/2023)

Gillis, A (2019) TechTarget Available at: What is the software development life cycle (SDLC)? A definition from WhatIs.com (techtarget.com) (Accessed: 05/09/2023)

Rao, N. (2017) SDLC, Academia.edu. Available at: https://www.academia.edu/31509590/SDLC (Accessed: 07 August 2023).

Swarupa, R. (2014) SDLC, Academia.edu. Available at: https://www.academia.edu/6328712/SDLC (Accessed: 07 August 2023).

Comments

Popular Posts