Software development model

Source: Internet
Author: User

Software development model: waterfall, iteration, Helix, agility (each with advantages and disadvantages, need to adapt to local conditions)

1. 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 promise of the project makes it difficult to adjust to late demand changes,
Expensive. Waterfall methods are not feasible in situations where the requirements are unclear and may change during the course of the project.


2. 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?
Design and implement only one part of the product at a time,
The step-by-step process is called iterative development,
Each design and implementation phase is called an iteration.

In an iterative development approach, the entire development effort is organized into a series of short,
A small item of fixed length, such as 3 weeks, is called a series of iterations.
Each iteration includes requirements analysis, design, implementation, and testing.
With this approach, development work can be initiated before the requirements are fully determined,
And in one iteration to complete a part of the system or business logic development work.
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. Change of Use
5, improve the 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, clarify the constraints of project development;

(2) Risk Analysis: Analysis and evaluation of the selected program, consider how to identify and eliminate risk;

(3) Implementation of the project: the implementation of software development and validation;

(4) Customer Evaluation: evaluation of development work, the proposed amendments to 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 less but are capable of face-to-head communication

Agile Development of the project:
the main working methods of the Agile development team can be summarized as: work as a whole, work in short iterations, and deliver some results on each iteration ;
focus on business priorities; check and adjust.

Perhaps the most important factor is the size of the project. It is increasingly difficult to communicate in a larger
Agile methods are therefore more suitable for smaller teams, 40, 30, 20, 10 or less.
Large-scale agile software development is still in the field of active research.




Four contrast differences:

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 amount of loss is to complete an "imperfect product" until it is 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

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.