🍣

山手線のモデリング —— 抽象化・理想化が生み出す扱いやすい世界

に公開

Modeling Forum 2025の基調講演から

先日、UMTP 主催の Modeling Forum 2025 に参加し、植原亮 氏の基調講演
「科学的思考におけるモデル:説明、創造、そして概念工学へ」
を拝聴しました。

講演資料と動画は公開されているため、興味のある方には視聴をぜひおすすめします。
https://umtp-japan.org/event-seminar/mf2025/76554

モデリングに関心のある方なら強く刺さる内容が多かったのですが、その中でもとくに印象に残った「山手線のモデリング」を題材に、

  • モデルの本質である 抽象化 と 理想化
  • それが ソフトウェア開発のモデル化(クラス図)とどうつながるか

を紹介したいと思います。


抽象化と理想化 —— モデルが成立するための2つの性質

講演で語られていたモデルの特性は次の2つです。

抽象化(Abstraction)

関心事に応じて、重要な特徴だけを選び取ること。

山手線であれば、

  • 環状線である
  • 駅の順番がある
  • 内回り/外回りが存在する

といった構造的な特徴だけを残し、以下のようなものは捨象します。

  • 地形
  • 駅の規模
  • 各駅の乗降人数

理想化(Idealization)

現実には完全に一致しない条件を、あえて設定すること。

たとえば山手線を次のように扱うことです。

  • 「完全な円」と仮定する
  • 駅間の距離をすべて等間隔とする

抽象化と理想化によって「扱いやすい世界」が生まれる

講演スライドでも示されていましたが、現実の山手線は東京の複雑な地形の上にあります。しかし抽象化・理想化を施し、モデル化するとこのような図になります。

※ https://umtp-japan.org/event-seminar/mf2025/76554のPDF資料より抜粋

この 扱いやすい図 が示しているのは、まさにモデリングの目的です。

複雑な現実を、ヒトの頭でも扱いやすく

日々見ている路線図は、抽象化された「モデル」だと改めて理解できます。


ソフトウェアでは、さらに一歩進んだ抽象化が必要になる

ただし、システム開発ではこの路線図レベルの抽象化ではまだ不十分です。

路線図は 人間が理解するためのモデル に過ぎず、
ソフトウェアとして扱うためには、さらに抽象化してクラス図へ落とし込む必要があります。


山手線のクラス図 —— 驚くほどシンプルな世界

山手線をクラス図で表現すると、次のようになります。

見た瞬間にこう感じるかもしれません。

「抽象的すぎて、何がなんだか……」

しかし、この極端に簡略化された図は、山手線の環状線としての本質を正しくとらえています。

  • 駅は名前を持っている
  • 駅は「内回りの次駅」を必ず1つ持つ
  • 駅は「外回りの次駅」を必ず1つ持つ

それだけをルールとして定義すれば、環状線としての構造は成立します。


オブジェクト図 —— クラスに実体を与えると、路線図に近づく

クラス図が 型 を表すのに対し、
オブジェクト図は 具体的な駅の実体(インスタンス) を表します。

並べてみると、このようになります。

※ PlantUMLで作ったら、縦に非常に長くできて見づらかったので抜粋版を記載します。

どことなく「路線図っぽい」見た目になります。

路線図とは、実はオブジェクト図的なモデルである

という気づきが得られます。


では、なぜソフトウェアでは “もっと” 抽象化する必要があるのか?

理由の一つは次の通りです。

抽象化は「変化に強いモデル」を生む

たとえば山手線に新駅が追加されても、

  • 環状線である
  • 次駅を持つ

という構造が変わらなければ、クラス図はそのまま使えます。
仮に「東京」、「御徒町」といった"クラス"を作ったら、クラス図は絶え間ない変更にさらされるでしょう。

適切な抽象化レベルは、変化に強さを与える

これはソフトウェアの設計において非常に重要なポイントです。


モデルのスコープをどう切るか?

山手線だけを対象とする場合、先ほどのシンプルなモデルで十分です。

しかし、

  • 中央線も同じモデルで表したい
  • 地下鉄との接続もモデル化したい

など、スコープを広げると、当然モデルの構造も見直しが必要になります。

モデルはスコープに依存する
スコープが変われば、モデルも変わる

これはシステム設計の現場でも頻繁に起きることです。


まとめ —— モデリングは「世界の見方をデザインする」行為

山手線の例はとても身近で理解しやすいですが、
そこで示されているのはモデリングの本質でもあります。

  • 何を残し、何を捨てるのか(抽象化)
  • どのように理想化して扱いやすい形に整えるか(理想化)
  • どのレベルまで抽象化すれば変化に強くなるか
  • どこまでをスコープとするのか

これらはすべて、モデリングという「世界の見方をデザインする作業」です。
これからのAI時代、モデリングという思考技術がますます重要になるように思えます。
UMTPの“シン・UMTP宣言”にある 「よみ・かき・AI・モデリング」 という標語は、これからの開発者に必要な要素をうまくまとめた、羅針盤になるのではないでしょうか?

身近な山手線の例から、自分のプロジェクトにおけるモデルのあり方を見直してみると、新しい発見があるかもしれません。

Discussion