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

2006年9月27日水曜日

ディズニーランドとOMG


先週末より、OMG総会出席のため、USに来ております。
今回の総会の開催地は、カリフォルニアのディズニーランドに隣接するホテルであり、週末は他に行く所がなく、自然と2つのテーマパークに入り浸る形になってしまいます。
ディズニーランドは、いち早くMDA(Model Driven Architecture)の採用を決め、OMGのスポンサーにもなっており、今回の総会に対しても様々な便宜を提供してくれています。
昨日は、OMGのChairman's Dinnerがディズニーランド内の特別なレストランで開催されましたが、これもその便宜の一環です。
ディズニーランドの魅力の一つは、テーマパークの内外に謎や秘密がちりばめられていることです。
ご存知の通り、テーマパーク内では、アルコール類は一切販売されておらず、持ち込むことができませんが、一ヶ所だけ例外があり、それがこのレストランです。
ディズニーランドは、今から50年前に開設されましたが、このレストランはその当時からある建物の中にあります。
実は、テーマパーク建設の頃ディズニーランドは大変な資金難に陥り、外部の投資家の資金援助を仰ぐため、その投資家達を饗応するためにこのレストランが建てられたのだそうです。
外部から見ると、他の建物となんら見分けがつかないのですが、テーマパークを行き来する人たちを見おろすテラスに、ワインなど飲み物を持ち出すことは厳禁されています。
調度品も、ウオルト・ディズニー氏ゆかりのものが置かれています。
風景的には、全く溶け込んでおり、そこにレストランがある事さえ気がつかないのではないかと思います。(少なくとも、筆者は、前日にそのレストランのある建物の前を何度も通ったのですが、全く気付きませんでした。)

2006年9月27日

2006年9月21日木曜日

UML中級講座 第92回 サブマシン状態

最近は、身辺慌ただしく、たまにはのんびりと、普段読めないような種類の本を持って温泉にでも行きたいなと思っていた所、来週、OMG総会出席のためアメリカに出張することになりました。

願望として持っていた旅と170度くらい違っているタイプの旅ですが、場所がディズニーランドの中と言うことで、多少息抜きができると、心密かに期待しております。(ここに書いた以上、密かではなくなってしまいますが)

また、OMG総会の様子も、今後触れたいと思っております。

サブマシン状態

サブマシン状態は、他の状態マシンを参照して表される状態です。
図D09は、サブマシン状態の例を示しています。
サブマシン状態の状態名は、状態名:参照されたサブマシン名 の形式で記述され、図D09で4は、状態名が[失敗処理」、参照されたサブマシン名が「失敗SM」であることが示されています。
サブマシン状態には、入口点(entry point)、出口点(exit point)をつけることができ、入口点、出口点の名前は、参照されたサブマシンの入口点、出口点と一致する必要があります。
また、図D09のエラー3の様に、無名の入口点(もしくは出口点)が示された場合は、サブマシンのデフォルトの入口点(出口点)を、意味することになります。
この図の出口点、SubEndから出た場合は、修復1を実行することになります。
また、これらの表現は、コンポジット状態にも使用可能です。(ただし、サブマシン名への参照は、当然の事ながら除きます)

サブマシンの表記

図D10と図D11は、サブマシンの表記です。
通常の状態マシンと同じ表現を取ります。
また、出口点は、状態マシン内に記述したり、境界線上に記述したり(D11)できます。

図 D09





図 D11

2006年9月11日月曜日

UML中級講座 第91回 直交状態

直交状態 (Orthogonal State)

複合状態には2種類あります。
1つは単純状態(Simple State)と呼ばれ、前回の図D05の様に、リージョンが1つしか存在しないものです。
もう一つは、直交状態(Orthogonal State)と呼ばれ、複数のリージョンを持ちます。
図D08は、直交状態の例です。

図D08



なお、この直交状態(Orthogonal State)という名称ですが、他の分野では、恐らく、量子力学か幾何学でしか使わない単語だと思います。(先ほどWebでちょっと検索してみたのですが、正式な用語としてはこの2つの分野だけしかなさそうでした。)
語源的には、恐らく、量子力学の方が直接の親だと思いますが、数学と量子力学は用語がクロスオーバーして使用されていますので、これ以上の詮索は意味がないように思います。
何れにせよ、直交状態と言うのは、状態の集合が直交している、あるいは、任意の状態は、一つのイベントにより次の状態がただ一つだけ定義されていることを意味します。


2006年9月6日水曜日

UML中級講座 第90回 複合状態

今週は、にいがた産業創造機構の高度IT人材育成支援のための研修で、新潟市内に滞在しております。
新潟県は、IT分野における先進の人材育成に大変熱心な県であり、筆者もここ3年連続して、講師を務めております。
昨年までは、新潟に来るタイミングが、台風の水害の直後であったり、大地震の直後であったりと、災害の直後に訪問するパターンが続いており(前回の研修の時は新幹線が止まっており、大きく迂回して新潟にたどりつきました)、今年も、来る前は、実は内心心配だったのですが、今回は天候にも恵まれ素晴らしい新潟を満喫することができました。

新潟県人と言いますと、まず思い浮かぶののは、その勤勉性です。事実、東京では、銭湯を経営している方の大部分が新潟出身であったと言う話を聞いたことがあります。(風呂屋は、かつては重労働できつい仕事として有名でした。)
また、個人的な体験としても、以前、越後湯沢にスキーに行った折、居酒屋で出会った人が、夏は農業を営んでいるが、冬場は、昼間スキー場でインストラクターをやり、夜は知り合いの店で皿洗いのバイトをしたあと、さらにコンビニの店番までやっていると言うのを聞いて、つくづく、その勤勉さに感心した事があります。
前回の研修では、地震の直後だったにも関わらず、被災地の方からも受講生の方がお越しになり、熱心に受講される姿を見て、感銘を受けました。
新潟県の企業も、粘り強く、社内にUMLを浸透させようと、毎年多くの受講生を送り込んで来られる所があります。

さて、勤勉性の話ばかりになりましたが、新潟県は食べ物も美味しい所です。
まず、日本酒が最高に美味しく、様々な種類のものが楽しめます。有名な所では八海山や越の寒梅などから、小さな蔵元が少量を出荷しているだけの(東京では)幻に近い銘柄のものまで、数多く存在します。

魚も、東京では出回らない「のど黒」が今旬であり、刺し身、焼き物、煮物と最高です。また、下越の村上市は、鮭の料理の種類が多いことでも有名です。

複合状態(コンポジット・ステート)

図D05は、複合状態の例を示しています。
ダイヤリングと言う状態の中に、さらにスタートとダイヤル途中と言う2つの下位状態(サブステート)を持っています。

図06は、内部のサブステートを記述するかわりに、隠されたサブステートが存在することを示す記号(数学の∞に似た形状のシンボル)を使って、複合状態であることを示しています。


また、図D07は、リージョンの表記例で、状態 S は、リージョン毎に別々の独立した下位状態と遷移を持ちます。



2006年8月28日月曜日

UML中級講座 第89回 状態

状態

UMLで扱うステートマシンは、有限の離散的な状態をもつものに限定されます。(状態を無限に持ったり、連続的な状態を扱うことはできません。)
また、UMLでは、振舞いステートマシーンとプロトコル・ステートマシーンの2種類がありますが、本講座では振舞いステートマシーンの方を主に取り扱います。

状態には、次の3種類があります。

シンプルステート : 下位状態を持たない単純な状態です

コンポジット・ステート: 状態の中に複数の区画(リージョン)があり、それぞれが状態(下位状態)を持ちます。

サブマシーン・ステート: ステート・マシーンの中に、さらにステートマシーンがあります。セマンティックス的には、コンポジット・ステートと同等です。

状態の表記

状態は、図D02のように角の丸い四角形として表します。また、図D03のように、状態名をタブで表記することも可能です。

図D02



図D03
コンパートメント表記

状態は、図D04の様に、コンパートメント表記することが可能です。
コンパートメント部分は、トリガー / アクションの形で表します。
トリガー名として、前回触れましたように、entry、exit、doがあらかじめ予約語として定義されています。

図D04



2006年8月26日土曜日

UML中級講座 第88回 第8章 ステートマシン図

第8章 ステートマシン図
本日から、第8章 ステートマシン図に入ります。
ステートマシン図は、昔から良く使われている状態遷移図をオブジェジェクト指向風に再定義した物で、直感的にも非常に解りやすい図です。
図D-01は、ステートマシン図の例です。
角の丸い四角形は状態を表しており、図中には「活動状態」と「待機状態」の2つの大きな状態があり、「活動状態」はさらに複数の下位の状態(サブステート)を持っています。
矢印は、状態の遷移を示しており、トリガー[ガード条件]/ アクションと言う表記を行ないます。
また、状態の中をさらにコンパートメントに分解することができ、トリガー/アクションと言う形で細かいアクションの指定が可能です。
図中の[タイムアウト」の状態では、do/メーッセージ案内 と言う記述がありますが、このdoは、一種の予約語で、その状態にある間は指定のアクションを取り続けなさいという意味になります。
他の予約語として、entry(その状態に入った時に取るべきアクションを指定)と、exit(その状態から出る時に取るべきアクションを指定)などがあります。
また、状態を示す四角形以外に黒丸の図形がありますが、これは疑似状態と呼ばれ、厳密には状態ではなく制御記号であり、黒丸は開始状態と呼ばれ、開始時に取る状態を指し示すために用いられます。
また、二重黒丸は終了状態で、これは疑似ではなく本物の状態です。(終了状態は、ステートマシンの終了を意味し、これ以降終了以外のいかなる状態へも状態遷移しません。)

図 D-01




2006年8月24日木曜日

UML中級講座 第87回 インタラクション・ユースのメタモデル

インタラクション・ユース

インタラクション・ユースは、インタラクション・フラグメントの一種です。
インタラクション・ユースは、C言語などのファンクション・コールと同じように、記法の省略形と見なす事ができ、インタラクション・ユースを用いないで等価のインタラクションとして書き表す事が可能です。
また、参照する共通のインタラクションを複数の場所から呼び出す事が可能です。
その場合は、引き渡す引数により参照されるインタラクションの動きや結果が変わってきます。
図14-09は、インタラクション・ユースのメタモデルで、参照するインタラクション(実際のセマンティックスを決定します)と引き渡す引数を持っています。(図中のアクションは、引数を引き渡すためのアクション)

また、生存線のパート分解は、インタラクション・ユースの一種です。

図14-09