ソフトウェア設計
ソフトウェア設計(ソフトウェアせっけい、英: Software design)は、ソフトウェアのための問題解決と計画の工程である。ソフトウェアの目的と仕様が決定した後で、ソフトウェア開発者が設計をしたり、専門の設計者が開発計画を立てる。細かいコンポーネントやアルゴリズムの実装だけではなく、アーキテクチャ的観点での検討も行われる。
ソフトウェア開発工程での要求分析によって、ソフトウェア工学における仕様が確定する。そのソフトウェアがユーザーとの対話を必要とするものか、あるいはユーザー中心設計であれば、ソフトウェア設計にはユーザーエクスペリエンス設計も関わり、絵コンテなども仕様に含まれることになる。完全に自動的に動作するソフトウェア(ユーザインタフェースのないソフトウェア)であれば、ソフトウェア設計は単なるフローチャート作成程度の作業となるかもしれない。また、統一モデリング言語 (UML) などの半形式的手法もある。いずれにしても、ソフトウェア設計工程の成果物としては、何らかのソフトウェア設計文書が生成される。