top of page
hand-businesswoman-touching-hand-artificial-intelligence-meaning-technology-connection-go-

SDLC, STLC and Types of SDLC Models

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.

There are 6 phases of SDLC-

  1. Requirement Analysis

  2. Designing

  3. Development

  4. Testing

  5. Deployment

  6. Maintenance


Phase-1)  Requirement Analysis

The planning phase typically includes tasks like cost-benefit analysis, scheduling, resource estimation, and allocation. BA means Business Analyst analyzes all the requirements from clients, sometimes SME(small & medium sized enterprise) and Stakeholders are also involved to analyze the requirements going through BRS(Business Related) documents. BA Maintain all project related documents (includes BRO(Business Requirement) documents, Test plan, Test Strategy) in Repository(maintaining all project related documents). SharePoint and confluence are the common repositories.

The document sets expectations and defines common goals that aid in project planning. The team estimates costs, creates a schedule, and has a detailed plan to achieve their goals.


Phase-2) Designing

In the design phase, software engineers analyze requirements and identify the best solutions to create the software. For example, they may consider integrating pre-existing modules, make technology choices, and identify development tools.

Technical Architect design HLD (High Level Design) and LLD(High Level Design)

HLD is also called the system or macro-level design of a system. LLD is also called the detailed or micro-level design of a system. 

High Level Design is the general system design means it refers to the overall system design. Low Level Design is like detailing HLD means it refers to component-level design process.


Phase-3) Development

The development team collects requirements from several stakeholders such as customers, internal and external experts, and managers to create a software requirement specification document. Developers will often create a software requirement specification or SRS document. This includes all the specifications for software, hardware, and network requirements for the system they plan to build.

The development team codes the product and builds the application.

Developers will follow any coding guidelines as defined by the organization and utilize different tools.

Programming languages can include staples such as C++, PHP, and more. Developers will choose the right programming code to use based on the project specifications and requirements.


Phase-4) Testing

Building software is not the end. Now it must be tested to make sure that there aren’t any bugs and that the end-user experience will not negatively be affected at any point.  By using automation and or manual testing tools the testing team checks the software. Software Testing Life Cycle is a process that can help you better organize your testing workflow. There are many factors to consider during each phase. For testing we can use different testing tools like JIRA Board, Selenium, Ka talon Studio, JDK,JRE, SOAP UI, Postman, JMeter, Oracle SQL developer etc.

There are various kinds of roles -

Role1) Test Manager - prepare Test Plan and Test Strategy

Role2) Test Lead - review Test Cases and Test Scenario

Role3) Test Engineer - writing test Scenarios by going through On BRS documents

Role4) Trainee/ Fresher - writing Test Cases, executing Test Cases in various environments, raising the defects/bugs.

Software Testing Life Cycle (STLC) is a process used to test software and ensure that quality standards are met. Tests are carried out systematically over several phases. 

  1. Test Initiation - QA collected feature requirements (whether it is functional or non-functional OR Manual Testing or Automation Testing) after that analyze and design the test cases.

  2. Prepare Test Plan - The test strategy is outlined in a test plan document. This strategy includes tools needed, testing steps, and roles and responsibilities. Part of determining this strategy is a risk and cost analysis and an estimated timeline for testing.

  3. Test Case Designing - Test cases are created. Each case defines test inputs, procedures, execution conditions, and anticipated results. Test cases should be transparent, efficient, and adaptable. Any necessary automation scripts are also created during this phase.

  4. Test Execution - Expected test results are compared to actual and results are gathered to report back to development teams.

  5. Test Closure -  A test result report is prepared. This report should summarize the entire testing process and provide comparisons between expected results and actual. These comparisons include objectives met, time taken, total costs, test coverage, and any defects found.


Phase-5) Deployment

DevOps Engineer configure the developer’s code. 

They are creating particular pipelines so errors in sinking levels and creating jobs for different builds in different environments like DEV, SIT, UAT,PROD etc.

For that they use different tools like Jenkins, GitHub, Azur, Dev apps, Sauce lab which are available in the market.


Phase-6)  Maintenance

In the maintenance phase, among other tasks, the team fixes bugs, resolves customer issues, and manages software changes. In addition, the team monitors overall system performance, security, and user experience to identify new ways to improve the existing software.

The SDLC doesn’t end when software reaches the market. Developers must now move into a maintenance mode and begin practicing any activities required to handle issues reported by end-users.

Furthermore, developers are responsible for implementing any changes that the software might need after deployment.

This can include handling residual bugs that were not able to be patched before launch or resolving new issues that crop up due to user reports. Larger systems may require longer maintenance stages compared to smaller systems.



Types of SDLC Models

Old SDLC Models

New SDLC Models

1) Waterfall Model

6) Fish Model


2) Prototype Model


7) V Model- Verification and Validation Model


3) Incremental Model

8) Agile Model


4) Spiral Model


9) DevOps Model


5) Rapid Application Development Model (RAD)




1-Waterfall Model

This Model is also called as linear sequel Model. Organization can follow when requirements are clear.

The sequential phases in Waterfall model are −

  • Requirement Gathering and analysis − All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.

  • System Design − The requirement specifications from first phase are studied in this phase and the system design is prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture.

  • Implementation − With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit Testing.

  • Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures.

  • Deployment of system − Once the functional and non-functional testing is done, the product is deployed in the customer environment or released into the market.

  • Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.


Some situations where the use of Waterfall model is most appropriate are

  • Requirements are very well documented, clear and fixed.

  • Product definition is stable.

  • Technology is understood and is not dynamic.

  • There are no ambiguous requirements.

  • Ample resources with required expertise are available to support the product.

  • The project is short.


Advantages of the Waterfall Model are as follows

  • Simple and easy to understand and use

  • Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.

  • Phases are processed and completed one at a time.

  • Works well for smaller projects where requirements are very well understood.

  • Clearly defined stages.

  • Well understood milestones.

  • Easy to arrange tasks.

  • Process and results are well documented.


Disadvantages of the Waterfall Model are as follows −

  • No working software is produced until late during the life cycle.

  • High amounts of risk and uncertainty.

  • Not a good model for complex and object-oriented projects.

  • Poor model for long and ongoing projects.

  • Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.

  • It is difficult to measure progress within stages.

  • Cannot accommodate changing requirements.

  • Adjusting scope during the life cycle can end a project.



2) Prototype Model

Organizations can follow this model when organization requirements are

not clear.

Advantages of Prototyping Model –

  • This model is most appropriate for the projects that suffer from technical and requirements risks. 

  • A constructed prototype helps to overcome these risks.

Disadvantages of Prototyping Model –

  • Cost of the development of the software by using a prototyping model can increase in various cases where the risks are very less.

  • It may take more time to develop a software by using the Prototyping model.



3) Incremental Model

When client requirements are clear and huge. Then Organization can follow Incremental Model to develop software piece by piece (or) installment by installment.

Characteristics of an Incremental module

  • System development is broken down into many mini development projects.

  • Partial systems are successively built to produce a final total system.

  • Highest priority requirement is tackled first.

  • Once the requirement is developed, requirement for that increment are frozen.


Advantages of Incremental Model

  • The software will be generated quickly during the software life cycle.

  • It is flexible and less expensive to change requirements and scope.

  • Throughout the development stages changes can be done.


Disadvantages of Incremental Model

  • It requires a good planning designing.

  • Problems might cause due to system architecture as such not all requirements collected up front for the entire software lifecycle.

  • Each iteration phase is rigid and does not overlap each other.



4) Spiral Model

When customer requirements are enhanced regularly the organization can follow a spiral model.

Advantage of spiral Model:

Flexible changes are allowed in the spiral model.

The development can be distributed into smaller parts.

The customer can use the application at an early stage also.


Disadvantages of Spiral Model:

It is not suitable for the small and low-risk product because it could be costly for a smaller project.

It is a traditional model, and thus developers only did the testing job as well.

There is no requirement of review process and no parallel deliverables allowed in the spiral model.



5) RAD Model

When customer requirements are similar to previous project organization can follow RAD Model. By copying old projects and they will be released as new software.

When to use the RAD Model?

  • When the system should need to create the project that modularizes in a short span time (2-3 months).

  • When the requirements are well-known.

  • When the technical risk is limited.

  • When there's a necessity to make a system, which is modularized in 2-3 months of period.

  • It should be used only if the budget allows the use of automatic code generating tools.


Advantage of RAD Model

  • This model is flexible for change.

  • In this model, changes are adoptable.

  • Each phase in RAD brings highest priority functionality to the customer.

  • It reduced development time.

  • It increases the reusability of features.


Disadvantage of RAD Model

  • It required highly skilled designers.

  • All applications are not compatible with RAD.

  • For smaller projects, we cannot use the RAD model.

  • On the high technical risk, it's not suitable.

  • Required user involvement.



6) Fish Model

Fish Model is time taking and costly model but this model can release quality granted software. due to this reason fish model is famous for artificial intelligence domain 

  • PIN Stands for project initiation note.PM(Project Manager) can prepare project initiation note(PIN) document which specifies overall plan.

  • BA(Business Analyst) can gather requirements of clients and prepare business requirement specification/customer requirement specification/user requirement specification.

  • Other Business Analysts(BA) can review business requirement specifications(BRs),for completeness and correctness.

  • SA(System Analyst) can analyses requirement and prepare software requirement specification(SRs)

  • Other system analysts (SA) can review software requirement specifications(SRs),for completeness and correctness.

  • Technical architect(TA) can design software diagram in high level design and low level design

  • Other Technical architects can review those designs, for completeness and correctness.

  • programmers can develop programs.

  • Other programmers can test every program, called unit testing.

  • Programmers can interconnect programs to build software.

  • other programmers can test those inter connection programs, for completeness and correctness.

  • A Separate testing team can test software with respect to client requirements and expectations.

  • Programmers and testers can take feedback on software from client site people. If feedback is not good then programmers can perform instant change in that software and testers can test those changes in modified sprint.

  • Few Programmers and testers can go to client sites for software release and release testing.

  • CCB(Change control board) fresher’s responsible to receive change requests from clients and they can handle those changes.



7) V-Model(Verification and Validation Model)

  • This Model was introduced by “William Evans ferries”.

  • PM(Project Manager) is responsible to prepare project and product initiation note.

  • Business Analysts(BA) can gather requirements from clients and prepare BRS/CRS/URS.

  • The same Business Analyst(BA) can review the business requirement specification, for completeness and correctness.

  • System Analyst(SA) can prepare system requirement specifications by analyzing requirements in business requirement specification.

  • The same system Analyst(SA) can review system requirement specification for completeness and correctness.

  • Technical Analysts can prepare HLDs and LLDs with respect to system requirement specification.

  • The same Technical Analyst can review HLDs and LLDs for completeness and correctness.

  • Developer can perform coding with respect to design.

  • Same Developer can conduct Unit Testing on Program with respect to LLDs.

  • Developers can interconnect programs to build a sprint.

  • Same Developer  can  test program interconnects with respect to HLDs.

  • A separate testing Team can test software with respect to client requirements &  expectations.

  • Client site people can give feedback on software w.r.t BRS is called acceptance testing.

  • Few Developers and testers can release software to client sites and conduct release testing .

  • CCB Fresher’s will take care of changes in released software called as maintenance/support/Service.



8) Agile Model 

The Agile Model is  quickly adapted to changing market demands, customer needs, and emerging technologies.

Agile is a flexible, iterative approach to software development that involves breaking the project into phases and emphasizes continuous collaboration and improvement. 

Agile iterations are usually between two and four weeks long, with a final completion date. The workflow of an Agile iteration will typically consist of five steps:

  1. Plan requirements 

  2. Design product

  3. Build  software

  4. Test  software

  5. Review-Incorporate feedback 


Advantages of Agile Model

  • Customer satisfaction by quick delivery of software to market.

  • Interactions amongst Developers, Testers and Ops teams are a priority.

  • Effective software is delivered regularly.



9) DevOps Model-

In this model one single team can be involved from requirement gathering and maintenance.

  • DevOps stands for Development & operations(Release & Maintenance)

  • This Model is an extension to Agile Scrum.

  • In this process the corresponding team can use a set of management tools called DevOps tools.


Key advantages of leveraging DevOps:

1-Customer satisfaction by quick delivery of software to market. 

2-Interactions amongst Developers, Testers and Ops teams are a priority.

3-Effective software is delivered regularly.



Thank You.

33 views0 comments

+1 (302) 200-8320

NumPy_Ninja_Logo (1).png

Numpy Ninja Inc. 8 The Grn Ste A Dover, DE 19901

© Copyright 2022 by NumPy Ninja

  • Twitter
  • LinkedIn
bottom of page