わかりにくいシステム構成図とは
こんなシステム構成図を書いてないでしょうか?
このシステム構成図のわかりにくい点が3つあります。それは
- 製品名は書いてあるが「役割」が書いていない
- データと処理が区別できない
- データの流れと制御の流れが区別できない
の3つです。
わかりやすいシステム構成図
これら3つのわかりにくい点を改善したわかりやすいシステム構成図が↓です
ポイントを解説していきます
ポイント1. 製品名称ではなく「役割」を書く
システム構成図には製品名称ではなくシステムコンポーネントの「役割」を書きます。
役割とは、例えば〇〇データや〇〇処理といったことであり、それを読むだけでシステムの動きを理解できる文字列です。役割をかかずに製品名称のみを書いてしまうと、その製品を知らない人が見たときに理解できません。例えば「Cloud Pub/Sub」という製品はGCPというパブリッククラウドの分散キュー製品ですが、知らないとわかりません。
ポイント2. データと処理を形で書き分ける
コンピュータシステムはつきつめると「データを処理する」ことです。必然的に、システム構成図にはデータと処理という大きく異る2つのものが登場するため、それらを異なる形で表現し書き分けるとわかりやすくなります。
例えば、ファイルやDBの中のテーブルは、そこにデータが永続されているためデータといえます。一方で加工処理やワークフローエンジンなどはそれ自体はデータを持たないため、処理に分類できます。これらについて、明確にかき分けることでわかりやすくなります。
この例では、処理を長方形に統一し、データは世の中でよく使われているイメージしやすいアイコンにしています。
ポイント3. データの流れと制御の流れで線を書き分ける
データと処理をかき分けた後は、それらを線でつないでいくのですが、その際にポイントはデータの流れと制御の流れを異なる線で書き分けることです。システムの動きを理解する上ではデータの流れを追うことが重要ですので、データの流れを明示的に書くことにより、構成図を見た人はデータがどのように流れているかひと目で分かるようになります。一方で制御の流れはそこまで重要でない事がおおいため、控えめに書きます。
具体的には、データの流れは実線で、制御の流れは破線で示します。
データの流れを書く場合は、処理を起点としてデータに対して矢印を書きます。ポイントは矢印の起点を処理にすることです。これにより、処理が能動的にデータにアクセスしにいっている様子がひと目でわかります。
制御の流れは、ある処理が別の処理を呼び出す際のことであり、呼び出し元となっている処理を起点として、呼び出し先の処理に向けて破線を書きます。
わかりやすいシステム構成図の例では、ワークフローエンジンがテーブル復元処理を起動するときは制御の流れの破線を用い、更新ログが復元したデータに変換される部分はデータの流れの実線を用いて表現しています。
ただし、より複雑な場合はUMLを検討する
今回説明したシステム構成図は、よくあるクラウドベースのシステム構成図であり、それをよりわかりやすくするという文脈でブログを書きました。
より大規模なシステム構成図やアプリケーションの詳細な動きを示したい場合は、従来からあるUMLのシステムコンポーネント図やシーケンス図を検討することをおすすめします。
まとめ
以下の3つの点を気をつけてかくと、わかりやすいシステム構成図になります。
- ポイント1. 製品名称ではなく「役割」を書く
- ポイント2. データと処理を形で書き分ける
- ポイント3. データの流れと制御の流れで線を書き分ける
ただし、より複雑な場合はUMLを検討する。