Chapter 2 Software Process Model (1)

Objective of this chapter

Master the definition and basic activities of the software process.
Familiar with the software life cycle and its phase tasks.
Familiar with process models commonly used in several software.

Overview of the software process:

  • The birth and life cycle of software is a process called software process.
  • The process defines the sequence of application methods, the documents that should be delivered, the management measures that need to be taken to ensure the quality of the software and coordinate changes, and the milestones that mark the completion of the tasks in each phase of software development.
  • Use life cycle models to concisely describe software processes.

Software life cycle:

**Life cycle:** refers to the beginning of the design of the product, to the determination of software requirements, software design, software implementation, product testing and acceptance, putting into use, and continuous update of the product version, until the product is finally marketed The whole process of elimination.

**Phase: **Feasibility Analysis -> Demand Analysis -> Software Design -> Program Coding -> Software Testing -> Software Maintenance

Software process model:

  • Through the establishment of abstract software development models (also called software process models or software life cycle models), people arrange the various activities or steps in the software process cycle into a framework, and express the whole process of software development clearly and intuitively.

  • There are many common software development models. Here we mainly introduce waterfall model, rapid prototyping model, incremental model, spiral model, fountain model, component-based development model, unified software development process model, agile model and extreme programming.

The
concept of waterfall model (linear development model) : The waterfall model divides the software life cycle into six basic activities such as planning, requirements analysis, software design, program writing, software testing and operation and maintenance, and stipulates that they are from top to bottom. , A fixed sequence of mutual convergence, step by step, and finally get the software product. Insert picture description here
Advantages:
1. The process model is simple and easy to execute;
2. The waterfall model can be applied to the iterative model;
-Incremental iteration is applied to the waterfall model. Iteration 1 solves the biggest problem. Each iteration produces a runnable version while adding more features. Each iteration must pass 3 quality and integration tests.

Disadvantages:
1. Inability to adapt to changes, not adapt to changes in user needs. ;
2. Since the development model is linear, the user only until the end of the whole process of development in order to see the results, thus increasing the risk of development;
divide 3. various stages of completely fixed, a large amount of documents between stages, greatly increased Workload

Rapid prototyping model
Concept: The basic idea of ​​rapid prototyping is to quickly build a prototype system that can reflect the main needs of users, let users try it on the computer, and understand the overview of the target system through practice.
Rapid prototyping model is also called prototype model, which is another form of incremental model ;
Insert picture description here

Advantages:
1. Overcome the shortcomings of the waterfall model, reduce the development risk due to unclear software requirements; suitable for the development of software systems whose requirements cannot be precisely defined in advance.

Disadvantages:
1. The selected development technology and tools may not be in line with the mainstream development;
2. The premise of using this model is to have a demonstrative product prototype, which may limit the innovation of developers to a certain extent;

Incremental model
Concept: Incremental model modularizes the software system to be developed and treats each module as an incremental component, so as to analyze, design, code and test these incremental components in batches.
Comparing the waterfall model and the prototype evolution model, the incremental model has very significant advantages. However, the incremental model has higher technical requirements for software design, especially for software architecture, which requires it to have good openness and stability, and can smoothly realize the integration of components. When integrating each new component into the structure of a built software system, it is generally required that the newly added component should change the original built software structure as little as possible. Therefore, the incremental component is required to have quite good functional independence, and its interface should be simple to facilitate the connection with the system during integration.
Insert picture description here

Advantages:
1. Modularize the software system to be developed and submit software products in batches so that users can keep abreast of the progress of the software project.
2. The development of components as a unit reduces the risk of software development. An error in a development cycle will not affect the entire software system.
3. Flexible development sequence. Developers can prioritize the implementation order of components and complete core components with stable requirements first. When the priority of the component changes, the order of implementation can be adjusted in time.

Disadvantages:
1. The software system to be developed can be modularized. If the software system to be developed is difficult to be modularized, it will bring a lot of trouble to incremental development.


1. The requirement definition at the initial stage of development is only used to determine the basic structure of the software. This makes the initial stage of development, users only need to describe the software requirements in general, and the detailed description of the requirements can be delayed until the incremental component development. , With incremental components as the unit to supplement demand one by one. This method is conducive to the gradual clarity of user needs and can effectively adapt to changes in user needs.
2. The software system can arrange the priority of development according to the functions of the incremental components, and implement and deliver them one by one. This not only helps users use the system as soon as possible, and can better adapt to the new software environment, but also the user can gain experience in the needs of subsequent components of the software system during the process of using the system in an incremental manner. This can make the definition of software requirements smoother later.
3. The software system is gradually expanding. Therefore, developers can gradually accumulate development experience through the development of many components. In fact, incremental development is also conducive to technology reuse. The algorithms designed in the previous components, the technical strategies adopted, the source code written, etc., can all be applied to the incremental components that will be created later.
4. Incremental development also helps to reduce the technical risks of software projects as a whole. Individual components may not be used, but this generally does not affect the normal operation of the entire system.
5. In fact, when the incremental model is adopted, the core incremental component with the highest priority will be delivered first, and as subsequent components are continuously integrated into the system, this core component will be tested the most times. This means that the most important heart part of the software system will have the highest reliability, which will make the entire software system more robust.

Spiral model
Concept: The spiral model is a process model used for the development of large-scale software projects with greater risks . This model combines the waterfall model with the rapid prototyping model , and adds the risk analysis that these two models ignore.
The "Spiral Model" was initially small in scale, but gradually expanded when the project was better defined and more stable.
For the recent development, when the requirements are not clear, the spiral model is suitable for development to facilitate risk control and requirement changes.
Insert picture description here
Advantages:
1. Flexibility in design, can be changed at all stages of the project.
2. The customer has always participated in each stage of development, ensuring that the project does not deviate from the correct direction and the project's controllability.
3. Construct large-scale systems with small segments to make cost calculation simple and easy.

Disadvantages:
1. The control and management of this model is more complicated, the operability is not strong, and the requirements for project management personnel are high.
2. The construction period is long, and the software technology develops relatively fast. After the software development is completed, there is a big gap with the current technical level, which cannot meet the current user needs.

Guess you like

Origin blog.csdn.net/haha_7/article/details/108782849