There's a useful article on Developer.com by Aleksey Shevchekno on the proper way to create effective Software Requirements Specifications.
He discusses the importance of use cases, how to design use case scenarios, the proper structure of a Software Requirements Spec, and even the appropriate language to use. He also suggests making the spec technology-independent and recommends appropriate wording.
Even for those with Agile projects, where the requirements will evolve as prototypes and iterations are developed, it's a valuable exercise to go through. Read on...Software Requirements Specifications: The Right Way
Labels: agile, software-requirements, usability, use-cases