Waterfall Model
Winston Royce proposed the famous waterfall model in 1970. It was the only widely used software development model until the early 1980s S.
The waterfall model divides the software life cycle into six basic activities, including planning, demand analysis, software design, programming, software testing, and operation and maintenance, they also define a fixed order of top-down and interconnection, like waterfall flow, falling down step by step.
Advantages:
- Provides checkpoints by phase for the project
- After the current phase is complete, you only need to pay attention to the subsequent phase
- Waterfall model can be applied to iterative Models
Disadvantages:
- There is very little feedback between various stages of the project. Therefore, a large number of documents are generated at each stage, increasing the workload.
- The results can only be seen later in the project lifecycle. Increased development risks
- Tracking various project phases with too many mandatory completion dates and milestones
Scope of use:
Software Systems with clear requirements and hard to change. (The waterfall model has no value for frequently-changing projects)
Incremental Model
Product features are divided into many increments. The 1st increment is often the core product, that is, the 1st increment achieves the basic requirement, but many complementary features have not yet been released. The customer uses and evaluates each increment as the new features and functions of the next increment release. This process repeats after each increment release until a final perfect product is produced.
Scope of use:
Software Systems with high technical risks and stable user requirements
Iteration Model
The iteration mode is similar to the incremental mode. Their Similarities and differences are as follows:
What they have in common is that the entire software is completed through several stages of development. After each stage is completed, a new version is released. As for the differences, the division of stages is not the same. The incremental model is divided by the number of functions, and each stage completes certain functions. Iterative models are divided by depth or refinement, and the functions of each stage are improved and enhanced.
Quick prototyping
For various reasons, it is very difficult to get a complete, consistent, accurate, and reasonable requirement description in the demand analysis phase. Therefore, a prototype is constructed first. The first step of the rapid prototyping model is to build a rapid prototype to realize the interaction between the customer or the future user and the system. the user or the customer evaluates the prototype and further refine the Needs of the software to be developed. By gradually adjusting the prototype to meet the customer's requirements, developers can determine what the customer's real needs are. The second step is to develop the customer's satisfied software products based on the first step.
Scope of use:
Software Systems with complex requirements, hard to determine, and dynamic changes. You must be familiar with the development field and have the original development tools.
Spiral Model
The risk analysis is emphasized so that developers and users can understand the risks at each evolutionary layer and then respond accordingly. Therefore, it is particularly suitable for large, complex, and high-risk systems. For these systems, risks are potential adverse factors that cannot be ignored during development. They may damage the software development process to varying degrees and affect the quality of software products. The goal of risk reduction is to identify and analyze risks in a timely manner before they cause hazards, and determine the countermeasures to eliminate or reduce the damage caused by risks.
The spiral mode has four stages: planning, risk analysis, implementation project, and customer evaluation. These four stages are in the four quadrants of the coordinate system (for example :)
The spiral pattern loops along four quadrants, like a spiral. So it's called the spiral mode.
Scope of use:
Software Systems with difficulties in obtaining and determining requirements and high risks of Software Development
In addition, for more details about the software development model can refer to the http://wiki.mbalib.com/wiki/%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B