0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

基本設計はプロジェクトの成否をほぼ決める工程です。
結論から言うと👇

後工程で迷わない状態を作ること」が重要です。


🎯 基本設計で最も重要な視点

👉 「誰が実装しても同じものができるか?

これが満たせていないと、

  • 実装ブレる
  • バグ増える
  • 手戻り発生
    → 炎上します

🚀 基本設計で注意すべきポイント(実務レベル)

① 要件とのトレーサビリティ

👉 要件と設計が必ず対応していること

チェック:

  • この設計はどの要件を満たしているか?
  • 要件に抜けはないか?

👉 「なんのための設計か」を明確に


② 抽象と具体のバランス

NG:

  • 抽象すぎる → 実装できない
  • 詳細すぎる → 設計として意味がない

👉 「実装できるレベルまで具体化する


③ 処理フローの明確化

必要なもの:

  • 正常系フロー
  • 異常系フロー
  • 状態遷移

👉 「どう動くか」が一目で分かる


④ 入出力の定義

必ず決める:

  • 入力データ
  • 出力データ
  • データ形式

👉 ここが曖昧だと実装が崩壊


⑤ 境界条件・例外の定義

見落としがちな重要ポイント👇

  • null / 空データ
  • 最大値・最小値
  • エラー時の動作

👉 バグの8割はここ


⑥ 用語・データの統一

  • 同じ意味の言葉を統一
  • データの定義を明確に

👉 用語ズレ=バグの元


⑦ 責務の分離(設計の基本)

  • 1つのモジュールは1つの役割
  • 依存関係をシンプルに

👉 変更に強い設計になる


⑧ 非機能要件の考慮

見落とすと後で地獄になります👇

  • パフォーマンス
  • セキュリティ
  • 可用性
  • 拡張性

👉 「動く」だけでは不十分


⑨ データ設計(超重要)

  • 正規化
  • 一貫性
  • 更新タイミング

👉 データ設計ミスは致命的


⑩ 将来変更を考える

  • 変更しやすい構造か?
  • 拡張できるか?

👉 「今だけ正しい」は危険


⚠️ よくある失敗

  • 要件とズレている
  • 異常系がない
  • 用語がバラバラ
  • 実装できないレベルで抽象的
  • 非機能を無視

🔚 一言でまとめると

👉 優秀なSEの基本設計 =
ズレ・抜け・迷いがない設計

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?