The relationship between the selection of life cycle model and software quality of software development

Source: Internet
Author: User

The software development lifecycle refers to the entire period of time when a software product begins to consider its concept and the delivery of the SOFTWARE PRODUCT. Generally include: concept phase, requirements phase, design phase, implementation phase, test phase, installation phase, and delivery phase. These stages can overlap and can be iterative at execution time. The software development process is the process of transforming the user's requirements into a software product called the software development process. is a series of activities, methods, practices, and modifications that people use to develop and maintain software and related products (project plans, design documents, programming codes, tests, user manuals).

Software quality is "the degree to which the software is consistent with the requirements explicitly and implicitly defined". Specifically, software quality is the degree to which the software complies with clearly described functional and performance requirements, the development standards clearly described in the documentation, and the implied features that all specialized software developers should have.

Software quality is not only in the narrow sense of the software without defects, but also should include:

1. Continuous improvement, improve internal customer and external customer satisfaction;

2. Shorten the product development cycle and market time;

3. Reduce the cost of quality.

4. Key factors that affect software quality

The main factors affecting software quality can be divided into several categories: correctness, robustness, efficiency, completeness (security), usability, risk, understandable, maintainability, flexibility (adaptability), testability, portability, reusable, interoperability.

The software process is the framework of a series of tasks required to achieve a high quality software PRODUCT, and it sets out the steps to complete each task.

1.1. Waterfall model

The waterfall model prescribes the activities of the software life cycle as a series of phases that are connected in a fixed order, such as waterfall water, and finally the SOFTWARE PRODUCT.

Advantages:

A. Emphasizing the stages of development;
B. Emphasis on early planning and demand surveys;
C. Emphasis on product testing.

Disadvantages:

A. Reliance on an early, only demand survey, which cannot accommodate changes in demand;
B. Because it is a single process, the lessons learned in development cannot be fed back to the process used in this product;
C. Risk tends to be exposed later in the development phase, thus losing the opportunity for early correction.

1.2. Rapid Prototyping Model

Rapid prototyping is a fast-growing program that can be run on a computer, and the functionality it can accomplish is often a subset of the functionality that the final product can accomplish. The essence of rapid prototyping is "fast", and developers should build prototypes as quickly as possible to speed up the software development process and save on software development costs. Prototypes are used to inform the real needs of the user, and once the requirements are determined, the prototype system will be discarded.

The rapid prototyping model is proposed to overcome the shortcomings of the waterfall model. It allows users to try out prototype systems and gather feedback from users by quickly building a prototype system that can be run on a computer to get the real needs of the user.

1.3., incremental model

An incremental model is also called a cumulative model, and software products are designed, coded, integrated, and tested as a series of incremental components when developing software using incremental models. Each component is composed of several interacting modules and is capable of accomplishing certain functions. When using an incremental model, the first incremental component often implements the basic requirements of the software and provides the most core functionality.

Advantages:

1. Be able to submit products to the user in a short period of time to complete part of the work.

2. The gradual increase in product functionality allows users ample time to learn and adapt to new products, thereby reducing the impact that a new software may bring to the customer's organization.

Incremental models have the advantage of having a significant return on investment and easier maintenance in the early stages of software development, but requiring the software to have an open structure is inherently difficult when using this model.

1.4. Spiral Model

The basic idea of the Helix model is to use prototypes and other methods to minimize risk. An easy way to understand this model is to think of it as a rapid prototyping model that increases the risk analysis process before each phase.

Helical models are mainly used in large-scale software projects developed in-house. Risk analysis is not feasible if the cost of risk analysis is close to the budget of the entire project. In fact, the larger the project, the greater the risk, so the need for risk analysis is also greater. In addition, only in-house development projects can be easily discontinued if the risk is too large.

The main advantage of the Helix model is that it is risk-driven, but it may also be a weakness. Unless the software developer has a wealth of experience in risk assessment and expertise in this area, there will be a real wind: when the project is actually going into a disaster, the developer may also think everything is fine.

The risk-driven helix model is suitable for large-scale software projects that are developed in-house, but only if the developer has the experience and expertise to risk analysis and risk-removal, this model will be successful.

1.5. Component Assembly Model

The object-oriented technology provides a technical framework for the software engineering based on the process model of component. The object-oriented model emphasizes the creation of classes, the encapsulated data of classes, and the algorithms that manipulate the data. In general, the object-oriented class can be reused in different applications and in the architecture of a computer-based system through proper design and implementation. The component-based development model incorporates many features of the Helix model, which is inherently evolutionary and requires iterative methods of software creation. Component-based development models, however, use pre-packaged software artifacts (sometimes as classes) to construct applications.

Disadvantages:

1, excessive reliance on the components, the quality of the component library affects the quality of products.

Advantages:

1, the component can be reused. Improve the development efficiency.

2, the use of object-oriented technology.

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.