How to structure a software requirements document

Effective requirements documentation is essential for any good software project. Expert Karl E. Wiegers explains how to structure your software requirements documents.

I have recently been tasked to write a requirements document, although I have an understanding of the structure of the document, I would like an example document or case study of an already written requirements document. I am quite fuzzy on the language to use within this document and how clearly to get the points across to the designer. Any assistance would be greatly appreciated. Thanks.

It's certainly true that people learn better from examples than just from descriptions or templates. It's hard to find good public examples, though, because most organizations view their requirements documents as proprietary.

You can access a sample integrated set of requirements documents here. These are drawn from Appendix D of my book, Software Requirements, 2nd Edition. There is a vision and scope document, several use case descriptions, and a software requirements specification (SRS), all for a hypothetical project called the Cafeteria Ordering System. The SRS does not contain all of the requirements for the system, but enough so you can see good examples of how to write them. These documents also illustrate the data dictionary, some simple business rules, and some analysis models (context diagram, entity-relationship diagram, state-transition diagram). These examples should give you a good idea of how you might complete each section in the templates available here.

I recommend that every organization build a collection of process assets that includes sample documents drawn from actual projects. These can serve as useful aids for anyone who needs to create similar documents on a future project. As your teams develop better examples with experience or as you undertake different kinds of projects, you can update the contents of the process assets collection. Your process assets collection also should include appropriate document templates, procedure and process descriptions, checklists, and other work aids. These items can save team members time by learning from past work that has been done in the organization.

Several other sample requirement specifications from actual projects are available at the following URLs. They reflect different templates, different writing styles, different types of projects, and also different degrees of quality:

More on this topic

  • Software Requirements, Second Edition -- Chapter 7, Hearing the Voice of the Customer
  • Software requirements specification template
  • Tuning up your software requirements reviews


Dig Deeper on Software development lifecycle

Cloud Computing
App Architecture