01Software life cycle
The life cycle of software refers to the time from the assumption of software products to the end when the software is not in use.
The life cycle of software is divided into6 stages, i.eRequirements analysis, planning, design, coding, testing, operation and maintenance。Test interview dictionary
Waterfall model is the earliest software development model and the basic framework of all other software development models. Different from the software life cycle, it lacks the software operation and maintenance stage.
Description:Each phase is executed only once, so it is a software development model in linear order.
It is precisely because each stage is executed only once, so the previous requirements analysis and design are particularly important.
It provides checkpoints divided by stages for the project and emphasizes the periodicity of development.
Emphasize early planning and demand survey.
Emphasize product testing.
There is little feedback between stages.
The results can only be seen in the later stage of the project cycle, so the risks are often exposed in the later test stage, so the early correction process is lost.
Single process, the experience and lessons in development cannot be fed back and applied to the process of this product.
Applicable items:Projects with clear requirements and few changes.
Generally, when the requirements are not very clear in the early stage of software development, the progressive development model is adopted. Spiral model is one of the representatives of progressive development model.
Description:Based on the prototype, it rotates along the spiral. Each revolution goes through the process of planning / risk analysis / implementation / evaluation, and the corresponding new version is obtained. After several spirals, the final version is obtained.
The spiral model iterates several times along the spiral line, and the four quadrants in the figure represent the following activities: Test interview dictionary
(1) Make plan: determine the software objectives, select the implementation scheme, and clarify the constraints of project development;
(2) Risk analysis: analyze and evaluate the selected scheme and consider how to identify and clarify the risk;
(3) Implement engineering: implement software development and verification;
(4) Customer evaluation: evaluate the development work, put forward correction suggestions and formulate the next step plan.
The mode of iterative development brings new requirements to software testing. It does not allow an independent testing time and stage. Testing must iterate with the iteration of development, so regression testing is very important.
It emphasizes strict risk analysis, but it is not easy for many customers to accept and believe this analysis and make relevant responses. Therefore, this model is often applicable to large-scale and high-risk projects.
Emphasize the quality of each development stage.
This new development model will provide an opportunity to explore whether the project is valuable to continue.
Due to the introduction of very strict risk identification, risk analysis and risk control, it will greatly consume manpower and resources. If the profit of the project is seriously affected, the risk analysis will be meaningless.
Software developers should be good at finding possible risks and accurately analyzing risks, otherwise they will bring greater risks.
The software construction cycle is long, but the software technology develops relatively fast, so there may be a large gap with the current technical level and can not meet the current user needs.
Applicable items:In the case of newly developed and unclear requirements, spiral model is suitable for development to facilitate risk control and demand change.
Development iteration is a process that completely passes through all workflow: (at least) requirements workflow, analysis and design workflow, implementation workflow and test workflow. In essence, the iterative model is similar to a small waterfall project.
Each iteration will produce a product that can be released, which is a subset of the final product.
One iteration process includes all software development processes.
Each iteration produces a releasable product.
The product is a subset of the final product.
Applicable items: It is suitable for projects that cannot completely define all the requirements of the product in advance and plan multi-phase development.
Linear sequences interleaved over time are used.
Each sequence produces a publishable increment.
Each increment produces an operable product.
The first increment is the core product.
advantage: At the beginning, there is no need to invest a lot of human resources. Core products can be launched in advance to stabilize users, and technology risks can be managed in a planned way.
Disadvantages: The need for open architecture may lead to poor design effect and low development efficiency.
Suitable for project: A software development process in which requirements often change.
Difference between incremental and iterative models:
Increment is the concept of building block by blockFor example, to draw a figure painting, we can draw a person’s head first, then the body, and then the hands and feet.
Iteration is the concept of repeated refinementFor example, in the same way as figure painting, we can draw the overall outline first, outline the basic prototype, and then refine and color.
Description: Agile model is a light-weight, efficient, low-risk development method that emphasizes teamwork and communication. It is suitable for small and medium-sized development teams, and customer needs are fuzzy or changeable.
Emphasize communication between people.
Light document (weakened document, but not unnecessary document)
Customers need to participate in the whole process
Demand can change Test interview dictionary