現場にコードがなくてもTMDは描けるのか。あるいは「認知番号」はなぜ「個体識別子」に変わったのか

名前がコードの役目を果たしている現場がある。
私が見た中では、例えば倉庫が2つしかないお客さんがいた。
「在庫は商品と倉庫の対照表だ」と言いたくても「倉庫コード」なんてものはない。2つしかないんだからいちいちコードなんて振らない。


では、現場の人は2つの倉庫をどうやって区別しているのかというと、当然名前で区別しているわけだ。
「札幌倉庫」「小樽倉庫」みたいな感じで。


さて、TMでは画面なり帳票なりに現れた個体識別子からentityをつかまえるのだが、ここでいう個体識別子というのは

  • ある対象を一意に指すものであって
  • 現場の全員に合意されているもの

だ。例えば「部門コード」や「受注番号」だ。

ここで、件のお客さんが倉庫につけた名前は、まさに個体識別子として働いていることに気づく...ていうか日常生活で名前が個体識別子なのは当たり前なんだけど。
ということは、TMの「事実を正確に記述する」フェーズでは、T字形の左に倉庫の名前を入れればよいような気がする。

+----------------------+
|        倉庫          |
+----------+-----------+
| 倉庫名   | 所在地    |
|          | ...       |
|          | ...       |
+----------+-----------+

さらに在庫を「倉庫と商品の対照表」と考えると、左側はこんな珍奇な形になる。

+----------------------+
|        在庫          |
+----------+-----------+
| 倉庫名   | 入庫日    |
| 商品CD   | 数量      |
|          | ...       |
+----------+-----------+

これでいいんでしょうか?と正美氏に確認したら正解だった。
「SEの主観を排し、事実を正確に記述する」段階では、こういう作図になるのが正しいとのこと。事実なのだからその通り描けばよい。
古くは identifier, 最近の本では認知番号と呼ばれていたものは、今では「個体識別子」という呼び方になっている。
認知「番号」では、いかにも英数字のみで構成されているように聞こえるので言い方を変えた、とのこと。


上記は現状を把握するために描く図であって、このまんま実装しなくてはならないわけではない。
多分、札幌に2件目の倉庫を作っても大丈夫なように、顧客の合意の上で、倉庫番号を採番することになるのだろう。
現状の問題点をER図の形で表現して、その修正方法を考えるのがTMのやり方。
だから、現状に問題があるなら、そのまま実装したくないTMDが出てきて構わないのだ。