How to Write an Effective Software Design Document(refactoringenglish.com)
refactoringenglish.com
How to Write an Effective Software Design Document
https://refactoringenglish.com/excerpts/write-an-effective-design-doc/
https://refactoringenglish.com/excerpts/write-an-effective-design-doc/
However if you do this as an executeable specification then the job of core functionality is finished with the specification, with significantly beeter quality, potentially.
This sounds a lot harder than it is - most behaviour is state based and it is possible to define such behaviour with an executeable specification.
In the Functional Safety world this is often your best option.
I wrote my own software package to enable such practices and once used to a slightly different way of thinking it works very well.