Software design is the process of conceptualizing how a software system will work before it is implemented or modified.Software design also refers to the direct result of the design process โ the concepts of how the software will work which may be formally documented or may be maintained less formally, including via oral tradition.
The design process enables a designer to model aspects of a software system before it exists with the intent of making the effort of writing the code more efficiently. Creativity, past experience, a sense of what makes "good" software, and a commitment to quality are success factors for a competent design.