3.3 Three Steps for Gathering Requirements

We suggest that requirements be created iteratively. Iterative and incremental approaches help reduce risk by treating risky items earlier in the lifecycle. Requirements specifications, as much or more than other lifecycle artifacts, change constantly and require frequent modifications and overhauls. This is because requirements are based on several people's fuzzy ideas about a computer application to be created. Other artifacts have the luxury of tying back to the requirements, but the requirements tie back only to fuzzy ideas.

Iterative creation of artifacts is highly dependent on individual situations. It would be silly to suggest that exactly the same number of iterations is needed to complete requirements in all situations. However, it is possible to say that iterative requirements specification always proceeds through the same logical steps in every situation. In this book we make a case for three logical steps: outlining, widening, and focusing. We have created names for each of these steps and have assigned those names to iterations. We do not want to specify that there always must be three iterations, only that there are three mind-sets to adopt throughout requirements. The iteration names are

  • Facade ” Outline and high-level descriptions

  • Filled ” Broadening and deepening

  • Focused ” Narrowing and pruning

Chapters 4 through 6 provide the details of these iterations.

The iterative and incremental lifecycle is not a set of lifecycle phases for requirements, something that would be cumbersome; rather, it is a way to categorize the activities needed to develop use cases. It is likely that most of the use cases will be in the same iteration at the same time, but we emphasize that it is not necessary to force use cases into iterations if it's not needed.

We created these named iterations because we've often been asked, "How many iterations are right?" "What should I do in each iteration?" It made sense to us to categorize requirements-gathering activities into a set of iterations, but please do not assume that we are asking you to approach these iterations rigidly as a set of lifecycle phases.

Throughout the iterations we create and refine several tools that define the requirements deliverable set. These tools include use cases (which require the most effort), and they provide comprehensive coverage of this part of the software development lifecycle.

  • Mission, vision, values

  • Statement of work

  • Risk analysis

  • Prototype

  • Use cases and use case diagrams

  • Business rule catalog

Let's take a look at each of these tools and its role in the requirements activity.



Use Cases. Requirements in Context
Use Cases: Requirements in Context (2nd Edition)
ISBN: 0321154983
EAN: 2147483647
Year: 2002
Pages: 90

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net