Seven common software development models

Scenario : Applicable to projects with stable and clear requirements.

Process : requirements analysis, general design, detailed design, coding and debugging, integration testing and system testing.

Features : It is a model that strictly follows the fixed sequence of each stage of the software life cycle. Each stage is clearly divided, and fixed documents or source programs flow into the next stage. Demand analysis is the basis of all activities.

Disadvantages :

1. It is impossible to accurately and completely describe the entire system due to requirements, resulting in heavy post-maintenance work. Most of these maintenance tasks are defects introduced during the stage of correcting requirements analysis.

2. Difficult to adapt to changes. If the requirements of the software change later, the entire system needs to start from scratch.

3. The delivery time is long, and it is necessary to wait until all stages are completed to deliver the product, which makes it impossible for customers to determine whether the demand is met as soon as possible.

4. It takes a lot of manpower to produce a large number of documents that are useless to customers, and it is an overloaded process.

             

  • evolutionary model

Scenario : Applicable to projects with unclear user needs and long software improvement cycles.

Features : It gradually evolves from the initial model to the final software product, which is a "gradual" prototyping method. It can be seen as several iterations of the waterfall model, which evolve and improve during the iteration process.

Disadvantages :

1. Requirements need to be clearly split, and requirements boundaries can be clearly identified.

2. All product requirements are not fully clear at the beginning, which will bring difficulties to the overall design and weaken the integrity of the product.

  • spiral model

Scenario : The project is large-scale, complex and high-risk.

Features : It is a combination of waterfall model and evolution model, and adds risk analysis (introducing very strict risk identification, risk analysis, risk control), and supports dynamic changes in user needs.

Process : requirements definition, risk analysis, project implementation, review.

Disadvantages : 1. It requires considerable experience and expertise in risk assessment.

2. Too many iterations will increase the development cost and delay the submission time.

  • incremental model

Scenario : Adopt when the technical architecture of the system is mature and the risk is low.

Features : Conduct integration testing and system testing in advance, shorten the release cycle of the initial version, and improve users' visibility to the system

strategy :

  • incremental release

Features : The system is divided into several different versions, each version is a complete system, and the latter version is developed on the basis of the previous version to expand functions, and the increment between versions must be uniform.

  • prototyping

Features : When user needs are unclear or there are many unrecognizable factors in the technical architecture, the prototype method is adopted. The main purpose is to obtain accurate user requirements or verify the usability of the architecture. Generally, this prototype will be discarded in the later development and the complete system will be re-implemented.

Disadvantage : How to organize an open structure so that the model does not degenerate into building a tinkering model.

  • component assembly model

Features : Independent and self-contained, components cooperate with each other through interfaces before.

Process : design component assembly, build component library, build application software, test and release.

Advantages :

     1. The self-containment of components makes the system easier to expand

     2. Easier to be reused, reducing development costs

     3. The granularity is smaller, so it is more flexible to arrange development tasks.

Disadvantages :

  1. Poorly designed components are difficult to realize the advantages of components, and require experienced system architects.
  2. When considering reusability, other aspects are often compromised, such as performance.
  3. When assembling an application program, the program is required to master the components proficiently, which increases the learning cost of the R&D personnel.
  4. Third-party build quality is difficult to control and may affect final software quality.

  • Unified Process (up) (iterative software process, architecture-centric)

Scenario : A common process framework, suitable for projects of various application areas, organizational levels, and project sizes.

Process : Inception, Elaboration, Build, Delivery.

  1. Initial Phase (Target Milestone): Defining the scope of the system, clarifying the purpose of the system, and implementing business modeling and requirements analysis.
  2. Elaboration Phase (Architectural Milestone): Describe the abstract software logic model (analysis), design the software architecture.
  3. Build Phase (Capability Milestone): The system is built (implemented), tested and deployed.
  4. Delivery Phase (Release Milestone): The system is fully matured or productionized, moving to the next phase where the product is refactored, modified, tested and deployed.

Advantages :

  1. Using the powerful UML modeling language, it can form a unified specification and template in the team.
  2. There are many mature commercial software that provide relevant support for the entire development cycle, which greatly reduces development and management costs and improves development efficiency.

Disadvantages : Although UP is an iterative development model, it does not belong to agile development itself. Uncut UP is an overloading process.

  • agile development model

Scenario : Suitable for small-scale software or small team development.

Features : It is a human-centered, iterative, step-by-step development method.

Guess you like

Origin blog.csdn.net/a15626250225/article/details/127517178