Software Development Model

Source: Internet
Author: User
For the development and management of software systems, their requirements vary and the environment is different. Therefore, different development and management methods, different programming languages, and different development tools and development platforms may be used. But in general, they all follow the following specific development Mode.
1. Waterfall Model
W. in 1974, Royce first proposed this software development model, which defined various project activities in the software development process as several stages of work connected in a fixed sequence, such as Waterfall flow, finally, the software system software products are obtained.
In the waterfall model, the software development process is divided into several stages of Mutual Difference and mutual connection. The results of the above stages of work in each stage are based on, at the same time, it provides the premise for the work in the next stage, and the work results of this stage can also be fed back to the previous stage to modify and re-execute the work in the previous stage.
Waterfall models have been widely used for many years. First, they play a significant role in supporting the development of structured software, controlling the complexity of software development, and promoting software development engineering; second, it provides effective management for software development and maintenance. Mode. According to this ModeDevelop a development plan and carry out a cost budget. Organize developers to effectively guide the software development process by means of phase reviews and document control, so as to ensure the software quality to a certain extent.
The waterfall model also exposes its shortcomings and problems in a large number of practices. Previous work experience shows that due to a fixed work order InstituteThe higher the error, InstituteThe greater the loss and impact, the higher the cost to correct it.
2. Incremental Model
The incremental model is also called a planned Product improvement model. It constructs a series of executable intermediate versions to implement development activities starting with a set of given requirements. The first intermediate version includes some requirements, and the next intermediate version includes more requirements, and so on until the system completes. Each intermediate version must perform the necessary processes, activities, and tasks. For example, demand analysis and architecture design need to be performed once, while detailed software design, software programming and testing, software integration and Software acceptance testing, it is executed during the construction of each intermediate version.
When developing an intermediate version under this model, the activities and tasks in the development process are used sequentially or partially in parallel. When intermediate versions are developed in parallel, the activities and tasks in the development process can be used in parallel between intermediate versions.
3. Evolutionary Model
The evolutionary model mainly targets software project development that cannot be fully defined in advance. Many software development projects are difficult to develop successfully due to a vague understanding of the software requirements, and it is hard to avoid rework and re-development. For this reason, people provide basic requirements for the software to be developed and conduct the first test development. The goal is only to explore feasibility and clarify the needs of the project and obtain effective feedback information, to support the final design and implementation of the software. This development model can reduce the risks to the development work due to unknown requirements. Examples of evolutionary models are as follows: Institute.
The evolutionary model also develops the system by constructing various executable intermediate versions of the system. However, the difference with the incremental type is that the recognition requirement cannot be fully understood and cannot be determined at the initial time. In this model, a part of the requirement is pre-defined, and then gradually improved in each successive intermediate version. In addition, during development of each intermediate version, activities and tasks in the development process are sequentially or partially overlapped in parallel. Pair InstituteIn some intermediate versions, activities and tasks in the development process are usually reused in the same order. maintenance and operation processes can be performed in parallel with the development process. The entire software life process-the acquisition process, supply process, support process, and organization process are usually carried out in parallel with the development process.
4. Spiral Model
In 1988, the B. Boehm integrated Waterfall Model and evolutionary model of TRW proposed a spiral model ). Compared with the preceding open models, the spiral model emphasizes Risk Analysis and Control During software development. This model is usually used to guide the development of large-scale software projects. It divides the open process into four steps: planning, risk analysis, implementation development, and customer evaluation. In the software development process, each of these four steps completes a new version of the software. The next version will repeat these four steps on the basis of the new.
In Figure A, the four quadrants of coordinates rotate along the spiral line, respectively representing four links:
(1) Develop a plan: Determine the software objectives, select the implementation scheme, and clarify the constraints of project development;
(2) Risk analysis: Analysis InstituteSelect a solution and consider how to identify and eliminate risks;
(3) implementation Development: implement software development;
(4) customer evaluation: evaluates software functions and performance and provides correction suggestions.
Every cycle of the spiral indicates that a more comprehensive new software version is developed. If the development risk is too high and the development organization or customer cannot accept it, the project may be terminated; in most cases, the software products will continue along the spiral and gradually extend from the inside out to the outside. Using this model requires a wealth of experience and expertise in risk assessment. Software Risk is a common problem in any software development project. It can be said that there are certain risks in the development of any software project. The difference between them is only the difference of the degree. During project development, the system analysts must answer a series of questions, such as what the requirements are, how many resources are invested, and how to arrange the progress, InstituteThe key to judgment is the Analyst's experience. The larger the project, the more complicated the problem is. The greater the uncertainty of resources, progress, cost, and other factors. Risk analysis is based on risk identification, risk measurement, and countermeasures to eliminate or reduce the possible losses.

Software Development Model

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.