Research about SDLC, discussing it's methodology, benefits and key stages. Comment on activities you have conducted during your website development that correlates with the stages

What is SDLC?


The software development lifecycle (SDLC) is the cost-effective and time-efficient process that development teams use to design and build high-quality software. The goal of SDLC is to minimize project risks through forward planning so that software meets customer expectations during production and beyond. (Amazon.com,ND)

It consists of a detailed plan describing how to:

Develop 

Maintain 

Replace 

Enhance 




(Tutorialspoint,2021)



Stages of SDLC:

  • Stage 1: Planning and Requirement Analysis

    Requirement analysis is the most important and fundamental stage in SDLC. It is performed by the senior members of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas.

    Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage. The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks.

    Stage 2: Defining Requirements

    Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts. This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle.

    Stage 3: Designing the Product Architecture

    SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS - Design Document Specification.

    This DDS is reviewed by all the important stakeholders and based on various parameters as risk assessment, product robustness, design modularity, budget and time constraints, the best design approach is selected for the product.

    A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any). The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.

    Stage 4: Building or Developing the Product

    In this stage of SDLC the actual development starts and the product is built. The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle.

    Developers must follow the coding guidelines defined by their organization and programming tools like compilers, interpreters, debuggers, etc. are used to generate the code. Different high level programming languages such as C, C++, Pascal, Java and PHP are used for coding. The programming language is chosen with respect to the type of software being developed.

    Stage 5: Testing the Product

    This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC. However, this stage refers to the testing only stage of the product where product defects are reported, tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.

    Stage 6: Deployment in the Market and Maintenance

    Once the product is tested and ready to be deployed it is released formally in the appropriate market. Sometimes product deployment happens in stages as per the business strategy of that organization. The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing).

    Then based on the feedback, the product may be released as it is or with suggested enhancements in the targeting market segment. After the product is released in the market, its maintenance is done for the existing customer base.

    SDLC Models

    There are various software development life cycle models defined and designed which are followed during the software development process. These models are also referred as Software Development Process Models". Each process model follows a Series of steps unique to its type to ensure success in the process of software development.

    Following are the most important and popular SDLC models followed in the industry −

    • Waterfall Model - This SDLC model is the oldest and most straightforward. With this methodology, we finish one phase and then start the next. Each phase has its own mini-plan and each phase “waterfalls” into the next. The biggest drawback of this model is that small details left incomplete can hold up the entire process.

    • Iterative Model - This SDLC model emphasizes repetition. Developers create a version very quickly and for relatively little cost, then test and improve it through rapid and successive versions. One big disadvantage here is that it can eat up resources fast if left unchecked.
    • Spiral Model - The most flexible of the SDLC models, the spiral model is similar to the iterative model in its emphasis on repetition. The spiral model goes through the planning, design, build and test phases over and over, with gradual improvements at each pass.
    • V-Model - An extension of the waterfall model, this SDLC methodology tests at each stage of development. As with waterfall, this process can run into roadblocks.
    • Big Bang Model - This high-risk SDLC model throws most of its resources at development and works best for small projects. It lacks the thorough requirements definition stage of the other methods.




    This is to your benefit: by following specific steps you can easily communicate where you are in the process, and inform others of where you are headed.
    (FreeCodeCamp.Org, 2020)
    • A common vocabulary for each step
    • Defined communication channels between development teams and stakeholders
    • Clear roles and responsibilities among developers, designers, business analysts, and project managers
    • Clearly-defined inputs and outputs from one step to the next
    • A deterministic “definition of done” that can be used to confirm whether a step is truly complete

    Other related methodologies are Agile Model, RAD Model, Rapid Application Development and Prototyping Models.

(Tutorialspoint,2021)


Benefits of SDLC:

SDLC done right can allow the highest level of management control and documentation. Developers understand what they should build and why. All parties agree on the goal upfront and see a clear plan for arriving at that goal. Everyone understands the costs and resources required.

Several pitfalls can turn an SDLC implementation into more of a roadblock to development than a tool that helps us. Failure to take into account the needs of customers and all users and stakeholders can result in a poor understanding of the system requirements at the outset. The benefits of SDLC only exist if the plan is followed faithfully.

(RayGun Blog,2022)


Activities conducted during my website development that corrlates with the stages:


Planning stage -

 this was the stage where I was sketching how I want my website to look and the features I want it to contain.

This stage was mainly to have a simple yet attractive website that customers can find easy to navigate.


Defining Stage-

This was the stage where I used the plan I created to select the template, colours, images, products and text for my website.


References:

“The SDLC: phases, popular models, benefits & more” (2022) Raygun Blog, 1 June. Available at: https://raygun.com/blog/software-development-life-cycle/ (Accessed: February 7, 2023).

(No date) Amazon.com. Available at: https://aws.amazon.com/what-is/sdlc/ (Accessed: February 7, 2023).

Naor, A. (2020) What is SDLC? Software development life cycle phases, methodologies, and processes explainedfreecodecamp.org. Available at: https://www.freecodecamp.org/news/what-is-sdlc-software-development-life-cycle-phases-methodologies-and-processes-explained/ (Accessed: February 7, 2023).

SDLC - overview (2021) TutorialsPoint. Available at: https://www.tutorialspoint.com/sdlc/sdlc_overview.htm (Accessed: February 7, 2023).


Comments