0% found this document useful (0 votes)
3 views13 pages

7 Software Development Models

A software development model is a structured framework guiding the planning, design, development, testing, deployment, and maintenance of software. Common models include Waterfall, Agile, Spiral, V-Model, Prototype, and Incremental, each suited for different project types and requirements. The choice of model impacts project organization, communication, risk management, and software quality.

Uploaded by

atharvagalwade02
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views13 pages

7 Software Development Models

A software development model is a structured framework guiding the planning, design, development, testing, deployment, and maintenance of software. Common models include Waterfall, Agile, Spiral, V-Model, Prototype, and Incremental, each suited for different project types and requirements. The choice of model impacts project organization, communication, risk management, and software quality.

Uploaded by

atharvagalwade02
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Development Models

What is a software development model?

Fast answer
A software development model is a structured approach or framework that guides how software is
planned, designed, developed, tested, deployed, and maintained. It helps development teams organize
their work and ensures the software is built efficiently and meets user requirements.

Common Software Development Models

1. Waterfall Model

Development follows a linear sequence of phases.

Each phase must be completed before moving to the next.

Best for projects with stable, well-defined requirements.

Phases:

Requirements
Design

Implementation (Coding)

Testing

Deployment

Maintenance

2. Agile Model

Development is divided into small, iterative cycles called sprints.


Customer feedback is incorporated throughout the project.
Best for projects where requirements may change frequently.

3. Spiral Model
Combines iterative development with risk analysis.

Each cycle includes planning, risk assessment, development, and evaluation.


Suitable for large, complex, and high-risk projects.

4. V-Model (Verification and Validation Model)


An extension of the Waterfall model.

Each development stage has a corresponding testing stage.


Emphasizes quality assurance.

5. Prototype Model
A working prototype is built first to understand user requirements.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 1/13
The prototype is refined based on user feedback before final development.
Useful when requirements are unclear.
6. Incremental Model

Software is developed and delivered in small, functional parts (increments).


Each increment adds new features until the complete system is finished.

Why Use a Software Development Model?

A software development model helps to:

Organize the development process.


Improve communication among team members.

Reduce risks and errors.


Ensure software quality.

Deliver software on time and within budget.

Example

Suppose a company wants to develop an online shopping application:

Using the Waterfall model, all requirements are gathered before coding begins.
Using the Agile model, the team first develops user registration, then product browsing, then
payment features, improving each through customer feedback after every sprint.

In simple terms, a software development model is a roadmap that defines how a software project
is planned, built, tested, and maintained. Different models are chosen depending on the project's
size, complexity, and requirements.

What is the Waterfall model?

The Waterfall Model is a sequential software development model in which the development process
moves through different phases one after another. A phase is generally completed before the next
phase begins.

Waterfall Model Phases

Requirements → Design → Development → Testing → Deployment → Maintenance

1. Requirements – Gather and document all customer requirements.


2. Design – Create the system architecture, database design, UI design, etc.

3. Development – Developers write the actual code.

4. Testing – Testers test the completed software and identify defects.


5. Deployment – The software is released to users.

6. Maintenance – Fix bugs and make necessary changes after release.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 2/13
Example

Suppose a company is developing a banking application.

First, all banking requirements are finalized.

Then the application is designed.

Developers build the application.

Testers test the complete application.


After testing, it is deployed.

After deployment, bugs are fixed during maintenance.

Advantages

Simple and easy to understand.

Clear phases and documentation.

Easy to manage and track.

Works well when requirements are stable and clearly defined.

Disadvantages

Difficult to accommodate changing requirements.

Testing happens relatively late.


A defect discovered late can be expensive to fix.

Customer feedback usually comes later in the process.

🎯 Interview Answer
If the interviewer asks "What is the Waterfall model?", you can say:

"The Waterfall model is a sequential software development model where the project
progresses through phases such as requirements, design, development, testing,
deployment, and maintenance. Each phase is completed before moving to the next
phase. It is suitable when requirements are clear and unlikely to change."

For a manual testing interview, also remember: in the Waterfall model, testing generally starts after
development is completed, although testers may be involved earlier in activities such as requirement
and test planning.

What are the advantages and disadvantages of Waterfall?

Advantages of the Waterfall Model

1. Simple and easy to understand – The phases are clearly defined and follow a fixed sequence.
2. Easy to manage – Each phase has specific deliverables and a clear start and end.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 3/13
3. Clear documentation – Requirements, design, test plans, and other documents are usually well
documented.

4. Easy to track progress – Managers can easily determine which phase the project is currently in.
5. Suitable for stable requirements – Works well when requirements are clearly known and unlikely to
change.
6. Well-defined roles – Developers, testers, business analysts, and other teams have clear
responsibilities.

Disadvantages of the Waterfall Model

1. Difficult to handle changing requirements – Changes after a phase is completed can be costly and
difficult.
2. Testing happens late – Testing generally starts after development, so defects may be discovered
relatively late.

3. Customer feedback comes late – Users may not see the working product until a large portion of
development is complete.
4. Higher risk of late changes – If requirements were misunderstood, fixing them later can require
significant rework.

5. Not ideal for complex projects – Projects with uncertain or frequently changing requirements may
struggle with Waterfall.
6. Working software is delivered late – Users generally receive the complete product only toward the
end.

🎯 Interview-Friendly Answer
"The main advantages of the Waterfall model are that it is simple, easy to manage, has
clearly defined phases, and provides good documentation. Its main disadvantages are
that it is difficult to accommodate changing requirements, testing happens relatively
late, and customer feedback is received late. Therefore, Waterfall is most suitable when
requirements are stable and clearly defined."

What is the Agile model?

The Agile model is an iterative and incremental software development approach where software is
developed in small parts and delivered frequently. It focuses on continuous customer feedback,
collaboration, and adapting to changing requirements.

Unlike the Waterfall model, where the project generally moves phase by phase, Agile allows
development and testing to happen continuously throughout the project.

How Agile Works

Agile development is usually divided into short development cycles called Sprints, often lasting 1–4
weeks.

For example, for an e-commerce application:

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 4/13
Sprint 1: User registration/login

Sprint 2: Product search and browsing

Sprint 3: Shopping cart

Sprint 4: Payment

Sprint 5: Order tracking
Each sprint typically involves:
Planning → Development → Testing → Review → Retrospective

Key Features of Agile

Iterative development – Software is developed in small iterations.


Frequent releases – Working features are delivered regularly.

Customer feedback – Feedback is collected throughout development.


Flexible requirements – Changes can be incorporated based on priority.
Continuous testing – Testing happens throughout the development process.

Team collaboration – Developers, testers, product owners, and other members work closely
together.

Agile and Testing

For a manual testing interview, this is especially important:


In Agile, testing is not performed only after development is complete. Testers work alongside
developers during each sprint.
For example:

Developer develops the login feature → Tester tests the login feature → Bugs are reported →
Developer fixes them → Tester retests → Feature is completed.

🎯 Interview-Friendly Answer
"Agile is an iterative and incremental software development methodology where the
software is developed and delivered in small cycles called sprints. It focuses on
continuous testing, customer feedback, team collaboration, and adapting to changing
requirements. In Agile, development and testing happen continuously throughout the
project."

What is the difference between Waterfall and Agile?

The main difference is that Waterfall is sequential, while Agile is iterative and flexible.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 5/13
Feature Waterfall Agile
Approach Sequential Iterative and incremental
Requirements Usually fixed at the beginning Can change during development
Development Entire product is developed phase by phase Product is developed in small increments
Testing Generally happens after development Happens continuously during each sprint

Customer feedback Usually received later Received frequently


Delivery Usually at the end of the project Frequent/incremental releases
Changes Difficult and costly Easier to accommodate
Risk Problems may be discovered late Problems can be identified earlier
Best suited for Stable, well-defined requirements Changing or evolving requirements

Simple Example

Imagine you're developing an e-commerce website.

Waterfall:

Requirements → Design → Development → Testing → Deployment

You generally complete the whole application before delivering it.

Agile:

Sprint 1 → Login
Sprint 2 → Product Search
Sprint 3 → Cart
Sprint 4 → Payment

Each feature is developed and tested in smaller cycles.

🎯 Interview Answer
"Waterfall is a sequential development model where requirements are defined upfront
and development, testing, and deployment happen in fixed phases. Agile is an iterative
model where the product is developed in small increments called sprints, with
continuous testing, customer feedback, and flexibility to handle changing
requirements. In Waterfall, testing generally happens after development, whereas in
Agile, testing happens throughout the development process."

For a manual testing interview, remember this key point:


👉 Waterfall = Testing mainly after development
👉 Agile = Continuous testing during development
What is the V-Model?

The V-Model (Verification and Validation Model) is a software development model where each
development phase has a corresponding testing phase.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 6/13
It is called the V-Model because the development and testing activities are arranged in a V shape.

V-Model Structure

Development Testing

Requirements Analysis ─────────→ Acceptance Testing



System Design ─────────→ System Testing

Architecture Design ─────────→ Integration Testing

Module Design ─────────→ Unit Testing

Coding

How it works

On the left side, the team performs verification activities:

1. Requirement Analysis
2. System Design

3. Architecture Design

4. Module Design
5. Coding

On the right side, the team performs validation/testing:

1. Unit Testing – Tests individual modules.

2. Integration Testing – Tests interactions between modules.

3. System Testing – Tests the complete system.


4. Acceptance Testing – Checks whether the system meets business/user requirements.

Important Point for Testers

The major advantage of the V-Model is that test planning starts early.

For example:

While requirements are being analyzed, testers can start preparing acceptance test scenarios.
While system design is being created, testers can plan system tests.

So, testing isn't something that is considered only after coding is finished.

Advantages

Testing activities are planned early.

Clear and structured process.


Easy to manage and track.

Strong focus on verification and validation.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 7/13
Works well when requirements are stable and clearly defined.

Disadvantages

Difficult to accommodate changing requirements.


Changes can be expensive.

A working product is available relatively late.

Not ideal for projects with frequently changing requirements.

🎯 Interview Answer
"The V-Model, or Verification and Validation Model, is a software development model
where each development phase has a corresponding testing phase. For example,
module design is associated with unit testing, architecture design with integration
testing, system design with system testing, and requirements analysis with acceptance
testing. The main advantage is that testing is planned early in the development
lifecycle."

Easy way to remember:

Waterfall: Sequential development


V-Model: Development phase ↔ Corresponding testing phase
Agile: Continuous development + continuous testing

Why is V-Model useful for testing?

The V-Model is useful for testing because testing activities are planned from the early stages of
software development, rather than waiting until coding is completed.

Why is V-Model useful for testing?

1. Testing starts early

Test planning begins during the requirements and design phases.

This helps identify issues before coding is completed.


2. Every development phase has a corresponding test phase

Development Phase Testing Phase

Requirements Analysis Acceptance Testing


System Design System Testing

Architecture Design Integration Testing


Module Design Unit Testing

3. Defects can be identified earlier


If a requirement is unclear, testers can identify the issue during requirement analysis instead of
discovering it after development.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 8/13
4. Better test planning

Testers can prepare test scenarios and test cases before the actual testing phase begins.
5. Clear testing responsibilities

Each testing level has a defined purpose and relationship with a development phase.

6. Good documentation
The V-Model generally follows a structured and documented process, which makes testing
easier to track.

🎯 Interview Answer
"The V-Model is useful for testing because testing is planned from the early stages of
development. Each development phase has a corresponding testing phase, such as
requirements with acceptance testing and system design with system testing. This
helps identify defects early, improves test planning, and ensures better software
quality."

⭐ Key point to remember


V-Model = Testing is planned early + Every development phase has a corresponding testing phase.

What is the Spiral model?

The Spiral Model is a risk-driven software development model that combines iterative development
with systematic risk analysis.

The project is developed through multiple spirals (cycles). In each cycle, the team plans, identifies risks,
develops part of the software, and gets feedback before moving to the next cycle.

🔄 Spiral Model Process


Each spiral generally has four main activities:

1. Planning

Identify requirements, objectives, and constraints.

Decide what should be developed in the current cycle.


2. Risk Analysis

Identify potential risks.

Analyze their impact.


Create solutions or prototypes to reduce those risks.

3. Engineering / Development

Design, develop, and test the selected features.


4. Evaluation

Customer/user reviews the result.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 9/13
Feedback is collected and used for the next cycle.

Planning

Risk Analysis

Development & Testing

Evaluation

Next Spiral Cycle

Example

Suppose a company is developing a large banking system.


Spiral 1: Identify requirements and major security risks.
Spiral 2: Develop a prototype and test security.
Spiral 3: Develop account management features and test them.
Spiral 4: Develop payment features and test them.

Each cycle improves the system while addressing risks.

Advantages

Strong focus on risk management.


Suitable for large and complex projects.

Customer feedback can be incorporated.

Changes can be accommodated.


Problems can be identified earlier through prototypes and iterations.

Disadvantages

More expensive than simpler models.

Requires experienced people for risk analysis.


More complex to manage.

Not suitable for small, low-risk projects.

🎯 Interview Answer
"The Spiral Model is a risk-driven software development model that combines iterative
development with risk analysis. The project is developed through multiple cycles called
spirals. Each cycle involves planning, risk analysis, development and testing, and
customer evaluation. It is mainly suitable for large, complex, and high-risk projects."

⭐ Easy way to remember


Waterfall → Sequential
V-Model → Development phase + corresponding testing phase

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 10/13
Agile → Iterative + flexible
Spiral → Iterative + strong focus on risk analysis

Which development model do you prefer and why?

For a manual testing interview, I would recommend saying Agile, because it directly connects to the
tester's role.

🎯 Interview Answer
"I prefer the Agile model because it provides continuous testing and frequent feedback.
In Agile, testers work closely with developers and other team members throughout the
sprint, rather than testing only at the end of development. It also allows the team to
adapt to changing requirements and identify defects early. As someone interested in
software testing, I feel Agile gives testers more involvement in the overall development
process and helps improve software quality."

If they ask: "Why not Waterfall?"

You can say:

"Waterfall is useful when requirements are stable and clearly defined, but Agile is more
flexible when requirements change. I prefer Agile because testing is performed
continuously, allowing defects to be identified and fixed earlier."

⭐ Remember these 3 points


Agile →

🔄 Continuous development
🧪 Continuous testing
🔁 Frequent feedback and changing requirements
For your FOX Solutions manual testing interview, this is a strong and safe answer because it shows
that you understand how a tester actually works in an Agile team.

Which development model do you prefer and why?

For your manual testing interview, a strong answer would be:

I prefer the Agile development model because it supports continuous development and testing. In
Agile, testers work closely with developers throughout each sprint, which helps identify and fix
defects early. It also allows the team to adapt to changing requirements and take regular customer
feedback.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 11/13
As someone interested in software testing, I prefer Agile because it gives testers continuous
involvement in the development process and helps improve the overall quality of the software.

Short version, if the interviewer wants a quick answer:

I prefer Agile because it allows continuous testing, early defect detection, frequent feedback, and
flexibility to handle changing requirements. It also gives testers an active role throughout the
development process.

I can also prepare 10–15 likely follow-up questions on SDLC models that an interviewer may ask
after this answer.

Which development model do you prefer and why?

For a manual testing interview, I’d give a natural answer like this:

I prefer the Agile model because it supports continuous development and testing. In Agile, testers
work closely with developers during each sprint, which helps identify and fix defects early. It also
allows the team to adapt to changing requirements and take regular feedback from the customer.
As I’m interested in software testing, I feel Agile is a good model because testers are involved
throughout the development process rather than only at the end.

If they ask a follow-up like “Why Agile over Waterfall?”, say:

“Waterfall works well when requirements are fixed, but Agile is more flexible when
requirements change. I prefer Agile because testing happens continuously and defects can be
identified earlier.”

What is the role of a tester in Agile?

In Agile, a tester is involved throughout the development process, not just after coding is completed.
The tester works closely with developers, the Product Owner, and other team members to ensure the
product meets the requirements and is of good quality.

Main Roles of a Tester in Agile

1. Understand requirements

Participate in discussions about user stories and requirements.


Clarify unclear or missing requirements.
2. Create test scenarios and test cases

Prepare test scenarios based on user stories and acceptance criteria.


Identify positive, negative, and edge cases.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 12/13
3. Perform testing during the sprint
Test features as soon as they are developed.
Perform functional, regression, integration, and other relevant testing.

4. Find and report defects


Identify bugs and report them with clear steps to reproduce.
Provide evidence such as screenshots or logs when required.

5. Retest fixed defects


Verify that developers' fixes work correctly.
Perform regression testing to ensure existing functionality hasn't been affected.

6. Participate in Agile meetings


Sprint Planning – Understand what needs to be tested.
Daily Stand-up – Share testing progress and blockers.

Sprint Review – Demonstrate or discuss completed functionality.


Retrospective – Discuss what went well and what can be improved.
7. Collaborate with developers

Communicate closely with developers to understand functionality and resolve defects quickly.
8. Support continuous quality improvement
Help improve testing processes and prevent defects rather than only finding them.

Example

Suppose the team is developing a login feature in a sprint.

The tester may:


User Story → Understand requirements → Create test cases → Developer completes feature →
Test login → Report bugs → Developer fixes → Retest → Regression test → Mark feature complete

🎯 Interview Answer
"In Agile, a tester is involved throughout the development lifecycle. The tester
participates in sprint planning, understands user stories and acceptance criteria,
prepares test scenarios and test cases, performs testing during the sprint, reports and
retests defects, and performs regression testing. The tester also collaborates closely
with developers and participates in daily stand-ups, sprint reviews, and retrospectives.
The main goal is to identify defects early and ensure that each feature meets the
required quality standards."

⭐ Key Point
Traditional mindset: Developer finishes → Tester tests
Agile mindset: Developer + Tester collaborate continuously throughout the sprint.
ChatGPT can make mistakes. Check important info.

Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 13/13

You might also like