設計

要求を満たすソフトウェアの構造や振る舞いを、実装前に決める活動

設計アーキテクチャ
設計」の技術書を見る (132 冊) →

設計とは

ソフトウェアにおける設計とは、要求を満たすためにシステムの構造・モジュール分割・データの流れ・振る舞いを、実装に着手する前に決める活動だ。何をどう作るかの見取り図を描く工程であり、設計の良し悪しがその後の開発速度・保守性・拡張性を大きく左右する。

設計のレベル

設計は粒度によって段階に分かれる。

レベル 決めること
アーキテクチャ設計 システム全体の構成、技術選定
詳細設計 モジュールやクラスの責務、インターフェース
データ設計 テーブル構造、データの整合性

上位の設計ミスほど後からの修正コストが大きいため、最初に全体像を固めることが重要になる。

良い設計の原則

良い設計は「変更に強い」ことを目指す。責務を一つに絞る単一責任、関連の薄い部分を切り離す疎結合、内部実装を隠す情報隠蔽といった原則は、いずれも「変更の影響範囲を局所化する」という同じ目的に向かっている。要求は必ず変わるという前提に立つと、これらの原則の価値が見えてくる。

過剰設計という落とし穴

将来を見越して柔軟性を盛り込みすぎると、使われない抽象化が複雑さだけを増やす過剰設計に陥る。必要になるまで作り込まない (YAGNI) 姿勢と、シンプルさを優先する判断が、現実には堅牢な設計につながることが多い。設計は「正解を一度で当てる」よりも、変更しやすく保ち続ける営みだと捉えたい。

理解を深めるには関連書籍が参考になる。

この記事は役に立ちましたか?

関連用語

関連する記事