Use cases are used in project planning and requirements specification. Use cases describe the behavior of a system in response to various categories of requests from a stakeholder. They contain a textual description of the operation of the system in given circumstances and are designed to be easily read by the business managers who are the customers of the system. After learning a small vocabulary and learning to read diagrams consisting of a small number of symbols any major stakeholder in a project should be able to read use cases and use case diagrams. Use cases are written in plain, simple prose whenever possible.
Over the last 5 years, use cases have become a “best practice” of software development. Use cases are used for the following purposes:
Because use cases are included in UML and many people first encounter them along with UML, many people are unaware that they can apply use cases without learning UML. Use cases are an effective method of capturing requirements that can be used with or without UML. They can be used with any process or methodology (or lack thereof) and don't require a specific methodology, such as the Unified Process (UP) or the Rational Unified Process (RUP).
Partly because most of literature about use cases is in the context of UML, there seems to be too much focus placed on use case diagrams. (Here is an example of a Use-Case Diagram.)
Use Cases are inherently a text-based format. The Use-Case diagram makes a nice graphical table of contents, but is not really necessary. (They can sometimes be helpful for visualizing relationships between use cases and actors.)
[SCHNEIDER] is a great introduction for “anyone interested in applying use cases to project development” and presents use cases within the context of the development of a sample project. Some sections in the book are most appropriate to software developers but they can be safely skipped. [SCHNEIDER] provides a sufficient introduction for Managers, Domain Experts, and other non-technical Stakeholders. For those interested in more depth: [COCKBURN] provides more detail on the art of writing use cases. [FOWLER] provides an overview of UML, a graphical language used by software developers that includes Use Case Diagrams. [KRUCHTEN] provides an overview of the Rational Unified Process, the most popular software development methodology that uses UML.