We took a look at both enhanced requirements and Use Cases last evening.
Requirements need to be correct, specific, verifiable, and traceable. Some examples of BAD requirements would be:
- A useable system
- Lots of features
- The fastest performance
Requirements and Use Cases are not the same thing. A requirement is that correct, specific, verifiable, and traceable item in the list. A Use Case is more like a story of use. For example:
Use Case 1
The user chooses to add a new movie to a list. The system prompts the user for a movie title. After the user provides the movie title, the system searches its own db for the movie. If it is not in the local db, it requests the movies information from the "web service". Once the movie is found, the system prompts the user to verify the movie selection. The user then verifies and accepts the movie. Finally, the system adds the movie to the list.
- The movie is not found locally or through the web service.
- The web service is not available.
- The user does not accept the found movie as the correct one.
By no means is this a complete Use Case for the design that we are intending to do, but it provides some sense of how it should flow.
I was very pleased to see that the <<includes>> and <<extends>> concepts made it into the discussion. These can be invaluable in reducing the volume of information and the ability to comprehend the set of Use Cases in the system.