Build on Use Cases to Deliver Higher-Quality, Higher-Value Software
You can dramatically improve software quality and value by integrating use cases with best-practice software quality engineering disciplines.
Richard Denney presents practical, cost-effective techniques that help your entire development organization deliver superior software.
Using realistic examples, Denney demonstrates how to complement use cases with Quality Function Deployment (QFD), Software Reliability Engineering (SRE), Model-Based Specification (preconditions, postconditions, and invariants), Requirements Configuration Management, and Project Portfolio Management. Denney's techniques address challenges faced by project and product managers, team leads, developers, designers, software engineers, and testers alike. These techniques offer immense value no matter what methodology you use—from the Unified Process to Extreme Programming.
Use QFD to make sure you release products that are true to your business drivers
Drive your project's vision vertically, from senior management and marketing to the development team
Align/synchronize distributed development horizontally across component teams, product teams, and business groups
Use SRE to maximize reliability and customer satisfaction—while minimizing engineering costs
Build use case operational profiles that help you spend development dollars more intelligently
Get solid metrics that tell you when it's time to stop testing
Use Model-Based Specification to sharpen your analysis of potential failures
Understand precondition and postcondition realities they never mentioned in "Use Case 101"
Design effective test cases using preconditions, postconditions, and invariants
Use Configuration Management of Use Cases to help your company work smarter
Leverage use cases in Project Portfolio Management—quite possibly the most valuable process improvement you can make
Calculate ROI on your company's investments in a requirements management tool and process
Review By: Terry Wray 07/08/2010"Succeeding with Use Cases” deals with quantifying your team’s distribution of effort. By using statistical methods, formulas, and principles, it explores ways of determining how business resources should be expended to obtain the maximum benefit. The author’s target audience would include those charged with leading a software testing team. However, he endeavors to abstract this practical application of his methods to show how they apply universally.
The book is broken into four parts of two chapters each. Each part may be used separately, but often a part will refer to a lesson learned in a previous section. All sections require at least an intermediate level of knowledge in quality assurance and reliability engineering. The author doesn’t explain the history or construction of use cases or the UML language, but UML frequently appears in accompanying diagrams.
Most of the book’s scenarios employ use cases as a starting point. The number, frequency, and severity of use cases are used as the basic input for his numerous charts, diagrams, and conclusions.
The writing style of the book will be familiar territory for experienced quality analysts and reliability engineers. It’s verbose and has a liberal use of industry terminology. Denney thoroughly explores each topic and eliminates misunderstanding by describing his ideas at length. As with most technical books, the author takes the position of a mentor. He presents his methods in the context of reality-based situations. For a few topics he includes a low-effort method of getting a similar answer. Each chapter concludes with a review of its major topics.
Denney’s mastery of the topics is obvious, if not intimidating. However, his inference that his methods could be used in the agile and Extreme Programming camp is unrealistic. They are far too complex to facilitate communication with a user. I struggled to wade through the overly-detailed explanations. His copious use of terminology, both standard and self-pioneered, detracts from the book’s credibility.
Although the topic is not a specialty of mine, I found the content of the book to be a concise set of methods that would allow analysts and engineers to approach complex questions and quantify their conclusions with mathematical precision. If your organization demands quantifiable figures on which to base its distribution of effort for a project, this book proves to be a valuable resource.