What are the software development models?
Rapid Prototyping Model : (need to quickly create a software prototype that can be run to understand and clarify problems)
The rapid prototyping model allows for a preliminary, incomplete analysis and definition of the requirements of the software during the requirements analysis phase, rapidly designing and developing a prototype of the software system (demonstrating all or part of the functionality and performance of the software to be developed
(Process: The user to test the prototype, give the specific improvement of the comments and a wealth of detailed software requirements, developers to modify and improve)
Advantages:
Overcoming the drawbacks of waterfall models and reducing development risks due to unclear software requirements
Disadvantages:
A, the selected development technology and tools do not necessarily conform to the mainstream development
B, the rapid establishment of the system plus continuous modification may result in product quality under
Incremental Models : (with linear sequences interleaved with the progress of the schedule, each linear Xu Lei generates a published "increment" of the software, and the first increment is often the core product)
In common with other models: it is essentially iterative, just like the prototype implementation model and other evolutionary methods
differs from the prototype implementation model: it emphasizes that each increment publishes an actionable product, (it does not need to wait until all requirements come out, as long as the need to touch the incremental package to develop)
Advantages:
1. Flexible staffing, no need to invest a lot of human resources at first
2, when the personnel can not complete the product within a limited time, it can provide a way to first launch the core products, can now release some of the functions to the user (sedative effect on users)
3. Increase the risk of managing technology in a planned
Disadvantages:
1, if there is an intersection between the incremental packages and not well handled, you must do a comprehensive system analysis
Note:
This model will be developed separately after the function refinement to adapt to the software development process which the demand changes frequently
Prototype Model: ( sample model, refine the prototype using a stepwise refinement method)
Main ideas:
First borrow the existing system as a prototype model, through the "sample" continuous improvement, so that the final product is what users need. Prototype model by providing users with prototypes to obtain feedback from users, so that the development of software can really reflect the needs of users,
Method of Adoption:
The prototype model uses the gradual refinement method to perfect the prototype, so that the prototype can be "quickly" developed, avoiding the same as waterfall model in the lengthy development process difficult to respond to the user's feedback quickly
Advantages:
(1) The developer and the user agree on the "prototype". In this way, the errors in the design and the risks in the development can be reduced, and the time of user training is reduced, and the practicability, correctness and user satisfaction of the system are improved.
(2) Shorten the development cycle and speed up the progress of the project.
(3) Reduce costs.
Disadvantages:
1, when re-production of the product, it is difficult for users to receive, to continue to carry out the project to bring unfavorable factors.
2, it is not appropriate to use the prototype system as the final product. Using a prototype model development system, users and developers must agree:
Fountain Model: ( based on user demand, object-driven model, mainly used for software development projects using object technology)
It believes that the phases of the software development process from the bottom to the beginning are iterative and non-interstitial.
Iterative: The parts of the software are often repeated several times, and related objects are added to each iteration with progressive software components
No clearance: It has no apparent boundary between activities (e.g., between analysis and design activities < Due to the application of object concepts, expression analysis, design, implementation, etc. activities only with object classes and Relationships >)
Advantages:
1, can improve the software project development efficiency, save development time, adapt to the object-oriented software development process
the inconvenience :
1, because the fountain model in each development phase is overlapping, so in the development process requires a large number of developers, so it is not conducive to project management.
2, this model requires strict management of documents, making the audit more difficult, especially in the face of the possibility of adding a variety of information, needs and information at any time
Helical Models: ( suitable for projects with frequently changing requirements < suitable for large and complex systems >)
It is primarily a risk analysis and assessment, with several iterations along the Helix,
Process:
1, make plans: Determine the software objectives, select the implementation plan, understand 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: evaluation of development work, the proposed amendments to make the next plan.
Advantages:
1, it is driven by risk, emphasizing the options and constraints to support the reuse of software, to help the quality of software as a special goal into product development
Disadvantages:
1, it is difficult to convince users that the results of this fireworks method can be controlled
2, the construction cycle is long (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 needs of current users)
3. Unless software developers are adept at looking for possible risks and analyzing risks accurately, they will pose greater risk
Waterfall Model: ( in essence, waterfall model is a software development architecture, repeated application)
(Core thought: According to the process to simplify the problem, the function of the implementation and design, to facilitate the division of cooperation, the use of structured analysis and design methods to separate the logical implementation and physical implementation, according to the software life cycle from top to bottom, the order of convergence < like waterfall flow down the fall >)
Disadvantages:
1, there is very little feedback between the various stages of the project, the division of each stage is completely fixed, the stage produces a large number of documents, increase the workload
2, users can only see the results later in the project life cycle, increase the risk of development
3. Require too many mandatory completion dates and milestones to track the stages of each project
4, at each stage will produce circular feedback
(If the information is not overwritten or if the problem is found, you must go back to the previous stage < even the previous activity > and make the appropriate changes, only when the previous stage is confirmed before the next stage)
5, early errors may have to wait until the late development of the testing phase to find, and thus bring serious consequences
Advantages:
1, for the project to provide a stage-by-point checkpoint
2, when the completion of a phase, only need to focus on the next stage
3. Waterfall model can be applied in iterative model
According to the stage division of Waterfall model, software testing can be divided into unit test, integration test, System test
Note : Because of cyclic feedback at each stage, the waterfall model is worthless for frequently changing projects, and the linear process of this model is too idealistic to be suitable for modern software development models.