Software Engineering-Development Model

Source: Internet
Author: User
Software Engineering-development model directory

Waterfall Mode
Spiral Model
Quick prototyping
Incremental Mode
Fountain Model
Evolutionary Model

Waterfall Mode

Features:

  • Sequence and dependency between stages:

    • The last phase can be started only after the completion of the previous phase

    • The output text of the previous stage is the input text of the next stage.

  • Deferred implementation

  • Quality assurance:

    • Qualified documents must be provided for each stage

    • Review Documents

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.


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.