The first step in developing any application is to understand the
functionality it must have. This is the goal of the requirements stage. The
application is defined in terms of its functionality, with no reference to
details of its realization. Requirements are defined from the point of view
of the customer, using use cases and scenarios.