15-07-2014, 12:37 PM
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC).ppt (Size: 200 KB / Downloads: 77)
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)
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
Structured Evolutionary Prototyping Weaknesses
Tendency to abandon structured program development for “code-and-fix” development
Bad reputation for “quick-and-dirty” methods
Overall maintainability may be overlooked
The customer may want the prototype delivered.
Process may continue forever (scope creep)
Rapid Application Model (RAD)
Requirements planning phase (a workshop utilizing structured discussion of business problems)
User description phase – automated tools capture information from users
Construction phase – productivity tools, such as code generators, screen generators, etc. inside a time-box. (“Do until done”)
Cutover phase -- installation of the system, user acceptance testing and user training
When to use RAD
Reasonably well-known requirements
User involved throughout the life cycle
Project can be time-boxed
Functionality delivered in increments
High performance not required
Low technical risks
System can be modularized
Incremental Model Strengths
Develop high-risk or major functions first
Each release delivers an operational product
Customer can respond to each build
Uses “divide and conquer” breakdown of tasks
Lowers initial delivery cost
Initial product delivery is faster
Customers get important functionality early
Risk of changing requirements is reduced
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
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.