ストラタジーナム メニュー

2007年10月14日日曜日

UML中級講座 第121回 ステレオタイプのメタ・レベル表現

先日、ちょっとした用事があり、神奈川県の厚木と言う街まで行ってきました。

厚木と言う名前から、大抵の人がすぐに思い浮かべるのは、アメリカ海軍の厚木基地だと思いますが、実は基地は厚木市内ではなく2つ隣の「綾瀬市」にあります。
こう言った事は、非常によくある現象で、千葉県にあるのに東京ディズニーランドと命名したのはその代表的な例でしょう。

ところが、厚木には更に別の謎があり、小田急やJRの「厚木駅」が、実が厚木ではなく隣の「海老名市」にあり、且つ、厚木の中心から相模川を挟んでかなりの距離があり、多くの人は、歩くのを断念して、再度電車に乗り直します。
こう言う駅名のつけ方には、きっと地元の方にとって重要な意味があるのでしょうが、他府県から来た人間にとっては、いったい誰が得をするのかが分からない(愉快犯的な?)命名で、何か不思議な感があります。

また、厚木へ行く途中に「町田」と言う市がありますが、ここも少し謎めいています。
町田市は東京都に属していますが、多くの人は神奈川県の市だと勘違いしています。
電車で行くと、多摩川を渡って神奈川県内をかなり走った後にたどり着く街であるという地理的な理由もありますが、もう一つは、都内に働きに来ている町田市民が、あまり自己主張しなかった所為でもあるでしょう。
町田から通って来ている人に、「町田は神奈川か東京か?」と聞くと、大抵は少し含羞みながら、どちらでも良いんです、と言うような曖昧な回答をして、話題を変えてしまいます。
この奥ゆかしさが、返って皆に誤解を与えているのではないかと、町田の奥にある「座間市」に古くから住んでいるS君と言う友人に話すと、「町田市民が奥ゆかしいと言うのは大きな誤解であり、近隣の神奈川県側の市町村を下に見下した傍若無人な人たちである」、と反論して来ました。
S君によると、町田市民は「多摩川の鉄橋」を渡って東京側に入ると、それまでの暴君的性格が、借りてきた猫のように急に大人しく、しおらしい性格に変わるのだそうです。
まるでシュレジンガーの猫のような話で、睡眠不足で眠ってしまい橋を渡ったかどうか分からない人は、暴君なのか猫なのか、どちらなのでしょうか?
そう聞くと、S君は「町田そのものが量子力学的存在だ」と言い切っていました。
いったい何がS君をそう語らせるのか、そちらも謎です。


ステレオタイプのメタ・レベル表現

前回の図I12では、ステレオタイプのインスタンス・レベルでの表現を見ましたが、さて、このインスタンス・レベルの図そのものは、クラス図でしょうか、あるいはメタクラス図でしょうか?

答えは、メタ・レベルの図、メタクラス図です。あくまでも、メタクラス図を用いてインスタンス・レベルの表現を行っているからです。
モデル・レベルの表現としては、下図I14のような風に書きます。この図では、"StopWach"は、ステレオタイプ"clock"に属する事を意味しています。
図I14

ステレオタイプの多重拡張

クラスが複数の上位クラスを多重継承出来るのと同様に、ステレオタイプは複数のメタクラスを拡張する事が出来ます。
図I13では、ステレオタイプ"Clock"は、"Component"と"Class"と言う2つのメタクラスを拡張しています。
また、このメタモデル図では、<<metaclass>>と<<stereotype>>と言う二つのステレオタイプを使っていますが、これらは、謂わば「メタ・ステレオタイプ」のようなものであり、メタメタ・レベルで拡張が定義されます。
また、"Creator"と謂うステレオタイプに{Required}と言う制約が付随しており、このパッケージ内では、"Class"単体では使用出来ず、必ず"Creator"として使用される必要がある事を示しています。

図I13