• 検索結果がありません。

モデル駆動型アーキテクチャを用いたアスペクト指向ソフトウェアアーキテクチャからのコード生成に関する研究 〜コード生成におけるプラットフォーム非依存モデルについて〜

N/A
N/A
Protected

Academic year: 2021

シェア "モデル駆動型アーキテクチャを用いたアスペクト指向ソフトウェアアーキテクチャからのコード生成に関する研究 〜コード生成におけるプラットフォーム非依存モデルについて〜"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)モデル駆動型アーキテクチャを用いたアスペクト指向ソフトウェア アーキテクチャからのコード生成に関する研究 ∼ コード生成におけるプラットフォーム非依存モデルについて ∼ 2004MT071 二宮 剛史 指導教員. 1 はじめに ソフトウェアアーキテクチャに基づいて開発をおこなう 際に現れる規則的なプログラムコードを自動生成し,プ ログラムコード作成の労力を削減することがおこなわれ ている.プログラムコード自動生成の枠組としてモデル 駆動型アーキテクチャ [3] (以下,MDA) がある.MDA はプラットフォーム非依存モデル (以下,PIM) を作成 し,プラットフォーム依存モデル (以下,PSM) に変換 することで様々なプラットフォームにおけるプログラム コード作成を可能にする.プラットフォームは OS やプ ログラミング言語などのことである. 本研究室では組込みシステムのためのアスペクト指 向ソフトウェアアーキテクチャスタイル [2](以下,EAoSAS++) が提案されている.E-AoSAS++ は組込み システムを並行状態遷移機械の集合として規定する. E-AoSAS++ に基づくソフトウェア開発では並行処理 などの関心事 (コンサーン) をアスペクトとして適切な モジュール化をおこなうので,結果として得られるプロ ダクトの再利用性が高くなるという利点がある. E-AoSAS++ の 問 題 点 と し て ,E-AoSAS++ に 基 づ くソフトウェア開発の開発環境が未整備である.EAoSAS++ に基づくソフトウェアアーキテクチャから プログラムコードを作成する際に規則的な記述があらわ れるが,プログラマは全て作成しなければならない.ま た,組込みソフトウェアは様々なプラットフォームにお いて実現されるので,プラットフォームごとにプログラ ムコードの記述をおこなわなければいけない. 本研究の目的は,E-AoSAS++ に基づくソフトウェア アーキテクチャからプログラムコードを自動生成する ツールを作成することである.ツールを作成すること で,アーキテクチャの規則性から定型的なプログラム コードが作成できる.また,ツールを MDA に基づいて 作成することで,多様なプラットフォームへの対応が可 能となる.ツールにより E-AoSAS++ に基づくソフト ウェア開発環境を整備することができる. 本研究では作成するプログラムコード自動生成ツールに おける PIM の設計と作成方法の提案をおこなった.. 2 E-AoSAS++ E-AoSAS++ は組込みシステムのソフトウェアアーキ テクチャスタイルである.E-AoSAS++ では,組込みシ ステムを並行状態遷移機械 (以下,CSTM) の集合として 規定する.各 CSTM は互いにメッセージを送り協調動 作することで組込みシステムの機能を実現する.CSTM. 蜂巣 吉成 の構成を図 1 に示す.並行処理アスペクトでは CSTM 

(2) #$%. CSTM. 

(3). << aspect  >> 

(4). << aspect >>. << aspect >> !" 

(5). 

(6) #$%. 図 1 CSTM の構成. に通知されるイベント管理や並行動作を扱う.状態遷移 アスペクトでは CSTM の状態の切替えを扱う.アプリ ケーションロジックアスペクトでは状態の切替えにとも なうアクションを扱う.アスペクト間記述ではアスペク ト間の関連を表現する.. 3 プログラムコード自動生成ツールとプラッ トフォーム非依存モデル プログラムコード自動生成ツールの概要 プログラムコード自動生成ツールの概要を図 2 に示す. CSTM 間の関連がコンポーネント図で記述された静的. 3.1. .  !. (.   

(7)    ). PIM. PSM. PSM. PSM. ( Java ). ( C++ ). (C). +  ,4.5/6 03 1 ) 23. (. 図2. . XML. "#$  % & ' )(* . プログラムコード自動生成ツールの概要. 構造図,各 CSTM ごとの状態や遷移にともなう振る 舞いが記述されたステートマシン図,シーケンス図を XML 文書形式にして入力する.各図をもとに PIM を 作成し,各プラットフォームへの変換論理から PSM を 作成する.出力は各プラットフォームコードの定型部分 が記述されたソースファイルとする.図に記述される情 報をもとに作成できるプログラムコードを定型コードと して扱う.対象プラットフォームは Java,C++,C の 各プログラミング言語とする.本研究では入力された図 式表現から PIM を作成するまでを扱う. 3.2 プラットフォーム非依存モデルに求められる要件 PIM には CSTM をプログラムコードに変換するのに 十分な情報が含まれている必要がある.CSTM は複数 のモジュールによって実現される.例として,並行処.

(8) Program. Program. 理アスペクトを実現するモジュールを図 3 に示す.並. <<  aspect 

(9) >>. Program. CompositeCSTM. CompositeCSTM. CompositeCSTM. PolicyCSTM. PolicyCSTM. Concurrency ConcurrencyAspect. + enqueue() + signal() Program. Program. Queue. Thread. + enqueue(). + signal() + wait() + start(). CompositeCSTM. CompositeCSTM. + dequeue() PolicyCSTM. 図 3 並行処理アスペクトを実現するモジュール群 行処理アスペクトはイベント管理を扱うモジュールの Queue,並行動作を扱うモジュールの Thread,Queue と Thread を管理するモジュールの Concurrency で実 現される.他のアスペクトも同様に複数のモジュールで 実現される.CSTM を構成する各アスペクトは CSTM に共通なので入力となる各図には記述されていない.プ ラットフォームが異なる場合でも CSTM を構成する各 アスペクトの実現に必要なモジュールは変わらないの で,入力された情報を各モジュールを含んだ表現に変更 する必要がある. 3.3 プラットフォーム非依存モデルの設計 プログラムコードで CSTM を実現する際のモジュー ル構成まで考えた表現の構文規則を考え,構文規則に 基づき作成する抽象構文木を PIM とする.構文規則を Interpreter パターン [1] を用いて表現したクラス図を 図 4 に示す.PIM の各ノードには対応するモジュール ASTComponent + interpret() :void. Program + interpret() :void 1 1. 1. CompositeCSTM + interpret() :void 1. PolicyCSTM. 1. + interpret() :void 1 1. 0..* 1. CSTM + interpret() :void 1. 1 1. ConcurrencyAspect + interpret() :void 1 1. 1. 1 1 StateTransitionAspect. 1. 1 1 PolicyConcurrency. 1. 1 ApplicationLogicAspect. + interpret() :void 1. + interpret() :void. + interpret() :void. 1. Thread. Queue. + interpret() :void. + interpret() :void. 1 StateTransition + interpret() :void 1. 1 PolicyApplicationLogic + interpret() :void. State 1. 1. 1. 1. 1..*. + interpret() :void. 1..* 1. Action + interpret() :void. ApplicationLogic + interpret() :void. PolicyStateTransition + interpret() :void. 図4. ConcurrencyAspect. Thread. Queue. StateTransitionAspect. . 図 5 PIM の作成過程の一部. 子ノードのインスタンスを作成していく.同じ子ノード のインスタンスを複数作成する場合は必要な図の情報を もとに作成する.全ての CSTM を構成するモジュール に対応するノードを作成したら PIM が完成する.. 4 考察 PIM の妥当性と新たなプラットフォーム追加の考察を おこなう.図をもとに PIM を作成し,各プラットフォー ムごとの変換論理に基づき PSM に変換し,Java,C++, C の各言語で定型部分が記述されたソースファイルが 作成できることを確認した.コード生成をおこなう際 に PIM が十分な情報を提供していることから本手法で 作成した PIM は妥当であるといえる.PIM が妥当であ ることから,新たなプラットフォーム追加を考える際は 追加するプラットフォームのプログラムコードで各モ ジュールを作成し,PIM からの変換論理を作成するだけ でよい.. 5 おわりに. 0..*. 1. 1. PolicyConcurrency. . PolicyCSTM. ConcurrencyAspect. PIM の表現に使用するクラス図. を実現する際に必要とする情報を持たせる.必要とす る情報は図から得られる.例えば並行処理アスペクトを 構成するモジュールのひとつである Thread は,プログ ラムコードで実現する際に図から得られる情報として CSTM 名を使用している.Thread モジュールに対応す る PIM の Thread ノードには,CSTM 名を持たせるこ とで定型部分が記述できる. 3.4 コード生成のためのプラットフォーム非依存モデ ルの作成 PIM 作成手順について述べる.PIM の作成過程の一部 を図 5 に示す.親ノードを作成すると構文規則に従い,. 本研究では,E-AoSAS++ に基づくソフトウェアアー キテクチャからプログラムコードを自動生成するツール 内における PIM の提案をおこなった.また,PIM の妥 当性と新たなプラットフォーム追加時の考察をおこなっ た.今後の課題として自動生成されるプログラムコード の再利用に関する考察がある.. 謝辞 熱心な御指導をいただいた野呂昌満教授,沢田篤史教授, 蜂巣吉成講師,有益なアドバイスをいただいた大学院生 のみなさまに深く感謝いたします.また,二年間ともに 頑張ってきた蜂巣研究室,野呂研究室,沢田研究室のみ なさんに感謝します.. 参考文献 [1] E.Gamma,R.Helm,R.Johnson,J.Vlissides: Design Patterns Elements of Reusable ObjectOriented Software,Addison Wesley Longman, 1995. [2] 坂野将秀:組込みソフトウェアのためのアスペクト 指向アーキテクチャスタイルの提案,南山大学大学 院数理情報研究科 2006 年度修士論文要旨集. [3] OMG:MDA,http://www.omg.org/mda/..

(10)

参照

関連したドキュメント

方法 理論的妥当性および先行研究の結果に基づいて,日常生活動作を構成する7動作領域より

「心理学基礎研究の地域貢献を考える」が開かれた。フォー

の点を 明 らか にす るに は処 理 後の 細菌 内DNA合... に存 在す る

日頃から製造室内で行っていることを一般衛生管理計画 ①~⑩と重点 管理計画

本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

図 3.1 に RX63N に搭載されている RSPI と簡易 SPI の仕様差から、推奨する SPI

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう