LoginSignup
1358
1208

More than 1 year has passed since last update.

わかりやすいシステム構成図の書き方

Last updated at Posted at 2022-06-11

わかりにくいシステム構成図とは

こんなシステム構成図を書いてないでしょうか?

image.png

このシステム構成図のわかりにくい点が3つあります。それは

  1. 製品名は書いてあるが「役割」が書いていない
  2. データと処理が区別できない
  3. データの流れと制御の流れが区別できない

の3つです。

わかりやすいシステム構成図

これら3つのわかりにくい点を改善したわかりやすいシステム構成図が↓です

image.png

ポイントを解説していきます

ポイント1. 製品名称ではなく「役割」を書く

システム構成図には製品名称ではなくシステムコンポーネントの「役割」を書きます。

役割とは、例えば〇〇データや〇〇処理といったことであり、それを読むだけでシステムの動きを理解できる文字列です。役割をかかずに製品名称のみを書いてしまうと、その製品を知らない人が見たときに理解できません。例えば「Cloud Pub/Sub」という製品はGCPというパブリッククラウドの分散キュー製品ですが、知らないとわかりません。

image.png

ポイント2. データと処理を形で書き分ける

コンピュータシステムはつきつめると「データを処理する」ことです。必然的に、システム構成図にはデータと処理という大きく異る2つのものが登場するため、それらを異なる形で表現し書き分けるとわかりやすくなります。

例えば、ファイルやDBの中のテーブルは、そこにデータが永続されているためデータといえます。一方で加工処理やワークフローエンジンなどはそれ自体はデータを持たないため、処理に分類できます。これらについて、明確にかき分けることでわかりやすくなります。

この例では、処理を長方形に統一し、データは世の中でよく使われているイメージしやすいアイコンにしています。

image.png

ポイント3. データの流れと制御の流れで線を書き分ける

データと処理をかき分けた後は、それらを線でつないでいくのですが、その際にポイントはデータの流れと制御の流れを異なる線で書き分けることです。システムの動きを理解する上ではデータの流れを追うことが重要ですので、データの流れを明示的に書くことにより、構成図を見た人はデータがどのように流れているかひと目で分かるようになります。一方で制御の流れはそこまで重要でない事がおおいため、控えめに書きます。

具体的には、データの流れは実線で、制御の流れは破線で示します。
image.png

データの流れを書く場合は、処理を起点としてデータに対して矢印を書きます。ポイントは矢印の起点を処理にすることです。これにより、処理が能動的にデータにアクセスしにいっている様子がひと目でわかります。

image.png

制御の流れは、ある処理が別の処理を呼び出す際のことであり、呼び出し元となっている処理を起点として、呼び出し先の処理に向けて破線を書きます。

image.png

わかりやすいシステム構成図の例では、ワークフローエンジンがテーブル復元処理を起動するときは制御の流れの破線を用い、更新ログが復元したデータに変換される部分はデータの流れの実線を用いて表現しています。

image.png

ただし、より複雑な場合はUMLを検討する

今回説明したシステム構成図は、よくあるクラウドベースのシステム構成図であり、それをよりわかりやすくするという文脈でブログを書きました。
より大規模なシステム構成図やアプリケーションの詳細な動きを示したい場合は、従来からあるUMLのシステムコンポーネント図やシーケンス図を検討することをおすすめします。

参考: UMLの9種類のダイアグラムとは?

まとめ

以下の3つの点を気をつけてかくと、わかりやすいシステム構成図になります。

  • ポイント1. 製品名称ではなく「役割」を書く
  • ポイント2. データと処理を形で書き分ける
  • ポイント3. データの流れと制御の流れで線を書き分ける

ただし、より複雑な場合はUMLを検討する。

1358
1208
7

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
1358
1208