The Reverse Detective: Pragmatic Software Requirements & Analysis |
|
|
|
|
|
|
| September 2006, WME Books, Paperback, 234 pages, ISBN 0977729753
|
|
|
|
 |
|
| Software failure is a CRIME! Here's how to prevent it.
The Reverse Detective is an easy-to-read, breakthrough book that shows you how to prevent software failure by using the same disciplined, step-by-step process used by professional detectives to solve crimes.
There's just one difference: You put the traditional Sherlock Holmes approach in reverse.
The result? Instead of solving the crime of software failure, you prevent it by precisely determining and modeling the right requirements before you begin writing code.
Getting software development right from the start ... when you put the Reverse Detective process to work, you'll minimize the chance of blown budgets, missed timelines, endless revision rounds, and other career-busting problems.
Now you know why this practical, enjoyable guide is destined to become a must-read for everyone with a major stake in software development, including: executives, business managers and process owners, and hands-on software engineers.
|
Acknowledgements i
1. Introduction 1
2. Overview 11
3. Detective Analysis 15
4. Software Developer Analysis 33
5. A Comparison 47
6. Detective Case Study 53
7. Returning to the Scene 73
8. Identify a Need 103
9. Survey the Scene 111
10. Modeling the Problem 143
11. Looking Forward 181
Appendix A. Process Synopsis 187
Appendix B. The Software Engineering
Effectiveness Method (SEEM) 207
Index 227
About the Authors 233 |
|
 |
|
| As mentioned in Chapter 1, M. Dupin follows a specific methodology to
pursue an understanding of a crime under investigation. This methodology
leads him through a series of activities designed to extract the truth of the
crime by the most efficient means possible. The methodology also ensures
traceability of the information linking the suspect to the crime beyond a
reasonable doubt.
Dupin is in charge of gathering evidence, following leads, tying disparate
information together through investigation and reasoning, and revisiting
evidence, witnesses and suspects over time to revise the hypotheses of the
crime and build a case against the suspects. We also expect Dupin to rely
on his intellect, intuition, and years of experience to choose which leads to
follow, and to fill the gaps in the available information.
While Alex, our software engineer, does not follow the exact same
process, the philosophy remains consistent. The processes presented
are abstractions for the eventual steps in the proposed method, and they
represent the high-level perspective of what must be accomplished by the
successful software engineer while gathering requirements and modeling
the problem to be solved. By adhering to the proposed method, the resulting
software application is highly likely to meet the needs of the customer,
solving the customer's specific problem in a way that integrates nicely with
their existing environment.
2. Overview
The Reverse Detective: Pragmatic Software Requirements and Analysis
12
The remainder of our discussion follows two threads of interest. The first
thread starts in chapter 3, and tracks the activities of our detective, M. Dupin,
investigating a case. Dupin's activities are first introduced
within the context of the official guide to crime scene
investigation as provided by the U.S. Department of Justice.
A complete analysis of the process Dupin uses is provided
to ensure a thorough understanding. The threads discussing
the topics related to this process are denoted by the icon to
the left. (In homage to the fictional character of Sherlock
Holmes created by Sir Arthur Conan Doyle, our talented artist has provided a
wonderful graphic channelling his likeness.)
The second thread starts in chapter 4, and examines the activities of Alex,
our expert software engineer, within the context of a traditional software
development methodology: the Rational Unified Process.
A complete analysis of the activities of the software
engineer is provided in this context, with variations
explored to clarify the purpose of the methods. The
threads discussing the topics related to the software
engineering process are denoted by the icon to the left.
Chapter 5 provides a comparison of the two methods to contrast the
relative activities of our detective and our software engineer.
To better illustrate Dupin's activities and place them into the appropriate
context, a case study of a detective at work is presented in chapter 6.
Reaching back to the origins of the detective novel, we follow the exploits
of M. Dupin as he solves a murder in the tale "Murder on the Rue Morgue"
as told by the master story-teller Edgar Allan Poe. Through the case study,
we learn more about how our detective may operate in his world cementing
our understanding of the detective's activities and processes. The entire case
study cannot be reasonably included in the text of the discussion, however
the complete model is provided on the accompanying CD-ROM.
2. Overview
13
After a review of the case study, we explore the suggested process for
Alex, our software engineer as he develops the requirements and performs
the analysis for a software application. Chapter 7 details his process and
applies it to an example application whose purpose is to support the work
of the detective as he investigates the crime. Our example application
will gather, organize and relate information on the detective's case as he
progresses through an investigation. At the conclusion of each section,
a synopsis will provide the objective of the chapter, and the "recipe" for
accomplishing the stated objective. Heuristics are also provided as a means
to assess the quality of the results achieved by following the recipe.
Throughout the text, the relevant techniques are explained where
appropriate. Issues of process, practicality and philosophy of development
are presented and discussed. To highlight information not
related to the threads of our detective or software engineer, the
threads discussing the techniques relevant to process-specific
areas are denoted by the icon to the right.
As with the detective case study, the example model for our software
application is too great in scope to include in its entirety within the text.
However, access to the complete model, including its evolution, is essential
to understanding the process by which it was created. The example
application model is provided on the accompanying CD-ROM in
its entirety.
The final chapter discusses the next phase of development from the
perspective of the presented process. The tie-in of the presented material
into the design process is explored to ensure compatibility and traceability
from the requirements and problem analysis into the design, implementation
and deployment of a software application.
Two appendices are provided with additional information. The first
appendix reproduces the process suggested for the software developer.
The process is presented in a recipe format spelling out each step to take,
The Reverse Detective: Pragmatic Software Requirements and Analysis
14
the resulting artifacts created by each step, and a list of heuristics to help
the reader create their own quality results.
The second appendix introduces the Software Engineering Effectiveness
Model (SEEM). SEEM provides the methodological underpinnings of the
material presented herein. A complete overview of SEEM will help the
reader understand how the presented material fits into the entire development
process for a software application. |
 |
|
What They're Saying:
-
"The material in this book builds the bridge between users and engineers. Each side gets what they want: the engineers get detailed requirements they can design from, the users get a system that does exactly what they think it should. . . The hardest part of any project is getting started. This book provides an elegant, clear, and concise road map to getting your project not only started, but done. . . I can't recommend it highly enough."
Kevin Stevens, Software Engineer
Applied Sciences Group
Buffalo, NY
|
|