橋本さん、こんにちは。
赤坂です。
On Tue, 21 May 2002 10:45:25 +0900
********.*********@**.****.*** wrote:
> こんにちは、橋本@SONYです。
>
> このスレッドに簡単に補足コメントさせてください。。
と言いながら…
いつも詳しいコメント有難うございます。エヘヘ f(^o^;;
> オブジェクト指向といってもそれぞれオブジェクトの考え方、
> アーキテクチャ構成の考えにそれぞれ違いがあるので、「コンテキスト図有無」の
> 重要視が違ってくるのです。
なるほど、RealTimeUML(i-Logix社のOO開発プロセス)とROOM(Rational社の
OO開発プロセス)では並行性の検討時期が異なっているんですね。
このことが
コンテキスト図の必要性の違いになっているということなのですね。
# ちなみに、藤倉さんは日本Rationalに在籍されています。
> 一方、Rational社のOO組込みプロセス(ROOMが土台)は、
> 組込み/リアルタイムシステムの特徴(制約)を最大限に意識したプロセスと
> なっています。
> #他のOO組込み/リアルタイムシステムの方法論の中でも私は独特だと思います。
…snip…
> 彼らがこのようなアプローチでシステムアーキテクチャを構成する為、
> Activeオブジェクト(カプセル)にタスクを割り当てることも、
> 複数のタスクを1つのタスクで割り当てることもRoseRTのサポートで簡単に
> できるようになってます。
> さらにマルチCPU構成の場合でも、各CPUにタスクの割当を自由に
> できるようになっているようです。
…snip…
> 補足ですが、彼らのアプローチは並行性を基点としたオブジェクト構成ですが、
> (いわゆるEntityオブジェクトも出てきますが脇役的な扱いです。各Activeオブジェクト
> に所有されている。つまり◆の関係になります。なので競合問題を軽減している。)
Rational(ROOM)のアプローチでは最初に並行性を考えて分析するわけですね。
その上で、設計でのActiveオブジェクトから実際のタスク(あるいはスレッド)へ
のマッピングに自由度を持たせているわけですね。これも良いですね(^^;;
よく、並行性はいつ検討したらよいのか、とお客様に聞かれることがあります。
私達はアーキテクチャ設計でのアクティビティとして並行性設計(タスクへのマッ
ピング)を行っていますが、分析段階では(あくまで必要に応じて)シナリオ記述
にアクティビティ図で並行性を見せたりする程度で、分析モデル自体は並行性よ
りも静的構造(主にエンティティに注力)や並行性を(ある程度)無視した振る舞い
を検討しているに過ぎません。
これでも良いと思っていますが、正直なところ、(並行性を意識しているにも関
わらず、アクティビティ図でごまかしているような)後ろめたさも少し感じます。
> ROOM法以外のアプローチでは、タスク構成が変わるたびに、
> 各タスクとオブジェクトをMappingを競合の問題やハードリアルタイム性を
> 満たすスケジューリングをやり直すのは大変な労力ですし、
> 再利用も難しいと言うわけです。
そうですね。確かに楽じゃないですね。
ただし並行性設計の影響は分析モデルは受けませんので、
この部分は逆に再利用可能と言えるかもしれません。
# もちろんRationalのアプローチでは自由にマッピングできるので、
# 並行性を検討していないレベルでの分析モデルとは比較になりませんね(^^;;
> 以上により、組込みOO開発方法論といっても、それぞれ特徴をもっているため
> さらに開発対象のシステムの特徴(ソフトリアルタイムとかハードリアルタイムとかetc)
> 「どの方法論は良く、どれが劣る」とはいえない状況ですので、
> 肝心なのは、自分達のシステムに向いた方法を採用することですね。
> ここが、また難しいところでもありますが....。
確かに、並行性実現方法が変わりやすい場合、Rose-RTを使って開発する方が、
保守開発が楽になりそうですね。
でも、Rationalのアプローチの場合、Activeオブジェクト(並行性)ドリブンな分
析のためエンティティクラスの抽出が甘くなってしまわないか少し心配ですね。
結局、OOを使うメリットとして、従来のタスクありき(並行性ドリブン?)で開発
するため、扱うデータなどの複雑さに対応できなくなってきている現状に対して、
静的構造をきちんとまとめるということがあるかと思います。
これを上手く出来れば、並行性については最初に検討しても、設計時に検討して
もそれなりにメリットがありそうですよね。
# あえて、対決は避けてみました(^^;;
でも、それにしても、
並行性を最初に検討しないからといって、RealTimeUMLでコンテキスト図が不要
(というか重要でない)と結論付けるのはどうかな、という気もします。
# 確かにRationalのアプローチでは必須なのでしょうが…。
ではでは。
PS. 橋本さん、今度飲みに行きましょう!!
# またこの手だ(^^;;
--
赤坂 英彦 (Hidehiko AKASAKA)
*******@***.*******.**.**