Software survival Model

Source: Internet
Author: User

The software survival model is a framework of the entire process, activity, and task of system development, operation, and maintenance that spans the entire survival period.

 

I. The following describes the advantages and disadvantages of several common software survival models and their applicability.

1. Waterfall Model

The waterfall model divides the software life cycle into six basic activities, including planning, demand analysis, software design, programming, software testing, and operation and maintenance, they also define a fixed order of top-down and interconnection, like waterfall flow, falling down step by step.

 

 

Advantages:

(1) A checkpoint is provided for the project by phase. After a phase is completed, you only need to pay attention to the subsequent phase.

(2) provides a basic framework for software development, which facilitates the organization and management of personnel during large-scale software development.

Disadvantages:

(1) In the early stage of software development, it is extremely difficult for many applications to make a correct, comprehensive, and complete requirement analysis.

(2) because the development model is linear, users can see the development results only at the end of the entire process, thus increasing the development risk.

(3) Early errors may not be discovered until the development stage, which may cause serious consequences.

Applicability: the waterfall model is driven by documents and is applicable to software projects with clear software requirements. This model is generally applicable to the development of software systems with clear functions, integrity, and no major changes. For example: operating system, database management system and other system software development, its application has certain limitations.

 

2. Rapid Prototyping

The first step of the rapid prototyping model is to build a rapid prototype to realize the interaction between the customer or the future user and the system. the user or the customer evaluates the prototype and further refine the Needs of the software to be developed. By gradually adjusting the prototype to meet the customer's requirements, developers can determine what the customer's real needs are. The second step is to develop the customer's satisfied software products based on the first step.

 

 

Advantages:

(1) The rapid prototyping method can overcome the shortcomings of the waterfall model and reduce the development risks caused by unclear software requirements, with remarkable results.

Disadvantages:

(1) The development technologies and tools used do not necessarily conform to the mainstream development;

(2) adding continuous modifications to the quickly established system structure may lead to low product quality.

(3) the premise for using this model is to have an explicit product prototype, which may limit developers' innovation to a certain extent.

Applicability:

The prototype model is suitable for the development of software systems that cannot precisely define requirements.

 

3. Spiral Model

Spiral Model: This model uses the rapid prototyping method, centering on the evolutionary development mode, and uses the Waterfall Model Method in each project stage. It can be said that it combines the waterfall model with the rapid prototyping model. Each cycle of this model includes four stages: requirement definition, risk analysis, engineering implementation, and review. These four stages are iterated. Each iteration of the software development process leads to another layer of software development.

 

 

 

Advantages:

(1) emphasize strict risk management throughout the process.

(2) emphasize the quality of each development stage.

(3) It emphasizes the scalability and modifier of the prototype, and the evolution of the prototype runs through the entire software life cycle.

(4) It facilitates the project management personnel to adjust management decisions in a timely manner, thus reducing development risks.

Disadvantages:

(1) 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.

(2) using this model requires a wealth of risk assessment experience and expertise, and requires a high level of development team.

 

Applicability: the spiral model is only applicable to large-scale software projects.

Incremental Model

Incremental models do not deliver a complete product that can run at each stage, but deliver a subset of products that meet customer needs. The entire product is divided into several components, and developers deliver the product one by one. When using the incremental model, the first increment is usually the core product that meets basic requirements. After core products are delivered to users for use, they form the next incremental development plan, which includes modifications to core products and release of some new features. This process repeats after each incremental release until the final perfect product is produced.

 

Advantages:

(1) software development can better adapt to changes, and customers can continuously see the developed software to reduce development risks.

Defects:

(1) Since each component is gradually incorporated into the existing software architecture, adding the component must not destroy the structure of the system, which requires the software to have an open architecture.

(2) demand changes are inevitable during the development process. The flexibility of the incremental model makes it better to adapt to this change than the waterfall model and the rapid prototype model, but it is also easy to degrade to the side-to-side modeling, instead, the control of software processes loses integrity.

 

Applicability:

(1) incremental models are suitable for upgrading existing products or developing new versions. (2) incremental models can be used for products with strict requirements on the deadline. (3) familiar with the developed fields and existing prototype systems, and the incremental model is also very suitable.

 

Ii. During the above sorting, we found that each model basically has more or less connection with the "iteration", "increment", and "prototype". Let's talk about the differences and connection between the three.

The prototype is to first create a Sample System (incomplete system) for testing and evaluation, and then optimize it again. If a spiral model is used, a prototype is generated for each iteration.

Next, let's take a look at the concepts of iteration and increment.

Suppose we want to develop four major business functions, A, B, C, and D. Each function requires two weeks of development. for the incremental method, four functions can be divided into two increments. The first increment completes the and B functions, and the second increment completes the C and D functions; iterative development is developed in two iterations. The first iteration completes four basic business functions A, B, C, and D without complex business logic, the second feature gradually refined the complete business logic. after the first month, when incremental development started, both A and B were fully developed, while C and D were not at all. When iterative development was adopted, a, B, c, d. All four basic functions have been completed.

Each iteration basically includes various processes, such as requirements, design, development, and testing. Each iteration is a deliverable prototype. that is to say, the result of iteration is to generate a prototype, then iterate again, and then generate a prototype, knowing that the prototype meets the requirements. Iteration is not a parallel process. In each iteration process, we still need to follow the needs-> Design-> development waterfall process. the length of the iteration cycle is closely related to the project cycle and scale. small projects can be iterated once a week, while large projects can be iterated 2-4 weeks. if the project does not have a good architect, it is difficult to plan the content and objectives of each iteration and verify the delivery and output. therefore, although the iterative model can well meet the needs of user delivery and demand changes, it is indeed a very difficult model to really use.

 

In terms of risk elimination, incremental, iterative, and prototype can effectively control and solve the risks at the early stage. however, the prototype generated by iteration has more advantages in this regard. the iterative model can focus more on the overall aspects of the system. From the very beginning, we can provide a relatively complete framework or prototype. Each iteration in the later stage is a step-by-step refinement of the previous iteration.

 

The incremental model usually requires subsequent design and development after all the software requirement specification documents are provided. at the same time, each increment can also be a small version released independently. because the overall design of the system often has a significant impact on the architecture and scalability of a system, we recommend that you perform incremental operations after the architecture design is complete, this ensures the robustness and scalability of the system.

 

Iii. Summary of the selection of the lifecycle model

1. Use either the waterfall model or the improved Waterfall Model if the initial requirement is clear.

2. A prototype must be used when the user has no experience in using the information system and the requirement analysis personnel have insufficient skills.

3. When there are many uncertainties and many things cannot be planned, try to adopt incremental iteration and spiral models.

4. Try to use the incremental iteration model when the demand is unstable

5. the incremental model can be used when funds and costs cannot be put in place at a time. Software products can be released in multiple versions.

6. You can develop multiple independent functions in parallel at the demand stage, but each function should follow the waterfall model.

7. Development of brand new systems must begin after the overall design is complete.

8. We recommend that you do not use agile or iterative lifecycle models if you have little coding experience.

9. incremental, iterative, and prototype can be used in combination, but each increment or iteration must have a clear delivery criterion.

 

The software survival model described above is designed for some problems and requirements of software development. They both have their own advantages and disadvantages. In the software engineering practice, several models are often combined to form a combination model. Each Software Development Organization should select a software development model suitable for the Organization and change with the specific product features being developed to reduce the disadvantages of the selected model and make full use of its advantages.

 

Preliminary understanding and induction. If there are any deficiencies, please point out!

 

 

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.