TL;DR
ソフトウェア全体をすっきりした形に整えること。現場で役立つシステム設計の原則では、次のように説明している。
ソフトウェア全体をすっきりした形に整えること。
どこに何が書いてあるかを分かりやすくし、修正や拡張が楽で安全になるコードを生み出す。
なぜ必要か
どこに何が書いてあるかが分かりやすくなると、コードの修正や拡張が楽になり、安全に行えるようになる。
仕組み
英語版 Wikipedia によると、ソフトウェア設計は、ソフトウェアシステムを実装・修正する前に、それがどう動くかを考える過程である。要求分析がシステムの「何をするか」を決めるのに対して、設計は「どう実現するか」を決める。そのため、設計は要求分析のあとで、コーディングの前に行う活動とされる。
注意点
英語版 Wikipedia では、計画や要求分析なしに、コーディングしながら設計することもできるが、複雑なプロジェクトではそれが難しくなるとしている。