In this chapter
No system exists in isolation. Every interesting system interacts with human or automated actors that use that system for some purpose, and those actors expect that system to behave in predictable ways. A use case specifies the behavior of a subjecta system or a part of a systemit describes sequences of actions, including variants, that a subject performs to yield an observable result of value to an actor.
You apply use cases to capture the intended behavior of the system you are developing, without having to specify how that behavior is implemented. Use cases provide a way for your developers to come to a common understanding with your system's end users and domain experts. In addition, use cases serve to help validate your architecture and to verify your system as it evolves during development. As you implement your system, these use cases are realized by collaborations whose elements work together to carry out each use case.
Well-structured use cases denote essential subject behaviors only, and are neither overly general nor too specific.