1. Question definition?
The key question that must be answered in the problem definition stage is "What is the problem to be solved". Determine the working scope of the software.
2. Feasibility study?
The key question to be answered at this stage is: "Is there a feasible solution to the problems identified in the previous stage?" .
3. Demand analysis?
The task at this stage is still not to specifically solve the customer's problem, but to accurately answer the question "What must the target system do". Another important task at this stage is to accurately record the requirements of the target system with a formal document, which is usually called specification. ?
4. Outline design?
The basic task at this stage is to answer "How to achieve the target system?" This question. Outline design is also called preliminary design, logical design, high-level design or overall design. ?
First of all, we should design several possible schemes to realize the target system.
Another main task of outline design is to design the architecture of the program, that is, to determine which modules the program consists of and the relationship between them.
5. Detailed design?
In the outline design stage, the solution to the problem is put forward in a more abstract way. The task of the detailed design stage is to concretize the solution, that is, to answer the key question of "how to realize this system concretely". The task of this stage is not to write the program, but to design the detailed specifications of the program. ?
6. Coding and unit testing?
The key task at this stage is to write correct program modules that are easy to understand and maintain.
7. Comprehensive test?
The key task at this stage is to make the software meet the predetermined requirements through various types of tests (and corresponding debugging). ?
8. Software maintenance?
The key task in the maintenance phase is to make the system meet the needs of users permanently through various necessary maintenance activities. ?
There are usually four types of maintenance activities: corrective maintenance, that is, diagnosing and correcting software errors found during use; Adaptive maintenance, that is, modifying the software to adapt to changes in the environment; Perfect maintenance, that is, improve or expand the software according to the requirements of users to make it more perfect; Preventive maintenance means modifying the software to prepare for future maintenance activities.