ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

エージェント指向(2)- Gaia(ガイア)(追加2/1)

2011-01-31 15:34:18 | そのほか

■Gaiaの特徴
・エージェントの粒度大きい(オブジェクト指向:粒度細かい)
・特定の実装基盤を想定していない
・抽象と具象にわかれ、
   抽象実体
   具象実体
   実行システム
 の3層になる

・設計は
  組織   :マクロレベル
  エージェント:マイクロレベル
 からなる


■Gaiaの手順概要

要求

分析
  ロール(役割)モデル
  インタラクション(相互作用)モデル

設計
  エージェントモデル
  サービスモデル
  アクエインタンス(交友)モデル


以下、各項目を詳細に・・・


■分析

目的:システムの理解とその構造を開発すること

分析:
・ロールの識別
   →ロールモデルの試作(重要ロールのリストと記述)

・関連プロトコルの識別と文書化
   →インタラクション(相互作用)モデルを作る

・プロトコルモデルを使ったロールモデルの詳細化
   →詳細化されたロールモデルを作る

・繰り返し


■ロール(役割)モデル
  ・システムの重要ロールを認識する

※ロール
  実体に期待される機能の抽象記述
  ロールをインスタンス化して人になる
  ロールの属性
    責務:ライブネスプロパティ、セイフティプロパティ
    パーミッション:ロールが責務を実行するための権利の集合
    アクティビティ:他のロールと対話なしに実行される処理
    プロトコル:他のロールとの対話の方法

  →ロールは、2つの属性タイプにより、特徴付けられる
    ロールのパーミッション(ライト)
    ロールの責務
  →責務のうち、ライブネス責務としては、以下のようなものがある(例としては)
      保証応答型達成ゴール:応答がある
      無限繰り返し型達成ゴール:応答関係なしに繰り返す

   ライブネス責務=アクティビティ(下線を引く)+プロトコル
      (ふーじょんという形式仕様にもとづいて書いている)

   セーフティ責務:不変定数(いんばりあんと)の保守

 ロールのスキーマの書き方
  ロール記述
  プロトコルとアクティビティ
  パーミッション
  責務
    ライブネス
    セイフティ


■インタラクション(相互作用)モデル
 プロトコル定義セットを書く

※プロトコル定義セット
  目的
  開始者
  応答者
  入力
  出力
  処理


■設計

以下のモデルを作成する

・エージェントモデル
   実行時のエージェントタイプ(クラスに相当)とエージェントインスタンスを記述

・サービスモデル
   各エージェントのサービスを識別、主要な性質を定義
     サービス:エージェントの機能(オペレーションに相当)
   性質:入力、出力、プロトコルモデル
    →事前条件、事後条件、セーフティプロパティからのサービスの制約

・交友モデル
   エージェントタイプ間の通信リンクを定義
   グラフで表現



(2/1追加)

■やり方、考え方2とおり

方法1
・ロールの定義
  責務を考える
・責務間の矛盾
  ロールの責務を修正するか
  新しいロールのの作成


方法2
・シーケンスを全部考える
・サービスを考える
・ロールに割り振る




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

エージェント指向(1)- 概要

2011-01-31 11:53:50 | そのほか

■エージェント指向
 自律し、異なった目的をもつ、能動的な人を、どうソフトウエアに写像するか?
 コンポーネント同士の対話のモデル化

■手法
 ・Gaia(ガイア)   :実装はなんでもいい
 ・tropos(トロポス):実装環境 じゃっく
   :

■エージェント指向における概念の3層構造

 ・現実世界をどう見るか(認知対象層)
 ・システム概念層→ソフトウエアコンポーネントへ
 ・実装レベル

 ※ただし、手法によって、用語は違うが、だいたいこんなかんじ

■オブジェクト指向との違い
 プログラムを動かすには、
   オブジェクト指向:要求を出す側がメソッドを呼び出すことで動く
            処理が終わると自分は死んじゃう
             →だからシーケンス図が描ける

   エージェント指向:要求を受け取った側が、自分で判断する
            常に動いて監視している

■エージェントに求められる性質
   自律性(オートノミー)
     状態を保持→指示なしに動く

   反応性
     環境を理解し、環境に対応する
     問題点:ゴール駆動と反応的振る舞いのバランス
     例:はやぶさに感情まで理解させる必要ある?

   自発性
     エージェントがゴール駆動的に動く
     問題点:ゴールが違ったり、環境が変わったら?

   社会性
     ゴールを達成するために、協調・交渉を行う
     問題点:相手も同じゴールとは限らない


■有名なモデル化:BDIモデル(Belief-Desire-Intention Model)

・信念、願望、意図、計画をシステムの中に持ち込む
 →Toroposなどはこれに基づいている

信念:そう信じている=認識:意味を付与している(正しいかどうかは?)
願望:ゴール、プランは変わるかも?
意図:ゴール、プランが変わるかもしれないので、再考慮する


■マルチエージェント
 システムの全体的制御を多くのノードに分散できる
 ノードが互いに自律的に対話

■品質
 自律的に動く→危険でもある

 性能
   応答性
   可用性
   信頼性
   使用性

 安全性
   潜在的危険要因(ハザード)を見つけ出す
     →危険性分析(HAZOPなど)

   安全性分析・設計
     →交友(acquaintance)モデル
      相互作用(interuction)モデル
      ロールの責務をエージェントに写像
      新たなロールの導入

 セキュリティ
   非認可アクセス
   機密性保持
   データの完全性
   システムの可用性
   非標準化
   責任
   信憑性
  →各モデルに含める
  →監視エージェントをつくる

 社会的品質
 

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

テストや入力チェックを、アスペクト指向っぽくやって、効率化する

2011-01-30 22:58:55 | そのほか

 テスト項目の洗い出しとか、入力チェック項目を考える場合、

  1.その項目独特に出てくるチェック項目と、
  2.文字なら文字チェック、数字なら数値チェックのように、
    入力種別が決まってしまうと、かならず行うチェック

 があります。

 2において、その入力種別は、ある機能飲みに出てくるのではなく、いろんな機能にでてくるわけですから、横断的関心事といえます。
 つまり、アスペクト指向なわけです。

 アスペクト指向の場合、横断的関心事はわけて、別に定義しておき、
 そいつをあとから、文脈に差し込むということをします。
 なので、ここにおいても、そのようにしましょう。

(1)下に記述するように、型ごとにテスト項目を書いたExcelシートをつくります。


(2)次にテストすべき(チェックすべき)入力項目と型を書きます。


(3)上記(2)のシートの型に対して、(1)のシートをVLookUpでひっぱってくれば、
   型の部分のチェックは埋まります。


(4)あと、型で共通にチェックすること以外で、チェックしたければ、「項目独自テスト」
   に追加します


ここから、テスト仕様書に持っていくには、マクロを使うんだけど、それを書いていると
長くなりそうなので、ここできる。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1月29日(土)のつぶやき

2011-01-30 02:53:33 | Twitter
13:30 from web
最近430MHz FMで、「檜原村」(ひのはらむら)と、めちゃくちゃよくつながるんだけど・・・どうも眺めがいいらしい??
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

電機業界で1人負け状態のNEC・・・どうしてこうなった

2011-01-29 19:55:30 | Weblog
おもしろそうだけど、今時間ないので、後で見るために、めもめも

電機業界で1人負け状態のNEC・・・どうしてこうなった
http://alfalfalfa.com/archives/2060191.html

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1月28日(金)のつぶやき

2011-01-29 03:04:08 | Twitter
17:59 from web
精神病患者の発症率、ウォーターフォール開発のほうが、アジャイル開発よりも高いという話を「SEA新春教育フォーラム2011」の基調講演で聞いてきた http://sea.jp/SIGEDU/forum.htm
19:17 from web
メモ「花粉症、今年はキツイぞ…飛散10倍の地域も」 http://headlines.yahoo.co.jp/hl?a=20110127-00000508-yom-soci
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IPA、安全なアプリ開発のための実習式学習ツールを公開

2011-01-28 18:42:30 | Weblog

ここのスラッシュドットの記事
IPA、安全なアプリ開発のための実習式学習ツール「AppGoat」を公開
http://slashdot.jp/security/11/01/28/0537218.shtml


実際のツールは、

ここ
脆弱性体験学習ツール AppGoat
http://www.ipa.go.jp/security/vuln/appgoat/index.html

にあるらしい


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

astah*は、アスペクト指向設計(AOSD)でも使えるところが魅力だよね!

2011-01-28 10:53:47 | Weblog

 Friend of astah* プログラムってあるじゃないですか?

 ここ

Friend of astah* プログラム
http://astah.change-vision.com/ja/friends.html


あれに、NIIのTopSEプロジェクトとかも入るんですかねえ・・・
入ると面白いですよねえ・・・

鷲崎先生とか、鄭先生が、アスペクト指向設計を、astah*を使ってやってるんだけど
(一部機能はastah*にないので、ちょっと書き換えてるんだけど・・・)
あのへんが紹介されると、

要求仕様が追加された場合、astah*でどう表現すればいいかがわかるし、
それが、どうやって、開発と結びつくか、とくにJQueryやPHPを使って・・・
っていう部分がわかるので・・・

つまりね、仕様変更が起こったとき、PHP+JQueryサイトであれば、
astah*+アスペクト指向のユースケース開発(ヤコブソンがいってるやつ
を使って、設計から実装まで、一気にできる・・・


・・・そこまで、鷲崎先生は言ってなかったか(^^;)

・・・すみません、その辺を、今度書きますね
(今日は時間がないので書かない。午後から、行くところがある)



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1月27日(木)のつぶやき

2011-01-28 02:57:31 | Twitter
11:42 from web
情報処理試験の広告、女優さん&モデルさんを使わないで、絵になっちゃってません?あれって、れんほーさんに仕分けられたから、経費削減してるの? http://www.jitec.jp/1_04hanni_sukiru/_index_hani_sukil.html#pamphlet
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPのセッション処理

2011-01-27 14:45:51 | PHP


なぜか、このブログでPHPのセッション処理について書いてなかった。

サンプルをメモメモ
<?PHP

if ($_GET['val'] != "c" )
{
	//	セッションスタート
	session_start();

	//	セッションの値+受け取った値
	$ans = $_SESSION['ans'] + $_GET['val'];

	//	セッションにセット
	$_SESSION['ans'] = $ans;
}
else
{
	//	セッション終了
	$_SESSION = array();
	session_destroy(); 
}

?>
<HTML>
<HEAD><TITLE>セッションテスト</TITLE></HEAD>
<BODY>
<FORM METHOD="GET" ACTION="session.php">
<INPUT TYPE="text" NAME="val" value="<?PHP echo $ans ?>" />
<INPUT TYPE="submit" value="実行" />
</FORM>
</BODY>
</HTML>

(上記 < > は、本当は半角)

cといれると、クローズ、
それ以外は、前までに入れた数の合計(がセッションに入ってる)に
今回入れた値を足す。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Wordで同じ言葉を入力する場合、登録すると便利(定型句)

2011-01-27 10:11:37 | Officeソフト&VBA

 Wordを使っているとき、同じ言葉を、長々と入力しないといけないときがある。

 たとえば、

 「正常に動作することを目視で確認しました」

 ということを、いっぱい書かなきゃいけないときがあったとします。
 こういう場合、「正常に」だけを入力したら、あとの文を全部書いてくれると便利です。

 このやり方があれば、書き方も統一できますし・・・

 こういう、同じ言葉の繰り返しや、書き方を統一するために使うのが「定型句」です。
 これは、もともと、手紙文用のものは入っているのですが、自分でカスタマイズできるので、今回は、それについてメモメモ。




■定型文の入れ方

1.定型文にしたい文章を書きます。
2.その部分を選択します
3.メニューバーから「挿入」→「定型句」→「新規作成」を選ぶ


4.出てきたダイアログで、適当に名前をつける(そのままでもよい)


これで登録完了!




■定型文の使い方

・っていうか、はじめの部分、さっきだったら「正常に」とまで打って、変換をかけると、でてきます。


・それ以外でも、「挿入」→「定型句」→「標準」から選んでもOK
 選ぶと、いまカーソルのあるところに入ります。





■定型文の削除

 いらなくなったら、「挿入」→「定型句」→「定型句」を選ぶと、以下のダイアログが出るので


 いらなくなった定型句を選んで、「削除」ボタンをクリック。




こんなかんじ




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1月26日(水)のつぶやき

2011-01-27 02:56:17 | Twitter
20:48 from web
相互リンクすることで、astah*の広がりが一目でわかるようになるかも・・?「Friend of astah* プログラム」 http://astah.change-vision.com:80/ja/friends.html
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Wordのマクロを使って、ページを作成、表を貼りこんで、そこに文字を入れる

2011-01-26 17:55:48 | Officeソフト&VBA

 仕様書なんか書く場合、Wordの差込印刷を使うんじゃなくって、
 Excelとかに書いてある内容に基づいて、ページを作成、表を貼りこんで、その表の指定した場所に、Excelに書かれている文字を入れたいというケース、ありませんか?

 今回は、そんなときに役立ちそうな、「Wordのマクロを使って、ページを作成、表を貼りこんで、そこに文字を入れる」っていう方法。

 まずは、マクロを書いちゃいます。こんなかんじ

Sub Macro4()
    
    '   雛形テーブルをコピーする
    ActiveDocument.Tables(1).Select
    Selection.Copy
    
    
    '改ページして、はりつけ
    For i = 2 To 5
        '   一番終わりに行って、ページ作成
        ActiveDocument.Characters.Last.Select
        Selection.InsertBreak Type:=wdPageBreak
        
        '一番終わりに行き、枠を貼り付け
        ActiveDocument.Characters.Last.Select
        Selection.PasteAndFormat (wdPasteDefault)
        
        '文字をセット
        Set myTable = ActiveDocument.Tables(i)
        myTable.Cell(2, 1).Select
        Selection.TypeText Text:=i & "個目"
    
    Next
    

End Sub



はじめのページに雛形があって、テーブルが書いてある。そのテーブルをコピーし、
for文で、4こぶん(2~5)作っている。

つくりかたとしては、
ActiveDocument.Characters.Last.Select
でいちばん最後にいって、
Selection.InsertBreak Type:=wdPageBreak
で、改ページをいれている。

そしたら、
ActiveDocument.Characters.Last.Select
でいちばん最後にいって、
Selection.PasteAndFormat (wdPasteDefault)
で、はじめにコピーしたテーブルをはりこんでいる

あとは、セルを選択して、文字を書いている

ってかんじ。

はじめのページに雛形(空欄にして)を書いておけば、あとは、必要分数ループして作ってくれるね!


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelで郵便番号を設定/確認する

2011-01-26 11:09:31 | Officeソフト&VBA

 Excelで住所をいれておくと、郵便番号を探してくれる(入れてくれる)機能がある。
 (逆に郵便番号から住所もあるみたい)

 これを、メモメモ




■1.インストール

ここ
住所から郵便番号、または郵便番号から住所を入力する
http://office.microsoft.com/ja-jp/excel-help/HP010077514.aspx


にあるように2つインストールする

●1つは、「Excel アドイン: 郵便番号変換ウィザードのダウンロード」
ここにある。
Excel アドイン: 郵便番号変換ウィザード (2000-2007 ユーザー用)
http://www.microsoft.com/downloads/details.aspx?FamilyID=6F6AF8EF-B9DD-4E21-9E63-AF4A0FF4E7CE&displaylang=ja




●もう1つは「Office 郵便番号辞書のダウンロード」
ここにある。
Office 更新プログラム: 郵便番号辞書 (2010 年 5 月版)
http://www.microsoft.com/downloads/details.aspx?familyid=45192822%2DFBA7%2D49E6%2DB220%2D09BB32250EB3&displaylang=ja



どちらも、ダウンロードしてくると、exeファイルができるので、ダブルクリックすれば、実行する。




■2.設定

Excelを立ち上げて(インストール前に立ち上がっていたら、もう一度立ち上げなおして)
「ツール」→「アドイン」を選択
「アドインダイアログ」がでるので、「郵便番号変換ウィザード」にチェックを入れる




■3.使い方

ここ


5.Excel で校正 > 5-5 Excel 郵便番号変換ウィザード
http://www.morgan.co.jp/kiso/5excel-5.htm


住所→郵便番号の場合、

・まず、住所の桁を選択する
・「ツール」→「ウィザード」→「郵便番号変換」を選択
・ダイアログが出る。
  住所から郵便番号を生成する
 を選択して、次へ

・「住所データのセル範囲」は選択してあるので入っているはず。
 「郵便番号を出力するセル範囲」を設定して、
 「種類」は、「7桁の郵便番号」、書式は「文字列」
 で、次へ

・エラーがどうでもいい場合は、「完了」
 どこかのセルに出したい場合は、
 「指定したセル範囲に出力する」を選択して、下に、エラーを出力するセルを指定して「次へ」




そうすると、郵便番号が入ります。
空白はまったくわかんなかった、間違っている場合

XXX-0000

となってしまい場合は、住所がなにか抜けている場合です。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

江ノ島の展望灯台を改修して、そこから中継したら?

2011-01-25 14:13:14 | トピックス

ここのニュース
地デジ難視聴地区の鎌倉、新たな負担に市民不満/神奈川
http://headlines.yahoo.co.jp/hl?a=20110125-00000012-kana-l14


市役所ごときの高さに中継所をつくっても、だめでしょう。

こうなったら、江ノ島の展望灯台を改修して、
もっともっと高くして(100mくらい)、

そこから、鎌倉に向けて、地デジ中継したら?

観光的にも、いいんじゃないかなあ?

※たぶん、いまの展望灯台の上に鎌倉方向に向けて、八木アンテナ立てても、
 だめっすよねえーきっと。
 いや、ハイパワーにすれば中継できるなら、今の展望灯台から中継もいいと思うけど・・・
 



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする