Full-Process Quality Assurance for Embedded System Software

Source: Internet
Author: User
Author: Chao Source: World of Electronic Products
 

Quality is the life of products

Nowadays, with the development of software and hardware technology, embedded systems are widely used in aerospace, Defense, Military, electronic communication and other industries, and software is becoming more and more complex. The application characteristics of these fields determine that embedded systems are usually highly secure and mission-critical systems, the tiny flaws in the software may seriously threaten the safety of life and the country, and the huge loss of property in astronomical figures. This makes it crucial to ensure the quality and reliability of embedded software. In these fields, product quality has always been highly valued, and there is a tradition of "quality as the product life. In this way, senior management and developers in the relevant industry have gradually paid more and more attention to the quality of software. In recent years, a sound Software Testing System has been established in the Organization; in terms of development and testing methods, a Chinese software process maturity evaluation system gjb5000 has been established; in terms of automation tools, invested a lot of money and personnel in the development, purchase and construction of testing equipment. It should be said that software, as one of the main components of embedded products, attaches importance to its quality as a consensus of the relevant industry.

IBM Rational has accumulated a wealth of methods and experience in software engineering and quality assurance over the years. This article analyzes possible problems in the work of some embedded development institutions based on some understanding of software quality assurance, in addition, the author puts forward the idea and specific implementation methods of Full-process quality management with the focus of RUP, and puts forward the process improvement methods of different units. in a gradual way, starting from a simple work, gradually improve the software quality management level of the organization.

Define quality

Defining a common understanding of quality is an important first step for any organization. Software development organizations often operate according to an inaccurate and general quality concept.

In the unified IBM rational process, the quality is defined as follows:

  • Meets or exceeds a group of identified requirements;
  • Use approved evaluation methods and standards for evaluation;
  • Use the identified process for production.

In this definition, we first look at the requirements. IBM Rational's software quality is defined in five aspects: usability, reliability, performance, support, and functionality.

Quality assurance is ultimately to provide customers with higher quality products to better meet their needs. On the other hand, this quality definition clearly states that quality is more reflected in the entire process of software development and a standard evaluation method.

The quality of the software development process refers to the implementation and compliance of acceptable processes to generate artifacts, which is embodied in three layers:

  • The product itself and the quality of parts used to produce and assemble software products;
  • Standards, processes, automation, and efficiency of the basic team collaboration platform in the software development process, and commitment to quality in each process;
  • The evaluation method of software product acceptance should be widely recognized and accepted by the industry, and the quality evaluation standards should be constructed.

The process quality of a software production enterprise can generally be evaluated by its software process maturity level.

Full-Process Quality Assurance of RUP

Rational Unified Process (RUP) is a software engineering process that can be used through the Web. As a de facto standard for the software industry, it answers the following question: Who (role) should be at what time (detailed workflow) throughout the entire software development process) what is done (task) And what development results (artifacts) are generated to achieve the development goal of the entire project. Establishing an effective working process can improve the team's production efficiency, control risks in the development process, ensure the software development progress and improve the software product quality. At the same time, by providing comprehensive guidance, templates and examples for all important development activities, the entire software development team can effectively share successful experiences, improve team efficiency, and ultimately ensure the quality of software development.

Whole Process Quality Assurance Concept

The entire software development process is divided into nine core workflows, namely business modeling, demand management, Analytical Design, Implementation, testing, deployment, configuration and change management, and project management and environment. Each core workflow consists of multiple detailed workflows. RUP uses roles, tasks, and as input/output artifacts to organize each detailed workflow to achieve the integration of insiders, resources, and processes in the software development organization. Through the establishment of a complete software development process, the product quality is shared by the roles represented by each member of the project team, which is embodied in: each workflow sets the corresponding work guide and work checkpoints, and each role undertakes the corresponding quality tasks.

In RUP, the entire software development process 1 shows that it produces output artifacts that meet quality requirements through the software development role and standardized software development activities based on specified artifacts.

 

Use the correct process and platform to achieve quality

IBM provides a complete solution to help the development team build higher quality software. This open and standard platform includes many IBM software tools, including the IBM Rational Unified Process. Quality is emphasized at each stage and process of development, helping teams identify early problems in the development lifecycle. The following sections describe how tools in the RUP and IBM software development platform support quality practices in each workflow.

To reduce repeated descriptions, the functions of related tools are briefly described. All of the following tools can be integrated into the open eclipse platform as plug-ins to provide developers with an integrated environment:

  • IBM rational system developer is an integrated environment for system modeling and development;
  • IBM Rational testmanager is used to plan, manage, and report any test work requirements;
  • IBM Rational manual tester is used to improve the efficiency of manual testing;
  • IBM Rational test realtime

Cross-platform solution for embedded system static measurement, code rule check, unit test, coverage rate analysis, memory analysis, performance analysis, code tracking, thread analysis, and message-based distributed system test.

To facilitate team communication, collaboration, and collaboration, IBM Rational also provides a variety of additional solution options.

Analysis

According to statistics, 80% of customer dissatisfaction problems can be traced back to poor understanding of requirements. For any embedded development project, whether it is new system development or legacy system update integration, the quality begins with analyzing the business to ensure that the system requirements clearly and accurately reflect the business and customer needs.

We can place the tested system in the environment where it will run, adopt a modeling method, and manage the demand documents in an entry-based manner based on the optimal requirements, implement two-way tracking from requirement, analysis, design, implementation, to testing to track defects found in testing to various levels, and analyze the impact scope.

Design

In the design, the main quality is focused on the architecture, which is the "soul" of the software ". A low-quality architecture can cause a wide range of quality problems, including (software) vulnerabilities, lack of upgrades, and difficulty in fixing defects. These problems become increasingly difficult to solve as application software projects continue to develop, and the cost of defect rectification increases exponentially as application software goes from design to development, testing and deployment. If software developers can effectively discover, isolate, and address structural deficiencies during design and development, this work will benefit from the entire project.

Development

On average, developers generate 100 to 150 errors in every thousand lines of code they write. Of course, the number varies with the number of developers and projects. Even if there is only one small piece of code, the 10% error is also very serious.

RUP advocates developers to actively test and analyze data. Although unit testing and operational analysis have become more mainstream, many managers still have the misunderstanding that these processes add unnecessary time to the schedule. In fact, if you do not adopt these measures, the development schedule will usually be the same or more extended, because after quality assurance or problems are discovered by the customer, it takes more time for developers to debug code during the lifecycle.

Test

Management System-level functions and performance tests are a major part of continuous quality assurance. A development organization should neither emphasize too much nor reduce the importance of system testing. As mentioned above, quality assurance is not only the responsibility of the test team, but also the only field of quality assurance. Some tests can and should be run by developers. In some cases, they can be run by architects. A lot of quality assurance work is constructed by other development roles under the principle of RUP.

Support Team responsibilities for quality assurance

Quality is the responsibility of everyone in the development team, but it is also the responsibility of the team as a whole. In an iteration process, each iteration ensures continuous re-evaluation of the quality of each workpiece. In this way, the submission of products with higher quality can often be ensured in an iteration mode. Effective Software Configuration Management and change management are basic tools to ensure quality. They help organizations ensure that software is repeatable and reliable at each build, and ensure that defects and change requests are properly managed.

Steps for Improving the Quality Process

When we consider what we need to build mission-critical and high-security system software that involves process quality improvement, we often think of a complex process. In fact, software process quality improvement, such as software development, can be an iterative process. You don't need to do everything in one step. Even a small change, including adjusting your organization's views on quality, will produce a tangible improvement.

We point out the two reference improvement routes, progressive (or essentially) and evolutionary (reactive ). In the progressive mode, the dependency between workflows is considered to improve the basic process first, and then further improve the existing improvement basis. The evolution is mostly due to problems and bottlenecks perceived at work, and reactive improvements are made based on the surface of the problem. After improvement, we can find new problems. Of course, we are also trying to find an improvement method that can take into account the dependencies between workflows and quickly display the improvement effect.

We can divide the improvement of quality assurance into the following aspects: configuration Management and change management, static analysis and unit testing, integration testing and system testing, iterative development and continuous testing, whole process quality, organization-level quality system, Architecture Analysis, demand management, and Project Management. Progressive and evolutionary implementation methods 2 and 3 are shown.

High Benefits from high-quality software

The quality assurance system for the entire process is always lower than the cost of ignoring quality problems. In fact, if you use it correctly, there is basically no cost to improve the product quality.

Internationally, with the continuous development of Software Quality Assurance Theory and Application Research, the focus of software quality assurance has also gone through the following development processes:

  • Before January 1, 1970, a specific (Ad-Hoc) test was used, which was not differentiated from debugging;
  • From the end of 1970 to the middle of 1980, basic testing theory and practical technology were formed. Software Testing was the main means and function of software quality assurance (SQA;
  • From the end of the 1980 s to the middle of the 1990s S, testing tools were constantly increasing in quality and quantity. Testing and SQA were separated, focusing on the impact of tools on testing efficiency;
  • From the late 1990 s to the present, we have paid more attention to the importance of effective process management for software testing, and regarded software engineering as the basis for software testing, or formed various independent test models and Test Capability Maturity models.

Nowadays, high-quality software must be jointly created by a complete software development process and an integrated software development platform. The IBM Rational software development platform is based on a variety of international standards and open platforms, providing a good development speed and quality assurance for the development and production of embedded system software products.

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.