Use-cases provide an external view of the system, the software is often structured in a completely different way. The biggest danger is that of turning each use-case into a procedural controller which acts upon simple data holders. When using use-cases remember that they are an external view only. When to Use Them Use cases a vital part of OO development. Whether you use the diagrams is another matter.
Use cases are valuable if just kept on a database as an unstructured list.
Each use-case needs a name and a few paragraphs of description. They are central to planning the evolutionary development process. They should also drive system testing. Where to Find Out More I think the world is still waiting for a really good book on use-cases. One of the best papers I've come across on using well is by Alistair Cockburn and on his home page .