Software specifications and design are a technical response to the user requirements, and serve to describe the way the user requirements will be handled in an automated fashion by the software application that is being constructed.
The term specifications and design covers a very broad range of actual forms of design, including but not limited to the following:
Rough preliminary specifications
Detailed final specifications
External specifications of the features visible and usable by clients ...