詳細設計と処理の順序

詳細設計において、設計書を記載する場合に処理の順序を意識した記述をすべきなのか、考えてみました。

今回、「設計書の記述に処理の順序を意識した記述が必要か」について考えてみようと思ったきっかけは、
XamarinでAPP作成を行った際に作成した詳細設計書に違和感を覚えたためです。

具体的に違和感を覚えた理由は以下の3つです。

  • 後から見たときにどこに何が記載されているかわかりにくい
  • 設計書とプログラムの2重管理となっている
  • C#と相性が悪いように感じた

まず、1つ目の「後から見たときにどこに何が記載されているかわかりにくい」についてですが、
詳細設計書を処理の順序で記載している場合、
設計書を最初から読まなければ、どこに何が記載されているかがわかりません。

そして、システムの規模が大きくなれば、大きくなるほど、
ページ数が多くなり、結果としてわかりにくい設計書になってしまうと感じました。

そのため、詳細設計書の目的であるプログラマーへの設計思想の伝達や、
保守作業を行う際の情報共有の資料としての意味をなさなくなってしまうと感じました。

次に、「設計書とプログラムの2重管理となっている」についてですが、
詳細設計書を記載する際に、処理の順序を意識した記述を行った場合に、
結果として、プログラムを日本語で記述しただけとなってしまう場合があります。

しかし、プログラムを日本語で記述する作業を行うのであれば、
そのままプログラムを組んだほうが少ない時間でシステムを作成することが可能です。

また、プログラムを日本語で記述しただけとなってしまった設計書であれば、
変数名や、コメントが正しく記述されたプログラムで十分代替可能ではないかと感じています。

最後に、「C#と相性が悪いように感じた」についてですが、
自分は、C#でプログラムを組むことが多いです。
そして、C#オブジェクト指向言語です。

しかし、処理の順序に従って詳細設計を記載するという行為は、
手続き型のプログラムのような行為です。

そのため、プログラム言語によっては、
設計書を記載する場合に処理順序で記載する方法は適さないように感じました。

では、どのように詳細設計書を記載したほうが良いのでしょうか。

結論としては、詳細設計書へは、処理の順序を記載する必要があると思います。
なぜなら、トランザクションでのテーブルの更新順序や、入力チェックのような、
順序が重要となる内容の検討を詳細設計で行うからです。
そして、検討結果をプログラマーに伝えるための資料として、
詳細設計書が使用されるためです。

しかし、すべてを処理の順序通りに記載する必要はないと思います。
そして、設計書の目的を達成できるフォーマットとなっていることが重要であると感じました。