Identify the type of software you are working on

Source: Internet
Author: User

Knowledge Reserve: Software development model: waterfall, iteration, helix, agility

1. Waterfall model

Advantages:

The ease of operation of project management is the most typical and predictable approach, followed strictly by pre-planned requirements analysis, design, coding, integration, testing, and maintenance of the sequence of steps.

Step results as a measure of progress, such as requirements specifications, design documentation, test plans, and code reviews.

Disadvantages:

Limits the interaction between teams during development, the reduction of degrees of freedom, the early commitment of the project makes the changes in late requirements difficult to adjust, the cost is high, the waterfall approach is not feasible in the case of unclear requirements and possible changes in the course of the project.

2. Iterative developmentis also known asIterative Incremental DevelopmentOrIterative Evolutionary developmentis a software development process contrary to traditional waterfall development, which compensates for some of the weaknesses of traditional development methods, 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



Spiral Development, in 1988, Barry Boehm formally published the "Spiral Model" of software system development, combining waterfall models and rapid prototyping models, highlighting risk analysis that other models have overlooked, particularly 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 DevelopmentAlso known asAgile Development, is a kind of new software development method which has aroused wide attention gradually from the 1990 's, is a kind of software development ability to deal with the fast 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.


where the content on the right has its value, but the content on the left is the most important.
people have less trust with each other but are capable of communicating face to head.

Project Agile Development:
Agile Development team The main way of working can be summed up as: work as a whole; Work on short iterations, deliver results for each iteration,  
focus on business priorities; check and adjust. The most important factor for

is the size of the project. As the scale grows, face-to-face communication becomes more difficult, and the
therefore 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.




Four comparison differences:

Traditional waterfall Development , that is, from requirements to design, from design to coding, from coding to testing, From testing to submitting a process like this, it requires the best of every development phase.
especially in the early stages, 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 shortcomings, but 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.

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

Agile Development, compared to iterative development, both emphasize 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. The
Agile approach is 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.  

The Adaptive approach focuses 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.----The above section is from http://www.cnblogs.com/-OYK/archive/2012/10/08/2714669.html

Different kinds of software projects that require a different balance between "prep" and "build activity", each project is unique, but the project can be grouped into a number of development styles

Excerpt from Code Encyclopedia 2

Identify the type of software you are working on

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.