The characteristics of five typical development models of software engineering----The Winter column

Source: Internet
Author: User
Tags set time advantage

Transferred from: http://www.cnblogs.com/kzloser/archive/2012/07/06/2578835.html



Waterfall model

1. Milestone or baseline driven. 2. Process reversal is poor or irreversible. Reversals may delay the schedule, increase costs, and cause losses

1. The development phase is clear and easy to review, audit, track, manage and control.

1. Irreversible or difficult to reversible. 2. Problems accumulate, errors pass and spread, resulting in runaway costs and quality.

1. Demand does not change or change infrequently during development time. 2. The analysis designer is very familiar with this area. 3. Low-risk projects. 4. User use of environmental stability (such as system software, tool software)

Rapid Prototyping Model

1. Easy to adapt to changes in demand

1. Overcome the shortcomings of the waterfall model and reduce the risk of development due to unclear software requirements.

1. The development tools and techniques used are not necessarily in line with mainstream development, and the rapidly established system architecture coupled with continuous modifications can lead to poor product quality.

1. Unclear requirements or complex systems. 2. Users can not put forward application requirements.

Incremental model

1. The software consists of a series of incremental components

1. The staffing is flexible and does not have to be heavily resourced at first. If the core product is popular, you can increase the manpower to achieve the next increment. When the staff can not complete the product within the set time, it provides a way to advance the core products, so that the first part of the function to customers, to the customer sedative effect. 2. Incremental ability to manage technical risks in a planned sense.

1. Since each component is gradually incorporated into an existing software architecture, the component must not break the already constructed part of the system, which requires the software to have an open architecture. 2. In the development process, demand changes are unavoidable, incremental flexibility can make their ability to adapt to this change is much better than the waterfall and rapid prototyping model, but also easy to degenerate into the edge of the model, so that the control of software process lost integrity. 3. If there is an intersection between the delta packages and is not well handled, then the overall system analysis must be done, the model will be developed after the refinement of the method is more appropriate to the requirements of the software development process often changed

1. The system is easy to break apart. 2. The development of manpower is relatively small. 3. Especially suitable for commercial software (such as QQ, online games)

Spiral Model

1. is a cyclical approach to system development. 2. There are many "intermediate versions". 3. Each cycle includes requirements definition, risk analysis, engineering implementation and review of 4 phases

1. Flexible design, can be changed at all stages of the project. 2. Build large systems with small segments, making cost calculations easy and easy. 3. Customers are always involved in the development of each stage, ensuring that the project does not deviate from the right direction and the project is controllable.

1. Long construction cycle, and software technology update is relatively fast, so often appear after the end of software development, and the current level of technology has a big gap, can not meet the current user needs.

1. The system is huge and the risk is high. 2. The demand is not very clear.

Fountain model

1. There is no clear boundary between the stages of the model, and developers can develop them synchronously.

1. Improve software project development efficiency, save development time, apply to object-oriented software development process.

1. Since fountain models overlap at various stages of development, a large number of developers are needed in the development process and therefore are not conducive to project management. 2. Strict management of documents is required to make the audit more difficult, especially in the face of information, needs and information that may be added at any time.

1. Object-oriented software development process



Detailed descriptions are as follows:

Waterfall Mode

Features: phases are sequential and dependent: After the previous phase is completed, the output text of the previous stage can be started to defer the implementation of the input text for the latter stage. Quality Assurance: Each stage must deliver a qualified document to review the document

Cons: Start with the need to get the most out of the feedback in user testing, fear of the need to change MUX

Spiral Model

Constraints: Adapt to the internal large-scale software development: Spiral model emphasizes risk analysis, many customers are unable to accept and believe that this analysis is suitable for large-scale software projects (performing risk analysis will greatly affect the profitability of the project, risk analysis is meaningless) software developers should be good at looking for possible risks, Analyze risk accurately, or it will lead to greater risk

Pros: Design flexibility that can be changed at every stage of the project. Build large systems with small segments to make cost calculations simple and easy for customers to ensure that the project does not deviate from the right direction and that the project is controllable the customer always has the latest information on the project so that he or she can interact effectively with the management. The customer acknowledges the good communication and high quality products of this company's internal development method.

Disadvantages:

It is difficult to convince users that the results of this evolutionary approach can be controlled. Long construction period, and software technology development is relatively fast, so often appear after the software development, and the current technical level has a large gap, can not meet the current user needs.

Core:

Is that you don't have to define everything in the first place. When defining the most important features, implement it, and then listen to the customer's comments before moving on to the next stage. So keep repeating the cycle until you are satisfied with the final product

Each cycle consists of six steps: Identify objectives, optional options, and enforce condition identification and mitigate risk assessment optional development and testing the next phase of the current phase of planning to determine the steps to proceed to the next phase.

Model:

Rapid Prototyping Model

Pros and Cons: Advantages: Overcoming the shortcomings of waterfall models and reducing the risk of development due to unclear software requirements. Disadvantage: The chosen development technology and tools do not necessarily conform to the mainstream development; the rapidly established system structure coupled with continuous modifications may lead to poor product quality.

Prototype type: Exploratory prototype: The goal is to clear the user's needs, determine the desired characteristics, and explore the feasibility of various schemes. It is mainly for the development of Fuzzy, experimental prototype: Mainly used in the design phase, assessment, the implementation of the plan is appropriate, whether the evolution of the prototype: mainly for the early submission of a prototype system to the user, the prototype system or the system contains the framework, or contains the system's main functions, after receiving the user's approval, Evolve the prototype system into the final software system

The use of prototypes: The abandonment strategy is to use the prototype for a certain stage of the development process, so that the development results of this phase is more complete, accurate, consistent, reliable, after the end of this phase, the prototype is void. Exploratory and experimental types are used in this strategy. The additional strategy is to use the prototype for the whole process of development, prototype from the most basic core, gradually add new functions and new requirements, repeatedly modified repeatedly expanded, finally developed into a user satisfaction of the final system, evolutionary rapid prototype is the adoption of this strategy

Model:

Incremental Model

Component idea: The first component to complete the basic core functions provided by the software the augmented component is for the first component to provide the service to provide the function and avoid it. The first thing to do is to take a high risk and important part.

Difficult:

Each new component that is integrated into the existing software structure must break the original developed product, so a good interface must be defined

Advantages: In a short period of time to provide users with the ability to complete parts of the product gradually increase product functionality can enable users to have time to understand and adapt to the new product open structure of the software has significantly better maintenance than the closed structure of the software

Defect: Easy to degenerate into edge to do edge modification model, so that the software Process Control lost integrity if there is an intersection between the delta packages and is not well handled, you must do a thorough system analysis

Model:

Fountain Model

Advantages:

Fountain model Unlike a waterfall model, the design activity is not started until the analysis activity is finished, and the coding activity is not started until the design activity is finished. There are no obvious boundaries in each stage of the model, and developers can develop it synchronously. The advantage is that it can improve the efficiency of software project development, save development time, Adapt to the object-oriented software development process.

Disadvantages:

Because fountain models overlap at various stages of development, a large number of developers are needed in the development process and therefore are not conducive to project management. In addition, this model requires strict management of documents, making it more difficult to audit, especially in the face of the possibility of adding a variety of information, needs and information at any time.

Model:

Evolutionary Model

Thought:

The evolutionary model is mainly aimed at the software development which cannot define the requirement completely beforehand. Users can give the core requirements of the system to be developed, and when the core requirements are realized, they can effectively provide feedback to support the final design and implementation of the system.

Development order: According to the user's core requirements, design, coding, testing, after the submission of user refinement: According to the core system to meet the user's core needs, to increase user feedback of all other functions

Advantage: Any function can be developed to test to verify compliance with the product requirements development of the next cycle process, greatly improve the quality and efficiency of the development of the lessons can be feedback applied to the product of the next cycle process, greatly improve quality and efficiency Greatly contribute to the early establishment of product development configuration management

Cons: The main requirements are not fully understood, will bring difficulties to the overall design and weaken the integrity of product design, and thus affect product performance optimization and product maintainability lack of strict process management, this life cycle model is likely to degenerate into a "trial-error-Change" mode Uncontrolled access to users without testing stable functionality in development can have a negative impact on both developers and users

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.