Index: [Article Count Order] [Thread]

Date:  Wed, 15 Dec 2004 03:26:56 +0900
From:  Makoto Minagawa <kitsune@....com>
Subject:  [modeling-dojo:00034] Re: 黒帯稽古 私の解答を提示します
To:  modeling-dojo@....jp
Cc:  Makoto Minagawa <kitsune@....com>
Message-Id:  <20041215032513.1029.KITSUNE@....com>
In-Reply-To:  <JY200412141149583.11644313@....jp>
References:  <JB200412060828012.1175600@....jp> <JY200412141149583.11644313@....jp>
X-Mail-Count: 00034

 ども、皆川%夜更かし中@豆蔵でございます。

# 例によってメールの引用部分を一部削らせていただいています。

On Tue, 14 Dec 2004 11:49:58 +0900
saito.takashi@....jp wrote:

> 東北 NS ソリューションズ
> 齋藤です。

 どうも大変ご無沙汰しております m(_ _)m > 齋藤さん

> 12/6 に上記メールを送ってから
> 簡単ではありますが、ひとまずの回答を作成してみました。
> (直後に急な出張が入り、遅れてしまいましたが)
(中略)
> 実際は (1) のオブジェクト図を描いてから
> 課題のストーリーに沿ってのコラボレーション図を描き
> そこからステートチャート図がより本質を表現できると考え
> (2) を描いています。

 オリジナル解答例の一番乗り。さすが、豆ナイトのために自費で上京された事
がある猛者だけありますね。齋藤さんの向上心の高さや意欲は本当に尊敬してい
ます m(_ _)m

> みなさんのご意見、お待ちしています。

# 以下、私の意見を少し述べさせていただきます。まだ齋藤さんのモデルをご覧
# になっていない人、他の人のモデルを見ずに自分で考えてみたいという人は、
# (齋藤さんのモデルの内容に触れる記述があるので)ここから下の文章はしばら
# く読まないで置いておくというのも良いかもしれません。

 というわけで、モデル図、拝見させていただきました。特にステートチャート
図の方が「なんかいい感じ♪」になっていますね (^_^)

 このステートチャート図を見ると「欲しい」という(たぶん過渡的な)状態の他
に「満足」「不満」「妥協」という主要な三つの状態が登場してきています。…
これは何かありそう(手がかりになりそう)な気がしてきますね。あと、遷移のイ
ベントに出てきている「入手」と「代替」というコトバも何か心の琴線に引っか
かります。

 あと、齋藤さんご自身もステートチャート図のメモで書かれているとおり「欲
しい」状態が2つ出現していることが少しひっかかりますね。これについてぱっ
と考えられるのは次の二つの見方でしょうか…。

[1] 実は2つの「欲しい」は(似ているけど)違う状態だという見方。この場合、
    「(ブドウが)めっちゃ欲しい〜!」と「(レモンが)ん〜、欲しい…かな?」
    といったように、2つの「欲しい」の{内容|質}が違うのかもしれません。も
    し異なる状態であるなら、何か適当な別々の状態名を付けて区別してあげる
    べきなのでしょう。
[2] 実は2つの「欲しい」は同じ状態であるという見方。この場合、元のステー
    トチャート図上の2つの「欲しい」状態アイコンを重ねて(1つにして)みたら
    どんな遷移になるか…というのを考えてみることになります。偶然なのか、
    はたまた必然なのか、元のステートチャート図の「欲しい」状態から出る遷
    移は両方の「欲しい」状態とも「入手に成功」と「入手に失敗」です。しか
    も「入手に失敗」の時には両方とも「不満」状態に遷移しているので、これ
    は問題なく一本の遷移としてまとめられそうです。で、もう一本の方の遷移
    「入手に成功」もまとめられるか…というと、これは少し難しいかもしれま
    せんね(遷移先の状態が「満足」か「妥協」かふたつあるから)。この場合に
    ぱっと考えられる案は以下の二つでしょうか…。
  [2-1] 「満足」か「妥協」かに振り分けるための新しいイベント(またはガー
        ド条件)を導入する。
  [2-2] 実は「満足」と「妥協」は何かひとつの同じ状態の事だったのだという
        見方をして状態を合併させる。

# …何か他にもいろいろ可能性が考えられそうです。モデル図から読み取れたり
# 推測できたりする事って意外と多いですよね (^_-)

 さて、ステートチャート図が「いい感じ」であるのに比較して、オブジェクト
図の方はかなりシンプル(すぎ!?)な感じがしますね (^_^;

 動的モデルと静的モデルは表裏一体の関係(現在対象としている同一のモノ(問
題領域)を別々の視点で描き表したもの)なので、ステートチャート図などで動的
側面を吟味していった結果は随時クラス図やオブジェクト図などの静的モデルに
フィードバック(補完)されていき、常に双方の整合性が取れている状況にあるの
が嬉しいです(理想論)。

 今回のモデルの場合、キツネ・オブジェクトが取り得るいくつかの主要な状態
が(仮)認識されているので、静的モデルの上でも各々の状態が「区別できる」こ
とが必要になります。たとえば、「△△△関係のリンクが成立している時、その
状況を○○状態という名前で呼ぶ(区別する)」とか「×××属性の値が0〜100の
範囲内の時、その状況を○×△状態という名前で呼ぶ(区別する)」とかいった感
じです(場合によってはいくつかの関連や属性の組み合わせによって特定される
状態もあります)。状態モデルで登場してきた各々の状態を静的モデル上で区別
できるかどうかチェックし、もし、これ(区別)が上手く表現できないようであれ
ば、おそらく何かの関連か属性が足りなかったのだということになるのでしょう。
このような作業によってクラス図の完全性が補完されていきます。

# (どんなモノでもそうですが)もちろん「例外」はあります (^_-)

 さて、今回出てきている「欲しい」「満足」「不満」「妥協」の各々の状態を
すべて明確に区別できるクラス図はどんな形になるのでしょう(言い方を変える
と、各々の状態にある時のオブジェクト図を個別に思い描いてみて、それらすべ
てのオブジェクト図を畳み込んで合致するクラス図を考えてみるとどんな形にな
るのでしょう)? この辺りが次のステップへの取っ掛かりになりそうですね。

 なんだか長々と頭に浮かぶ事を散文的に書いてしまった上、結局「これが良い」
という決定打的な意見はひとつも書いていなくて大変申し訳ありません(「道場」
なので半分以上意図的にやっている確信犯ですが…) m(_ _)m

 以上、このメールが何らかのお役に立ちましたら幸いです。

--
  /|/|  ▲      皆川 誠 @ 株式会社 豆蔵
 /    ノ /  }      「きつねはコンと鳴く」
 |// ノ /   |   会社用: kitsune@....com
 =o=|\|   /    自宅用: kitsune-san@....com
   く  |  /     携帯用: kitsunex@....jp
    ■■■■