ソフトウェア設計
デザインパターン
ソフトウェア設計者やアーキテクトは、設計上の問題が既存の解決済みの問題と同じであると気づくことがある。よくある問題についての解法のテンプレート（あるいはパターン）をデザインパターンと呼ぶ。過去に評価済みのデザインパターンの利用によって、ソフトウェア開発工程が加速される。
必要性
ソフトウェア設計文書により、プログラミングを開始する前に制約条件、要求仕様などが明らかとなり、検討される。シミュレーションやプロトタイプの構築によって設計変更となる場合もある。要求分析や計画立案せずに、プログラミングしながら設計することも可能だが、複雑な大規模プロジェクトではそのような工程の省略は選択肢として考慮されないのが普通である。プログラミングの前に設計工程を置くことで、ソフトウェアの対象領域の専門家と設計者がプログラマと共同で作業し、ソフトウェアの利便性と技術的正当性を高めることができる。