Everything exists and was known from 1960s/1970s. People are just not studying, adapting and using the well-known standards/techniques. Standard Engineering is built on them and Software Engineering adapts/extends those for its own needs.
Specification (technical standard) (general)- https://en.wikipedia.org/wiki/Specification_(technical_stand...
Software Requirements Specification - https://en.wikipedia.org/wiki/Software_requirements_specific...
Software Design Specification - https://en.wikipedia.org/wiki/Software_design_description
Formal Specification - https://en.wikipedia.org/wiki/Formal_specification
System Requirements Specification - https://en.wikipedia.org/wiki/System_requirements_specificat...
All have been collected in a Software Engineering Body of Knowledge book - https://en.wikipedia.org/wiki/Software_Engineering_Body_of_K...