IBM Skip to main content
  Home     Products & services     Support & downloads     My account  
  Select a country  
Journals Home  
  Systems Journal  
  ·  Current Issue  
  ·  Recent Issues  
  ·  Papers in Progress  
  ·  Search/Index  
  ·  Orders  
  ·  Description  
  ·  Author's Guide  
Journal of Research
and Development
  Staff  
  Contact Us  
Systems Journal  
Volume 33, Number 1, 1994
Software Quality
 Table of contents: arrowHTML      DOI: 10.1147/sj.331.0002 arrowCopyright info
   

Preface

The acceptance of software, from the mundane to the complex, depends fundamentally on the degree of quality evidenced by that software. Low-quality software is a burden to users and is eventually either discarded or, in the absence of alternatives, tolerated. High-quality software is accepted and promoted. Knowledge about software quality and the ability to practice it have been progressing slowly but inexorably throughout the industry.

This issue presents a broad view of progress in software quality, with a focus on IBM's worldwide efforts and results. There are eleven contributions, including an overview on software quality and discussions of process, methods, tools, case histories, management, and challenges for the future. We are indebted to A. J. Montenegro of IBM Canada Ltd. in Toronto, Ontario, for his noteworthy efforts in soliciting and reviewing the contributions and in planning and organizing the issue.

The first contribution is a tutorial by Kan, Basili, and Shapiro on software quality from the perspective of total quality management (TQM). Definitions are given, a brief history is shown, TQM and its philosophy are presented, and the specifics of TQM as applied to software development are discussed. Remaining challenges are offered as areas for further study and practice. (Reprint Order No. G321-5530)

Fred Brooks and his work on mythology versus reality in software development have become part of our collective understanding of the software arena. His work on the notion of a "silver bullet" for the essential complexity of software development is well known. Much of what has been discovered about software seems to impede progress toward improved software quality. In the second paper, Mays proposes and explains possible means for forging a silver bullet, based on reducing the inherent difficulties seen by Brooks in his essential attributes of software. The collected means include such promising techniques as design reabstraction. (Reprint Order No. G321-5531)

It has long been understood that quality in complex software cannot be achieved without attention to the software development process. Billings et al. provide a case study from a project that has earned the highest rating in the Software Engineering Institute's Capability Maturity Model: the Space Shuttle Onboard Software project. The focus of the paper is the process and the growth in process maturity over time, building on innovative ideas, practical experience, and the lessons of trial and error. (Reprint Order No. G321-5532)

Software quality is also affected by the management system under which it is developed. That management system has a number of aspects, including customer satisfaction, product quality, continuous process improvement, and the people involved. Kan et al. present a second case study, on management systems, drawn from the development of Application System/400* (AS/400*). The IBM Rochester site received the 1990 Malcolm Baldrige National Quality Award for these efforts. (reprint Order No. G321-5533)

One of the sophisticated tools that has been developed from new thinking about software quality is Cleanroom software engineering with its related processes, methods, and tools. Hausler, Linger, and Trammell describe the technological and mathematical underpinnings of this approach and show a staged implementation for Cleanroom software development. They also provide results of its use on one significant project in IBM and summary results for 17 other projects, totaling about one million lines of code. (Reprint Order No. G321-5534)

One of the normal, expected events in the life of a software product is the modification of code written by someone else. It is also the source of much frustration and many errors due to a lack of understanding of the original author's techniques and design. Resolving this problem effectively would significantly aid in the immediate and long-term quality of software. O'Hare and Troan present their work on a system called RE-Analyzer and its related tools, which provide automated reverse engineering in a computer-aided software engineering (CASE) milieu. The technologies they bring to bear on this significant problem include reabstraction of source code, control partitioning for managing complexity, and structured analysis of constructed diagrams of data flow and state transitions and of models of entity-relationship data. (reprint Order No. G321-5535)

Capper et al. consider the impact of object-oriented methods on software quality. They provide three case studies that show how and when to use object orientation to improve software quality by taking advantage of reuse and code modularity. Defect rates for the three case studies demonstrate the effect on quality of the combination of object-oriented methods with standard software processes and illustrate the resulting ability to add function to existing software with high quality. (Reprint Order No. G321-5536)

Looking at some of the latest results in software development and their impact on quality, Yakhnis, Farrell, and Shultz present possibilities for deriving programs from their specifications through generic algorithms, which are explained at length in the paper. This approach offers the opportunity to use formal methods for software development, with their attendant high quality, while avoiding the mathematical difficulty of formal proofs done by people. Since each generic algorithm can be used for a large class of potential programs, the effect of high quality in the algorithms is multiplied and reflected in the high quality of a number of resulting products. (reprint Order No. G321-5537)

Bhandari et al. provide examples and discussion on how defect data, retrieved during software development, can be effectively interpreted and used to correct the process and the product. The authors present the attribute focusing method, which is an extension to earlier work on orthogonal defect classification. The paper shows broad classes of projects that can benefit from this method, and the paper can be used to learn how the method is applied. (reprint Order No. G321-5538)

The next contribution to the discussion of software quality is included in the Technical Forum, a new section that was introduced in the last issue. The subject is IBM's current programming principles and practices, resulting from the efforts and experiences in improving software quality during the last few years, as presented by Bencher.

In a technical note, Watkins adds new insights to the discussion of reliability models for software development. He builds on work by Kan, published three years ago in these pages, by focusing on the variations of approach that are possible in early stages of modeling. (reprint Order No. G321-5539)

The next issue of the Journal will be a special issue on enterprise-wide database management and access as envisaged by IBM's Information Warehouse* framework and related work.

Gene F. Hoffnagle
Editor

*Trademark or registered trademark of International Business Machines Corporation.