見出し画像

登場人物が多数になったときの詳細分解方法

時間関係を伴う分解

ブロック図から始めるアイデア創出(1)ではフードデリバリーサービスの事例を用いてビジネスの分解の事例を示した。このとき、顧客やデリバリー会社などを平面的に並べた図では、実際の動きについて気が付きにくいポイントがあることも説明をした。下記の図では、配達事業者がどのレストランに行くのかの情報の流れが抜けていることを示した。

図1 フードデリバリーサービスの分解(再掲)

 この図を基にしても、よくそれぞれの立場で動きを考えると課題が見えてくるのだが、より時間関係を明確にする図を描いたほうがわかりやすい場合がある。このNoteでは時間(順番)関係を記載するための図の書き方を示してみる。この手法では登場人物が増えても詳細な手順が記載できる。

図2 時間関係を含めた分解の図

図2が時間(順番)関係をより明確に示すための書き方になる。この図は登場人物1の下にある縦棒に、登場人物1に関するアクションが上から下へと書かれるようになっている。また登場人物1と登場人物2の間にある矢印が、その二人の間のやり取りを示している。この図では、登場人物1が顧客で、登場人物2がレストランとすると、①注文は、顧客から電話等の何らかの手段で料理を注文することになる。これを受けたレストランは、注文を受けた料理を②調理する。調理が終わると、レストランから顧客に料理の③配達を行う。つまり、この図は伝統的な出前のシステムを表していて、お店に電話をして、料理が届くという単純な構造を示している。

この書き方は、実は非常に有用で、かつ非常に複雑なシステムを記述できるため、システム設計やハードウエア設計、通信手順設計などいろいろなところで使われる。例えば通信手順では、端末と局の間のやり取りを記載するときなどこの形式が使われることが多い。

図2では、登場人物が2人だが、図1の場合には登場人物が4人いた。では、図1のフードデリバリーサービスをこの手法で書き下すとどうなるだろうか、見てみよう。

図3 フードデリバリーサービスの時間関係分解

図3は、図1のフードデリバリーサービスについての時間の流れを考慮した図になっている。①では、顧客はアプリ経由でデリバリー業者に注文を出す。②では、デリバリー業者システム経由でレストランに注文が伝えられる。③ではレストランで注文の品を調理する。④ではデリバリー業者システムから、レストランの最寄りにいる配達事業者に配達依頼を出す。⑤では配達事業者が、配達可能を回答する。⑥では配達事業者は注文の品を受取るためにレストランに移動する。⑦ではレストランで注文番号を伝達する。⑧ではレストランから料理を受取る。⑨では料理を顧客に配達する。⑩では配達完了をデリバリー業者システムに入力する。

以上で一連の流れが完成した。この流れを書くと④の配達依頼が必要であることが一目瞭然になる。④の流れがないと配達事業者が動き出せないことが図の上で理解できる。

現実的には配達事業者はたくさんいて、レストランに近いところにいる複数の事業者に配達リクエストを同時に流しているだろう。この複数事業者への配達依頼についても記載すると図4になる。ここでは2つの配達事業者にリクエストを送ることを想定している。

図4 配達事業者が2つの場合の分解

ここでは図3と比べて、④配達依頼と⑤配達OKのあたりが複雑になっている。つまり、2つの配達業者に対して、④-1と④-2でそれぞれに配達依頼を出している。これに対して、配達事業者1は⑤で配達OKを返し、配達事業者2は⑤-2で配達OKを返している。このとき、⑤のOK返事が⑤-2のOK返事より時間的に早いのでデリバリー事業者システムは配達事業者1へ⑤-1の配達確定を送っている。また、配達事業者2へは⑤-3で配達NGを送っていて、今回の配達は配達事業者1で確定した。(なお、⑪待ちは図3には記載していなかったが、次の注文を待つ状況であり、街中でデリバリーの自転車が待っているところがこの状態に該当する。)

複数配達事業者を想定する場合には、最終的な配達事業者を1つを選定しないといけないため、図4の手順が必要となる。ただ、ここまで記載するのはいわゆる「設計」段階なので、アイデアを詰める段階ではここまでの詳細は不要だろう。

実際のシステムの設計では、配達OKを出してから自転車トラブルなどで配達事業者がレストランに行けなかった、とか、顧客の注文がキャンセルされたとか、異常事態に対しての設計を追加していくことになる。

まとめ

今回は、複数の登場人物が、時間(順番)を伴って動作や状態を変えていく場合の記載の方法を説明した。この図は一瞬複雑なように思えるが、実際の仕事に照らして一つずつ手順を分解するものであり、慣れれば比較的簡単に描くことができる。またこの図を描くことで新たな課題を発見したり、より大きなシステムの発想の基礎にすることが可能になる。ぜひ覚えてほしい。

おまけ

今回説明した図は、システム設計に利用されるUML(United Modeling Language)として標準化されている仕様のシーケンス図の簡易版ということになる。本格的には条件分岐やループなどの処理も記載できるので、興味がある方は参考にしてほしい。

https://www.itsenka.com/contents/development/uml/sequence.html

この記事が気に入ったらサポートをしてみませんか?