It’s important that I permanently place a record of Software Development Life Cycle models in order to choose appropriate methodologies when doing IT work. Too many developers fail to follow a planning model and fall into traps later on. Here are the main SDLC models and what they benefit when doing software projects.
THE WATERFALL MODEL
- Requirements are unchanged after their definition (they are upfront and this can be a defect)
- Dependent on a clear understanding of the initial requirements for the system to be developed
- Concept -> Analysis -> Design -> Construction -> Testing -> Operation
THE ‘V’ MODEL
- Extension of waterfall
- Verification and validation is added
- Analysis and synthesis is a stronger relationship in this model
PROTOTYPING MODEL/S
- Cyclical development of code (IT)
- Strong when those who are requiring it do not understand the code
- Disadvantages are that it requires good management and can be caught in a recursive cycle if the scope is not defined well enough.
SPIRAL MODEL
- Designed to address the development of large software systems
- Many prototyping processes
- Risk analysis at each phase/stage of the ‘spiral loop’
INCREMENTAL DEVELOPMENT (MODEL)
- Functionality addressed separately as incremental stages of independent cycles
- Each increment may use different SDLC models
- Provides early feedback
- Refining of requirements can be done at any time
- Smaller increments are easier to manage
- “Gold Plating” is reduced
- Is usually included in SCRUM of the Agile Methodology (from personal experience training as a Software Tester)
EVOLUTIONARY DEVELOPMENT (MODEL)
- Requires significant amount of client/end-user participation
- Commercial Off The Shelf based
- Requires a small team and continuous process/product improvement
- Architecture based composition with continuous integration/testing
AGILE MODEL
- Flexible and Adaptable
- Requirements are never set in stone
- Can follow XP/SCRUM methodologies which give it order
- Peer programming and Test driven development concepts
- Suitable for projects with high client contact and requiring fast turnaround time
- Suited to smaller co-located teams of developers