ヒトリ歩き

愚痴とかいろいろ書きます

設計書に正解はない

今だに設計書は何を書くべきなのか?よく悩むことがあります。
コーディングのやり方とか、コードの書き方という書籍はとても多くありますが、なかなか設計書はこう書いた方がいいという書籍はないんですよね。
ですが、そんな数少ない設計書に関することが書かれている素敵な書籍に出会いましたので、感想を書きたいと思います。

「システム設計の謎を解く 強いSEになるための機能設計と入出力設計の極意」

オススメしたい人たち

設計をしたことがない初心者からバリバリ設計している人まで
バリバリ設計している人には、知識を改めて見直すときに使えると思います。

感想

まず、書籍は入力、出力、背景と3つの要素から構成されており、3つ要素に対して章が紐づいています。
なので、気になる章からつまんでも章で完結しているので、特定の章から読んでも良いです。
特に画面設計では何を書くべきなのか迷うことが多々ありますが、どのようなことを書いた方が良いのか分かりやすい解説となっています。
また、アーキテクチャ設計に関しても説明があるので、設計をしたことがない新人の方には本当にオススメです。

著者も設計書の記述内容に正解はないと述べていますが、著者がレビューする際の評価基準は次のようなものだそうです。

・要素を満たしているかどうか(要件とのトレーサビリティ)
・設計要素(データパターンや処理パターン)が網羅的に設計されているかどうか
・同じような設計要素(名称が違うが内容の違いが微少である要素)が複数存在しないか
・設計要素間で矛盾がないか
・運用を意識した設計になっているか
・分かりやすい構造になっているか
・修正しやすい構造になっているか
・テストしやすい構造になっているか
・再利用しやすい構造になっているか

要素を満たしているかどうか 設計要素が網羅的に設計されているかどうか 同じような設計要素が複数存在しないか 設計要素間で矛盾がないか 運用を意識した設計になっているか 分かりやすい構造になっているか 修正しやすい構造になっているか テストしやすい構造になっているか 再利用しやすい構造になっているか 拡張しやすい構造になっているか

http://kotapontan.hatenablog.com/entry/%E2%96%A0

・拡張しやすい構造になっているか
引用:高安 厚思 (著) 「システム設計の謎を解く 強いSEになるための機能設計と入出力設計の極意」

良い設計とするために意識していること

私が設計するときに意識していることが著者のレビューの評価基準に含まれていたので、自分の考えが間違ってなかったというのは私にとってとても良い収穫でした。
良い設計をするために、私が意識しているものとしては、テストしやすい設計となっているか?です。
設計して実装後に、品質を担保するためにテストをしますが、テストしにくとテストに工数がかかりますし、そもそもテストがしにくということはオペレータの操作も複雑な手順となっている可能性があり、使用性の観点で良くないです。
テストがしやすい設計ということは、修正もしやすい・分かりやすいということに繋がると考えているので、テストしやすい設計を意識しています。

まとめ

なかなか設計書に関する書籍がない中で、システム設計の謎を解くに出会えて本当によかったと改めて思います。
(実は読んだのは、改訂版ではないので改訂版は後日購入し設計のたびに見ようと思います。)

  • 設計は、システムとの境界部分に対して入出力を明確にすべき。
  • 設計書に何を書くべきなのか正解はないけど、入出力を明確にすべきなのは共通して言えることだと思った。
  • 分かりやすい設計書はどんな設計書なのか日々意識しないといけないと改めて感じた。