Advanced Object Oriented Programming with Visual FoxPro 6.0
Use case tools
Use cases don't require a lot of tools. In theory, you could write your use cases on a regular sheet of paper. In the real world, of course, this is impractical. You need some kind of text processor to create and maintain use cases; I use Microsoft Word, but any text processor will do. In addition to Word, I like to use Rational Rose. Let's have a look at both tools and how I use them to create my use cases.
Microsoft Word
Using Word (or any other kind of text processor) is the minimum requirement for writing use cases. Word is considered a standard now, and I feel confident that almost everybody can read use cases stored in Word format.
I like to use Word's template feature to reuse existing use case templates (and even stored macros). You can download my use case template from the Developer's Download Files at www.hentzenwerke.com. Future updates will be available at www.eps-software.com. Even though I feel confident about other people being able to open Word documents, I also use Word's export-to-HTML feature to create HTML documents from my use cases and publish them on the intranet or on secure Web sites.
Rational Rose
Unlike its little brother (Microsoft Visual Modeler), Rational Rose can create use case diagrams. (You can read more about use case diagrams in Chapter 12.) Figures 1 and 2 in this chapter show examples of use case diagrams. I use Rational Rose as my modeling tool; it's rather pricey, so I wouldn't recommend buying it only for use case diagrams. But once you get used to these diagrams you won't want to be without them.
Rose allows you to create separate entities for use cases and actors. Each of those entities can have any number of documents assigned to it. (I usually use only one document to keep things simple.) This way, Rose provides a nice way to turn your loose collection of documents into an organized system specification.
Rational Rose introduces a number of nice features to use cases, such as stereotypes, abstraction and inheritance, or generalization as the modeler likes to call it. Chapter 12 provides a detailed definition of these terms. Figure 2 shows a subclassed actor and a subclassed use case.
Figure 2. A more advanced use case diagram that demonstrates subclassing of use cases.
Rose also allows you to split huge use case diagrams into smaller scenarios to provide a simpler view. Luckily, none of the details gets lost because you can simply double-click an item to get a detailed description including all dependencies, relations and linked files.
Overall, Rational Rose is a tool I wouldn't want to be without when creating use cases, but as I mentioned above, it's expensive; besides that, you might already have a tool of choice for the modeling process.