Software Engineering-Software Process Model

Source: Internet
Author: User
Software Engineering-Software Process Model

The software process is a framework of a series of tasks that need to be completed in order to obtain high-quality software. It specifies the steps to complete various tasks. The life cycle model is usually used to describe the software process in a concise manner. The life cycle model defines the stages of the lifecycle and the execution sequence of each stage. Therefore, it is also called a process model. Common process models include waterfall model, rapid prototype model, incremental model, spiral model, and fountain model.

1. Waterfall Model

This feature has two meanings:

1. You must wait until the work of the previous stage is completed before you can start the work of the next stage;

2. The output document of the previous stage is the input document of the next stage. Therefore, only the output document of the previous stage is correct can the work of the next stage obtain correct results.

Each stage of the waterfall model should adhere to two important practices:

1. the required documents must be completed at each stage. If a qualified document is not handed over, the task at this stage is not completed. Complete and accurate qualified documents are the media for communication between various personnel in the software development period, and are also an important basis for software maintenance during the operation period.

2. All documents should be reviewed before the end of each stage so that problems can be found and errors can be corrected sooner or later. In fact, the more early the error was made, the later the exposure time, and the higher the cost for troubleshooting the error. Therefore, timely review is an important measure to ensure software quality and reduce software costs.

The waterfall model is document-driven. This fact is also a drawback. Before a running software product is delivered to a user, the user can only learn what the product is like through documents. The waterfall model has a long history and is widely known. Its advantage lies in its standard and document-driven approach. The problem with this model is that, the final product may not be really needed by users.

(1) traditional Waterfall Model:

(2) Actual Waterfall Model:

2. Quick prototyping

The so-called quick prototype is a quickly established program that can run on a computer. The functions it can accomplish are often a subset of the functions that the final product can accomplish. Quick prototyping is essentially "fast". Developers should build prototype systems as quickly as possible to accelerate the software development process and reduce software development costs. The prototype is used to understand the real needs of users. Once the requirements are determined, the prototype system will be discarded.

The rapid prototype model was proposed to overcome the shortcomings of the waterfall model. It quickly builds a prototype system that can run on a computer, allowing users to try the prototype system and collect user feedback to obtain users' real needs.

3. Incremental Model

An incremental model is also called an incremental model. When developing software using an incremental model, software products are designed, encoded, integrated, and tested as a series of incremental components. Each component consists of multiple interacting modules and can complete specific functions. When using the incremental model, the first incremental component often meets the basic requirements of the software and provides the most core functions.

Advantages:

1. products that can complete some work can be submitted to users within a short period of time.

2. gradually adding product features can give users ample time to learn and adapt to new products, thus reducing the impact of a brand new software on the customer's organization.

The incremental model has the advantages of significant return on investment and easier maintenance in the early stages of software development. However, it is inherent to require an open structure for software to use this model.

4. Spiral Model

The basic idea of a spiral model is to use prototype and other methods to minimize risks. An easy way to understand this model is to regard it as a rapid prototype model that adds a risk analysis process before each stage.

The spiral model is mainly applicable to large-scale internal software projects. If the cost of risk analysis is close to the budget of the entire project, risk analysis is not feasible. In fact, the larger the project, the greater the risk, so the greater the necessity for risk analysis. In addition, only internally developed projects can be easily terminated when risks are high.

The main advantage of a spiral model is that it is risk-driven, but it may also be a weakness. Unless software developers have a wealth of risk assessment experience and expertise in this area, there will be a real risk: when the project is actually in the midst of a disaster, developers may think everything is normal.

The risk-driven spiral model is suitable for large-scale internal software projects. However, it is successful only when developers have experience and expertise in risk analysis and risk elimination.

(1) Simplified Spiral Model

(2) Complete Spiral Model

4. fountain model

The fountain model supports software reuse and integration of multiple development activities in the life cycle. It is based on object-oriented software development methods and is suitable for object-oriented development methods. It overcomes the limitations of the waterfall model that does not support software reuse and integration of multiple development activities. The fountain model makes the development process iterative and non-intervoid. A part of the system often repeats several times, and related functions are added to the evolved system in each iteration. There is no gap between analysis, design, implementation, and other development activities.

According to the nature of the tasks that should be completed during the software lifecycle, in terms of concept, the software life cycle can be divided into eight stages: definition, feasibility study, requirement analysis, overall design, detailed design, coding and unit testing, comprehensive testing, and operation and maintenance. Factors such as the software size, type, development environment, and technical methods used in actual software development work affect the division of each stage.

The software process is a framework of a series of tasks that need to be completed to obtain high-quality software products. It specifies the steps to complete various tasks. Since there is no set of tasks that apply to all software projects, a scientific and effective software process should define a set of tasks that suit the characteristics of the project to be undertaken. The software process model is usually used to describe the software process in a concise manner. It defines the stages of the software life cycle and the sequence of each stage.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.