SDLC MODELS To help understand andimplement the SDLC phases variousSDLC models have been created bysoftware development experts,universities, and standardsorganizations.
Reasons for Using SDLC ModelsProvides basis for project planning, estimating& schedulingProvides framework for standard set ofterminologies, activities & deliverablesProvides mechanism for project tracking &controlIncreases visibility of project progress to allstakeholders
Advantages of Choosing an Appropriate SDLC Increased development speed Increased product quality Improved tracking & control Improved client relations Decreased project risk Decreased project management overhead
Common Life Cycle ModelsWaterfallSpiral/IterativeAgile
Waterfall Model Analysis Design Development Testing Deployment Maintenance
Waterfall ModelOldest and most well-known SDLC modelFollows a sequential step-by-step process fromrequirements analysis to maintenance.Systems that have well-defined and understoodrequirements are a good fit for the WaterfallModel
Waterfall Model StrengthsEasy to understand, easy to useProvides structure to inexperienced staffMilestones are well understoodSets requirements stabilityGood for management control (plan, staff,track)Works well when quality is more importantthan cost or schedule
Waterfall Model WeaknessesAll requirements must be fully specifiedupfrontDeliverables created for each phase areconsidered frozen – inhibits flexibilityCan give a false impression of progressDoes not reflect problem-solving nature ofsoftware development – iterations of phasesIntegration is one big bang at the endLittle opportunity for customer to previewthe system (until it may be too late)
When to use the Waterfall ModelRequirements are very well knownProduct definition is stableTechnology is understoodNew version of an existing productPorting an existing product to a newplatform.
Spiral/Iterative Model Requirements Analysis Requirements Design GatheringRepeat Enhancement Maintenance Iterative Development Quality Deployment Assurance
Spiral ModelSpiral Model is a “risk-driven” iterative modelDivides a project into iterationsEach iteration deals with 1 or more risksEach iteration starts with small set ofrequirements and goes through developmentphase (except Installation and Maintenance)for those set of requirements.
Spiral ModelIterate until all major risks addressed and theapplication is ready for the Installation andMaintenance phase (production)Each of the iterations prior to the productionversion is a prototype of the application.Last iteration is a waterfall process
Spiral Model Strengths Provides early indication of insurmountable risks, without much cost Critical high-risk functions are developed first The design does not have to be perfect Users see the system early because of rapid prototyping tools Users can be closely tied to all lifecycle steps Early and frequent feedback from users
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 May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration
When to use Spiral ModelWhen creation of a prototype is appropriateWhen costs and risk evaluation is importantFor medium to high-risk projectsUsers are unsure of their needsRequirements are complexNew product lineSignificant changes are expected (researchand exploration)
Agile Model Discover Test Design DiscoverDevelop Test Design Discover Develop Test Design Develop
Agile ModelSpeed up or bypass one or more life cyclephasesUsually less formal and reduced scopeUsed for time-critical applicationsUsed in organizations that employdisciplined methods
Some Agile MethodsRapid Application Development (RAD)ScrumExtreme Programming (XP)Adaptive Software Development (ASD)Feature Driven Development (FDD)Crystal ClearDynamic Software Development Method (DSDM)Rational Unify Process (RUP)
Agile Model StrengthsDeliver a working product faster thanconventional linear development modelCustomer feedback at every stage ensuresthat the end deliverable satisfies theirexpectationsNo guesswork between the developmentteam and the customer, as there is face toface communication and continuous inputsfrom the client
Agile Model Weaknesses For larger projects, it is difficult to judge the efforts and the time required for the project in the SDLC. Since the requirements are ever changing, there is hardly any emphasis, which is laid on designing and documentation. Therefore, chances of the project going off the track easily are much more