High quality programming guide-C/C ++ language Chapter 1 high quality software development path

Source: Internet
Author: User

Chapter 4 high quality software development

Chapter 1 of this book describes the basic concept of "Software Quality" and explains the top ten attributes of software quality. These ten quality attributes are classified into functional and non-functional attributes, including correctness, robustness, and reliability. non-functional attributes include performance, usability, clarity, security, scalability, compatibility, and portability.

1.1 Basic concepts of software quality

In this section, the author puts forward the idea of "zero defect.

"No wrong program is hard to find in the world ". We often say that "zero defect" is just an ideal state. However, when people do one thing, there are many uncertainties, and it is generally impossible to achieve the goal by 100%. Strict requirements have only advantages and no disadvantages, so there is a "zero defect" concept.Without the quality concept of "zero defect", there may be numerous defects.This is the so-called "depending on it, depending on it; depending on it, depending on its bottom; depending on its bottom, there is no income ."

1.2 elaborate on software quality attributes

Correctness, robustness, and reliability

This is the basic requirement of our developers when developing products! The importance of correctness is self-evident. Wrong things will not only have no value, but will lead to losses. Robustness and reliability are the guarantee for the availability of software products. From time to time, software users who crash or are unfriendly will certainly be reluctant to use them.

Performance

Performance usually refers to the "time-space" Efficiency of the software, rather than the running speed of the software.

Especially in the industry I am currently engaged in, because massive data processing is often required, performance is a common concern. To solve the performance problem, the key task is to identify the performance bottleneck. Do not be too busy. For me, the most common problem is the excessive time efficiency and space efficiency. Therefore, it is common to adopt the "space-for-time" approach. (It may be because the hardware cost is reduced, and large memory is relatively easy to obtain ).

Ease of use

Ease of use is most important to the design of software products by the demand personnel (or product designers.

Clarity (readability and maintainability)

Martin flower's refactoring book says, "Any fool can write code that a computer can understand. Only good programmers can write code that is easy to understand ." The importance of readability is visible! Only readable code can be maintained.

Security, scalability, compatibility, and portability. From the perspective of my current industry, compatibility and scalability are more important. Compatible with the same strong software in the same industry and between versions.

Experience shows that if "high quality" is "patched", there is no doubt that it will lead to low productivity and high costs. If some good methods can be developed and built into the development process with high quality and productivity, the development cost can be naturally reduced, which is the goal of software process improvement.

1.3 people focus not only on quality.

Software companies strive to achieve "fish, bear's paw, wine ".

High quality is not only the technical pursuit of software developers, but also the requirement of professional ethics.

There is a complementary relationship between quality and productivity. However,High productivity must be subject to qualified quality.

In a chaotic enterprise, after a group of people finished their products, they were immediately overwhelmed by quality problems.

1.4 basic methods for high-quality software development

The author discusses the basic process of software development from eight aspects, including establishing software process specifications, reusing, separating and administering, optimization and compromise, technical review, testing, quality assurance, and error correction.

The software development process is a long-term complex activity. A set of specifications and processes suitable for the actual situation should be established and a system should be formed, this process is guaranteed by the system.

"Standardization" is the fundamental symbol of the difference between "Regular Army" and "guerrillas.

"Please do not invent the same wheel ." Is a desire for reuse. Reuse helps improve quality, increase productivity, and reduce costs.

Optimization is not a dispensable task, but a necessary task.

There is a causal relationship between process quality and product quality. Generally, "Good process" produces "good products", while "poor process" produces "poor products ". Of course, the separate "Quality assurance" does not guarantee the quality. Technical Review and testing focus on product quality. Technical Review and testing can make up for the deficiencies in quality assurance. The three are complementary quality management methods.

1.5 some common knowledge and Thoughts on software development

In this section, the author answers the following questions from his own perspective:

1. Is there the best programming language?

2. Is programming an art?

3. Should I use more programming skills?

4. Can I change the computer speed or the algorithm speed?

5. Should errors be classified?

He also gave his own views on some wrong ideas.

 

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.