The approach that engineering (and some other) disciplines use to specify how to create or do something. A successful design must satisfies a (perhaps informal) functional specification (do what it was designed to do); conforms to the limitations of the target medium (it is possible to implement); meets implicit or explicit requirements on performance and resource usage (it is efficient enough).
A design may also have to satisfy restrictions on the design process itself, such as its length or cost, or the tools available for doing the design.
In the software life-cycle, design follows requirements analysis and is followed by implementation.
["Object-Oriented Analysis and Design with Applications", 2nd ed., Grady Booch].