Software development Model Comparison

Source: Internet
Author: User

Waterfall Model is a software development model originally proposed by W.w.royce in 1970, and waterfall development is an old method of computer software development.
Waterfall model is the most typical predictive approach, strictly following the sequence of pre-planned requirements analysis, design, coding, integration, testing, and maintenance steps. Step results as a measure of progress, such as requirements specifications, design documentation, test plans, code reviews, and so on.

The main problem with the waterfall is that its strict grading leads to reduced degrees of freedom, and the early commitment of the project makes it difficult to adapt to changes in late requirements and is costly. Waterfall methods are not feasible in situations where the requirements are unclear and may change during the course of the project.

iterative Development , also known as iterative incremental development or iterative evolutionary development , is a software development process that is contrary to traditional waterfall development, bridging some of the weaknesses of traditional development approaches with higher success rates and productivity.

What is iterative development?
Each time you design and implement only one part of the product, the step-by-step approach is called iterative development, and each design and implementation phase is called an iteration.

In an iterative development approach, the entire development effort is organized into a series of small, fixed-length items, such as 3 weeks, that are called a series of iterations. Each iteration includes requirements analysis, design, implementation, and testing. In this way, the development work can be initiated before the requirements are fully identified, and a part of the system's functionality or business logic development is completed in one iteration. We then refine the requirements through customer feedback and start a new round of iterations.

Benefits of iterative development:

    1. Reduce risk
    2. Get early user feedback
    3. Continuous testing and integration
    4. Use change
    5. Improved reusability


Helix Development , in 1988, Barry Boehm formally published the "Spiral Model" of software system development, combining waterfall models with rapid prototyping models, highlighting risk analysis that other models have overlooked, especially for large and complex systems.
The "Spiral model" is very small at first, and gradually unfolds when the project is defined better and more stably.

The core of the spiral model is that you don't have to define everything at the beginning. You take it easy, define 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.

    1. Make a plan: Determine the software objectives, select the implementation plan, and clarify the constraints of project development;
    2. Risk analysis: Analyze and evaluate selected scenarios and consider how to identify and eliminate risks;
    3. Implementation of the project: the implementation of software development and validation;
    4. Customer Evaluation: Evaluate the development work, propose the amendment proposal, make the next plan.

The Helix model is largely a risk-driven approach, because risk assessments must be conducted before each phase and before the recurring cycle.

Agile Software Development , also known as Agile Development , is a kind of new software development method which has aroused wide attention since the 1990 's, and is a kind of software development ability to deal with the rapidly changing demand. Their specific names, concepts, processes, terminology are different, compared to "non-agile", more emphasis on the programmer team and business experts close collaboration, face-to-head communication (think more effective than written documents), frequent delivery of new software releases, compact and self-organizing team, Code writing and team organization methods that can adapt well to changes in demand, but also focus on the human role of software development.

    • People and interactions are heavier than processes and tools.
    • The software that works is heavier than perfection and complete documentation.
    • Customer collaboration focuses on contract negotiation.
    • Always deal with change over the rules.

While the content on the right has its value, the content on the left is the most important. People trust each other, fewer but capable to face-to-head communication.

The main working methods of the Agile development team can be summarized as follows:

    • work as a whole;
    • Work on short iteration cycles;
    • Each iteration delivers some results;
    • Focus on business priorities; check and adjust.

Perhaps the most important factor is the size of the project. As the scale grows, face-on communication becomes more difficult, so agile methods are more suitable for smaller teams, 40, 30, 20, 10 or less. Large-scale Agile software development is still in the field of active research.

Comparison of the four:

    • Traditional waterfall development, from requirements to design, from design to coding, from coding to testing, from testing to submitting a process like this, requires every development phase to be the best. Especially in the early stage, the more perfect the design, the less cost loss after submission.
    • Iterative development, do not require each stage of the task to do is the most perfect, but clearly know there are many deficiencies, but it is not to improve it, but the main function to build up for the purpose, in the shortest time, the least loss of the first complete an "imperfect fruit" until submitted. Then through the customer or user feedback information, in this "imperfect fruit" on the gradual improvement.
    • Spiral development is, to a large extent, a risk-driven approach, because risk assessments must be conducted before each phase and before the recurring cycle.
    • Agile development, in contrast to iterative development, emphasizes the submission of software in a shorter development cycle, but the cycle of agile development may be shorter and more emphasis on high collaboration in the team. Agile methods are sometimes mistaken for a non-planned and disciplined approach, and it is actually more accurate to say that agile methods emphasize adaptability rather than predictability.

Adaptive approaches focus on adapting to real-world changes quickly. When the needs of the project change, the team should adapt quickly. It may be difficult for the team to describe exactly how the future will change.

Software development Model Comparison

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.