複雑な機能要件は絵をかいて整理するーシステム設計

絵や表を書いて、機能をわかりやすくする

システムの機能には、複数の条件が影響する複雑な機能があります。
そして、そのような複雑な機能では、文章で書かれても理解しづらいことが多々あります。

そのような場合は、条件を1つずつ分解し、表や絵をかいて整理することで、1つ1つの単純な問題として扱えるようにします。
そして、1つ1つを単純な問題として扱うことで、仕様をわかりやすくすることができます。

さらには、仕様がわかりやすくなることで、内部ロジックを単純化できるようになります。

絵を描くことでわかりやすくなる場合

以下のパターンは、絵を描くことで、情報の関係性がわかりやすくなることが多いパターンです。

  1. 複数の日時が関係する場合(申し込み日が、最終期限より前の申し込みを抽出する場合、発行日から3か月後など)
  2. 前回入力した情報を使用して、今回の情報を生成する場合(昨年の年休残日数+当年の有給取得日数が当年年初の年休残日数になるなど)
  3. 複数のデータを積み上げていく場合(日々のデータを集計して月単位のデータにする場合、給与の所得税計算など)

表を書くことでわかりやすくなる場合

複数の条件により、処理結果が変わる場合は、表を書くことで、条件を整理できます。
そして、表にすることで、すべてのパターンを過不足なく表すことが簡単にできます。

(例)
条件Aがtrue、条件Bがfalseの場合のみデータ入力を可能とする場合

条件A 条件B データ入力可否
true true 入力不可
true false 入力可
false true 入力不可
false false 入力不可

絵の描き方の参考になりそうな本

図で考える。シンプルになる。

図で考える。シンプルになる。

図で考えるとすべてまとまる

図で考えるとすべてまとまる