And it is something tedious.
Of course, that tediousness is offset by the knowledge that I will have almost everything laid out exactly as it is needed to be. What classes I need to create, the properties and methods each of those classes will need, and even the pseudocode for those classes. And let us not forget the section on the UI. Pages, upon pages of mockups, controls attributes, how controls map to data fields, and even the database tables that a particular screen would have access to.
It is 75 (currently) pages of programming goodness, in a nice, safe, Microsoft Word document.
But here's the template which I used for this document. It's based off of the usual DID and other standards.
- Scope
- Identification
- System Overview
- Document Overview
- References
- Design Decisions
- General Constraints
- Common User Access Conventions
- Inputs
- Outputs
- Interfaces
- Initialization
- Memory & Processing Time Allocation
- Security & Privacy Requirements
- Safety Requirements
- Validation
- Architectural Design
- Software Units
- Interface Design
- Detailed Design
- User Interface Design
- Common UI Elements
- Requirements Traceability
- Notes
- Acronyms & Abbreviations
- Glossary