Capture system functional requirements as use cases
Capture system functional requirements as UseCases. By capturing the Use requirements as statements of required interactions between the user and the system, the UseCase defines the boundary of the problem (and of the resulting system).
Design documents are often ineffective as vehicles to communicate the customer vision of how the system should work. Capturing Use requirements as UseCases puts them in a form that can readily be understood by all stakeholders. It has the additional advantage that it defines the boundary of the problem and of the required system. From the sum of the Use Case Diagrams of the system it is relatively easy to distil the system Context Diagram.