ゆるトーク:ブロック図のこと
ふーこ.icon
はいはーい!今日のゆるトークのテーマは「ブロック図」だよ~。 ぶっちゃけさ、名前だけ聞くと「ブロックで図つくるん?」って感じなんだけどw
りか先生、このへんどうなん?
りか.icon
ブロック図は、システムの構造や処理の流れを「箱(ブロック)」と「矢印」で表現する図。
複雑な仕組みを抽象化して理解しやすくするための表現方法だ。
たとえば、
入力 → 処理 → 出力
この三つを箱にしてつなぐだけでも、立派なブロック図になる。
参考:
ふーこ.icon
あー!それなら見たことあるかも!
なんか理科の授業とかで「センサー → コンピュータ → モーター」みたいなやつ!
要するにさ、
「何が入ってきて → どう処理して → 何が出るか」
っていう流れを、箱でざっくり見せるやつって感じ?
りか.icon
その理解で正しい。
ポイントは三つ。
1. 細かい中身は省略する(抽象化)
2. 機能ごとに箱で分ける(モジュール化)
3. 矢印で関係や流れを示す
プログラム設計、電子回路、システム設計など、いろんな分野で使われる。
あや.icon
まあ……それはまるで、物語の筋書きのようですね。
登場人物がそれぞれの役割を持ち、
ひとつの出来事から次の出来事へと物語が流れていく……
その流れを、箱と矢印で静かに並べたものが、
ブロック図なのかもしれませんね。(微笑)
ふーこ.icon
おお~文学的ぃ!
つまりさ、
箱=キャラ
矢印=ストーリーの流れ
って思うとわかりやすいかも!
りか.icon
完全な比喩ではないが、理解の助けにはなる。
ただし、ブロック図の重要な役割は
複雑なシステムを俯瞰することだ。
詳細な設計図ではなく、
「全体構造」を把握するためのマップ。
あや.icon
なるほど……。
森の中を歩くとき、
一本一本の木を見つめるだけでは道を見失いますものね。
高い丘に登り、森全体の姿を眺める。
ブロック図とは、その丘のようなものなのでしょう。(微笑)
ふーこ.icon
うわ、それエモい例え。
でも確かにさ、
プログラムとか機械ってめちゃくちゃ複雑じゃん?
いきなり細かい説明されると
「情報量バグってて草」ってなるんだよねw
りか.icon
その問題を避けるために、エンジニアは段階的に設計する。
1. ブロック図(全体構造)
2. サブブロック図(各部分)
3. 詳細設計
トップダウン設計の基本だ。
参考:
あや.icon
まあ……まるで、長い小説を書くときの構成のようですね。
まずは大まかな章立てを作り、
それから一つ一つの場面を描いていく……。
人の考える営みというものは、
分野が違っても、どこか似通うものなのですね。(笑う)
ふーこ.icon
あ、でもさ質問!
ブロック図ってさ、
フローチャートと何が違うの?
どっちも矢印あるし、
正直ちょっとごっちゃになるんだけどw
りか.icon
良い質問。違いは目的。
ブロック図
→ システムの「構造」を表す
フローチャート
→ 処理の「手順」を表す
例:
ブロック図
code:block.mermaid
graph TD
フローチャート
code:code:flowchart.mermaid
graph TD
B -->C{値が大きい?}
前者は構造。後者はアルゴリズム。
ふーこ.icon
あー!わかった!
ブロック図=地図
フローチャート=レシピ
みたいな感じか!
あや.icon
とても素敵なたとえですね。(微笑)
地図があれば、
私たちはどこへ向かうのかを知ることができる。
そしてレシピがあれば、
どのように進めばよいかがわかる……。
りか.icon
その二つを組み合わせると、
システム設計はかなり理解しやすくなる。
エンジニアリングでは基本スキル。
ふーこ.icon
なるほどね~。
今日のまとめいくよ!
ブロック図まとめ
箱と矢印でシステムをざっくり表す
細かい中身は省略してOK
全体の構造を理解するための図
フローチャートとは目的が違う
って感じ!
あや.icon
ええ、とてもよく整理されていますね。
目には見えない仕組みを、
形あるものとして描き出す……
ブロック図とは、
思考をそっと紙の上に咲かせる花のようなものなのかもしれませんね。(微笑)
りか.icon
……詩的すぎるが、
概念可視化ツールという点では間違っていない。
ふーこ.icon
りか、ちょっとツンで草w
じゃあ次回はさ!
ゲームのAIとか作るときにも使うし、
絶対ネタ多いと思うんだよね~!