|
| |
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:
- Quality Function Deployment (QFD)
- Software Reliability Engineering
- Model-Based Specification (Preconditions,
Postconditions and Invariants)
- 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.
|