Traditional Culture Encyclopedia - Traditional customs - What are the modes of software development?

What are the modes of software development?

Rapid prototype model: (You need to build a working software prototype quickly to understand and clarify the problem)

Rapid prototype model allows the initial incomplete analysis and definition of software requirements in the requirements analysis stage, and quickly designs and develops the prototype of the software system (showing all or part of the functions and performance of the software to be developed).

(Process: users test and evaluate the prototype, give specific improvement suggestions and enrich detailed software requirements, and developers modify and improve it. )

Advantages:

Overcome the shortcomings of waterfall model and reduce the development risk caused by unclear software requirements.

Disadvantages:

A. The selected development technologies and tools may not conform to the mainstream development.

B, the rapid establishment and continuous modification of the system may lead to poor product quality.

Incremental model: (using linear sequences staggered from the schedule, each linear Xu Lei generates a releasable software "increment", and the first increment is often the core product).

Similarity with other models * * *: Like prototype implementation models and other evolutionary methods, it is iterative in nature.

Different from the prototype implementation model, it emphasizes that every increment should release an operable product (you don't need to wait until all requirements come out, just touch an increment of requirements and package it for development).

Advantages:

1, flexible staffing, no need to invest a lot of human resources at first.

2. When people can't finish the product in a limited time, they can provide a way to launch the core product first, and then release some functions to users (to appease users).

3. Increment can manage technical risks in a planned way.

Disadvantages:

1. If there is an intersection between incremental packages and it is not handled well, then a comprehensive system analysis must be conducted.

note:

This model refines the functions and develops them separately, which is more suitable for the software development process with changing requirements.

Prototype model: (sample model, improved by gradual refinement)

Main points:

First, based on the existing system as a prototype model, the final product is what users need through continuous improvement through "samples". The prototype model obtains users' feedback by providing prototypes to users, so that the developed software can truly reflect users' needs.

Methods adopted:

The prototype model adopts the method of gradual refinement to improve the prototype, so that the prototype can be developed "quickly" and the difficulty of responding to user feedback quickly in the lengthy development process like waterfall model is avoided.

Advantages:

(1) Developers and users agree on the "prototype". This can reduce the mistakes in design and risks in development, and also reduce the training time of users, thus improving the practicability, correctness and user satisfaction of the system.

(2) Shorten the development cycle and speed up the project progress.

(3) reduce costs.

Disadvantages:

1. When the product is copied, it is difficult for users to accept it, which brings unfavorable factors to the continued development of the project.

2. The prototype system should not be used as the final product. When developing a system using a prototype model, users and developers must reach an agreement:

Fountain model: (an object-driven model driven by user needs, mainly used for software development projects using object technology)

It holds that each stage of the bottom-up cycle of software development process is iterative and seamless.

Iteration with each other: A touch part of software is often repeated many times, and related objects will add progressive software components in each iteration.

No gap: there is no obvious boundary between activities (for example, between analysis and design activities:)

Advantages:

1 can improve the efficiency of software project development, save development time and adapt to the object-oriented software development process.

Inconvenience:

1. Because the fountain models in each development stage overlap, a large number of developers are needed in the development process, which is not conducive to project management.

2. This mode requires strict management of documents, which increases the difficulty of auditing, especially when all kinds of information, requirements and materials may be added at any time.

Spiral model: (suitable for projects with frequent demand changes:)

It is mainly about risk analysis and evaluation, with many iterations along the spiral.

Process:

1. Plan: determine the software objectives, select the implementation plan, and define the constraints of project development.

2. Risk analysis: Analyze and evaluate the selected scheme, and consider how to identify and eliminate risks.

3. Implementation project: software development and verification;

4. Customer evaluation: evaluate the development work, put forward suggestions for modification, and make the next plan.

Advantages:

1. It is risk-driven, emphasizes alternatives and constraints to support software reuse, and helps to integrate software quality into product development as a special goal.

Disadvantages:

1, it is difficult for users to believe that the results of this pyrotechnic method can be controlled.

2. The construction period is long (and the software technology is developing rapidly, so it often happens that after the software development is completed, there is a big gap with the current technical level and it cannot meet the current user needs).

3. Unless software developers are good at finding possible risks and analyzing them accurately, they will bring greater risks.

Waterfall model: (In essence, waterfall model is a software development framework, which is used repeatedly)

(Core idea: simplify the problem according to the working procedure, separate the functional realization from the design, facilitate the division of labor and cooperation, adopt the structural analysis and design method, separate the logical realization from the physical realization, and follow the top-down and interrelated order in the software life cycle)

Disadvantages:

1, there is little feedback between the stages of the project, the division of each stage is completely fixed, and a large number of documents are generated between stages, which increases the workload.

2. Users can only see the results in the later period of the project life cycle, which increases the risk of development.

3. Too many mandatory completion dates and milestones are needed to track the stages of each project.

4. Each stage will produce circular feedback.

(If any information is not covered or problems are found, you must go back to the previous stage to make appropriate modifications, and the next stage can only be carried out after confirming the previous stage).

5. Early mistakes may not be discovered until the later testing stage of development, which will bring serious consequences.

Advantages:

The 1. project provides checkpoints in stages.

2. After completing a stage, you only need to pay attention to the subsequent stage.

3. Waterfall model can be used for iterative model.

According to the stages of waterfall model, software testing can be divided into unit testing, integration testing and system testing.

Note: Because each stage will produce circular feedback, the waterfall model is worthless for projects that change frequently, and the linear process of this model is too idealistic, which is no longer suitable for modern software development mode.