Software Development Quality Management Hierarchical Model

Source: Internet
Author: User
The hierarchical model of software development quality management-Linux general technology-Linux programming and kernel information. The following is a detailed description. Author: Lu linsheng
Abstract:
 
In this paper, the layers of software development quality management are preliminarily divided, a hierarchical model of software development quality management is formed, and the connotation of each layer in the model is briefly described.

Keywords:

Quality Management, software development, and layers.

Body:

Overview

Quality: the extent to which a set of inherent features meet the requirements refers to the sum of features and features that the product or service meets the requirements or potential needs. It includes both tangible products and intangible products. It includes both internal features of the product and external features of the product. This includes all the applicability and conformances of the product.

Software Quality: The sum of features and features related to the ability of a software product to meet clear or implicit requirements. There are four meanings: 1. the whole set of features that can meet the given needs; 2. The degree of combination of desired attributes; 3. The extent to which the customer or user deems that the customer can meet their overall expectations; 4. The combined features of the software determine the extent to which the software will meet the customer's expectations in use.

From the perspective that users are most interested in, software quality can be viewed from three different perspectives: how to use the software, how the use effect, and how the software performance; from the perspective of the software development team, we should not only produce software that meets the quality requirements, but also be interested in the quality of intermediate products, I am also interested in how to use the least resources and the fastest progress to produce the best quality products. From the perspective of software maintainers, I am very interested in software maintenance; for the enterprise's management, the focus is on the overall and long-term benefits, that is to say, good quality software can generally help enterprises expand the market; on the contrary, poor quality software will generally cause the enterprise market to shrink.

Software Quality Characteristics: According to the GB/T16260-1996 (idt ISO/IEC9126: 1991) information technology software product evaluation quality characteristics and user guide the software quality characteristics include functionality, reliability, ease of use, efficiency, maintainability, portability and other six aspects, each aspect includes several sub-features:

Functionality: adaptability, accuracy, interoperability, compliance, and security;

Reliability: Maturity, fault tolerance, and recoverability;

Ease of use: easy to understand, easy to learn, and easy to operate;

Efficiency: time and resource features;

Maintainability: easy to analyze, easy to change, stable, and easy to test;

Portability: adaptability, ease of installation, compliance, and ease of replacement;

Quality management: in terms of quality, directing and controlling the coordination activities of the Organization refers to the management of all the functions and activities necessary to determine and achieve quality, its management functions mainly include formulating quality policies and objectives as well as quality planning, quality control, quality assurance and quality improvement.

Software development quality management is to develop software products that meet the quality requirements and run through quality management throughout the software development survival process.
The quality management layers of software development are classified as follows:

1. Technical Level (data, programming, and documentation)

2. method system level (measures, projects, and processes)

3. Social Factors (quality environment, technical standards, business standards, and personnel)

The hierarchical model of software development quality management is as follows:




(400) {this. resized = true; this. width = 400; this. alt = 'click here to open new window';} "onmouseover =" if (this. resized) this. style. cursor = 'hand'; "onclick =" window. open ('HTTP: // www.yesky.com/image20010518/294741.gif'); ">
Technical Level

1. Data quality management level

In most cases, the ultimate goal of a software system is to complete various static or dynamic processing or management tasks for all types of data (information) that users are concerned, create the desired and extra value for users. Therefore, data quality is the most important concern of users. Data quality also reflects the quality of software system products. Data quality is the main task that must be considered for quality control and quality assurance in data extraction, data conversion, data integration, data warehouse, management information system development, and other projects. Data quality management can be divided into three layers: manual comparison, program comparison, and statistical analysis.

1.1 manual comparison

In order to check the correctness of the data, the tester opens the relevant database and directly compares the data before and after the conversion, finds the inconsistency, and notifies the relevant personnel to correct the data.

1.2 program comparison

To automatically check the data quality and perform better test and comparison, programmers write query and comparison programs for testers. The tester uses this program to compare the data before and after conversion, and notifies the relevant personnel to correct the data.

1.3 statistical analysis

In order to comprehensively check the quality of data, statistical analysis is required, this module quantitatively analyzes the correctness of data conversion from different angles and views of New and Old data, finds the inconsistency of a statistical result, and notifies relevant personnel to correct the data.

2. programming quality management level

Software Systems rely on "coding". To ensure the quality of software products, we must ensure the quality of software program code. To improve programming quality, check the logic, attributes, object naming standards, language and code layout of the source code. code compilation, linking, integration, and construction must be verified and confirmed. Programming quality management layers can be divided into black box testing, gray box testing, white box testing, compilation check, programming specifications, programming logic, programming optimization.

2.1 black box testing

Black box testing checks whether the system meets requirements, also known as functional testing or data-driven testing. It is a function of a known product. It is tested to check whether each function can be used normally. During the test, the program is regarded as an unopened black basin. When the internal structure and internal characteristics of the program are completely ignored, the tester tests the program interface, it only checks whether the functions of the program are normally used according to the requirements of the specification, whether the program can properly receive input data and generate correct output information, and maintain external information (such as databases or files) integrity.

2.2 gray box test

The gray-box test is between the white box and the Black Box. It focuses on the correctness of the output for the input and the internal performance. However, this kind of attention is not as detailed and complete as the white box, it is only through some characterization phenomena, events, signs to determine the internal running status, sometimes the output is correct, but the internal is actually wrong, this situation is very many, if you use a white box test every time, the efficiency will be very low. Therefore, you need to use such a gray box method.

2.3 white box testing

A white-box test is also called a structure test or a logic-driven test. It tests the program according to the internal structure of the program when you know the internal working process of the product, check whether each path in the program works properly as required, regardless of its function. The main white box testing methods include logic-driven and baseline testing.

2.4 compile check

Use the compilation function or special program provided by the development tool to check the software source code, analyze and find problems with the source code.

2.5 programming specifications

Use the manual source code check to determine whether the source code meets the relevant programming specifications developed by the enterprise. Develop programming specifications to form a development convention and rules within the enterprise, which is conducive to unified overall style, code readability, maintainability and scalability.

2.6 programming logic

Whether or not the source code has been fully considered. There are no conflicts or omissions. FAQs: if you forget to define a variable, the variable will be used directly when no value is assigned. The input and output data types are inconsistent with the format specifiers used. If you do not pay attention to the value range of the data, the array may be out of bounds or data overflow occurs, the organization mode of the Input-hour group does not conform to the requirements, the loop statement may lead to an endless loop, the condition statement only takes into account the situation, without considering exceptions, or reading files or data in the database. exception, and so on.

2.7 programming optimization

Determine whether the overall performance and manageability of the source code can be further improved through manual or software checks. Overall performance, such as memory management, database organization and content, non-database information, task concurrency, network multi-user operations, key algorithms, and network, impact of hardware and other system interfaces on performance, etc; operation manageability, such as easy control of system operation, monitoring of system status, error handling, and simplicity of Inter-module communication.

3. Document quality management level

Documents (including models) are intermediate results in the software development process. These intermediate results are related to the accuracy and integrity of software requirements, the rationality of the design, and play a decisive role in the final results of the software system. Document Quality Management Layers include document specifications, Document Syntax, document semantics, document logic, document aesthetics, and document optimization.

3.1 document specifications

The document results comply with the document template specifications developed by the enterprise or industry. Enterprises and even industries should formulate unified document specifications to form a document Convention and rules, so as to unify the document content and style.

3.2 Document Syntax

The results of this document correctly use common tools and terminologies and comply with the technical standards of relevant industries. All languages have their syntax, and all qualified documents (including models) should have correct syntax. incorrect syntax will affect the quality of Specification Description and visualization.

3.3 document Semantics

The results of this document are correctly and unambiguous. All qualified documents (including models) represent the semantics it expects to represent and should be consistent when representing these semantics.

3.4 document Logic

The results of this document are well-considered and non-contradictory, meeting customers' key requirements, especially in line with the Business Standards of relevant industries.

3.5 document Aesthetics

The results of the document are the best expressions, and texts and charts are balanced and complete. It is the beauty of the pursuit of balance. Each component should be not small, but should be interpreted, changeable, and there are too many elements in tables in different times.

3.6 result Optimization

Check and determine whether there is room for improvement in the document results (such as project plans, requirement specifications, and design schemes) to achieve the best possible solution. There can be many different solutions for any design, and a best solution can be selected through "solution optimization.

When designing a design, a designer always chooses what he thinks is the best solution, and there is a certain degree of "optimization ", therefore, he can say that his product is "optimized. In any sense, optimization has a common feature, that is, relativity. This relativity has two meanings: first, optimization is relative to a certain goal, and the results of different optimization objectives are different. On the other hand, in most cases, the optimization results are not optimal and can only be relatively good.

Method System Level

1. measure quality management level

Measures taken by enterprises to improve software quality. What determines success or failure is not a goal, but a measure. Any good rules, regulations, or plans can be implemented only after specific measures are taken. Measures include quality inspection, quality assurance, prevention of nonconforming products, and perfection.

1.1 Quality Inspection

To ensure quality, perform a temporary final check and then eliminate defective products. Software testing is the specific implementation of software quality inspection. Organizing software testing effectively into the production process of software is the main content of software quality control planning.

1.2 Quality Assurance

Quality objectives are still achieved through optimization and stabilization of the production process by the production department or enterprise. From the early stage of the software industry to the current large-scale software development process, Software Quality Assurance has become an integral part of development.

1.3 prevent nonconforming products

The entire software project is a requirement analysis and software design error and defect, accounting for about 64% of software errors, and only 36% of program code errors. Software errors have an accumulation and amplification effect as the process progresses. Therefore, errors should be eliminated as soon as possible. Otherwise, "the difference is a thousand miles away ". Therefore, in the early stage of the software development life cycle, unqualified products are prevented by reviewing and controlling key process results.

1.4 perfect

Enterprises at this level have an internal quality culture, and all aspects of work in this atmosphere will help improve the quality. Every employee is aware of the importance of quality to the success of the company, and is seeking a new way to improve the quality. They are all striving for perfection. At the same time, the company consistently faces external customers, meets customer needs through superior design quality, and forms an optimized management process from suppliers to customers.

2. Project Management Quality Level

Software development tasks are generally completed in the form of projects. The quality of project management includes organizing resources, establishing teams, setting targets, determining scopes, determining priorities, managing risks, and establishing communication mechanisms, it consists of general terms, general processes, a single method, benchmark comparison, and continuous improvement.

Dr. kozna's definition of project success must not only meet the three objectives of traditional project time, cost and performance, but also meet the quality standards defined by customers or users, it must also meet the minimum or agreed scope changes, the corporate culture or values that do not interfere with the organization, and the daily work processes of the Organization.

2.1 General Terms

Enterprises understand the importance of project management, and need to learn more about basic project management knowledge and related languages and terms. Popularize the basic knowledge of project management within the enterprise, and communicate with each other in terms of the industry, so that you can understand the problem correctly.

2.2 General Process

Enterprises realize that they need to define and establish a general process so that after a project is successful, they can reuse the process and its successful experience in many other projects. At this level, it also includes understanding the application and support of the project management principles for other methods used by the company.

2.3 single method

Enterprises try to use a single method for development, rather than using multiple methods, to achieve synergy and control, and realize the synergy effect produced by integrating the company's methods into a single method, its core is project management. Compared with using multiple methods, the synergy effect produced by using only one method makes program control easier.

2.4 benchmark comparison

Continuously compare the management practices of the enterprise with the leading enterprises in the industry to obtain information to help them improve. Enterprises realize that process improvement is necessary to maintain a competitive advantage. The benchmark comparison must be performed consecutively. The company must determine who is the benchmark and what needs to be compared.

2.5 Continuous Improvement

Quality is "no best, only better ". Enterprises continuously assess the information obtained from the benchmark comparison when necessary and implement the changes necessary for the improvement process. In ISO9000: 2000, continuous improvement is not a separate process or quality system element, but a method for managing the quality system.

The most important problem for enterprises is that "Tomorrow is better than today". Enterprises will never meet the requirements, never end up, never end up working hard, pursue progress and continuous improvement, and strive for the future.

3. Process Quality Management Level

GB/T8566-2001 (idt ISO/IEC12207) Information technology-software life cycle process divided into three types of software life cycle process, that is, the basic life cycle process, supporting the life cycle process, and the organizational life cycle process.

For quality, we emphasize the importance of the process. By ensuring the quality of work in each link, we can ensure the final quality, rather than identifying defects through the final test. Their quality concepts not only cover products, but also the entire operation process of enterprises, throughout all aspects of the industrial chain. Ensuring the production of high-quality software products is to follow a set of quality principles of the software development process. At present, the software process improvement Mainly integrates cmme Based on the Capability Maturity Model. Its layers are divided into initial level, repeatable level, defined level, Managed Level, and optimization level.

3.1 initial level

The software process of an enterprise is disordered or even chaotic. Almost no process is properly defined. Project success often depends on personal skills and experience.

3.2 repeatable

A basic project management process specification has been established. The project manager can track costs, progress, and product functions. The project can repeat previous successes. The process capability of an enterprise can be summarized as "disciplined ".

3.3 Defined Level

The management and development processes have been documented and integrated into the enterprise's standard software processes. All projects can establish process Specifications suitable for the project by reducing the enterprise standard process. This process capability can be summarized as "standard" and "consistent". It is based on the enterprise's common understanding of activities, roles, and responsibilities in the software process.

3.4 Managed Level

Have a quantitative understanding and control of software processes and products, and have a dedicated database system to collect and analyze data. This process capability can be summarized into "quantitative" and "predictable ".

3.5 optimization level

It can effectively identify the advantages and weaknesses of the enterprise process, discover and adopt the best software engineering practices, and prevent defects in the process and product in advance. The entire enterprise emphasizes continuous improvement of process capabilities.

Social factors

1. Enterprise Quality Environment level

The enterprise quality environment is the management of the Quality Environment for creation and management, including quality planning, resource organization, and provision of related tools, it can be divided into quality image, quality system, quality strategy, quality culture, corporate culture, and quality awareness of the whole society.

1.1 quality image

The good image of an enterprise is inseparable from the high quality of its products and services. Quality, reputation, brand, and service constitute a solid foundation for the overall image of the enterprise. The quality image is the core of the enterprise image. Creating a good quality image is an important means for enterprises to improve their core competitiveness.

1.2 Quality System

The company has established a sound quality system, including the ISO9001 quality management system, quality-related supporting management, education, incentive system improvement, and implementation of the quality system.

Some enterprises or departments have formulated too many rules and regulations, but they are all in the form and are not implemented in the end. Good rules and regulations and great plans have become a pile of waste paper. For enterprises, the most important thing is not how many systems and plans are made, but how many things are done.

If enterprises emphasize quality, they must check quality. If they do not check quality, they do not pay attention to quality. If there is a system, they must perform well.

1.3 Quality Strategy

People-oriented in enterprise management, focusing on improving quality, all activities focus on quality behaviors, and improve quality management to a strategic level. Establish quality policies and objectives.

1.4 quality culture

In the long-term quality management, enterprises have formed management ideas and spiritual concepts with their own characteristics. At the same time, they are also a common value and belief that enterprise employees consciously abide by to achieve the quality principles and objectives.

1.5 corporate culture

Each department in an enterprise is at least the enterprise value, business practices, and cultural phenomena shared by senior managers. It is based on the enterprise's value system and reflects the group ideology of enterprise employees.

1.6 Social Quality Awareness

Product quality is not entirely dependent on the enterprise itself. The social environment and the maturity of customers play an important role in product quality. The vicious competition environment caused by the customer's blind pressure on low prices and compression progress seriously affects the product quality.

2. Standard Level

There are three levels of international competition: the first level is price and quality competition, the second level is patent technology competition, and the third level is standard and institutional competition. Who has mastered the use of standards and who has mastered the right to establish standards can seize the lead. First-class enterprises sell standard, second-class enterprises sell brands, third-class enterprises sell products, and fourth-class enterprises sell enterprises. Chinese software enterprises must have a place in the standard field to adapt to higher-level competition.

Standards mainly include technical and business standards (of course, other categories can also be used, such as basic standards, product standards, quality standards, management standards, work standards, security standards, terminology standards, etc ). The standards for technical matters that need to be coordinated and unified in the field of standardization are referred to as technical standards. Technical standards include two aspects: 1. As a software development enterprise's software industry technical standards, including knowledge system guidelines, process standards, modeling standards, quality management standards, program language standards, and database standards; second, the industrial technical standards of software development service objects, such as security and confidentiality standards and technical performance standards. Business standards refer to the business process standards and business data standards set by the Organization or industry where the software development service object is located.

The use of unified technologies and business standards is one of the factors that can make significant and significant contributions to quality. This helps reduce ineffective discussions and facilitate compatibility and connection between different products.

Standards must keep pace with the times. Therefore, standards are dynamic information.

2.1 Standard scope of action

Project standards: a set of standards agreed upon by the project team at the early stage of the software development cycle;

Enterprise Standards: a set of standards set by the enterprise to regulate the entire enterprise architecture and all enterprise-level delivery products;

Local standards: the standards set by the local-level administrative agencies (provinces, states, or the federated Republic) of a country are referred to as local standards. It is generally executed by local enterprises and units. It is also an industry where different business policies, business data standards, and business process standards may exist in each region;

Industry Standard (Ministerial standard): refers to the technical requirements that need to be unified within a certain national industry without national standards. Business data standards and business process standards that must be observed by the industry in China. The standard numbers are generally prefixed with the first letter of the industry name, such as environmental HJ, power DL, and Public Security GA;

National standards: unified technical requirements nationwide. The standard stipulated by the state mainly refers to data standards and inter-industry interface standards. The standard numbers are generally starting with GB, GB/T, and GB/Z.

International standards: business standards such as finance, telecommunications, finance, and trade that must be observed by multiple countries or regions. International standards are generally formulated by international standardization organizations, such as ISO, ANSI, IEEE, etc. They are also standard numbers, such as ISO9001.

2.2 Standard forcible level

Mandatory standards: the standards for ensuring human health, personal and property security and the mandatory standards stipulated by laws and administrative regulations are mandatory standards, and other standards are recommended standards; for example, if the serial number starts with a letter of GB, HJ, DL, or GA, the general business data standard is mandatory.

Recommendation criteria: the recommendation criteria are also known as non-mandatory or voluntary standards. It refers to a kind of standards voluntarily adopted through economic means or market adjustment in terms of production, exchange, and use. For example, GB/T, HJ/T, DL/T, and GA/T, general business process standards, work specifications, or guidelines are recommended standards.

Guiding standards: unified provisions on standardization principles and specific practices are referred to as guiding standards. For example, Product Model preparation rules and various standard compilation guidelines. Such as GB/Z, HJ/Z, DL/Z, and GA/Z numbering standards.

2.3 common technical standards for software development

Knowledge System: software engineering knowledge system guide SWEBOK2004, project management knowledge system guide PMBOK2000 (the latest is PMBOK2004), organization management standards, and so on;

Process standards: National Standards for cmme, PSP, TSP, RUP, and software engineering standards (Development Process ideas such as AP, XP, and ASD do not seem to be referred to as Standards)

Modeling standards: UML, software engineering specifications national standards;

Quality Management Standards: ISO9001: 2000, TQC, 6σ;

Programming Language Standards: Java, C ++, PB, and programming specifications;

Database standards: Oracle database backend specifications.

3. personnel quality management level

Personnel quality is the foundation of all work quality. To improve the quality of work, we must be people-oriented. The fundamental problem is to improve the quality of people. Personnel quality is personnel quality, which can be divided into individual quality, team quality, organizational quality, industry quality, and national quality.

3.1 individual qualities

Software development has a wide range of personal qualities, including multiple aspects, including learning ability, summarizing ability, learning experience, enterprising spirit, social ability, responsibility, self-control, achievement motivation, flexibility, creative potential, management potential, work attitude, honest level, etc. The key is to give full play to your own strengths based on your own characteristics. At the same time, you must have excellent and basic skills to learn from your own talents. Everyone will pay attention to this learning when working as a programmer. However, when a programmer is promoted to a designer, analyst, or project manager, there are often some knowledge and skills required to learn a new role, I thought everything would happen when I learned something.

3.2 Team Quality

The scope of the quality of the software development team involves many knowledge, experience, and skills in team management. The key is to be able to allocate work tasks reasonably according to the characteristics of members, plan work interfaces of various staff members, and encourage each other to complement each other. The improvement of team quality lies in team building. Team building activities include management to improve the team's operation level, as well as specialized and important individual measures. Team spirit is the team spirit. Therefore, you must ask whether a team has a team spirit or not.

The quality of the software development team can be improved according to requirements of TSP, RUP, SWEBOK, PMBOK, cmme, and ISO9001, you can also learn from development experiences such as AP, XP, and ASD (neither of them must be completely copied ).

3.3 organizational quality

The organizational quality of software development involves many knowledge, experience, and skills in organization management. Organizations should establish a learning-type organization to achieve a shared vision and continuously improve the Organization. Senior leaders of enterprise organizations do not have to need so much professional software development knowledge. The most important thing is to realize that people are the core of all activities and the prerequisite for success of all activities, therefore, we need to respect professionals for their role. According to Peter's principle, most of the leaders were promoted to a position that he was not competent in some aspects, so some of the leaders who were promoted were eager to prove that he was proficient in everything. The most important thing about leadership is to select people, use people, motivate people, and improve people so that everyone can play their due role.

3.4 industry quality

Industry quality has two meanings: one is the software industry of a software development enterprise and the other is the industry where the software development service object is located. Industry quality can be viewed from several aspects, such as the degree of perfection of industrial institutions, the degree of activity of industry academics, the degree of completeness, applicability, and advanced of industrial standards, the promotion intensity and degree of industrial standards and specifications, the size and overall level of industrial practitioners, and the amount of industrial foreign trade exports. For example, why does India's foreign trade export amount of software leave China far behind? Why Can India have such a huge blue-collar software team? What are the attitudes of Indian software companies towards cmme and Chinese software enterprises towards cmme? Why is one-sided understanding of AP, XP, and "revolutionizing Software Engineering" on a large market in China?

(Note: "Software Process" emphasizes the importance of "personal qualities" from another perspective. It actually shows the balance between organizational standardization and creative characteristics, as software technology itself said, "software technology is not incompatible with software engineering or computer science. Compared with science and engineering, software technology is another completely different doctrine, but it can coexist well with and benefit from it, it integrates art, science, and engineering ". If the role of "personal qualities" is emphasized, and the role of workshop technology is emphasized, and the rejection of team development and use of effective analysis of design methods and processes is another extreme. The software process narrowly defines software defects as "errors made by programmers", so the conclusion is "What really determines the success or failure of the project, it is the skill, knowledge, and experience of individual programmers." In fact, if you make a mistake in demand, analysis, or design, or make a mistake in project management, the impact of the defects is much greater than that of "errors made by programmers. In addition, the conditions for programmers to talk directly with users at any time are also difficult for most software development projects .)

3.5 National Quality

Compared with other countries, the quality of China's citizens is higher in some places, and in some places it is insufficient. We must carry forward our advantages and learn the advantages of others to make up for our shortcomings. Why have you been looked down upon and attacked in the past? What is the role of shouting slogans when I make a few complaints? We should look for the cause from both ourselves and others. The key is to continuously improve our overall quality and national strength. If we look at how enterprises in Europe, America, Japan and other countries perform quality management, it is not difficult to understand why their product quality is so good, even India has a lot to learn about in terms of software quality management.

Conclusion

People are the foundation of all human activities. To improve the quality of software development, we must first improve the quality of people. Through the construction and implementation of standardization and standardization, the quality of the development process, project management quality, and quality measures are continuously improved within the enterprise by creating a good social and enterprise quality environment. Make good analysis and design plans for specific projects, compile system programs with excellent quality, ensure the quality of data (information) and management, and provide satisfactory products and services for customers and society.
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.