Process Models
Presented By
Md. Fazle Hasan Mihad
Lecturer, Department of CSE & CSIT
Welcome Everyone
Course Code: CSE 3297
Course Title: Software Engineering
Lecture-05
Lecture Overview:
❑ Spiral Model
❑ Rapid Application Development (RAD) Model
❑ Agile Model
❑ Big Bang Model
❑ Prototype Model
Spiral Model:
• The Spiral Model is a risk-driven software development process model introduced by Barry Boehm in 1986.
• It combines features of the waterfall model (sequential phases) and iterative development (repeated cycles).
• The model is called “spiral” because the process is represented as a spiral with many loops.
• Each loop (or phase) represents the development of the software at a certain stage, gradually improving until the final
product is complete.
Spiral Model:
Phases of Spiral Model:
Each loop of the spiral is divided into four main phases:
1. Objective Identification (Planning phase)
• Identify objectives, requirements, and constraints of the project.
• Understand what needs to be developed in this iteration.
2. Risk Analysis (Risk Assessment & Prototyping)
• Analyze possible risks (technical, cost, time, resources).
• Build prototypes to reduce uncertainties.
3. Engineering (Development & Testing)
• Actual development: design, coding, testing, integration.
• Build the product (or part of it) based on refined requirements.
4. Evaluation & Planning (Customer Review)
• Deliver the iteration to the customer.
• Get feedback and plan the next phase of the project.
Spiral Model:
Features:
• Focus on risk analysis and management.
• Uses prototyping in every iteration.
• Combines Waterfall (structured) and Iterative (flexible) models.
• Each cycle produces a more complete version of the system.
Example in Real Life
Suppose a bank is developing a large online banking system:
• First spiral → define login and basic account management.
• Second spiral → add money transfer features.
• Third spiral → add loan and investment modules.
Each spiral checks for risks like security, performance, data loss before moving on.
Spiral Model:
Uses of the Spiral Model
• Large and Complex Projects – Suitable for projects with high complexity and
evolving requirements.
• High-Risk Projects – Ideal for systems where risk management is critical (e.g.,
aerospace, defense, banking).
• Projects Requiring Continuous Refinement – Used when software requires
frequent updates and client feedback.
• Prototype-Based Development – Effective when multiple prototypes are needed
before the final product.
• R&D and Innovative Projects – Helpful in research-based projects where unknowns
are high.
Spiral Model:
Advantages of the Spiral Model
• Risk Management – Identifies and mitigates risks early in the development cycle.
• Flexibility in Requirements – Changes and new requirements can be incorporated at
any stage.
• Customer Feedback Integration – Continuous user involvement ensures better
alignment with expectations.
• Phased Development – The product is developed in increments, allowing early
deliverables.
• Improved Quality – Continuous refinement leads to a more robust and reliable final
product.
Spiral Model:
Disadvantages of the Spiral Model
• Expensive and Time-Consuming – The iterative process increases development
costs and duration.
• Complexity in Management – Requires strong expertise in risk analysis and
management.
• Not Suitable for Small Projects – Small-scale projects may not justify the
complexity of this model.
• Lack of Well-Defined End Goal – Continuous iterations can lead to scope creep,
making it difficult to finalize the project.
• Dependency on Risk Assessment – If risks are not properly identified, the model’s
benefits diminish.
Rapid Application Development (RAD) Model :
• The Rapid Application Development (RAD) model is a software development life cycle model
that emphasizes quick development and delivery of high-quality systems with active user
involvement.
• It is based on prototyping and iterative development instead of long planning and coding
phases.
Rapid Application Development (RAD) Model :
Phases of the RAD Model:
1. Business Modeling
• The flow of information between business functions is identified.
• Answer: What data drives the business? What information is generated? Who generates it? Who uses
it?
• Helps in understanding business objectives.
2. Data Modeling
• Data objects (entities) needed for the business are defined.
• Relationships among these objects are identified.
• Example: Customer, Order, Product, Payment.
• Converts business information flow into a data structure.
3. Process Modeling
• Defines how data objects are transformed to achieve business objectives.
• Identifies process descriptions for data creation, modification, and deletion.
• Shows how processes interact with data.
Rapid Application Development (RAD) Model :
4. Application Generation
• Uses automation tools, reusable components, and code generators.
• Actual system is built with minimal hand-coding.
• Prototypes are refined through user feedback.
5. Testing and Turnover
• Each module is tested independently.
• Since prototyping is used, most issues are identified earlier.
• Final integration, system testing, and delivery to customer are done.
RAD = Fast development using prototypes + Continuous user feedback + Iterative cycles.
Rapid Application Development (RAD) Model :
Uses of RAD Model:
• When quick development is required.
• When customer requirements change frequently.
• Suitable for modular and scalable projects.
• Works well for small-to-medium-sized teams with skilled developers.
Rapid Application Development (RAD) Model :
Advantages:
• Accommodates changing requirements.
• Faster development due to the reuse of components.
• Encourages customer feedback throughout development.
• Reduces integration issues by integrating from the start.
• Shortens iteration cycles with powerful RAD tools.
Disadvantages:
• Requires highly skilled developers.
• Only works if the system can be modularized.
• High dependency on modeling tools.
• Not suitable for low-budget projects due to tool costs.
• Complex project management due to parallel development.
Agile Model:
The Agile Model is a flexible, iterative, and
incremental approach to software development.
• Software is developed in small parts
(iterations/sprints).
• Each sprint = 1 to 4 weeks.
• After each sprint → working software is
delivered.
• The customer provides feedback, and the team
adapts quickly.
Main Goal: Deliver software faster, with better
quality, and adapt to changing requirements.
H.W: About Scrum, Scrum Master, sprints
Agile Model:
Key Features:
• Iterative → work is divided into repeated cycles.
• Incremental → each cycle adds usable features.
• Customer Involvement → Customer is part of the process.
• MVP (Minimum Viable Product) → release a simple version
first, then improve.
• Team Collaboration → developers, testers, and business people
work together
Agile Model:
Phases of Agile Model:
• Requirements Gathering – Define project goals, estimate effort, and assess
feasibility.
• Design the Requirements – Collaborate with stakeholders, create diagrams, and plan
system integration.
• Construction/Iteration – Develop and release an MVP, improving in cycles.
• Testing (QA) – Continuously test for bugs, performance, and compliance.
• Deployment – Release the product into the user environment.
• Feedback & Review – Gather user feedback and refine in the next iteration.
An MVP (Minimum Viable Product) is a basic version of a product with just enough features to satisfy
early users and gather feedback, enabling rapid iteration and validation of the product concept.
Agile is iterative and ensures continuous improvement!
Agile Model:
Agile Methods
Agile is not a single process → it has many frameworks:
• Scrum – Most popular framework, uses sprints.
• Extreme Programming (XP) – Focuses on coding best practices.
• Lean Software Development – Avoid waste, focus on efficiency.
• Feature Driven Development (FDD) – Build software feature by feature.
• Crystal – Lightweight, focuses on team communication.
• DSDM (Dynamic Systems Development Method) – Focuses on timeboxing.
Scrum in Agile
Scrum is the most used Agile framework.
• Scrum Master – Guides the team, removes obstacles.
• Product Owner – Maintains product backlog (list of features).
• Scrum Team – Developers/testers who do the actual work.
Sprint = 1–4 weeks cycle → at the end, a working product is delivered.
Agile Model:
Scrum
SCRUM is an agile development process focused primarily on ways to manage
tasks in team-based development conditions.
There are three roles in it, and their responsibilities are:
• Scrum Master: The scrum can set up the master team, arrange the meeting
and remove obstacles for the process
• Product owner: The product owner makes the product backlog, prioritizes
the delay and is responsible for the distribution of functionality on each
repetition.
• Scrum Team: The team manages its work and organizes the work to
complete the sprint or cycle.
Agile Model:
Characteristics of Agile Model:
• Iterative + Incremental Together
• Agile develops software in small parts (increments).
• Each part is improved in cycles (iterations).
• This combination makes Agile flexible.
• Time-Boxed Development (Sprints)
• Work is divided into short fixed periods (1–4 weeks) called sprints.
• At the end of each sprint → working software is delivered.
• Customer Collaboration
• Customer is involved throughout the process, not just at the end.
• Feedback is taken after every sprint.
• Working Software Over Documentation
• Unlike traditional models (Waterfall, V-Model) that focus on documents, Agile focuses on real working
software early.
Agile Model:
• Adaptive to Change
• Requirements can change anytime, even late in the project.
• Agile teams are ready to adapt quickly.
• Self-Organizing Teams
• Teams manage their own work (Scrum teams).
• Less strict management, more teamwork.
• Continuous Testing and Delivery
• Testing is not a separate last phase → it happens in every sprint.
• Ensures better quality and fewer bugs.
• Minimum Viable Product (MVP)
• First version has only core features.
• Later sprints add more features based on customer needs.
• Face-to-Face Communication
• Daily short meetings (stand-ups) are common.
• Direct communication is valued more than long reports.
• Flexibility with Scope
• Scope of the project can expand or shrink depending on feedback.
Agile Model:
When to use the Agile Model?
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When a customer is ready to have a meeting with a software team, all the
time.
Agile Model:
Advantages (Pros) of Agile Method:
• Frequent Delivery
• Face-to-Face Communication with clients.
• Efficient design that fulfills the business requirement.
• Anytime changes are acceptable.
• It reduces total development time.
Disadvantages(Cons) of Agile Model:
1. Lack of Documentation – Leads to confusion in decision-making.
2. Maintenance Issues – Difficult to manage after developers move to other projects.
Big Bang Model:
The Big Bang Model is the simplest software
development model.
• Development starts without detailed
planning.
• Developers just start coding with the
resources available.
• Requirements may be unclear or
undefined.
• Final product may or may not meet
customer expectations.
It’s called “Big Bang” because everything (effort,
money, time) is put together at once, and the
outcome is uncertain – like a “big explosion.”
Big Bang Model:
When to Use the Big Bang Model?
• For small projects like academic or experimental work.
• When requirements are unclear or not defined.
• When there is no strict deadline for product release.
• When the team is small and planning is minimal.
Characteristics:
• No structured process (no defined phases like design, testing, etc.).
• Coding-focused – development starts immediately.
• Works well for very small projects with 1–2 developers.
• Outcome is unpredictable (may succeed or fail badly).
Big Bang Model:
Advantages (Pros):
• No planning required – Developers can start immediately.
• Simple and easy to manage – No complex processes.
• Few resources needed – Works with a small team.
• Flexible for developers – Changes can be made freely.
Disadvantages (Cons):
• High risk and uncertainty – No structured approach.
• Not suitable for large projects – Lack of planning leads to inefficiency.
• Expensive if requirements change – Unclear goals can lead to wasted effort.
Best for quick, small-scale, low-budget projects with undefined requirements!
Prototype Model:
The Prototype Model is a software
development approach where:
• A prototype (demo version) of the
software is built first.
• Users test the prototype and give
feedback.
• The prototype is refined until the
customer is satisfied.
• Then the final system is developed.
It is very useful when the customer is not
sure about requirements.
Prototype Model:
Steps in the Prototype Model
1. Requirement Gathering and Analysis
• Collect basic, unclear requirements from the customer.
2. Quick Design
• Create a simple design of the system (screens, forms, menus).
3. Build Prototype
• Develop a working demo (not full system).
4. User Evaluation
• Customer uses the prototype and gives feedback.
5. Prototype Refinement
• Improve the prototype based on feedback.
6. Engineer Final Product
• Once requirements are clear, develop the actual software.
Prototype Model:
Example:
Suppose you are developing a Hospital Management System:
• Prototype 1 → Patient registration + appointment booking.
• Customer says: “Add doctor scheduling too.”
• Prototype 2 → Add doctor scheduling + billing module.
• After refining and approval, → final system is built with all features.
Advantages of the Prototype Model:
• Reduces risk of incorrect user requirements.
• Works well with changing requirements.
• Provides early product visibility to stakeholders.
• Helps in early marketing by showcasing a working model.
• Detects errors early, reducing maintenance costs.
Prototype Model:
Disadvantages of the Prototype Model:
• Risk of unstable final product if the prototype is poorly implemented.
• Requires continuous customer collaboration.
• Can be costly for customers.
• If the customer withdraws, the project may not be completed.
• Difficult to estimate project duration.
• Requires special tools & techniques, which can be expensive.
• Time-consuming due to multiple refinements.
Best suited for projects with evolving requirements and high user interaction needs!
Thank You