Introduction to SDLC
SDLC Model
A framework that describes the activities performed at each stage of
a software development project.
Waterfall Model
• Requirements – defines needed
information, function, behavior,
performance and interfaces.
• Design – data structures, software
architecture, interface
representations, algorithmic details.
• Implementation – source code,
database, user documentation,
testing.
Waterfall Strengths
• Easy to understand, easy to use
• Provides structure to inexperienced staff
• Milestones are well understood
• Sets requirements stability
• Good for management control (plan, staff, track)
• Works well when quality is more important than cost or schedule
Waterfall Deficiencies
• All requirements must be known upfront
• Deliverables created for each phase are considered
frozen – inhibits flexibility
• Can give a false impression of progress
• Does not reflect problem-solving nature of software
development – iterations of phases
• Integration is one big bang at the end
• Little opportunity for customer to preview the system
(until it may be too late)
When to use the Waterfall Model
• Requirements are very well known
• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
V-Shaped SDLC Model
• A variant of the Waterfall
that emphasizes the
verification and validation of
the product.
• Testing of the product is
planned in parallel with a
corresponding phase of
development
V-Shaped Steps
• Project and Requirements Planning – • Production, operation and
allocate resources maintenance – provide for
enhancement and corrections
• System and acceptance testing – check
• Product Requirements and the entire software system in its
Specification Analysis – complete environment
specification of the software system
• Architecture or High-Level Design – • Integration and Testing – check that
defines how software functions fulfill modules interconnect correctly
the design
• Unit testing – check that each module
acts as expected
• Detailed Design – develop algorithms
for each architectural component
• Coding – transform algorithms into
software
V-Shaped Strengths
• Emphasize planning for verification and validation of the product in
early stages of product development
• Each deliverable must be testable
• Project management can track progress by milestones
• Easy to use
V-Shaped Weaknesses
• Does not easily handle concurrent events
• Does not handle iterations or phases
• Does not easily handle dynamic changes in requirements
• Does not contain risk analysis activities
When to use the V-Shaped Model
• Excellent choice for systems requiring high reliability – hospital
patient control applications
• All requirements are known up-front
• When it can be modified to handle changing requirements beyond
analysis phase
• Solution and technology are known
Spiral SDLC Model
• Adds risk analysis, and
4gl RAD prototyping to
the waterfall model
• Each cycle involves the
same sequence of steps
as the waterfall process
model
Spiral Model Strengths
• Provides early indication of insurmountable risks, without much cost
• Users see the system early because of rapid prototyping tools
• Critical high-risk functions are developed first
• The design does not have to be perfect
• Users can be closely tied to all lifecycle steps
• Early and frequent feedback from users
• Cumulative costs assessed frequently
Spiral Model Weaknesses
• Time spent for evaluating risks too large for small or low-risk
projects
• Time spent planning, resetting objectives, doing risk analysis
and prototyping may be excessive
• The model is complex
• Risk assessment expertise is required
• Spiral may continue indefinitely
• Developers must be reassigned during non-development phase
activities
• May be hard to define objective, verifiable milestones that
indicate readiness to proceed through the next iteration
When to use Spiral Model
• When creation of a prototype is appropriate
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of potential changes
to economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)
Capability Maturity Model (CMM)
• A bench-mark for measuring the maturity of an organization’s
software process
• CMM defines 5 levels of process maturity based on certain Key
Process Areas (KPA)
CMM Levels
Level 5 – Optimizing (< 1%)
-- process change management
-- technology change management
-- defect prevention
Level 4 – Managed (< 5%)
-- software quality management
-- quantitative process management
Level 3 – Defined (< 10%)
-- peer reviews
-- intergroup coordination
-- software product engineering
-- integrated software management
-- training program
-- organization process definition
-- organization process focus
Level 2 – Repeatable (~ 15%)
-- software configuration management
-- software quality assurance
-- software project tracking and oversight
-- software project planning
-- requirements management
Level 1 – Initial (~ 70%)
Quality – the degree to which the software
satisfies stated and implied requirements
• Absence of system crashes
• Correspondence between the software and the users’
expectations
• Performance to specified requirements
Quality must be controlled because it lowers production speed,
increases maintenance costs and can adversely affect business
Quality Assurance Plan
• The plan for quality assurance activities should be in writing
• Decide if a separate group should perform the quality assurance activities
• Some elements that should be considered by the plan are: defect tracking, unit
testing, source-code tracking, technical reviews, integration testing and system
testing.
Quality Assurance Plan
• Defect tracing – keeps track of each defect found, its source, when it was
detected, when it was resolved, how it was resolved, etc
• Unit testing – each individual module is tested
• Source code tracing – step through source code line by line
• Technical reviews – completed work is reviewed by peers
• Integration testing -- exercise new code in combination with code that already
has been integrated
• System testing – execution of the software for the purpose of finding defects.
Quiz-2
A company uses these nested criteria for promotions:
• Minimum Experience: 3+ years
• Performance Rating: 4/5 or higher
• Certification Requirement: Must have professional certification
Write a program in python to prompt user to enter the above values of
a person and check if that person is eligible for promotion and if not,
user must be shown proper response.