Experience with a Software Quality Management Process

R.A. Shaw, P. Greenfield, R.L. White
ST ScI

Session ID: T8.01   Type: oral

Abstract:

The importance of computers and software to the science of astronomy has grown dramatically during the past few decades. Yet the specialized needs of astronomers are still in large measure addressed with custom-built software systems and/or applications. Generally, this software must be built and maintained within rather tight (by industry standards) resource constraints. It is therefore critical to make use of the best methods of software engineering in order to minimize the risks associated with software development.

There is compelling evidence that a studied, methodical emphasis on software quality is the best means to contain development costs and minimize schedule delays. As a result, a number of software companies have over the last two decades instituted technical review processes. The benefits of such a process flow from a few key tenets of the software development process. These include the observation that all software developers are blind to certain kinds of defects in their own code, and that other developers--with different blind spots--can discover them with only modest effort. Secondly, the sooner software defects are discovered, the cheaper and simpler they are to fix. Thirdly, there is no single correct method for assuring defect-free software, but it does take a serious commitment on the part of management for a software quality process to succeed.

In this paper we review our experience in the Science Software Group at ST ScI with design reviews and source code inspections, which were formalized and implemented during the past year. While objective, quantitative data on quality control processes are in general difficult to come by, we have endeavored to keep detailed records of the results of the reviews, as well as of the process itself, in order to assess their efficacy. This quality management process has been very successful at detecting and eliminating software defects early in the development process, and has unquestionably resulted in higher quality software products. The process itself has also been generally well received by the programming staff. As a result, a number of sociological benefits have also been realized, including a transfer of coding expertise (usually) from the more experienced to the less experienced members of the programming group, a broadening of knowledge within the group about the software system as a whole, and a greater sense of teamwork and shared responsibility for the software products.





Patrick P. Murphy
Tue Sep 10 22:24:55 EDT 1996