Software Development Model)

Source: Internet
Author: User

Software development model refers to the structural framework of all processes, activities, and tasks of software development. Software development includes the stages of requirement, design, coding and testing, and sometimes maintenance. The software development model can clearly and intuitively express the entire process of software development, and clearly defines the main activities and tasks to be completed as the basis for software project development.

1.Waterfall Model(Waterfall Model)

The waterfall model divides the software life cycle into six basic activities, including planning, demand analysis, software design, programming, software testing, and operation and maintenance, they also define a fixed order of top-down and interconnection, like waterfall flow, falling down step by step. In essence, it is a software development architecture, and the development process is carried out in a series of stages in sequence. From System Requirement Analysis to product release and maintenance, loop feedback is generated at each stage, therefore, if any information is not covered or an error is found, it is best to "return" the previous stage and make appropriate modifications. The development process is "Flowing" from one stage to the next stage, this is also the origin of the waterfall development name.

Features:

1. the stages are sequential and dependent.

2. Delay the physical implementation of the program.

3. Quality assurance: the required documents must be completed at each stage. Document reviews should be completed before each stage ends, and errors should be corrected as soon as possible.

4. Easy to organize and manage: Because you can complete all the plans in advance.

5. It is a strictly linear, phased-out, and gradually refined process model (Development Model)

Applicable scenarios:

1. When there is a stable product definition and easy-to-understand technical solution, the pure waterfall model is particularly suitable.

2. When you maintain a well-defined version or port a product to a new platform, the waterfall model is also suitable.

3. for projects that are easy to understand but complex, it is appropriate to use a pure waterfall model because the problem can be handled in a sequential manner.

4. It is particularly outstanding when the quality requirement is higher than the cost requirement and progress requirement.

5. When the development team's technical strength is relatively weak or lacks experience, the waterfall model is more suitable.

Defects:

1. At the beginning of the project, it is often difficult for users to clearly present all their requirements. There are differences between users and developers in understanding the requirements.

2. The actual project is rarely modeled in sequence.

3. Lack of flexibility: Because the waterfall model determines the absolute importance of demand analysis, it is very difficult to obtain a complete description of the demand in practice, leading to "blocking ". The feedback is slow and the development cycle is long.

4. Although there are many defects, waterfall models are often ridiculed as "old-style", but it is still a reasonable method when requirements are well understood.

2.Quick Prototyping (Rapid Prototype Model)

The first step of the rapid prototyping model is to build a rapid prototype to realize the interaction between the customer or the future user and the system. the user or the customer evaluates the prototype and further refine the Needs of the software to be developed. By gradually adjusting the prototype to meet the customer's requirements, developers can determine what the customer's real needs are. The second step is to develop the customer's satisfied software products based on the first step. Once the customer's real needs are determined, the prototype will be discarded. Therefore, the internal structure of the prototype system is not important. What is important is that the prototype must be quickly established and then the prototype can be quickly modified, to reflect the customer's needs.

Features:

The rapid prototyping method can overcome the shortcomings of the waterfall model and reduce the development risks caused by unclear software requirements, with remarkable results. Compared with the waterfall model, the prototype model is more in line with the process and Law of People's understanding of things. It is a practical development framework.

Applicable scenarios:

It is suitable for the development of software systems that cannot define requirements in advance, and is more suitable for situations where project team members (including analysts, designers, programmers and users) cannot communicate well or communicate with each other.

Defects:

The selected development technologies and tools do not necessarily conform to the mainstream development. Continuous modifications to the quickly established system structure may lead to low product quality.

3.Incremental Model (Incremental Model)

Similar to building, software is also built step by step. In an incremental model, software is designed, implemented, integrated, and tested as a series of incremental components, each component is a code snippet formed by multiple interacting modules that provide specific functions.

Incremental models do not deliver a complete product that can run at each stage, but deliver a subset of products that meet customer needs. The entire product is divided into several components, and developers deliver the product one by one. The advantage of this is that software development can better adapt to changes, and customers can constantly see the developed software, this reduces development risks.

Features:

The incremental model is characterized by the introduction of the incremental Package concept, so you don't have to wait until all the requirements come out, as long as the incremental package of a demand comes out for development. Although an incremental package may need to be further adapted to the customer's needs and changed, as long as the incremental package is small enough, the impact is acceptable for the entire project.

Applicable scenarios:

When using the incremental model, the first increment is usually the core product that meets basic requirements. After core products are delivered to users for use, they form the next incremental development plan, which includes modifications to core products and release of some new features. This process repeats after each incremental release until the final perfect product is produced.

Defects:

1. Since each component is gradually incorporated into the existing software architecture, adding the component must not destroy the structure of the system, which requires the software to have an open architecture.

2. demand changes are inevitable during the development process. The flexibility of the incremental model makes it better to adapt to this change than the waterfall model and the rapid prototype model, but it is also easy to degrade to the side-to-side modeling, instead, the control of software processes loses integrity.

4.Spiral Model (Spiral Model)

The spiral model combines the waterfall model with the rapid prototype model, emphasizing the risk analysis ignored by other models, which is particularly suitable for large-scale and complex systems. The four quadrants in the figure represent the following activities:

1. Develop a plan: Determine the software objectives, select the implementation scheme, and clarify the constraints of project development;

2. Risk Analysis: analyzes and evaluates the selected scheme and considers how to identify and eliminate risks;

3. Implementation Project: implement software development and verification;

4. Customer evaluation: evaluates the development work, proposes amendments, and develops the next plan.

Features:

A spiral model is driven by risks and emphasizes optional solutions and constraints to support software reuse. This helps to integrate software quality into product development as a special goal. However, the spiral model also has certain constraints. one stage is to first determine the objectives of the stage, complete the selection scheme and constraints of these objectives, and then analyze the development strategy of the scheme from the risk perspective, efforts are made to eliminate various potential risks, sometimes through prototyping. If some risks cannot be ruled out, the solution is terminated immediately. Otherwise, start the next development step. Finally, evaluate the results of this stage and design the next stage.

Applicable scenarios:

1. Internal large-scale software development: the spiral model emphasizes risk analysis, but it is not easy for many customers to accept and trust this analysis and make relevant responses.

2. large-scale software projects: if the implementation of risk analysis will greatly affect the project's profit, it is meaningless to carry out risk analysis.

Defects:

1. Software developers should be good at finding possible risks and accurately analyzing them; otherwise, they will bring greater risks.

2. It is difficult to convince users that the results of this evolutionary method are controllable. The construction period is long, and the software technology is developing fast. Therefore, after software development is completed, there is a big gap with the current technology level, which cannot meet the needs of current users.

5. V-Model

The V model is a software development process that extends the waterfall model. It does not adopt a linear downward movement, but changes the process after the completion of the encoding phase, forming a typical V-shaped shape. The V-model indicates the relationship between each stage of the software development lifecycle and related test stages.

Features:

In the software life cycle, the vertical links of the basic activities are joined in parallel, and the development activities and test activities start almost simultaneously. these two parallel dynamic processes will greatly reduce the probability of bugs and errors. the unit test checks whether the code development meets the detailed design requirements. The integration test checks whether components tested previously can be combined in good condition. The system test checks whether the integrated products meet the requirements of the system specification. The acceptance test checks whether the product meets the requirements of end users.

Applicable scenarios:

Applicable to Waterfall Models

Defects:

1. Take the test process as a stage after requirement analysis, system design, and coding.

2. the requirement analysis and system design verification of the test are neglected and will not be detected until the acceptance test is conducted later.

Summary

Model

Advantages

Disadvantages

Waterfall Model

Document-driven

The system may not meet the customer's needs

Quick prototyping

Focus on meeting customer needs

Poor system design, low efficiency, and difficult to maintain

Incremental Model

Early Development Feedback is timely and easy to maintain

Open Architecture is required, which may result in poor design and low efficiency.

Spiral Model

Risk-driven

Risk analysts need to be experienced and fully trained

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.