SlideShare a Scribd company logo
CSE 2205 Software Engineering
Md. Shafiuzzaman
Lecture #2
Today
• The Software Process Model
Program vs. Software
Documentation
Operating Procedures
SDLC Life Cycle
Why have a model
• A model recognize that Software Engineering is more than
just programming
• Recognize product life cycles
– Various requirements specification phases
– Design phases
– Coding and testing phases
– Maintenance phase (bug fixes and revisions)
More reasons to have a model
• A model helps recognize and define the division of labor
– Individual responsibilities (program managers, software design
engineers, UI designers, testers, product support,
internationalization, marketing, etc.)
– How big should a team be
– Parallel work efforts
– Does a one person team need a model
• Provide a common means of communication between all
involved parties
• Documentation is vital
– Comments in the code is not sufficient documentation
Goals of a good model
• The obvious “Provide a framework for building a solidly
engineered product”
• A paradigm that adds discipline and order to software
development
• Provides a formal mechanism to clarify, track, and modify
the product requirements throughout the product life cycle
• Provide a guideline for engineers to use in the product life
cycle
• Provide feedback into the development cycle
More goals of a good model
• Compel engineers to want to use it
– Doesn’t get in the way
– Convinces them that they will build a better product
– Be easy to understand and use
• Keep everyone organized
• Many more “common sense” reasons
Typical Student Programming
Process
First a simple model (waterfall)
More on the waterfall model
• What it is
– Each phase is carried out completely (for all requirements) before
proceeding to the next
– The process is strictly sequential - no backing up or repeating
phases
• What it tried to accomplish
– Account for more than programming
– Feedback between phases
– A requirement change can have a major cost downstream
More on the waterfall model
• Benefits
– Simple, easy to understand and follow
– Highly structured, therefore good for beginners
– After specification is complete, low customer involvement
required
• Limitations
– Limited feedback increases risk
– Inflexible - can't adapt to changes in requirements
– A requirement change can have a major cost downstream
Prototyping Model
More on prototyping model
• A variation of the waterfall that adds a new phase,
prototyping
• Prototypes intend to reduce risk by building a quick and
dirty replica or mockup of the intended system.
• Demonstrate technical feasibility when the technical risk is
high.
• Used to better understand and elicit user requirements.
• Goal: reduce risk and limit costs by increasing
understanding of proposed solutions before committing
more resources.
Incremental Development
More on incremental
development
• developing an initial implementation
• exposing this to user feedback
• evolving it through several versions until an
acceptable system has been developed.
Incremental Vs Waterfall Model
• cost of accommodating changing
• customer feedback
• rapid delivery
Boehm’s Spiral model
More on the spiral model
• What it is
– An iterative approach where multiple passes are made through
each phase
– During each iteration the system is explored at greater depth and
more detail is added
• What it tried to accomplish
– Recognize that Software Engineering is a process of iterative
refinement
– Allow for alternate designs and implementations
More on the spiral model
• Benefits
– The iterative natures allows for knowledge gained during early
passes to inform subsequent passes
– Requires low up-front commitment
– Manages uncertainty inherent in exploratory projects
– Strong approval and documentation control
– Additional Functionality can be added at a later date
– Software is produced early in the software life cycle
More on the spiral model
• Limitations
– Difficult to establish stable documents
– Things keep getting modified during each iteration
– Too much dependable on Risk Analysis and requires highly
specific expertise
– Spiral may go on indefinitely
– End of the project may not be known early
– May be hard to define objective, verifiable milestones
– Large numbers of intermediate stages require excessive
documentation
When to use Spiral model
• When costs and risk evaluation is important
• For medium to high-risk projects
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and
exploration)
Real Life Examples of software
using spiral model
• Evolution of Microsoft Windows operating
system
SDLC Models
Assignments
• RAD model (Odd Roll Numbers)
• V-Model (Even Roll Numbers)
• Instructions:
– Explain its distinction with others
– Benefits & Limitations
– Where to use
– Real life examples
Next Class
• Iterative Model
• Agile
Lessons from the models
• Each trying to capture or dictate how a project should be
run
• Even a good properly applied model cannot fix a flawed
design
• Not any model offers the 100% solution
• Often borrowing from one or more model is necessary
• Just as Software Engineering is full of compromises so is
using a Software Engineering model
• So take these models with a grain of salt and use only
those parts that apply to your situation

More Related Content

PDF
Agile Methodology
Md. Shafiuzzaman Hira
 
PDF
Introduction to Software Engineering Course
Md. Shafiuzzaman Hira
 
PPTX
Unit 1 sepm the generic process model
KanchanPatil34
 
PPTX
Sdlc (software development life cycle)
Nadeesha Thilakarathne
 
PDF
ITFT - Software development life cycle
Shruti Kunwar
 
PPTX
Software Process Models
Hassan A-j
 
PPT
Iterative software development
Mohamad Charaf AWS Certified
 
Agile Methodology
Md. Shafiuzzaman Hira
 
Introduction to Software Engineering Course
Md. Shafiuzzaman Hira
 
Unit 1 sepm the generic process model
KanchanPatil34
 
Sdlc (software development life cycle)
Nadeesha Thilakarathne
 
ITFT - Software development life cycle
Shruti Kunwar
 
Software Process Models
Hassan A-j
 
Iterative software development
Mohamad Charaf AWS Certified
 

What's hot (20)

PPTX
Agile Requirements Engineering Practices: An Empirical Study
Asanka Dilruk
 
PPTX
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
 
PPT
Software engineering
Hitesh Mohapatra
 
PPTX
An Introduction to Iterative Software Development
Geoffrey Weglarz
 
PPTX
Waterfall model
Manusha Dilan
 
PPTX
Iterative model
Vaibhav Dash
 
PPTX
Prototype model and process
Danish Musthafa
 
PPTX
Introduction to SDLC
Ajeng Savitri
 
PPTX
Waterfall Model
Nahin Kumar Dey
 
PPTX
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Tahaa Shahid
 
PPTX
Software Development Life Cycle-SDLC
Adeel Rasheed
 
PPT
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
PDF
Agile Requirements Engineering by Abdulkerim Corbo
Bosnia Agile
 
PPTX
Sdlc
MaNooR_123
 
PDF
Lesson 2 software processes
anointon
 
PPT
Software Requirements engineering
Md. Shafiuzzaman Hira
 
PPTX
Software development methodologies
Ankita Lachhwani
 
PPT
Requirements Tool
gilashikwa
 
PPTX
SDLC Waterfall Model
Francis George
 
DOCX
Incremental model
Sajid Ali Laghari
 
Agile Requirements Engineering Practices: An Empirical Study
Asanka Dilruk
 
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
 
Software engineering
Hitesh Mohapatra
 
An Introduction to Iterative Software Development
Geoffrey Weglarz
 
Waterfall model
Manusha Dilan
 
Iterative model
Vaibhav Dash
 
Prototype model and process
Danish Musthafa
 
Introduction to SDLC
Ajeng Savitri
 
Waterfall Model
Nahin Kumar Dey
 
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Tahaa Shahid
 
Software Development Life Cycle-SDLC
Adeel Rasheed
 
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
Agile Requirements Engineering by Abdulkerim Corbo
Bosnia Agile
 
Lesson 2 software processes
anointon
 
Software Requirements engineering
Md. Shafiuzzaman Hira
 
Software development methodologies
Ankita Lachhwani
 
Requirements Tool
gilashikwa
 
SDLC Waterfall Model
Francis George
 
Incremental model
Sajid Ali Laghari
 
Ad

Similar to Software Process Model (20)

PPT
20IT402 - SOFTWARE ENGINEERING ALL UNITS PPT
GeethaRRaj
 
PPTX
The process
prakashvs7
 
PPTX
Software Engineering- Crisis and Process Models
Nishu Rastogi
 
PPTX
Chapter 1.pptxs Introduction to software Engineering
Bayesayohannis
 
PPTX
Software Engineering - Software Models
Reddhi Basu
 
PPTX
2-SE Process Models.pptx
MaryamMahjabeenYouni
 
PPTX
2-models.pptx
ssuserd0fdaa
 
PPT
Software Engineering Process Models important
ధావన్ కుమార్
 
PPT
Software process life cycles
sathish sak
 
PDF
Software lifecycle lodhi (1)
Nitesh Nayal
 
PPTX
LECTURE 155662355366589625633022333.pptx
ROHANPAL39
 
PPTX
SE-03.pptx
HaiderAli252366
 
PPTX
4_59247024118127714222222222222222255.pptx
berihufsaha12
 
PPTX
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx
gadisaAdamu
 
PPT
Chapter 1- Introduction to software engineering for CS.ppt
SisayNegash4
 
PPT
Chapter 1- Introduction for software.ppt
SisayNegash4
 
PPTX
Comparison of Software Engineering Models
tahir iqbal
 
PPTX
1 sdlc model
Shah Ishtiyaq Mehfooze
 
PPT
Software Engineering (Process Models)
ShudipPal
 
PPTX
Manual Testing Module 3-SDLC.pptx sdlc cycle most important part in manual
anilrathod600628
 
20IT402 - SOFTWARE ENGINEERING ALL UNITS PPT
GeethaRRaj
 
The process
prakashvs7
 
Software Engineering- Crisis and Process Models
Nishu Rastogi
 
Chapter 1.pptxs Introduction to software Engineering
Bayesayohannis
 
Software Engineering - Software Models
Reddhi Basu
 
2-SE Process Models.pptx
MaryamMahjabeenYouni
 
2-models.pptx
ssuserd0fdaa
 
Software Engineering Process Models important
ధావన్ కుమార్
 
Software process life cycles
sathish sak
 
Software lifecycle lodhi (1)
Nitesh Nayal
 
LECTURE 155662355366589625633022333.pptx
ROHANPAL39
 
SE-03.pptx
HaiderAli252366
 
4_59247024118127714222222222222222255.pptx
berihufsaha12
 
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx
gadisaAdamu
 
Chapter 1- Introduction to software engineering for CS.ppt
SisayNegash4
 
Chapter 1- Introduction for software.ppt
SisayNegash4
 
Comparison of Software Engineering Models
tahir iqbal
 
Software Engineering (Process Models)
ShudipPal
 
Manual Testing Module 3-SDLC.pptx sdlc cycle most important part in manual
anilrathod600628
 
Ad

More from Md. Shafiuzzaman Hira (20)

PPTX
Introduction to Web development
Md. Shafiuzzaman Hira
 
PPTX
Software measurement and estimation
Md. Shafiuzzaman Hira
 
PPTX
Why do we test software?
Md. Shafiuzzaman Hira
 
PPTX
Software architectural patterns
Md. Shafiuzzaman Hira
 
PPTX
Class based modeling
Md. Shafiuzzaman Hira
 
PPTX
Class diagram
Md. Shafiuzzaman Hira
 
PPTX
State diagram
Md. Shafiuzzaman Hira
 
PDF
Use case Modeling
Md. Shafiuzzaman Hira
 
PDF
User stories
Md. Shafiuzzaman Hira
 
PPTX
C pointers
Md. Shafiuzzaman Hira
 
PPTX
C structures
Md. Shafiuzzaman Hira
 
PPTX
How to Create Python scripts
Md. Shafiuzzaman Hira
 
PPTX
Regular expressions using Python
Md. Shafiuzzaman Hira
 
PPTX
Password locker project
Md. Shafiuzzaman Hira
 
PPTX
Dictionaries in Python
Md. Shafiuzzaman Hira
 
PPTX
Lists in Python
Md. Shafiuzzaman Hira
 
PPTX
Manipulating string with Python
Md. Shafiuzzaman Hira
 
PPTX
Introducing ict
Md. Shafiuzzaman Hira
 
PPTX
Function in Python
Md. Shafiuzzaman Hira
 
Introduction to Web development
Md. Shafiuzzaman Hira
 
Software measurement and estimation
Md. Shafiuzzaman Hira
 
Why do we test software?
Md. Shafiuzzaman Hira
 
Software architectural patterns
Md. Shafiuzzaman Hira
 
Class based modeling
Md. Shafiuzzaman Hira
 
Class diagram
Md. Shafiuzzaman Hira
 
State diagram
Md. Shafiuzzaman Hira
 
Use case Modeling
Md. Shafiuzzaman Hira
 
User stories
Md. Shafiuzzaman Hira
 
C structures
Md. Shafiuzzaman Hira
 
How to Create Python scripts
Md. Shafiuzzaman Hira
 
Regular expressions using Python
Md. Shafiuzzaman Hira
 
Password locker project
Md. Shafiuzzaman Hira
 
Dictionaries in Python
Md. Shafiuzzaman Hira
 
Lists in Python
Md. Shafiuzzaman Hira
 
Manipulating string with Python
Md. Shafiuzzaman Hira
 
Introducing ict
Md. Shafiuzzaman Hira
 
Function in Python
Md. Shafiuzzaman Hira
 

Recently uploaded (20)

PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
The Future of Artificial Intelligence (AI)
Mukul
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 

Software Process Model

  • 1. CSE 2205 Software Engineering Md. Shafiuzzaman Lecture #2
  • 2. Today • The Software Process Model
  • 7. Why have a model • A model recognize that Software Engineering is more than just programming • Recognize product life cycles – Various requirements specification phases – Design phases – Coding and testing phases – Maintenance phase (bug fixes and revisions)
  • 8. More reasons to have a model • A model helps recognize and define the division of labor – Individual responsibilities (program managers, software design engineers, UI designers, testers, product support, internationalization, marketing, etc.) – How big should a team be – Parallel work efforts – Does a one person team need a model • Provide a common means of communication between all involved parties • Documentation is vital – Comments in the code is not sufficient documentation
  • 9. Goals of a good model • The obvious “Provide a framework for building a solidly engineered product” • A paradigm that adds discipline and order to software development • Provides a formal mechanism to clarify, track, and modify the product requirements throughout the product life cycle • Provide a guideline for engineers to use in the product life cycle • Provide feedback into the development cycle
  • 10. More goals of a good model • Compel engineers to want to use it – Doesn’t get in the way – Convinces them that they will build a better product – Be easy to understand and use • Keep everyone organized • Many more “common sense” reasons
  • 12. First a simple model (waterfall)
  • 13. More on the waterfall model • What it is – Each phase is carried out completely (for all requirements) before proceeding to the next – The process is strictly sequential - no backing up or repeating phases • What it tried to accomplish – Account for more than programming – Feedback between phases – A requirement change can have a major cost downstream
  • 14. More on the waterfall model • Benefits – Simple, easy to understand and follow – Highly structured, therefore good for beginners – After specification is complete, low customer involvement required • Limitations – Limited feedback increases risk – Inflexible - can't adapt to changes in requirements – A requirement change can have a major cost downstream
  • 16. More on prototyping model • A variation of the waterfall that adds a new phase, prototyping • Prototypes intend to reduce risk by building a quick and dirty replica or mockup of the intended system. • Demonstrate technical feasibility when the technical risk is high. • Used to better understand and elicit user requirements. • Goal: reduce risk and limit costs by increasing understanding of proposed solutions before committing more resources.
  • 18. More on incremental development • developing an initial implementation • exposing this to user feedback • evolving it through several versions until an acceptable system has been developed.
  • 19. Incremental Vs Waterfall Model • cost of accommodating changing • customer feedback • rapid delivery
  • 21. More on the spiral model • What it is – An iterative approach where multiple passes are made through each phase – During each iteration the system is explored at greater depth and more detail is added • What it tried to accomplish – Recognize that Software Engineering is a process of iterative refinement – Allow for alternate designs and implementations
  • 22. More on the spiral model • Benefits – The iterative natures allows for knowledge gained during early passes to inform subsequent passes – Requires low up-front commitment – Manages uncertainty inherent in exploratory projects – Strong approval and documentation control – Additional Functionality can be added at a later date – Software is produced early in the software life cycle
  • 23. More on the spiral model • Limitations – Difficult to establish stable documents – Things keep getting modified during each iteration – Too much dependable on Risk Analysis and requires highly specific expertise – Spiral may go on indefinitely – End of the project may not be known early – May be hard to define objective, verifiable milestones – Large numbers of intermediate stages require excessive documentation
  • 24. When to use Spiral model • When costs and risk evaluation is important • For medium to high-risk projects • Users are unsure of their needs • Requirements are complex • New product line • Significant changes are expected (research and exploration)
  • 25. Real Life Examples of software using spiral model • Evolution of Microsoft Windows operating system
  • 27. Assignments • RAD model (Odd Roll Numbers) • V-Model (Even Roll Numbers) • Instructions: – Explain its distinction with others – Benefits & Limitations – Where to use – Real life examples
  • 28. Next Class • Iterative Model • Agile
  • 29. Lessons from the models • Each trying to capture or dictate how a project should be run • Even a good properly applied model cannot fix a flawed design • Not any model offers the 100% solution • Often borrowing from one or more model is necessary • Just as Software Engineering is full of compromises so is using a Software Engineering model • So take these models with a grain of salt and use only those parts that apply to your situation