Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Introduction to software quality
O’Regan G., Springer Publishing Company, Incorporated, New York, NY, 2014. 354 pp. Type: Book (978-3-319061-05-4)
Date Reviewed: Sep 29 2014

If you are looking for a good, compact overview of software quality, this book is for you. It is not a textbook for a course, but a concise overview including in chapter 1 a general introduction to the history and state of the art. The book covers many research areas and tools in 20 chapters over 350 densely packed pages. However, the reference list for all of this content could have been richer.

Chapter 2, “Software Engineering,” starts with an apt quote from the “Mongolian Hordes Approach” by Ince and Andrews, which will make experienced developers chuckle: “The completed code will always be full of defects. The coding should be finished quickly to correct these defects.”

The rest of the chapter contains a discussion of various software development life cycle approaches. The text mentions the two important NATO conferences in the 1960s in which the need for a software engineering discipline was first crystallized. However, it omits what I consider still the best definition of software engineering in the field, put forth in the 1968 conference, which I skip here. The chapter also contains a description and discussion of several software development life cycle styles, namely waterfall, spiral, rational unified process (RUP), and agile development. These are followed by discussions of requirements, design, implementation, testing, and maintenance. The chapter ends with brief summaries of software inspections, project management, Capability Maturity Model Integration (CMMI), and formal methods, which are discussed in more detail in later chapters.

The material in chapter 3, “Project Management,” is applicable to all types of engineering projects. Some minor exceptions occur on topics such as estimation techniques, software testing, and quality management, due to the nature of software. The same is true largely for chapter 4, “Requirements, Design and Development,” which is mostly on requirements. The part on design contains brief material on architectural design, referring to ideas from C. A. R. Hoare and David Parnas. The latter laid down the basic ideas of the current object-oriented design approach, such as information hiding. The chapter ends with brief descriptions of software reuse and customized-off-the-shelf (COTS) software. Software configuration management is often done in a superficial manner. Its importance becomes evident as change requests and version control requirements mount.

Chapter 5 deals with this important yet often-neglected subject. It covers configuration items, baseline, configuration management system and audits, change control and the change control board (CCB), and file naming conventions and version control. Chapter 6 covers software inspection, a very important topic in quality management. It goes into some depth on Fagan inspections, a well-known inspection process model. Software testing, another key topic in quality management, is discussed in chapter 7. It includes sections on test planning, test reporting, unit testing, system testing, acceptance testing, performance testing, white/black box testing, test tools, and environments, as well as e-commerce testing.

Supplier selection and management and quality assurance are the subjects of chapters 8 and 9. Supplier selection can be a complex and sometimes troublesome process because one has to deal with other companies to create new or additional software and supply the required additional services, such as installation, interfacing with existing systems, documentation, user training, and maintenance, which requires good knowledge of the capabilities of potential suppliers as well as the extent of the work to be done. Chapter 9 covers mainly the corporate processes for auditing quality assurance, including audit planning, audit meetings, audit reporting, follow-up, and possible escalation to ensure the resolution of quality problems.

Chapters 10 and 11 cover software metrics and the ISO 9000 quality management standard. The former includes topics such as the goal-question-metric paradigm, which requires setting specific goals in terms of purpose of the system, the perspective, and environment; refining these into quantifiable questions; and then deducing the metrics to be used and collecting the required data. The metrics can be in one or more of the following areas: customer satisfaction, process improvement, human resources training, project management, development quality, and customer care (for example, mean time between failures, mean time to repair, system availability percentage). Samples of graphics for these metrics are given. ISO 9000 and related standards are general in nature and are applied to many types of product and service organizations, including software development.

Chapters 12 to 15 deal with software quality issues. Chapter 12 deals with the dimensions of software process improvement and its benefits in general. Chapter 13 introduces the well-known CMMI model developed by the Software Engineering Institute (SEI) at Carnegie-Mellon University. CMMI addresses the maturity levels of a company’s software development processes and defines a set of levels of software development capabilities for these maturity levels. Chapters 14 and 15 deal respectively with setting up a CMMI process and the CMMI appraisal process for an organization, called the SCAMPI methodology, concluding the topics of software process improvement, development process implementation, and evaluation.

The book ends with five concluding chapters that cover software engineering tools, formal methods, and two well-known specific tools--the Z formal specification language and unified modeling language (UML). Chapter 20 contains the epilogue.

The software engineering tools discussed in chapter 16 include tools for project management, requirements, design and development, configuration management and change control, code analysis and inspection, and testing. Each gives a broad and relatively recent picture of the respective area. Formal methods refers to mathematical techniques for the formal specification and development of software. Such methods are used mostly in systems where high safety precautions and extreme precision are required, for example, the aircraft industry, the military, aerospace systems, and the like. Those interested in these topics will find a good overview in chapter 17. The Z language, intended to be used in formal specifications of systems, is described in some detail in chapter 18. Chapter 19 discusses UML, which is used in diagrammatic descriptions of systems and applications, and RUP for software development. Chapter 20 contains the epilogue, which includes a brief summary of the book, and a note on the future of software quality, which of course will be increasingly important.

All in all, this is a good reference book for students and practitioners in software research, development, and installation management.

Reviewer:  Birol Aygün Review #: CR142773 (1501-0012)
Bookmark and Share
  Reviewer Selected
 
 
Software Quality Assurance (SQA) (D.2.9 ... )
 
 
Quality Assurance (K.6.4 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Software Quality Assurance (SQA)": Date
Building quality software
Glass R., Prentice-Hall, Inc., Upper Saddle River, NJ, 1992. Type: Book (9780130866950)
Oct 1 1992
Making software visible, operational, and maintainable in a small project environment
Bryan W., Siegel S. IEEE Transactions on Software Engineering SE-10(1): 59-67, 1984. Type: Article
Feb 1 1985
Quality programming: developing and testing software with statistical quality control
Cho C., John Wiley & Sons, Inc., New York, NY, 1987. Type: Book (9789780471848998)
Apr 1 1988
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy