The most difficult part of requirements gathering, is not the act of recording what the users want; it is the explanatory, developmental activity of helping users figure out what they want.
Steps to follow to develop your requirements
1- Identify key users who have the credibility to define the requirements for the software, then interview to get a set of requirements.
2- Build and show a simple interactive prototype
3- Fully extend the prototype to all functionality of the software.
4-Baseline the specs and put it under change control
5-Write the documentation and write a seperate non-user interface requirements for algorithms, interactions with other hardware and software, also put this document under change control.
Be sure the users understand that the prototype is just a prototype. One risk of creating a Prototype is accidentally raising unrealistic expectations about the future progress of the project.