社会シミュレーションのための モデル作成環境

Slides:



Advertisements
Similar presentations
OWL-Sを用いたWebアプリケーションの検査と生成
Advertisements

メタモデル記述を用いた成果物間の依存関係追跡手法
シーケンス図の生成のための実行履歴圧縮手法
4 相互作用図 後半 FM13001 青野大樹.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
エージェントモデル シミュレーション.
アルゴリズムとデータ構造1 2007年6月12日
『企業と市場のシミュレーション』 井庭 崇 第4回: シミュレーション作成プロセスとUML
UMLの概要と オブジェクト指向の 基本概念
ソフトウェア設計における意思決定ガイドラインとしてのデザインパターンのモデル
変数のスコープの設計判断能力 を育成するプログラミング教育
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
『企業と市場のシミュレーション』 井庭 崇 第12回: 貨幣の自生と自壊モデル
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
UMLとは           032234 田邊祐司.
オブジェクト指向モデリング [3] 2003年10月14日.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
47070 オブジェクト指向モデリング [1] 2001年10月2日.
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
その他の図 Chapter 7.
UMLの概要とオブジ工クト指向の基本概念 第2回
暗黙的に型付けされる構造体の Java言語への導入
コードクローンの分類に基づいた メソッド引き上げ手順の提案とその有効性評価
動的依存グラフの3-gramを用いた 実行トレースの比較手法
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
シーケンス図を用いて実行履歴を可視化するデバッグ環境の試作
『企業と市場のシミュレーション』 井庭 崇 第9回: 成長するネットワークモデル
オブジェクト指向モデリング [2] 2003年10月 7日.
ミドルウェア”TSUNAGI”を 用いたWEBアプリケーションの構築
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
『企業と市場のシミュレーション』 井庭 崇 第6回:シミュレーション作成演習①
言語XBRLで記述された 財務諸表の分析支援ツールの試作
UMLモデルを対象とした リファクタリング候補検出の試み
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
『企業と市場のシミュレーション』 井庭 崇 第1回 イントロダクション
シナリオのアニメーション表示による 妥当性確認支援
47070 オブジェクト指向モデリング [3] 2001年10月16日.
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
UMLの概要とオブジェクト指向の基本概念
Javaバーチャルマシンを利用した 動的依存関係解析手法の提案
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
第6回放送授業.
ソフトウェア理解支援を目的とした 辞書の作成法
ソフトウェア工学 知能情報学部 新田直也.
クラウド・地域人材利用型プログラミング教育実施モデル実証事業 公益財団法人 学習ソフトウェア情報研究センター
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
ソフトウェア工学 知能情報学部 新田直也.
より分かりやすい ユースケースモデルを作る
コードクローン解析に基づく デザインパターン適用候補の検出手法
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
木構造の比較に基づく メソッド呼び出し履歴の変化の可視化手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
第2回 情報科学技術フォーラム Forum on Information Technology (FIT2003)
Presentation transcript:

社会シミュレーションのための モデル作成環境 修士論文2004年度 社会シミュレーションのための モデル作成環境 ~図解によるシミュレーション・モデルの作成~ 慶應義塾大学大学院 政策・メディア研究科 青山 希

研究概要 研究背景 図解によるモデル作成環境「Component Builder」 コンピュータ・シミュレーションは社会の特徴についての 「理解」を深めるための道具として利用することができる 社会シミュレーションのためのモデルを作成するためには ソースコードを記述しなければならない 図解によるモデル作成環境「Component Builder」 モデル作成のプロセスを概念モデリングの段階から支援する UMLと独自に定義したアクション記述言語 「Action Block Language」(ABL) を用い, 図解でモデルを記述する 図解から実行可能なソースコードを生成する

Boxed Economy Projectの取り組み モデルフレームワーク(BEFM) シミュレーションのモデル作成のための指針 モデルを記述する際に頻繁に登場する 要素とその構造が定義されている シミュレーション・プラットフォーム(BESP) BEFMに基づいて作成されたモデルを シミュレーションとして実行するための ソフトウェア モデル作成プロセスの定義 概念モデリング(Conceptual Modeling), シミュレーションデザイン(Simulation Design), その検証(Verification)を行うことで 社会シミュレーションが可能になる

本研究の問題意識 既存のシミュレーション環境の問題点 モデル作成プロセスのうち,概念モデリングや, シミュレーションデザインのフェーズを支援していない 特定のプログラミング言語の文法を理解していないと モデルを作成することができない モデルをソースコードで記述するため 本質的なモデリング作業に集中しにくい

モデル作成環境『Component Builder』 概念モデリングフェーズと シミュレーションデザインフェーズの支援 UMLと,社会シミュレーションのモデル作成に特化したアクション記述言語「Action Block Language」(ABL) を用い,図解でモデルを記述する 図解で記述したモデルからシミュレーションとして実行可能なソースコードを自動生成する

Component Builderによる概念モデリング ① ② ③ ①クラス図でシミュレーションに登場する概念を定義する ②アクティビティ図でエージェントの活動を分析する ③シーケンス図でエージェント間の相互作用を分析する

Component Builderによるシミュレーションデザイン ① ② ③ ①クラス図で静的な構造を設計する ②ステートチャート図で動的な振る舞いを設計する ③アクション記述言語(ABL)でアクションを記述する

デモ:パン屋のサンプルモデル 簡単な商取引をシミュレートしたモデル 「パン屋さん」は「パン」を, 「お客さん」は「お金」を持っている お金とパンをやりとりしていく

Action Block Language(ABL) 社会シミュレーションのモデル作成に特化した言語 BEFMの用語(Agent,Relationなど)を基にして定義されている 論理的な構造(ブロック)と,制御構造(条件分岐,繰り返し)を記述することができる モデル作成に頻出する処理(アクションパーツ)が 語彙として定義されている 変数を利用することができる

アクションパーツ アクションを記述する際に頻出する処理の集まり 16のカテゴリに分類されて約150個定義されている 引数(パラメータ)と戻り値(結果)を持つ(ない場合もある) このAgentが持つInformationを取得する 引数:取得するInformationの種類 戻り値:取得したInformation このAgentから他のAgentへRelationを結ぶ 引数:Relationを結ぶ相手のAgent,結ぶRelationの種類 Agentの集合からランダムで N人の Agentを取り出す 引数:抽出元のAgentの集合,抽出するAgentの数 戻り値:抽出したN人のAgentの集合 アクションパーツの例

ABLで記述されたアクション

図解によるモデル作成の意義 ソースコードよりも抽象度の高い図解によってモデルを 作成することで,反復的なモデル作成がしやすくなる 設計をソースコードに変換する作業がなくなることで, バグの混入が少なくなる ソースコードを記述しないため作業量が減少する 特定のプログラミング言語の知識がなくても,モデルを作成したり,他人が作ったモデルを理解したりすることができる

Component Builderによる既存モデルの再現 「繰り返し囚人のジレンマ」モデルの再現 利害が対立する利己的な主体の間で どのように協調関係が形成されて いくのかを調べるための枠組み (Axelrod 1997, 井庭2003) 再現の結果 Java言語でモデルを作成した場合 モデル化の作業+6899行のソースコード ↓ Component Builderを利用してモデルを作成した場合   モデル化の作業+ 715行のソースコード  

Component Builderの試用実験 小規模なモデルを作成する試用実験 被験者 ・・・学生9名 前提条件・・・プログラミング,モデル作成ともに1回以上の    経験がある 実施形態・・・クラス図,ステートチャート図と,アクションの    論理的な設計を配布し,アクションをABLで    記述してもらう 結果 プログラミングやモデル作成の経験が少なくても モデルを作成することができた ソースコードではなく図解で記述することで 論理的な構造を意識しやすいという感想が得られた ABLを使っても,論理的な思考能力や,プログラミングの概念の理解は必要であることが改めて明らかになった

図解によるモデル作成環境 「Component Builder」の提案 まとめ 図解によるモデル作成環境 「Component Builder」の提案 モデル作成における概念モデリング, 設計のフェーズを支援する 特定のプログラミング言語の知識がなくても モデルを作成することができる 抽象度の高い図解によってモデルを作成することで,モデル化の作業に集中することができる 今後の展望 全くソースコードを書く必要がないような仕組みを検討する プログラミングの概念(オブジェクト、手続き、変数、データ構造)や,論理的な思考能力を育成する環境としての 可能性を模索する