"Requirements" are essential for creating successful software
because they let users and developers agree on what features will be
delivered in new systems. Karl Wiegers's Software Requirements shows
you how to define and get more out of software requirements with dozens
of "best practices" and tips that make this book a valuable
resource for both software project managers and developers.
The book's commonsense approach provides exemplary project management
skills tailored to gathering (and refining, implementing, and eventually
tracking) software requirements. While the book often cites recent software
engineering studies, the focus always returns to practical management
techniques. A case study for a chemical tracking application frames
the book, and most chapters begin with anecdotes that demonstrate situations
in which users and developers misunderstand each other about a software
project's ultimate goals. (If you've ever worked in the field, these
stories will probably sound all too familiar.)
This book offers hope, though, for improving your software design process,
with dozens of tips on getting better design input from your customers
and then using these requirements to generate a variety of design documents.
There are numerous templates and sample documents too--a big help for
the busy software manager.
Several standout sections cover negotiating difficult steps in the process,
particularly how to manage shifting requirements as projects move forward
and keep the various users and stakeholders content throughout the software
process. Late in the book, the author surveys today's software management
tools and shows how to pick the right ones for your organization.
Topics covered : software requirements specifications (SRS); business
and user requirements; risk management; the requirements process; sample
documents and templates; requirements development: elicitation, analysis,
specification, and verification; rights and responsibilities for software
customers; best practices; project management tips; process assessment
and improvement; types of users; product champions; use cases and other
diagrams; tips for prototyping; managing requirements change; change
centered boards (CCBs); evaluating and using requirements tools; requirements
traceability matrix; impact analysis.
Mastering the Requirements Process
by Suzanne Robertson and james Robertson
Written in an engaging style and relevant for any software analyst or
designer, Mastering the Requirements Process provides a powerful and
useful guide to defining more complete software requirements that lead
to better software overall. It's also filled with innovative advice.
The heart of this book is the authors' Volere Requirements Process Model,
a step-by-step guide to gathering your requisites. Throughout this book,
the authors use this process to explicate a single case study--a system
for a municipality that will optimize the de-icing of roadways during
snowy weather. Along the way, the book provides a solid guide to identifying
and refining requirements, both functional and nonfunctional (such as
performance and ease of use).
There are many excellent ideas in the book, including the notion of
fitness for your requirements, which can be later used to track whether
the software is successful. The book also wisely separates technology
from requirements so that analysts can concentrate on understanding
and modeling business problems instead of moving right away to the nuts
and bolts of implementation. Even if you don't adopt the Volere model
in toto, you can benefit from the concepts of "trawling" (a
metaphor for the requirements-gathering process), quality gateways (in
which tentative requirements are evaluated for inclusion in a project),
and the wise use of patterns to help simplify the process.
Anchored by numerous examples (including many samples of successful
requirements), the book provides an appealing mix of new ideas along
with a remarkably clear presentation. In short, Mastering the Requirements
Process provides useful advice that can make the project specification
building phase of the software process easier and more robust. It provides
the first steps for improving overall software quality for your organization.
Alistair Cockburn's Writing Effective Use Cases is an approachable,
informative, and very intelligent treatment of an essential topic of
software design. "Use cases" describe how "actors"
interact with computer systems and are essential to software-modeling
requirements. For anyone who designs software, this title offers some
real insight into writing use cases that are clear and correct and lead
to better and less costly software.
The focus of this text is on use cases that are written , as opposed
to modeled in UML. This book may change your mind about the advantages
of writing step-by-step descriptions of the way users (or actors) interact
with systems. Besides being an exceptionally clear writer, the author
has plenty to say about what works and what doesn't when it comes to
creating use cases. There are several standout bits of expertise on
display here, including excellent techniques for finding the right "scope"
for use cases. (The book uses a color scheme in which blue indicates
a sea-level use case that's just right, while higher-level use cases
are white, and overly detailed ones are indigo. Cockburn also provides
notational symbols to document these levels of detail within a design.)
This book contains numerous tips on the writing style for use cases
and plenty of practical advice for managing projects that require a
large number of use cases. One particular strength lies in the numerous
actual use cases (many with impressive detail) that are borrowed from
real-world projects, and demonstrate both good and bad practices. Even
though the author expresses a preference for the format of use cases,
he presents a variety of styles, including UML graphical versions. The
explanation of how use cases fit into the rest of the software engineering
process is especially good. The book concludes with several dozen concrete
tips for writing better use cases.
A
Practical Guide to Feature-Driven Development
by Stephen R. Palmer and John M. Felsing
*
Combine the speed and flexibility of agile methods with enterprise-class
scalability!
* Hands-on coverage of the entire project lifecycle
* Modeling, feature lists, planning, design, and software construction
* Adapt Feature-Driven Development to your own organization and projects
The first practical, start-to-finish guide to implementing Feature-Driven
Development!
Feature-Driven Development (FDD), created by Peter Coad and Jeff De
Luca, combines the key advantages of agile methodologies with model-driven
techniques that scale to the largest teams and projects. This book demonstrates
FDD at work in real-world projects and provides project leaders with
all the information they need to successfully apply it in their own
organizations.
Stephen R. Palmer and John M. Felsing show how applying FDD can help
solve problems that neither traditional nor agile methodologies can
address. They help you identify the projects that are best suited for
FDD, and then walk you step by step through the entire FDD development
process.
* FDD's roles, artifacts, goals, and timelines
* Creating overall models that provide a solid foundation and structure
for effective development
* Formalizing the features list: Completing, leveling, clustering, and
prioritizing features
* Plan by feature: Establishing class owners, feature-set owners, and
rough development plans
* Design by feature: Domain walkthroughs, design, and inspection
* Build by feature: Coding, ongoing inspection, testing, and promotion
* Tracking and reporting progress to technical leads, project managers,
sponsors, and upper management
* Applying FDD to user interface and external system interfaces
* Adapting FDD to your projects—and your business and technical
environment
Structured
Analysis and System Specification
by Tom De Marco
This is
the classic book on Data Flow Diagramming based Requirements Gathering. This is probably the most down-to-earth methodology for gathering and
documenting user requirements.
This book may be hard to find, but it is well worth the search!
Another classic! Yourdon provides a fresh perspective on structured
systems analysis, integrating traditional methodologies with modern
technology. He thoroughly discusses data modeling, real-time systems,
prototyping, and 4GLs.
This book may be hard to find, but it is well worth the search!