Here are some key guidelines to writing a software requirements specification (SRS)"
1. Requirement Modeling asks, "What", not "How". What user interactions are involed, what objects are manipulated, what functions must be performed, what behaviors does system have, what interfaces, and what constraints apply?
2. Keep in mind the 3 goals of the SRS:
a. Describe 100%
b. Create enough information for the next step: software design. This information may include sample user documents currently used such as excel sheets, printed reports, etc. shown with the requirements description or placed in appendix section.
c. Define requirements that can be validated as "done" once design is completed and again when software is built.
3. Pretty diagrams can help but can also be confusing. Use more description in as text (called narratives), table, and charts along with simple diagrams. Key point is to have clear requirements, not just pretty diagrams.
4. Make sure you spend time to detail even the complicated requirements. Otherwise, unclear information will come back to bite you during design and coding phases.
5. Don't make it too long. Watch out for over-documenting those functions that are already well understood.
6. Keep the SRS up to date as you make changes during late phases such as design and coding phases.
7.Approximately 20% of the project time should be allocated to requirements definition.
8. A good requirements document will have enough detail to create the software design document and the test plan.