■Gaiaの特徴
・エージェントの粒度大きい(オブジェクト指向:粒度細かい)
・特定の実装基盤を想定していない
・抽象と具象にわかれ、
抽象実体
具象実体
実行システム
の3層になる
・設計は
組織 :マクロレベル
エージェント:マイクロレベル
からなる
■Gaiaの手順概要
要求
↓
分析
ロール(役割)モデル
インタラクション(相互作用)モデル
↓
設計
エージェントモデル
サービスモデル
アクエインタンス(交友)モデル
以下、各項目を詳細に・・・
■分析
目的:システムの理解とその構造を開発すること
分析:
・ロールの識別
→ロールモデルの試作(重要ロールのリストと記述)
・関連プロトコルの識別と文書化
→インタラクション(相互作用)モデルを作る
・プロトコルモデルを使ったロールモデルの詳細化
→詳細化されたロールモデルを作る
・繰り返し
■ロール(役割)モデル
・システムの重要ロールを認識する
※ロール
実体に期待される機能の抽象記述
ロールをインスタンス化して人になる
ロールの属性
責務:ライブネスプロパティ、セイフティプロパティ
パーミッション:ロールが責務を実行するための権利の集合
アクティビティ:他のロールと対話なしに実行される処理
プロトコル:他のロールとの対話の方法
→ロールは、2つの属性タイプにより、特徴付けられる
ロールのパーミッション(ライト)
ロールの責務
→責務のうち、ライブネス責務としては、以下のようなものがある(例としては)
保証応答型達成ゴール:応答がある
無限繰り返し型達成ゴール:応答関係なしに繰り返す
ライブネス責務=アクティビティ(下線を引く)+プロトコル
(ふーじょんという形式仕様にもとづいて書いている)
セーフティ責務:不変定数(いんばりあんと)の保守
ロールのスキーマの書き方
ロール記述
プロトコルとアクティビティ
パーミッション
責務
ライブネス
セイフティ
■インタラクション(相互作用)モデル
プロトコル定義セットを書く
※プロトコル定義セット
目的
開始者
応答者
入力
出力
処理
■設計
以下のモデルを作成する
・エージェントモデル
実行時のエージェントタイプ(クラスに相当)とエージェントインスタンスを記述
・サービスモデル
各エージェントのサービスを識別、主要な性質を定義
サービス:エージェントの機能(オペレーションに相当)
性質:入力、出力、プロトコルモデル
→事前条件、事後条件、セーフティプロパティからのサービスの制約
・交友モデル
エージェントタイプ間の通信リンクを定義
グラフで表現
(2/1追加)
■やり方、考え方2とおり
方法1
・ロールの定義
責務を考える
・責務間の矛盾
ロールの責務を修正するか
新しいロールのの作成
方法2
・シーケンスを全部考える
・サービスを考える
・ロールに割り振る