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

What's hot

Agile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical StudyAgile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical Study
Asanka Dilruk
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Hitesh Mohapatra
 
An Introduction to Iterative Software Development
An Introduction to Iterative Software DevelopmentAn Introduction to Iterative Software Development
An Introduction to Iterative Software DevelopmentGeoffrey Weglarz
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
Manusha Dilan
 
Iterative model
Iterative modelIterative model
Iterative model
Vaibhav Dash
 
Prototype model and process
Prototype model  and processPrototype model  and process
Prototype model and processDanish Musthafa
 
Introduction to SDLC
Introduction to SDLC Introduction to SDLC
Introduction to SDLC
Ajeng Savitri
 
Waterfall Model
Waterfall ModelWaterfall Model
Waterfall Model
Nahin Kumar Dey
 
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha ShahidEvolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Tahaa Shahid
 
Software Development Life Cycle-SDLC
Software Development Life Cycle-SDLCSoftware Development Life Cycle-SDLC
Software Development Life Cycle-SDLC
Adeel Rasheed
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
Agile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboAgile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim Corbo
Bosnia Agile
 
Sdlc
SdlcSdlc
Lesson 2 software processes
Lesson 2   software processesLesson 2   software processes
Lesson 2 software processes
anointon
 
Software Requirements engineering
Software Requirements engineeringSoftware Requirements engineering
Software Requirements engineering
Md. Shafiuzzaman Hira
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
Ankita Lachhwani
 
Requirements Tool
Requirements ToolRequirements Tool
Requirements Toolgilashikwa
 
SDLC Waterfall Model
SDLC Waterfall ModelSDLC Waterfall Model
SDLC Waterfall Model
Francis George
 

What's hot (20)

Agile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical StudyAgile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical Study
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
An Introduction to Iterative Software Development
An Introduction to Iterative Software DevelopmentAn Introduction to Iterative Software Development
An Introduction to Iterative Software Development
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Iterative model
Iterative modelIterative model
Iterative model
 
Prototype model and process
Prototype model  and processPrototype model  and process
Prototype model and process
 
Introduction to SDLC
Introduction to SDLC Introduction to SDLC
Introduction to SDLC
 
Waterfall Model
Waterfall ModelWaterfall Model
Waterfall Model
 
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha ShahidEvolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
 
Software Development Life Cycle-SDLC
Software Development Life Cycle-SDLCSoftware Development Life Cycle-SDLC
Software Development Life Cycle-SDLC
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Agile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboAgile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim Corbo
 
Sdlc
SdlcSdlc
Sdlc
 
Lesson 2 software processes
Lesson 2   software processesLesson 2   software processes
Lesson 2 software processes
 
Software Requirements engineering
Software Requirements engineeringSoftware Requirements engineering
Software Requirements engineering
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
 
Requirements Tool
Requirements ToolRequirements Tool
Requirements Tool
 
SDLC Waterfall Model
SDLC Waterfall ModelSDLC Waterfall Model
SDLC Waterfall Model
 
Incremental model
Incremental modelIncremental model
Incremental model
 

Similar to Software Process Model

2-SE Process Models.pptx
2-SE Process Models.pptx2-SE Process Models.pptx
2-SE Process Models.pptx
MaryamMahjabeenYouni
 
Software process models
Software process modelsSoftware process models
Software process models
Malik WaQas
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Atul Karmyal
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
loloka1
 
Process models
Process modelsProcess models
Process models
Preeti Mishra
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
ElieNGOMSEU
 
Session2.pptx.ppt
Session2.pptx.pptSession2.pptx.ppt
Session2.pptx.ppt
AbdugafforAbduganiye
 
SDLC.PPT
SDLC.PPTSDLC.PPT
SDLC.PPT
SravyaPreethi1
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
Mehuk1
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
AqeelAbbas94
 
presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)
EveryThing68
 
SDLC.ppt
SDLC.pptSDLC.ppt
SDLC.ppt
SnehaBarua5
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
Mubashir Ali
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.ppt
NyamburaKinyua
 
Software Process Model.ppt
Software Process Model.pptSoftware Process Model.ppt
Software Process Model.ppt
SasiR18
 
project_life_cycles_models.ppt
project_life_cycles_models.pptproject_life_cycles_models.ppt
project_life_cycles_models.ppt
chandrasekarnatraj
 

Similar to Software Process Model (20)

2-SE Process Models.pptx
2-SE Process Models.pptx2-SE Process Models.pptx
2-SE Process Models.pptx
 
Software process models
Software process modelsSoftware process models
Software process models
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
 
Process models
Process modelsProcess models
Process models
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
ddd.ppt
ddd.pptddd.ppt
ddd.ppt
 
Session2.pptx.ppt
Session2.pptx.pptSession2.pptx.ppt
Session2.pptx.ppt
 
Session2 (1).ppt
Session2 (1).pptSession2 (1).ppt
Session2 (1).ppt
 
SDLC.PPT
SDLC.PPTSDLC.PPT
SDLC.PPT
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)
 
SDLC.ppt
SDLC.pptSDLC.ppt
SDLC.ppt
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.ppt
 
Software Process Model.ppt
Software Process Model.pptSoftware Process Model.ppt
Software Process Model.ppt
 
Sdlc
SdlcSdlc
Sdlc
 
project_life_cycles_models.ppt
project_life_cycles_models.pptproject_life_cycles_models.ppt
project_life_cycles_models.ppt
 

More from Md. Shafiuzzaman Hira

Introduction to Web development
Introduction to Web developmentIntroduction to Web development
Introduction to Web development
Md. Shafiuzzaman Hira
 
Software measurement and estimation
Software measurement and estimationSoftware measurement and estimation
Software measurement and estimation
Md. Shafiuzzaman Hira
 
Why do we test software?
Why do we test software?Why do we test software?
Why do we test software?
Md. Shafiuzzaman Hira
 
Software architectural patterns
Software architectural patternsSoftware architectural patterns
Software architectural patterns
Md. Shafiuzzaman Hira
 
Class based modeling
Class based modelingClass based modeling
Class based modeling
Md. Shafiuzzaman Hira
 
Class diagram
Class diagramClass diagram
Class diagram
Md. Shafiuzzaman Hira
 
State diagram
State diagramState diagram
State diagram
Md. Shafiuzzaman Hira
 
Use case Modeling
Use case ModelingUse case Modeling
Use case Modeling
Md. Shafiuzzaman Hira
 
User stories
User storiesUser stories
User stories
Md. Shafiuzzaman Hira
 
C files
C filesC files
C pointers
C pointersC pointers
C structures
C structuresC structures
C structures
Md. Shafiuzzaman Hira
 
How to Create Python scripts
How to Create Python scriptsHow to Create Python scripts
How to Create Python scripts
Md. Shafiuzzaman Hira
 
Regular expressions using Python
Regular expressions using PythonRegular expressions using Python
Regular expressions using Python
Md. Shafiuzzaman Hira
 
Password locker project
Password locker project Password locker project
Password locker project
Md. Shafiuzzaman Hira
 
Dictionaries in Python
Dictionaries in PythonDictionaries in Python
Dictionaries in Python
Md. Shafiuzzaman Hira
 
Lists in Python
Lists in PythonLists in Python
Lists in Python
Md. Shafiuzzaman Hira
 
Manipulating string with Python
Manipulating string with PythonManipulating string with Python
Manipulating string with Python
Md. Shafiuzzaman Hira
 
Introducing ict
Introducing ictIntroducing ict
Introducing ict
Md. Shafiuzzaman Hira
 
Function in Python
Function in PythonFunction in Python
Function in Python
Md. Shafiuzzaman Hira
 

More from Md. Shafiuzzaman Hira (20)

Introduction to Web development
Introduction to Web developmentIntroduction to Web development
Introduction to Web development
 
Software measurement and estimation
Software measurement and estimationSoftware measurement and estimation
Software measurement and estimation
 
Why do we test software?
Why do we test software?Why do we test software?
Why do we test software?
 
Software architectural patterns
Software architectural patternsSoftware architectural patterns
Software architectural patterns
 
Class based modeling
Class based modelingClass based modeling
Class based modeling
 
Class diagram
Class diagramClass diagram
Class diagram
 
State diagram
State diagramState diagram
State diagram
 
Use case Modeling
Use case ModelingUse case Modeling
Use case Modeling
 
User stories
User storiesUser stories
User stories
 
C files
C filesC files
C files
 
C pointers
C pointersC pointers
C pointers
 
C structures
C structuresC structures
C structures
 
How to Create Python scripts
How to Create Python scriptsHow to Create Python scripts
How to Create Python scripts
 
Regular expressions using Python
Regular expressions using PythonRegular expressions using Python
Regular expressions using Python
 
Password locker project
Password locker project Password locker project
Password locker project
 
Dictionaries in Python
Dictionaries in PythonDictionaries in Python
Dictionaries in Python
 
Lists in Python
Lists in PythonLists in Python
Lists in Python
 
Manipulating string with Python
Manipulating string with PythonManipulating string with Python
Manipulating string with Python
 
Introducing ict
Introducing ictIntroducing ict
Introducing ict
 
Function in Python
Function in PythonFunction in Python
Function in Python
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

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