E-AoSAS++ におけるアスペクト記述と織り込みに関する研究
2011SE167 宮澤 竜一
指導教員：張 漢明

はじめに

1

E-AoSAS++(Aspect Oriented Software Architecture
Style for Embedded system) は組込みソフトウェアのためのアスペクト指向アーキテクチャスタイルである. EAoSAS++ は，アスペクト指向アーキテクチャを記述するためにステレオタイプにより UML の意味を拡張している. E-AoSAS++ では，アスペクト指向の考え方を導入し状態遷移機械

2.2.1

E-AoSAS++ の基本構成要素である. 状態遷移機械は出力付きの有限オートマトンのミーリ型順序機械で表される．
アクション

2.2.2

アクションでは，コンポーネントからコンポーネントへており，複数のオブジェクトやコンポーネントに横断してのイベントの送信を記述する．

いるコードを 1 つのアスペクトとしてモジュール化しシス

2.3

テムから分離する事で，ソフトウェアの開発効率や保守性を向上させている. E-AoSAS++ で書かれたアーキテク
チャは，CSP のコードを半自動生成することでモデル検査を行う事が可能である．
しかし現在 E-AoSAS++ では，アスペクトに関するドキュメントが未整備であり，アスペクト指向で書かれたアーキテクチャから検証コードを自動生成するツールはまCSPCSP(Communicating Sequential Process) は並行システムを相互作用するプロセスの群として捉え記述する事ができる仕様記述言語である．プロセスはイベントの実行順序によって記述することができる．

3

View の構成要素

3.1

ビューだ作られていない．
本研究の目的は，E-AoSAS++ の View 部分におけるドビューは，複数のアスペクト間記述と，アスペクトの集キュメントの整備を行う事と，自動生成ツールにアスペク合から構成される．View はどのような関心事に基づいてトの織り込みをする機能を拡張する事で，E-AoSAS++ でシステムを分割したかである．ビューによって分割された記述されたアーキテクチャから CSP の検証コードを自動モジュールをアスペクトとし, アスペクト間のイベントの生成する事を可能にし，検証を容易にする事である.

送受信をアスペクト間記述とする．アスペクト間記述は，AspectJ におけるアスペクトに相当する．ビューは，アス2

技術背景

ペクトとアスペクト間記述で構成される．

2.1

アスペクト指向技術

3.2

アスペクト指向技術とは，オブジェクト指向で考えたとき複数のクラスやオブジェクトを横断する関心事をアスペ

アスペクト

アスペクトは，関連するコンポーネントの集合で構成される．

クトとしてシステムから分離してモジュール化する技術である. このような関心事を横断的関心事と呼び，これを独アスペクト間記述

3.3

立したコンポーネントに分割することでソフトウェアの保アスペクト間記述は，1 つのアスペクトコーディネータ守，開発効率を向上させている.と，織り込みの織り込みポリシの集合から構成される．

2.2

3.3.1

E-AoSAS++

E-AoSAS++ は，組込みシステムのためのアスペクト指向アーキテクチャスタイルである. 組込みソフトウェ
アにおける横断的関心事の問題を解決するために，E-AoSAS++ はアスペクト指向の考え方を導入している.
E-AoSAS++ に基いて設計されたシステムは，複数の並行に動作する CSTM からなる. E-AoSAS++ は並行状
態遷移機械 (CSTM) を基本構成要素としており，複数のCSTM の階層的は包含関係によってソフトウェアの静的構造を表現する. 個々の CSTM の振る舞いは状態遷移論
理により表現されており，複数の CSTM にまたがる振る
舞いは CSTM 間のメッセージ通信とその系列によって表現される [3].

アスペクトコーディネータ

アスペクトの構成を管理するメタコンポーネント．
織り込みポリシ

3.3.2

アスペクトを横断する関心事とアスペクト間の結合点となる. ジョインポイントとアドバイスによって構成されている．

4

アスペクトの織込み

4.1

織り込みポリシの意味

織り込みポリシは、ジョインポイントと、アドバイスからなる．ジョインポイントは状態遷移機械とイベントの組で表される．

織り込みポリシでは，ジョインポイントに対して，アドを休止状態にし，FaultManagerPolicy に errordetecting

バイスを記述する事ができる．織り込みポリシのアドバイを送信する．コインが入っていない時に errordetecting をスはアスペクトコーディネータにイベントを送信するもの

受け取ると，ボタン，コイン，レバー，VM を休止状態にである．アドバイスには、アクションの実行前に織り込まする．コインが入っている時に errordetecting を受け取る

れる Before アドバイスと，アクションの実行後に織り込とボタンを休止状態にした後に，コインを返却し，コイン，まれる After アドバイスがある．本研究の自動生成ツール

レバー，VM を休止状態にする．という故障監視のアスペ

では，アドバイスは全て Before アドバイスとして扱う．

クトを織り込んだ.

織り込みポリシにおける，アドバイス織り込みの UML
表記を図 1 に示す．

6

生成結果
自動生成ツールによって，自動販売機のシステムに時間監視をするアスペクトを織り込んだ．
生成結果

VM_Button_on =SEND( tmp , start );SEND( button , on );SEND( lever , on )7

考察
自動生成ツールを使用して, 期待通りの CSP コードを生

図 1 アドバイス織り込みタイミング成することができた.

Promela でも同様に織り込む事が出来ると考えられる．
4.2

CSP による織り込み

CSP でのアスペクトの織り込みを，自動販売機のシステムの，Button と Lever に on を送るアクションにTimeManagerPolicy に start を送るアドバイスに織り込

8

おわりに本研究では織り込みポリシの意味を調べ，手動でアスペクトの織り込みを行った．
今後の課題は，むという事例を用いて示す．

自動生成ツールによって織り込まれたアスペクトが，も• 織り込み前のアクションとのシステムに影響を与えないかなどを FDR を用いて調VM_Button_on =SEND( Button , on ) ;SEND( Lever , on )• 織り込みポリシのアドバイス
WP_TimeWachstart =SEND( TimeManagerPolicy , start ) ;• 織り込み後のアクション
VM_Button_on =SEND( TimeManagerPolicy , start ) ;SEND( Button , on ) ;SEND( Lever , on )本研究では全て Before アドバイスとして扱うので，織り込むアクションより先にアドバイスを実行するようにする．

5

事例
コインを入れてボタンを押すと商品を排出，レバーを引

くとコインを返却するという振る舞いの自動販売機のシス
テムに，コインを入れてから一定の時間が経過したらコインを返却するという時間監視のアスペクトと，エラーが発生したら，エラーが起こったコンポーネント

べること，

Before アドバイスと After アドバイスの記述法を定義すること，また，Primela のコードを自動生成するツールを作ることである．

参考文献[1] C.A.R. Horae,Communicating Sequent ial Process,Prentice-Hall, 1985.
[2] M.noro, A. Sawada, Y. Hachisu, and M. Banno, ”EAoSAS++ and its Software Development Environment,” Proceedings of th e 14th Asia-Pacific Software Engineering Conference(APSEC2007), pp.206213, 2007 .
[3] 沢田篤史， 体系的なモデル変換原理に基づく組込みソフトウェア開発環境の研究 ，2009．
[4] 横田純也， 冨田慶悟， E-AoSAS++ における例外処
理記述と検証に関する研究 ，2015．