Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Design for trustworthy software : tools, techniques, and methodology of developing robust software
Jayaswal B., Patton P., Prentice Hall PTR, Upper Saddle River, NJ, 2006. 840 pp. Type: Book (9780131872509)
Date Reviewed: May 1 2007

It must have taken a huge effort to put this book together. On the cover, the well-known and respected Ramamoorthy is quoted: “A seminal and highly innovative book ... a landmark.” I so much wish I could agree.

The preface begins with the Electronic Numerical Integrator and Computer (ENIAC) in 1946, continues with 30 years of quality and 50 years of development experience, and then slides into the Taguchi methods. The span of time and topics leaves one wondering if the 831-page effort is current, or an anachronism from the past. The book’s 27 chapters are organized into five parts, covering software development processes, tools and techniques, designing, deployment, and case studies.

Part 1 covers trustworthy software issues, metrics, financial issues, and organizational structure. The first two chapters offer a historical perspective, mentioning different methods and offering light comparisons. By the second chapter, the Taguchi methods come out with a strong push. In a chapter on metrics, the reader is introduced to the measurement of a software program’s complexity, function points, and customer satisfaction. Also noted are issues of metrics for architectural design and analysis. The chapter on financial costing and payback of quality is an important analysis; in the authors’ words, sound financial return is a desired outcome of a software initiative. Trustworthy software efforts require different financial analysis. The cost of software quality is discussed in terms of its analysis and the quality program costs. The rest of the chapter contains a discussion of steps for establishing a quality costs reporting system and its financial framework. The chapter on organizational infrastructure and leadership begins with the premise that the chief executive officer (CEO) leads and understands the business value of the initiative. It is claimed that successful implementation depends on how well the CEO understands the social forces involved in the implementation. The infrastructure and roles of key players in the organization are examined, followed by the communication model, reward system, and implementation considerations.

Part 2 covers tools and processes, at a depth sufficient enough to recognize the tools and techniques presented. The result is an overview, a recognition, and perhaps an ability to manage those trained, or, with other training, dive into hands-on use. The chapter on seven basic tools introduces graphic visualization techniques for process and statistics visualization. Covered are the flowcharting of processes, Pareto charts, cause-and-effect diagrams, scatter diagrams, check sheets, histograms, and control charts. These tools are described as qualitative and diagnostic. The reader of this chapter will retain some visual recognition of the charts, but not hands-on design experience. The next chapter provides seven tools for management and planning, using affinity diagrams, interrelationship diagraphs, tree diagrams, prioritization matrices, a matrix diagram, a process decision program chart, and an activity network diagram. Compared to preceding basic tools, these are described as qualitative and preventive, as they deal with verbal data instead of processes and statistics.

“The Analytic Hierarchy Process” covers an analytical technique for comparing design approaches with a product, Expert Choice. The method compares the relative weights of implementation cost, technical risk, business risk, competitive advantage, and time to implement, to yield comparative priorities by alternative.

The chapter on mistake-proofing taught me its Japanese term, poka yoke. Inspection “at the source” is key, and I’m still skeptical about how this applies to the design of software (instead of hardware production). Controlling complexity is addressed as a step before poka yoke, with an introduction to McCabe [1]. In my life, software implementers do what they will regardless of well-meant design, and no amount of inspections, or pre-design application of complexity metrics, will provide insight into the implementation realities.

“Intelligent housekeeping” is next. From other Japanese sources, the “5S” phases are: sort, straighten, shine, standardize, and sustain. Yes, these activities really do apply to my workplace desk, my e-mail folders, and my software directories. But I’ve never had time to do these steps except between jobs or assignments.

“Understanding Customer Needs” has an acronym: QFD (quality function deployment). I find this chapter reaching yet again to apply a hardware process technique to software. All the words ring true, but they lack the feeling of applicability to software that perhaps the agile methods promise to deliver. This chapter may make a good PowerPoint presentation, charming and charismatic and replete with resonating buzzwords, yet leaves little for a software practitioner to sink his teeth into.

A sidebar in the chapter on “Creativity and Innovation in Software Design” introduces serendipity as one of the three qualities of innovation (in addition to creativity and tenacity). Serendipity usually implies fortune, fate, luck, or something spiritual. My mind wanders to Einstein’s autobiography, where he notes in part that his creativity comes from the “mystical emotion,” perhaps, in his context, implying the divine inspiration. In all my experience, creativity and innovation came from special individuals, in environments where they felt encouraged and uplifted to be creative. It was customer and management style, not a textbook and process legislation, that brought about innovation. I’ve also seen many environments where creativity was stifled just by the application of process.

“Object-Oriented Analysis, Design, and Programming” starts with a description of Simula, but it continues at a very abstract level to other techniques, without any specific detail. Here, extreme programming is mentioned briefly, as an example of agile techniques, without acknowledgment of the widespread interest in agile techniques in defense software development. The material in this chapter is core to typical discussions of developing reliable software. I would have hoped to find more current and thorough examination in this area.

“Quality Measures and Statistical Methods” is a terse overview that provides specific measurable criteria for software development. The authors claim this chapter is “a review and hopefully a spark to encourage your interest in using quantitative methods to measure and improve software development processes.” That goal is met.

“Robust Software in Context“ begins a set of chapters that the authors hope describe transition to a future era. These cover componentization, application generation technology, and meta-techniques to transform specification language codes into Java and C programs. This has long been a quest of the industry. But discussion on what is robust software seems to drift back to hardware-isms that don’t seem to morph into software realism.

Taguchi methods, recognized for robust hardware design, are given a full chapter. There is an example of Taguchi applied to software design. “Verification, Validation, Testing, and Evaluation” describes the application of Taguchi methods to these later development cycle stages. “Integration, Extension, and Maintenance” provides some anecdotes of systems, including a case where Taguchi method application reduced the testing time for software upgrades.

The chapter on deployment of the book’s principles, tools, and techniques calls for top management and team buy-in. This chapter uses GE and Toyota as examples. The chapter on launching an initiative seems like a pretty good template for an organization’s top management. There’s an example training program, certification, control system, and implementation techniques. Taken alone, this is a pretty useful chapter. The key points and challenges summary felt quite usable.

Part 5 provides case studies: “Cost of Software Quality at Raytheon’s Electronic Systems Group,” “Information Technology Portfolio Alignment,” “Defining Customer Needs for Brand-New Products,” “Jurassic QFD: Integrating Service and Product Quality Function Deployment,” and “Project QFD: Managing Software Development Projects Better with the Blitz QFD.”

The authors intend this book for software development organizations, as a resource, for certifications, and for reference. They equally suggest it for students in engineering, management information systems (MIS), information technology (IT), computer science (CS), and Master’s of Business Administration (MBA) programs, feeling all its sections foster leadership and management infrastructure, for learning about and deploying technology to design trustworthy software. The scope of the audience seems too wide and the coverage of the text too ambitious.

Reviewer:  Herman Fischer Review #: CR134214
1) McCabe, T. A complexity measure. IEEE Transactions on Software Engineering 2, 4(1976), 308–320.
Bookmark and Share
 
Design Tools and Techniques (D.2.2 )
 
 
Software Development (K.6.3 ... )
 
 
Software Maintenance (K.6.3 ... )
 
 
Management (D.2.9 )
 
 
System Management (K.6.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Design Tools and Techniques": Date
Information-flow and data-flow analysis of while-programs
Bergeretti J., Carré B. ACM Transactions on Programming Languages and Systems 7(1): 37-61, 1985. Type: Article
Jul 1 1985
An extensible toolset and environment for the production of mathematical software
Osterweil L., Clemm G.  Tools, methods and languages for scientific and engineering computation (, Paris, France,361984. Type: Proceedings
Sep 1 1985
A system for interactive viewing of structured documents
Witten I., Bramwell B. Communications of the ACM 28(3): 280-288, 1985. Type: Article
Mar 1 1986
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