A complete set of use cases specifies all the different ways to use the system, and therefore defines all behavior required of the system, bounding the scope of the system.
Use cases are stories, scenarios, or descriptions of using a system.
Use cases are not exactly like requirements or functional specs, but they illustrate and imply requirements in the stories they tell. Use cases are used as input to CRC card sessions. One of the big dangers of use-cases is that of structuring the software to mimic the use cases. 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.