Software Engineering Body of Knowledge is a book published by the IEEE often known as the SWEBoK, and it summarizes the generally accepted body of knowledge for the entire field of software engineering.
In this book, it is stated that the definition of software design is as follows:
"The process of defining the architecture, components, interfaces, and other characteristics of a system or component" and "the result of [that] process".
Specifically, software design can be split into two levels of hierarchy:
Architectural design, describing how software is split into its composite components
Detailed design, describing the specifics of each component in sufficient detail as to describe its component.
A component is a part of a software solution, with interfaces reaching off the component as both required interfaces (things the software requires to function) and provided interfaces (things the software provides to other components).
These two design processes (Architectural...