基本設計はプロジェクトの成否をほぼ決める工程です。
結論から言うと👇
「後工程で迷わない状態を作ること」が重要です。
🎯 基本設計で最も重要な視点
👉 「誰が実装しても同じものができるか?」
これが満たせていないと、
- 実装ブレる
- バグ増える
- 手戻り発生
→ 炎上します
🚀 基本設計で注意すべきポイント(実務レベル)
① 要件とのトレーサビリティ
👉 要件と設計が必ず対応していること
チェック:
- この設計はどの要件を満たしているか?
- 要件に抜けはないか?
👉 「なんのための設計か」を明確に
② 抽象と具体のバランス
NG:
- 抽象すぎる → 実装できない
- 詳細すぎる → 設計として意味がない
👉 「実装できるレベルまで具体化する」
③ 処理フローの明確化
必要なもの:
- 正常系フロー
- 異常系フロー
- 状態遷移
👉 「どう動くか」が一目で分かる
④ 入出力の定義
必ず決める:
- 入力データ
- 出力データ
- データ形式
👉 ここが曖昧だと実装が崩壊
⑤ 境界条件・例外の定義
見落としがちな重要ポイント👇
- null / 空データ
- 最大値・最小値
- エラー時の動作
👉 バグの8割はここ
⑥ 用語・データの統一
- 同じ意味の言葉を統一
- データの定義を明確に
👉 用語ズレ=バグの元
⑦ 責務の分離(設計の基本)
- 1つのモジュールは1つの役割
- 依存関係をシンプルに
👉 変更に強い設計になる
⑧ 非機能要件の考慮
見落とすと後で地獄になります👇
- パフォーマンス
- セキュリティ
- 可用性
- 拡張性
👉 「動く」だけでは不十分
⑨ データ設計(超重要)
- 正規化
- 一貫性
- 更新タイミング
👉 データ設計ミスは致命的
⑩ 将来変更を考える
- 変更しやすい構造か?
- 拡張できるか?
👉 「今だけ正しい」は危険
⚠️ よくある失敗
- 要件とズレている
- 異常系がない
- 用語がバラバラ
- 実装できないレベルで抽象的
- 非機能を無視
🔚 一言でまとめると
👉 優秀なSEの基本設計 =
「ズレ・抜け・迷いがない設計」