Use cases look at the requirements from the standpoint of an
end user working with the program and how the program responds to the user’s
inputs. At its simplest level, a use case can be thought of as a play where the
end user is one actor and the program is another actor. These two actors then
have dialogs which explain the interactions between the actors. More
complicated scenarios can have additional actors including other programs,
other types of users, and even hardware. Use cases have proven to be very easy
to read and understand even for non-technical clients.
Each use case explores what happens when something goes
wrong in addition to the “normal” interactions. The exploration of these
failure conditions is very important because these cases are the most difficult
to code and can cause the most amount of testing. Traditional requirements
often ignore these cases. It can be helpful to have developers and testers both
think of additional possible failures in a use case so they can be fully documented
in the requirements.
Use cases do not provide a complete picture of the system
though. A technical specification should also be included in the requirements
to detail formulas and routines that take place behind the scenes.