Index: [Article Count Order] [Thread]

Date:  Tue, 24 May 2005 22:50:35 +0900
From:  "MITSUJI Takamasa" <mitsuji@....jp>
Subject:  [modeling-dojo:00425] Re: オブジェクトのやりとり(Re: 32  	番リベンジモデル公開)
To:  <modeling-dojo@....jp>
Message-Id:  <00de01c56067$8fdef9e0$7930290a@mitsuji6>
References:  <20050524085259.72437.qmail@....jp>
X-Mail-Count: 00425

みつじです。

naka aki さん、

> ちょっとずれたメタ方向(というんだろうか?)から観察し分類すると、
> どこで何を動かさせる(移動とか変化とか)「べき」だったのか?という視点から
> モデル(というんだろうか?)の妥当性を検証しやすくなる、
> のではないかと期待してます。

ようやく少し分かってきたような気がしています。

naka aki さんが見ている部分とはちょっと違うかもしれませんが、
概念モデルをクラス図で作成することを目標にした場合で考えてみます。

クラス図には、児玉さんもおっしゃるように、過去・現在・未来のすべてを同時に
描かなくてはなりません。コンテスト2では、クラス図の検証用にオブジェクト図
を使用するアプローチを取ったわけですが、これは場合によっては不十分です。

理由は、一枚のクラス図には過去・現在・未来のすべてを同時に描くのに、
一枚のオブジェクト図にはただ一つの一瞬しか描けないから。

コンテスト2を離れて考えてみると、UMLにはモデリング対象を動的な観点から
記述する図として、下記のようなものがあると思います。

・シーケンス図
・状態遷移図
・アクティビティ図
・コラボレーション図

UMLを用いた通常の分析では、上記のような図を使い、クラス図の動的側面
の検証を行うのだと思います。単に検証だけでなく、クラス図に描かれていない
新たな情報を提供するものもありますが、実装がクラス単位で行われることを
考えると、検証と捉えることができる部分が多いのではないでしょうか。

ここからが私の解釈による naka aki さんの説なのですが、
上記のような図はどれも、分析対象の動的側面を記述してはいるが、
オブジェクトの参照関係が変化する場合や、オブジェクトの群が同時に
変化する場合の記述には十分でなく、クラス図を検証する上で究極の
手段としては、結局はオブジェクト図のアニメーションが適している、
ということになります。

そして、アニメーションを描くには、参照関係が変化するかしないかなど、
現在行われているよりさらに詳細なレベルで操作(メソッド)を分類する必要が
あるということになります。


私としては、オブジェクト図の絵コンテがよいと思います。
図面として使うことを考えると、印刷できることが重要な要件になると
思うからです。

どのようなものか想像が追いつかないのですが、オブジェクト図を
少し改良して、「操作の分類」を記述できるようにして、
改良版オブジェクト図を

> Message→状態変化→Message→状態変化→Message…

てな感じで複数並べるのです。写真のネガや映画のフィルム
みたいな感じです。

JUDEなどでは、オブジェクト図を描く際にクラス図で作成した
クラスを元にするのが普通なので、「操作の分類」はクラス図でも
対応できた方がよいかもしれませんね。


問題点としては、あくまで検証用として考えた場合ですが、
複数のオブジェクトの変化が絡んでくるので、
たとえばオブジェクトが2つの場合を考えても、

・オブジェクトAとオブジェクトBの両方が変化した
・オブジェクトAは変化したがオブジェクトBは変化していない
・オブジェクトBは変化したがオブジェクトAは変化していない

のような場合分けが必要になり、さらに操作が複数あると思うので、
その分も考えるとかなり沢山の絵コンテを描かないといけないと思います。
これはアニメーション化した場合でも同じですね。何本も必要になります。

重要なシナリオだけ記述するというのもありですが、
その場合は検証にはならないと思います。

私はほとんどUMLしか知らないので分からないのですが、
現時点で、上記のようなことが可能な図法は存在しないのでしょうか?
しないのであれば、UMLの仕様として提案してもよいと思いますが、
SadManさんや赤坂さんも言われているように、多くの人が必要として
いない以上は少し難しいのではないかと思います。

naka aki さんの方で必要に迫られるものがあるのであれば、
自ら図法を考案し、実際に使ってみて、有用であれば普及に努めて
みてもよいと思います。UMLに加えるか加えないかは別としても
有用であれば必ず普及すると思います。もしかしたら、すごい発明に
なるかもしれません。