Overview
Home Overview Reviews Sample Chapter Free Other Links About the Author Errata

 

This book presents what I hope you will agree is a whole new set of perspectives on use case driven development. Innovation, solutions to problems and ways of working more efficiently often arise when ideas from multiple areas are combined. As use cases continue to mature, future improvements in use case driven development are likely to arise from just such cross-pollination of use cases with other disciplines of software engineering. This book looks at four such areas:

  1. Quality Function Deployment (QFD)
  2. Software Reliability Engineering
  3. Model-Based Specification (Preconditions, Postconditions and Invariants)
  4. Requirements Configuration Management / Project Portfolio Management

From each discipline the book pulls practical, 20/80, "high bang for the buck" ideas that help you and your organization work smart to deliver quality products in use case driven development.

The book is organized into four parts -- one per software engineering discipline – with two chapters each. Here’s an overview of what you’ll find in each part of the book.

Part 1 Quality Function Deployment (QFD): Managing Use Case Driven Development in "2D"

Like it or not, software development is increasingly becoming a team sport! And it’s a game being played on a “two dimensional field”. Chapter 1, Driving Vision Vertically Through Use Case Driven Projects, introduces QFD, a team oriented product planning tool that is used to translate business drivers into the technical requirements and design aspects of a product. You will learn how to use QFD in use case driven development as a mechanism for moving vision vertically – the first dimension of the playing field -- through projects starting at the senior management / marketing level, where vision is hatched and business priorities are being set, downward to the development team level, so that the product that is released is true to the original vision and business priorities.

The second dimension in which the “team sport” of use case driven development is played out in a company is horizontally. Chapter 2, Aligning and Synchronizing Distributed Development Horizontally in the Organization, looks at the factors that make use case driven distributed development difficult and the combined use of QFD and use cases to align decisions and synchronize use case driven development horizontally across multiple component or product teams, or business groups in a company. You’ll learn how to use QFD and simple optimization problem solving tools to find an optimum duration for a development iteration and an optimum set of high priority use cases that can be implemented in that time across distributed teams.

Part 2 Software Reliability Engineering: Working Smart to Deliver Reliability in Use Case Development

Software Reliability Engineering (SRE) is about increasing customer satisfaction by delivering a reliable product, while minimizing engineering costs. Use case driven development and SRE are a natural match, both being usage-driven styles of product development. What SRE brings to the party is a discipline for focusing time, effort and resource on use cases in proportion to their estimated frequency of use or criticality, called an operational profile. In Chapter 3, Operational Profiles and Use Cases, you’ll learn how to build an operational profile for the scenarios that make up a single use case and for a package of use cases. Examples are provided to illustrate the use of operational profiles to enable you to work smart in how you plan the activities that impact your product reliability. The chapter will conclude by showing how to extend operational profiles to address risk profiling of use case packages.

Your product has been in final system test for weeks; or has it been months? Surely it must be time to stop testing and release it! Chapter 4, Reliability and Knowing When to Stop Testing, looks at another important concept that Software Reliability Engineering brings to use case development: a concrete way to talk about “reliability.” This includes how to define it, measure it, set goals in terms of it, and track it in testing. In this chapter you will learn how to set quantitative reliability goals in the form of a failure intensity objective. The development and testing group then tracks product reliability in system test against this objective providing a sound method to determine when the reliability goal has been reached, testing can terminate, and the product can be released. 

Part 3 Model-Based Specification (Preconditions, Postconditions and Invariants): Posing Sharp Questions In Use Case Failure Analysis and Test Design

In Chapter 5, Preconditions, Postconditions and Invariants: What They Didn't Tell You, But You Need to Know!, you are introduced to a time tested technique for specifying the expected behavior of abstract data types and objects -- model-based specification – and learn how to apply it in a fresh way to pose sharp questions in use case failure analysis: the analysis of potential ways a system, specified by a use case, might fail. In doing so, you’ll learn some things about preconditions and postconditions they forgot to mention in “Use Case 101”! The chapter concludes with ideas on how to work smart in applying model-based specification including the section The Absolute Least You Need To Know: One Fundamental  Lesson And Three Simple Rules which, if you get nothing else from the chapter, will give you a take-away you can apply to any and all use cases right away. The goal of this chapter is nothing less than providing you a whole new perspective on use case preconditions and postconditions.

Not only does the model-based specification with its preconditions, postconditions and invariants provide an integrated basis for use case failure analysis, taken as a unit they are a veritable triple threat test case. In Chapter 6, Triple Threat Test Design for Use Cases, you’ll learn how to take the preconditions, postconditions and invariants generated from failure analysis in the previous chapter, and design test cases from them using Robert Binder’s Extended Use Case Test Design Pattern.

Part 4 Use Case Configuration Management (CM): Calculating ROI and Leveraging in Project Portfolio Management

There is no question that a commercial requirements management tool is useful for use case management; but can it pay for itself at your company? Chapter 7, Calculating Your Company’s ROI in Use Case CM, looks at a model to help you calculate the Return On Investment (ROI) on requirements management tools for use case management. Not only will it help you decide if such tools make sense for your company, it also helps illustrate some of the types of problems configuration management of use cases is meant to address.

In Chapter 8, Leveraging Your Investment in Use Case CM in Project Portfolio Management, you’ll learn how to leverage your company's investment in use case CM to provide metrics and reports for what could well be the most far-reaching, single process improvement possible in your company: Project Portfolio Management. Project Portfolio Management is the measured allocation of development resources according to some strategic plan. You’ll learn how to leverage use case based metrics and reports to evaluate the mix of strategic project types in the project portfolio, and evaluate if projects are executable in the times specified by the portfolio, called pipeline management.

 

For information about Succeeding with Use Cases: e-mail