Software Process Model
Software Process Model
Rajshahi, BANGLADESH.
Course Code:
ICE-3151
Course Title :
Information System Analysis and
Software Engineering
Chapter:
Software Process Model
1
Prerequisite Courses : CSE1291, ICE2231
Course Objectives : The main objectives of this course are to provide students the
basic concepts of information system analysis, design and
implementation. This course also provides the details about
how to use the knowledge of software engineering to develop
a software project.
Course Learning : Students who successfully complete the course will CO-PO
Outcomes (COs) be able to: Mapping
CO-1: Identify the key aspects of the information PO-1
system development and software engineering.
CO-2: Analyze and design an information systems PO-2,
and software products. PO-3
CO-3: Apply the concept of information system and PO-3
software engineering to solve real-world problems.
©️ Dr. Md. Golam Rashed, Assoc. Professor, Dept. of ICE, RU Software Engineering
Course Contents (ICE-3151)
Course Contents
Section A
RH
Introduction: System Concepts, characteristics of a system, Elements of a system, Types of systems, Types
of information systems, Information systems environments, System Development Life Cycle, Role of
system analyst.
Information Gathering: Categories of information, Information gathering tools: Review of literature,
Procedures and forms, On-site observation, Interviews and questionnaires, Types of interviews and
questionnaires.
Feasibility Study: System performance definition, Feasibility study, Feasibility Considerations, Steps in
feasibility analysis, Feasibility report, Oral presentation, Data analysis, Cost/benefit analysis: Cost and
benefit categories, Procedure for cost/benefit determination, Classification of costs and benefits,
Cost/benefit evaluation methods.
System Design and Implementation: The process and stages of system design. Input/output and forms
design, File organization and database design, System Testing and Quality Assurance, Implementation and
software maintenance, Hardware/software selection, Project scheduling and Software, Security,
Disaster/recovery and Ethics in System Development.
Section B
GR
Software Process Models: Software process, Software process models, Linear sequential model,
Prototyping models, Waterfall model, RAD, Incremental model, Spiral model, Agility and agile process
model.
Software Quality Management: Concept of quality, Quality factors, Achieving software quality,
Elements of software quality assurance, SQA Tasks, Goals, and Metrics, Formal approaches to SQA,
Statistical software quality assurance, Software reliability, The ISO 9000 quality standards, The SQA plan.
Software Testing and Maintenance: Different testing philosophy and methods, Software testing
fundamentals, Internal and external views of testing, White-Box testing, Black-Box testing, Model-Based
testing, Patterns for software testing, Testing object-oriented applications, Testing web applications.
Software Projects and Risk Management: Project management concepts: People, Product and process.
Product metrics, Process and project metrics, Estimation for software project, Risk identification, Risk
projection, Risk refinement, Risk mitigation, Monitoring, and management.
©️ Dr. Md. Golam Rashed, Assoc. Professor, Dept. of ICE, RU Software Engineering
Chapter:
Software Process Model
6
What is Process Model?
• Process models were originally proposed to bring order to
the chaos of software development.
• A process model provides a specific roadmap for software
engineering work.
• It defines the flow of all ……..
• activities,
• actions and tasks,
• the degree of iteration,
• the work products, and
• the organization of the work that must be done.7
Who does it?
•Software engineers and their managers
adapt a process model to their needs and
then follow it.
•In addition, the people who have
requested the software have a role to play
in the process of defining, building, and
testing it.
8
Software Process
• A set of activities and tasks that ensure software
development is systematic, well-organized, and
meets user requirements.
• Steps in a Software Process:
1. Requirements Analysis: Understanding what the
customer needs.
2. Design: Creating architecture and design plans.
3. Implementation: Writing and coding the software.
4. Testing: Verifying the software's functionality.
5. Deployment: Releasing the software to users.
9
6. Maintenance: Fixing bugs and updating software.
Why is a Software process important?
✓ It ensures systematic development, reduces
risks, maintains quality, and meets user
needs efficiently.
10
What are the characteristics of a good
software process?
• A good software process has the following
characteristics:
✓Clearly defined objectives.
✓Adaptability to changing requirements.
✓Focus on quality assurance.
✓Efficient resource utilization.
✓Well-documented activities and results.
11
Software Process Model?
•A software process model is an abstraction of the
actual process, which is being described.
•It can also be defined as a simplified representation
of a software process.
•Each model represents a process from a specific
perspective.
12
Need for Process Model
•The software development team must decide the
process model that is to be used for software product
development and then the entire team must adhere to it.
•This is necessary because the software product
development can then be done systematically.
•Each team member will understand what is the next
activity and how to do it.
•Thus, process model will bring the definiteness and
discipline in overall development process. 13
Need for Process Model
• Every process model consists of definite entry and exit criteria for
each phase.
• Hence the transition of the product through various phases is
definite.
• If the process model is not followed for software development then
any team member can perform any software development activity,
this will ultimately cause a chaos and software project will
definitely fail.
• Without using process model, it is difficult to monitor the progress
of software product.
• Thus process model plays an important role in software engineering.
14
Waterfall Model
• It is a classical software development
methodology.
• It was first introduced by Winston W. Royce in
1970.
• It is a linear and sequential approach to software
development that consists of several phases.
• It must be completed in a specific order.
• This classical waterfall model is simple and
idealistic.
15
Waterfall Model (Con’t)
• It was once very popular. Today, it is not that popularly
used. However, it is important because most other types
of software development life cycle models are a
derivative of this.
• It is characterized by a structured, sequential approach
to project management and software development.
• The waterfall model is useful in situations where the
project requirements are well-defined and the project
goals are clear.
16
Features of Waterfall Model
1. Sequential Approach: Each phase of the project is
completed before moving on to the next one.
2. Document-Driven: The waterfall model depended on
documentation to ensure that the project is well-defined
and the project team is working towards a clear set of
goals.
3. Quality Control: The waterfall model places a high
emphasis on quality control and testing at each phase of the
project, to ensure that the final product meets the
requirements and expectations of the stakeholders. 17
Features of Waterfall Model
3. Rigid: Changes are difficult to implement
once a phase is completed.
4. Rigorous Planning: The waterfall model
involves a careful planning process, where the
project scope, timelines, and deliverables are
carefully defined and monitored throughout the
project lifecycle.
18
Phases of Waterfall Model
19
Phases of Waterfall Model
20
Phases of Waterfall Model
2. System Design:
✓Once the requirements are understood, the design
phase begins.
✓Based on the SRS, the system architecture and
design are created.
✓This phase defines how the software will be built.
✓Output: Design documents, including system
architecture, database design, and module
specifications. 21
Phases of Waterfall Model
3. Implementation (Coding):
✓ Developers write the actual code based on
the design documents.
✓ The software is divided into smaller
modules, and each module is developed and
tested individually.
✓ Output: A working software product. 22
Phases of Waterfall Model
4. Testing:
✓ The software is tested to ensure it meets the
requirements and is free of bugs.
✓ Testing includes unit testing, integration testing,
and system testing.
✓ Output: A tested and debugged software
product.
23
Phases of Waterfall Model
5. Deployment:
✓ The software is deployed to the production
environment for end-users.
✓ Output: A live, operational system.
6. Maintenance:
✓After deployment, the software is maintained
to fix any issues, improve performance, or add
new features.
✓Output: Updates and patches to the software. 24
Advantages of Waterfall Model
✓ Simple & Easy to Understand: Since it follows a
step-by-step approach, it is easy to manage and
execute.
✓ Clear Documentation: Each phase has well-
defined documentation, which helps in future
references.
✓ Well-Structured: The phases are well organized,
making it easy to track project progress.
25
Advantages of Waterfall Model
✓ Early Detection of Errors: Errors in the
requirement phase can be identified early before
development starts.
✓ Ideal for Small & Well-Defined Projects: Works
best when requirements are clear from the
beginning.
✓ Better Control & Management: Since each phase
has a defined start and end, project managers can
easily control the timeline and budget. 26
Disadvantages of Waterfall Model
1.Inflexible: Once a phase is completed, it is difficult and
costly to go back and make changes. This makes the model
unsuitable for projects with evolving requirements.
31
Agile Model
✓In earlier days, the Iterative Waterfall Model was very
popular for completing a project.
✓But nowadays, developers face various problems while
using it to develop software.
✓The main difficulties included handling customer change
requests during project development and the high cost and
time required to incorporate these changes.
✓To overcome these drawbacks of the Waterfall Model, in the
mid-1990s the Agile Software Development model was
proposed. 32
Agile Model
• The Agile Model is a flexible, iterative, and
incremental approach to software development.
• Unlike the Waterfall Model, Agile focuses on
continuous collaboration, customer feedback, and
rapid delivery of working software.
33
Process of Agile Development Methodology
34
Process of Agile Development Methodology (Cont…)
35
Process of Agile Development Methodology (Cont…)
feedback.
failure. 38
Disadvantages of Agile Development Methodology
1. Lack of Fixed Scope – Constant changes may lead to scope creep.
2. Requires Active Customer Involvement – Not ideal if clients are
unavailable. The agile model depends highly on customer interactions so
if the customer is not clear, then the development team can be driven in
the wrong direction.
3. Difficult to Predict Cost & Timeline – Continuous iterations make
budgeting challenging.
4. High Degree of Expertise Team Members- as they need to be able to
adapt to changing requirements and work in an iterative environment.
5. Less Documentation – Agile prefers working software over detailed
documents.
6. Not Ideal for Large Teams – Scaling Agile for large enterprises can be
complex. 39
When to Use Agile Development Model
1. Agile is best when project requirements are not fixed.
2. When frequent modifications need to be made, this method is implemented.
3. When a highly qualified and experienced team is available.
4. When a customer is ready to have a meeting with the team all the time.
5. when the project needs to be delivered quickly.
6. Flexible project schedules and budgets.
7. For Customer-Focused Applications – Ideal for web apps, mobile apps, and
SaaS products where continuous user feedback is needed.
8. For Fast-Paced Development – Agile is useful when speed and quick market
release are priorities.
9. For Startups & Innovative Projects – Helps startups build MVPs (Minimum
Viable Products) and test ideas quickly.
10.When Working in Small Teams – Agile is best for collaborative, cross-
40
functional teams.
Real Life Scenario for Agile Model
1. E-commerce Platforms (Amazon, Shopify) – Frequent updates and
changing customer needs.
2. Mobile App Development (Facebook, WhatsApp) – Continuous
feature releases.
3. SaaS (Software as a Service) (Google Workspace, Microsoft 365)
– Ongoing improvements.
4. Game Development (Fortnite, PUBG) – Regular updates based on
player feedback.
5. AI & Machine Learning Projects – Agile allows iterative model
training and testing.
41
Agile Development Model
42
Key Differences: Waterfall and Agile Model
43
Key Differences: Waterfall and Agile Model
44
Key Differences: Waterfall and Agile Model
45
Incremental Process Model
•The Incremental Process Model is also known as the Successive
version model.
•First, a simple working system implementing only a few basic
features is built and then that is delivered to the customer.
•Then thereafter many successive iterations/ versions are
implemented and delivered to the customer until the desired
system is released.
•The Incremental Model is widely used in real-life software
development because it allows teams to deliver functional
products early, incorporate feedback, and manage risks
effectively. 46
Incremental Process Model
A, B, and C are modules of Software Products that are incrementally developed and delivered.
47
Key Characteristics of Incremental Model
1. Divided into Increments: The project is broken down into smaller,
manageable modules or increments.
2. Iterative Development: Each increment goes through the phases of
requirements, design, implementation, and testing.
3. Early Delivery: Partial functionality is delivered early, allowing users
to benefit sooner.
4. Flexibility: Changes can be incorporated in later increments.
5. Risk Management: Risks are identified and addressed in early
increments.
48
Phases of Incremental Process Model
✓ Requirements of the Software are first broken down into several
modules that can be incrementally constructed and delivered
49
Phases of Incremental Process Model
1. Requirement analysis:
✓ In Requirement Analysis at any time, the plan is made just for the next
increment and not for any kind of long-term plan.
✓ Therefore, it is easier to modify the version as per the needs of the
customer.
2. Design & Development:
✓ The Development Team first undertakes to develop core features (these do
not need services from other features) of the system.
✓ Once the core features are fully developed, then these are refined to increase
levels of capabilities by adding new functions in Successive versions.
✓ Each incremental version is usually developed using an iterative waterfall
50
model of development.
Phases of Incremental Process Model
52
Disadvantages of Incremental Process Model
1. Planning Required: Requires careful planning to divide the system
into increments.
deployment.
53
Social Media App Development:
----Real Life Example of Incremental Model
• Imagine developing a social media app like Instagram:
step by step.
54
Prototyping Model
•The Prototyping Model is one of the most popularly used
Software Development Life Cycle Models (SDLC models).
•This model is used when the customers do not know the
exact project requirements beforehand.
•In this model, a prototype of the end product is first
developed, tested, and refined as per customer feedback
repeatedly till a final acceptable prototype is achieved which
forms the basis for developing the final product.
55
Prototyping Model
•In this process model, the system is partially
implemented before or during the analysis phase
thereby allowing the customers to see the product
early in the life cycle.
56
Steps of Prototyping Model
57
Six SDLC Phases of Prototyping Model
1.Requirement Gathering and Analysis:
✓ This is the initial step in designing a prototype model.
✓ In this phase, users are asked about what they expect or what
they want from the system.
2. Quick Design:
✓ This is the second step in the Prototyping Model.
✓ This model covers the basic design of the requirement through
which a quick overview can be easily described.
3. Build a Prototype:
✓ This step helps in building an actual prototype from the
knowledge gained from prototype design. 58
Six SDLC Phases of Prototyping Model
4. Initial User Evaluation:
✓ This step describes the preliminary testing where the investigation
of the performance model occurs, as the customer will tell the
strengths and weaknesses of the design, which was sent to the
developer.
5. Refining Prototype:
If any feedback is given by the user, then improving the client’s
response to feedback and suggestions, the final system is
approved.
6. Implement Product and Maintain:
This is the final step in the phase of the Prototyping Model
where the final system is tested and distributed to production,
59
here the program is run regularly to prevent failures.
When to Use the Prototype Model?
1. When requirements are unclear or incomplete.
development.
60
Types of Prototypes Model
1. Throwaway/Rapid Prototype – Built quickly to understand
prototyped separately.
63
Spiral Model
✓ The Spiral Model is one of the most important Software
Development Life Cycle models.
✓ The Spiral Model is a combination of the waterfall model
and the iterative model.
✓ It provides support for Risk Handling.
✓ The Spiral Model was first proposed by Barry Boehm
✓ The Spiral Model is a risk-driven model, meaning that the
focus is on managing risk through multiple iterations of the
software development process.
64
Phases in Spiral Model
65
Phases in Spiral Model
1. Objectives Defined:
✓ In first phase of the spiral model we clarify what the project aims to achieve, including
functional and non-functional requirements.
2. Risk Analysis:
✓ In the risk analysis phase, the risks associated with the project are identified and
evaluated.
3. Engineering:
✓ In the engineering phase, the software is developed based on the requirements gathered
in the previous iteration.
4. Evaluation:
✓ In the evaluation phase, the software is evaluated to determine if it meets the customer’s
requirements and if it is of high quality.
5. Planning:
✓ The next iteration of the spiral begins with a new planning phase, based on the results of
the evaluation 66
Barry Boehm Spiral Model
68
The functions of the four quadrants Phases in
Spiral Model
3. Develop the next version of the Product:
✓ During the third quadrant, the identified features are
developed and verified through testing.
✓ At the end of the third quadrant, the next version of the
software is available.
70
Advantages of the Spiral Model
✓ Risk Handling
✓ Good for large projects
✓ Flexibility in Requirements
✓ Customer Satisfaction
✓ Iterative and Incremental Approach
✓ Emphasis on Risk Management
✓ Improved Communication
✓ Improved Quality
71
Disadvantages of the Spiral Model
✓ Complex
✓ Expensive
✓ Too much dependability on Risk Analysis
✓ Difficulty in time management
✓ Complexity
✓ Time-Consuming
✓ Resource Intensive
72
Real-Life Example of Spiral Model: Developing
an E-Commerce Website
✓ First Spiral – Planning and Requirements: The initial phase
involves gathering basic requirements for the e-commerce website,
like product listing, shopping cart, and payment options.
✓ The team analyzes any risks, such as security or scalability, and
creates a small prototype.
❖ Example:
❖ The team builds a simple homepage with a basic product
catalog to see how users interact with it and identify any
design flaws.
73
Real-Life Example of Spiral Model: Developing
an E-Commerce Website
• Second Spiral – Risk Analysis and Refining the Design: After
gathering feedback from the prototype, the next spiral focuses on
adding more features and fixing early issues.
• The team addresses security risks, such as secure payment
processing, and tests how well the site handles increasing user
traffic.
o Example:
o A basic shopping cart and user registration system are added.
o The payment system is also tested with dummy transactions to
ensure security.
74
Real-Life Example of Spiral Model: Developing
an E-Commerce Website
• Third Spiral – Detailed Implementation: With more feedback, the
team further refines the design, adding advanced features like order
tracking, customer reviews, and search functionality.
• Risks like scalability (handling many users) are re-evaluated, and
more testing is conducted.
o Example:
o The website now supports user profiles, product reviews, and
real-time inventory updates.
o The team tests how the system handles large volumes of
orders during peak times.
75
Real-Life Example of Spiral Model: Developing
an E-Commerce Website
• Final Spiral – Full Deployment: The final phase involves full
implementation, thorough testing, and launching the e-commerce
website to the public. Ongoing risks like system crashes or user
feedback are monitored and addressed as needed.
o Example:
o The website goes live with all features, including secure
payments, product listings, and order tracking, ready for users
to shop online.
76
Rapid Application Development or RAD Model
✓ IBM first proposed the Rapid Application Development or RAD
Model in the 1980s.
✓ The RAD model is a type of incremental process model in which there
is a concise development cycle.
✓ The RAD model is used when the requirements are fully understood
and the component-based construction approach is adopted.
✓ Various phases in RAD are Requirements Gathering, Analysis and
Planning, Design, Build or Construction, and finally Deployment.
✓ A software project can be implemented using this model if the project
can be broken down into small modules where is each module can be
assigned independently to separate teams.
✓ These modules can finally be combined to form the final product. 77
Rapid Application Development or RAD Model
✓ Development of each module involves the various basic steps as in the
waterfall model i.e. analyzing, designing, coding, and then testing, etc.
as shown in the figure.
✓ Another striking feature of this model is a short period i.e. the time
frame for delivery(time-box) is generally 60-90 days.
✓ Multiple teams work on developing the software system using the
RAD model parallel.
78
Phases of RAD Model
1. Requirements Planning:
✓ This involves the use of various techniques used in requirements elicitation like
✓ It also consists of the entire structured plan describing the critical data, methods
80
Phases of RAD Model
2. User Description:
✓ This phase consists of taking user feedback and building the
prototype using developer tools.
✓ In other words, it includes re-examination and validation of the
data collected in the first phase.
✓ The dataset attributes are also identified and elucidated in this
phase.
81
Phases of RAD Model
3. Construction:
✓ In this phase, refinement of the prototype and delivery takes place.
✓ It includes the actual use of powerful automated tools to transform
processes and data models into the final working product.
✓ All the required modifications and enhancements are to be done in
this phase.
82
Phases of RAD Model
4. Cutover:
✓All the interfaces between the independent modules developed by separate
teams have to be tested properly.
✓The use of powerfully automated tools and subparts makes testing easier.
✓This is followed by acceptance testing by the user.
✓The process involves building a rapid prototype, delivering it to the
customer, and taking feedback. After validation by the customer, the SRS
document is developed and the design is finalized.
83
When to use the RAD Model?
✓ Well-understood Requirements: When project requirements are stable and
transparent, RAD is appropriate.
✓ Time-sensitive Projects: Suitable for projects that need to be developed and
delivered quickly due to tight deadlines.
✓ Small to Medium-Sized Projects: Better suited for smaller initiatives
requiring a controllable number of team members.
✓ High User Involvement: Fits where ongoing input and interaction from users
are essential.
✓ Innovation and Creativity: Helpful for tasks requiring creative inquiry and
innovation.
✓ Prototyping: It is necessary when developing and improving prototypes is a
key component of the development process.
✓ Complexity: Suitable for tasks using comparatively straightforward
technological specifications. 84
Advantages of RAD Model
✓ Faster delivery of working software.
✓ High adaptability to changing requirements.
✓ Strong collaboration between developers and users.
✓ Feedback from the customer is available at the initial stages.
✓ Reduced costs as fewer developers are required.
✓ The use of powerful development tools results in better quality
products in comparatively shorter periods.
✓ Productivity may be quickly boosted with a lower number of
employees.
85
Disadvantages of RAD Model
✓ Requires highly skilled and motivated teams.
✓ Not suitable for large, complex projects with fixed requirements.
✓ Can lead to scope creep if not managed properly.
✓ The use of powerful and efficient tools requires highly skilled
professionals.
✓ The absence of reusable components can lead to the failure of the
project.
✓ The team leader must work closely with the developers and
customers to close the project on time.
✓ The systems which cannot be modularized suitably cannot use this
model.
✓ Customer involvement is required throughout the life cycle. 86