A USE Case is a narrative document that describes the sequence of
events of an actor (an external agent) using a system to complete
Use cases capture who (actor) does what (interaction) with
the system, for what purpose (goal), without dealing with system
internals. 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 can be developed as an aid to producing requirements;
they can also be developed from the requirements as a direct aid in
Use cases are used as input to CRC card sessions.
UML has notation to express use cases... we will do it informally.
One of the big dangers of use-cases is that of structuring the
software to mimic the use cases. 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.