1 - Software Development Life Cycle (SDLC)
1 - Software Development Life Cycle (SDLC)
(SDLC)
by
Dr Ompal Singh
Software Reliability: P(A|B)
A: Software does not fail when operated for t time units under specified conditions.
B: Software has not failed at time 0.
Engineering??????????
“Today, the majority of engineers understand very little about the science of programming or the
mathematics that one needs to analyze a program. On the other hand, the scientists who study
programming know very little about what it means to be an engineer... “ [Parnas 1997]
Right or wrong?
(Un)reliability of released products
Missed schedules
Cost overruns
Market share/reaction?
Software faults are introduced in all phases of the life-cycle: specification, design,
implementation, testing, maintenance.
What is Software Reliability Engineering?
• The set of best practices that empower testers and developers to
Ensure product reliability meets users needs
Speed the product to market faster
Reduce product cost
Improve customer satisfaction (fewer angry users)
Increase their productivity
• Applicable to all software based systems
• Two fundamental ideas
Focus resources on the most used/critical functions
Make testing realistically represent field conditions
SDLC Model
in 1970.
Waterfall Model
• Requirements – defines needed information,
function, behavior, performance and interfaces.
• Technology is understood
• Short-lived demonstrations
– Create a design
– Review design
– Develop code
– Inspect code
– Test product
Spiral Quadrant
Plan next phase
• Typical activities
– Develop project plan
– Develop configuration management plan
– Develop a test plan
– Develop an installation plan
Spiral Model Strengths
• Provides early indication of insurmountable risks, without much cost