(SDLC) Software Development Life Cycle Models Lesson
Software Development Life Cycle Models
There are multiple software development processes that address the requirements, design, development, testing and maintaining phases in different ways. Each model has its own distinct phases that show what should happen from the beginning of the process to the end. Regardless of the model used, its purpose is to break down the complexity of the process in a formal way. The phases are a guide or procedure that defines what to do next and how long to continue doing it.
Software Development Models
How do you choose a process?
Choosing an appropriate model will determine the success of the project. Each model has its pros and cons. To help in choosing a model, a developer will consider many factors about the particular project.
- Requirements - When will you collect the requirements? Will all the requirements be known at the beginning of the project or will some be unknown?
- Expected lifetime of the project - Will it last for a number of years and need maintenance, or is it a quick project for a short period of time?
- Level of risk - Do you know all the technologies and other risk involved?
- Timeframe - How much time do you have to complete the project?
- Resources - How many resources are available within the timeframe?
- Planning - How much interaction with clients will occur?
- Expertise - What is the level of expertise involved? Do you have skills needed for the processes and technologies?
- Cost - What is the budget?
Iterative and Incremental Processes
The software development process is both iterative and incremental. The process moves from stage to stage incrementally, but iteration takes place within each stage and between stages. In the planning phase, the developer may meet with the client many times to get clarification on the requirements of the project. Problems may be found in the testing stage that require going back to the design stage or development stage to fix the problem. Different stages may need to be revisited in light of new information and to fix any problems that arise.
There are two approaches for designing software.
[CC BY 4.0] UNLESS OTHERWISE NOTED | IMAGES: LICENSED AND USED ACCORDING TO TERMS OF SUBSCRIPTION