You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
2.4 KiB
40 lines
2.4 KiB
# Software development life cycles (SDLC)
|
|
|
|
Here are several popular SDLC models:
|
|
|
|
## Waterfall
|
|
The waterfall model is best suited for well-defined complex projects, where problems can be spotted early and complexity is dealt with in an orderly way. Key distadvantages include low customer visibility and low flexibility to mid-project changes.
|
|
|
|
## Incremental development
|
|
"Incremental" here refers to adding to the work products (requirements, source code, etc.) in stages. In each stage, more functionality is added (core functionality first).
|
|
|
|
## Iterative development
|
|
In iterative development one iterates through the whole process (requirements → ... → deployment) multiple times. Iterative and incremental development often go together.
|
|
|
|
## Spiral
|
|
Spiral is a type of incremental and iterative development where risk assessment occurs at the start of each cycle.
|
|
|
|
## Agile
|
|
Agile is a form of incremental and iterative development with emphasis on frequent face-to-face communication, high customer visibility, adaptability to change, and minimizing non-software work products.
|
|
|
|
## Evolutionary
|
|
In an evolutionary model, deliverables are given to the customer frequently and incrementally. The focus is on high-value features first and getting customer feedback early and often.
|
|
|
|
## Code & Fix
|
|
This is a kind of incremental development where life cycle phases other than coding and debugging (requirements analysis, software design, testing, etc.) are skipped, and code refactoring is often neglected.
|
|
|
|
## Prototyping
|
|
This isn't really a life cycle on its own (although it can be adapted as such, as with "evolutionary prototyping"). Rather, it's a technique that is good for dealing with unclear requirements, assisting in communication, or in developing initial user interface design.
|
|
|
|
# Questions guiding the choice of SDLC model
|
|
This list is adapted from *Rapid Development* by Steve McConnell.
|
|
- How well do the customer and development team understand the requirements?
|
|
- How likely are requirements to change?
|
|
- Are major archiectural changes likely?
|
|
- Are there hard schedule constraints?
|
|
- Are the relevant tools and technologies well-understood by the development team?
|
|
- Is high visibility important to customers and/or management?
|
|
- How will human factors affect the project (discipline, skills, training, and intellectual limits)?
|
|
- What opportunities are there to parallelize work phases?
|
|
|