Software Engineering-development model directory
Waterfall Mode
Spiral Model
Quick prototyping
Incremental Mode
Fountain Model
Evolutionary Model
Waterfall Mode
Features:
Disadvantages:
At first, we need to make the most comprehensive requirements.
Fear of feedback from user tests, fear of demand changes
MUX
650) This. width = 650; "src =" http://pic002.cnblogs.com/images/2012/387401/2012070519091925.jpg "style =" border: 0px; "/>
Spiral Model
Restrictions:
Adapted to internal large-scale software development: risk analysis is emphasized by the spiral model, which is unacceptable and believed by many customers.
Suitable for large-scale software projects (implementation of risk analysis will greatly affect the project's profit, risk analysis is meaningless)
Software developers should be good at finding possible risks and accurately analyzing them; otherwise, they will bring greater risks.
Advantages:
The design flexibility can be changed at various stages of the project.
Building a large system with small segments makes cost calculation easy
The customer always ensures that the project does not deviate from the correct direction and the project is controllable.
The customer keeps up-to-date with the project so that he or she can interact effectively with the management.
The customer recognizes the good communication and high-quality products brought about by this internal development method.
Disadvantages:
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.
Core:
It is because you do not need to clearly define everything at the beginning. implement the most important function, listen to the customer's opinions, and then enter the next stage. this process repeats repeatedly until you are satisfied with the final product.
Each cycle includes the following six steps:
Determine the target, options, and mandatory conditions
Identify and resolve risks
Evaluation Option
Develop and test the current phase
Plan the next phase
Determine the steps for entering the next stage.
Model:
650) This. width = 650; "src =" http://pic002.cnblogs.com/images/2012/387401/2012070608353465.png "style =" border: 0px; "/>
Quick prototyping
Advantages and disadvantages:
Advantage: overcome the shortcomings of the waterfall model and reduce the development risks caused by unclear software requirements.
Disadvantages: 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.
Prototype:
Exploratory prototype: it aims to determine users' needs, determine desired features, and explore the feasibility of various solutions. It focuses on Fuzzy development goals,
Prototype: It is mainly used in the design stage and assessment; whether the implementation scheme is suitable or not
Evolutionary prototype: it is mainly used to submit a prototype system to the user as soon as possible. The prototype system may include the system framework or the main functions of the system. After receiving the user's approval, continuously expanding the prototype system into the final Software System
Usage of the prototype:
The discard strategy is to apply the prototype to a certain stage of the development process, so that the development results of this stage are more complete, accurate, consistent, and reliable. After the end of this stage, the prototype will be voided. This policy applies to both the exploratory and experimental models.
The additional policy is to apply the prototype to the entire process of development. The prototype starts from the most basic core, and gradually adds new functions and new requirements. The prototype is modified and expanded repeatedly, finally, the final system developed to meet user requirements. This policy is adopted by the rapid prototyping of evolutionary models.
Model:
650) This. width = 650; "src =" http://pic002.cnblogs.com/images/2012/387401/2012070608541115.jpg "style =" border: 0px; "/>
Incremental Model
Component idea:
The first component completes the basic and core functions provided by the software
The subsequent add-on components provide functions for the first component to provide services.
In addition, to avoid difficulties, the first task should be a high risk and an important part.
Difficult:
Every new component integrated into the existing software structure must destroy the product originally developed, so a good interface must be defined.
Advantages:
Provide users with products that can complete some work within a short period of time
Gradually adding product features gives users time to understand and adapt to new products
Software with open structures has a much better maintainability than software with closed structures.
Defects:
It is easy to degrade to the edge to make the edge change model, so that the control of the software process loses integrity.
If there is an intersection between incremental packages and it is not well handled, you must perform a full system analysis.
Model:
650) This. width = 650; "src =" http://pic002.cnblogs.com/images/2012/387401/2012070608542475.png "style =" border: 0px; "/>
Fountain Model
Advantages:
Unlike the waterfall model, the fountain model starts the design activity only after the analysis activity ends and the coding activity starts after the design activity ends. there are no obvious boundaries between the stages of the model, so developers can develop the model simultaneously. it can improve the efficiency of software project development, save development time, and adapt to the object-oriented software development process.
Disadvantages:
Since the fountain model overlaps in various development stages, a large number of developers are required during the development process, which is not conducive to project management. in addition, this model requires strict document management, making review more difficult, especially when various information, requirements and materials may be added at any time.
Model:
650) This. width = 650; "src =" http://pic002.cnblogs.com/images/2012/387401/2012070609053663.jpg "style =" border: 0px; "/>
Evolutionary Model
Thoughts:
The evolutionary model mainly targets software development that cannot be fully defined in advance. the user can provide the core requirements of the system to be developed. When the core requirements are realized, the user can effectively provide feedback to support the final design and implementation of the system.
Development Sequence:
Design, code, test, and submit to the user according to the user's core requirements
Precision: all other functions provided by user feedback are added to the core system that meets users' core needs.
Advantages:
Any function can be tested once developed to verify that it meets product requirements
Lessons learned during development can be fed back to the next cycle of the product, which greatly improves the quality and efficiency.
Lessons learned during development can be fed back to the next cycle of the product, which greatly improves the quality and efficiency.
It greatly facilitates the early establishment of Product Development Configuration Management
Disadvantages:
If the main requirements are not completely clarified at the beginning, it will bring difficulties to the overall design and weaken the integrity of the product design, and thus affect the product performance optimization and product maintainability.
In the absence of strict process management, this life cycle model is likely to degrade to the "trial-error-change" mode.
Allow users to access features that are not tested in development without control, which may have a negative impact on developers and users.