requirements definition programming
The first stage of software development which defines what the potential users want the system to do. In modern methods these requirements should be testable, and will usually be traceable in later development stages. A common feature of nearly all software is that the requirements change during its lifetime.
See software life-cycle