Briefly describe the characteristics of various software process models.

Waterfall model

It puts forward a systematic and sequential software development method. Its process starts with the system, followed by requirements analysis, design, coding, testing and support. This model is the earliest and most widely used software process model (although it will cause "blocking state").

Advantages:

1. It provides a template, which makes the analysis, design, coding, testing and support methods have a * * * guidance under the touch screen.

2. Although there are many defects, it is much better than the random state in software development.

Disadvantages:

1. Most actual projects are difficult to follow the order given by this model, and the iteration of this model is indirect, so it is easy to cause great confusion because of small changes.

2. It is often difficult for customers to express their real needs, but this model needs it. This model does not welcome the existence of ambiguity.

3. Customers can't see the test version of the program until the late development cycle, and when they find a big mistake at this time, it may cause customers panic and the consequences may be disastrous.

4. Using this linear model, we usually wait for other members to complete the tasks they depend on at the beginning and end of the process, which may be longer than the development time. We call it "blocking state".

Scope of application:

1. The user's needs are very clear and comprehensive, and there is little or no change during the development process.

2. Developers are familiar with the application fields of software.

3. The user's use environment is very stable

4. This kind of development hardly needs user's participation.

Distinctive features:

Simplify the problem according to the process, separate the realization and design of the function, and facilitate the division of labor and cooperation.

- -

2. Incremental model

This model combines the basic components of linear sequence model and the iterative characteristics of prototype realization model. The incremental model adopts linear sequence, which is staggered with the progress of scheduling time. Each linear sequence generates a publishable software "delta". When using the incremental model, the first increment is often the core product, that is, the first increment realizes the basic requirements, but many supplementary features have not been released yet. The customer's use and evaluation of each increment is regarded as the new features and functions released in the next increment. This process is repeated after each incremental release until the final perfect product is produced. Incremental mode emphasizes that every increment releases an operable product.

Advantages:

1. The advantage of adopting the incremental mode is that the staffing is flexible and you don't need to invest a lot of human resources at first.

2. If the core product is very popular, you can increase manpower to achieve the next increment.

3. Some functions can be released to customers first to calm them down.

Disadvantages:

1. Parallel development of components may encounter the risk of non-integration, and the software must have an open architecture.

2. The flexibility of incremental model can make it better adapt to this change than waterfall model and rapid prototype model model, but it is also easy to degenerate into changing the model while doing, thus losing the integrity of software process control.

Scope of application:

1. Incremental mode is very suitable for upgrading existing products or developing new versions.

2. For products with strict deadlines, incremental mode can be adopted.

3. Be familiar with the development field, have a prototype system, and the incremental model is also suitable.

Distinctive features:

The concept of incremental package is introduced, which can be developed without waiting for all requirements to come out, but only by incremental package of a certain requirement.

- -

3. Spiral model

This is an evolutionary software process model, which combines the iterative characteristics of prototype implementation with the controlled and systematic aspects of linear sequence model. It makes it possible to quickly develop incremental versions of software. In the spiral model, software development is a series of incremental releases. In each iteration, a more perfect version of the development system is gradually produced. The spiral model is divided into several frame activities, also called task areas.

Advantages:

1. The design is flexible and can be changed at different stages of the project.

2. Building a large-scale system with a small part makes the cost calculation easy.

3. Customers always participate in every stage of development to ensure that the project does not deviate from the right direction and the project is controllable.

With the progress of the project, customers keep abreast of the latest information of the project so as to interact effectively with the management.

5. Customers recognize the good communication and high-quality products brought by this internal development method.

Disadvantages:

1. Using spiral model requires rich risk assessment experience and professional knowledge. In the development of risky projects, if risks are not identified in time, it will inevitably cause huge losses.

2. Too many iterations will increase the development cost and delay the submission time.

3. It is difficult for users to believe that the result of this evolutionary method can be controlled. The construction period is long and the software technology develops rapidly, so the development of software is often far from the current technical level and cannot meet the current user needs.

Scope of application:

For the newly developed and uncertain demand, spiral model is suitable for development, which is convenient for risk control and demand change. Spiral model is only suitable for large software projects.

Distinctive features:

Risk analysis that other models do not have is introduced, which gives the software a chance to stop when major risks cannot be eliminated and reduces losses.

- -

4.RAD model

Rapid application development (RAD) is a linear sequence software development model, which emphasizes extremely short development cycle. RAD model is a "high-speed" variant of linear sequence model, which has been developed rapidly by using component-based construction method.

Advantages:

1. Develop rapidly and ensure quality.

2. It is especially effective for information systems.

Disadvantages:

1. For large-scale projects, the R&D department needs sufficient human resources.

Both developers and customers should fulfill their promises, otherwise it will lead to failure.

3. Not all systems are suitable: systems that cannot be reasonably modularized, require high performance, and need to adjust component interfaces are not suitable.

Scope of application:

1. is not suitable for the development with high technical risk and the product development with high system requirements, and it is necessary to adjust the component interface to improve the performance.

2. Suitable for tight schedule, you can subdivide the functions and have appropriate components.

Distinctive features:

The component-based construction method has made rapid development, which enables a development team to create a "fully functional system" in a very short time (such as 60 to 90 days).

- -

5. Iterative model

Iteration includes all development activities that produce a product version (stable and executable product version) and all other peripheral elements necessary to use the version. To some extent, development iteration is a process that completely runs through all workflows: requirements analysis, design, implementation and testing workflows. Essentially similar to a small waterfall project. RUP believes that all stages can be subdivided into iterations. Each iteration will produce a product that can be released, which is a subset of the final product.

Advantages:

1. reduces the expenditure risk in increments. If the developer repeats an iteration, all he loses is the cost of this poorly developed iteration.

2. It reduces the risk that products cannot enter the market according to the established schedule. By identifying risks early in development, you can solve them as early as possible, instead of rushing into things later in development.

3. Accelerated the progress of the whole development work. Because developers know the focus of the problem, they will be more efficient.

Because the user's needs can't be completely defined at the beginning, they are usually refined in the subsequent stage. Therefore, the model of this iterative process is easier to adapt to the change of demand.

Disadvantages:

Pre-project development may change, which requires a high-quality project manager and a high-tech development team.

Scope of application:

1. In the early stage of project development, requirements may change.

2. The analysis designer is familiar with the application field.

3. High risk projects

4. Users can participate in the development process of the whole project to varying degrees.

5. Use object-oriented language or unified modeling language.

Use case tools

7. Have a high-quality project manager and software R&D team.

Distinctive features:

Can significantly reduce the risk.