アスペクト指向アーキテクチャ設計のための横断的関心事抽出に関する研究– ロバストネス分析を用いた要求とアーキテクチャの対応付け –2007MI018 江坂 篤侍
指導教員

2007MI040 服部 裕介

野呂 昌満

1 はじめに膨大で複雑なソフトウェアシステムが増加するにつれ，ソフトウェア開発において，アーキテクチャ設計はより重要な分野となった [2]．アーキテクチャは仕様モデルなどから設計され，システムの骨格や作り方を定める．アーキテクチャ構築方法の中でも，アスペクト指向技術が注目されている．アスペクト指向技術はシステムを複数の視点で捉え，これまでのソフトウェア開発技術
では解決し辛かった問題に対処することが出来る [6]．
横断的関心事とアスペクト指向アーキテクチャの関係は必ずしも明確ではない．このことから，アスペクト指向アーキテクチャ設計において，横断的関心事からのモジュール分割の決定や，モジュール構造からの横断的関心事の識別は困難である．
本研究の目的は仕様モデルと横断的関心事の対応関係を明確にすることである．これにより，アスペクト指向アーキテクチャ設計を支援する．
本研究ではロバストネス分析 [1] の結果を仕様モデルとし，アーキテクチャスタイル [2] を手がかりに横断的関心事との対応関係を明確にする．ロバストネス分析
は仕様記述であるユースケース記述を分析し，ロバストネス図を用いてシステムの基本的な構造を表す．このロバストネス分析の結果の構文からモジュール分割を決定し，アーキテクチャを設計する．我々は，アーキテクチャスタイルは非機能要求に関する関心事の設計解であると認識している．そこで，アーキテクチャスタイルを手がかりにロバストネス分析の結果とアーキテクチャスタイルの実現する関心事を対応付ける．関心事との対応関係によりロバストネス分析の結果からアスペクト指向アーキテクチャ設計が可能になり，アスペクト指向アーキテクチャ設計を支援出来ると考えた．
ロバストネス分析の結果とアーキテクチャスタイルに構文的な関係があるとの仮説を立てた．仮説よりロバストネス分析の結果の構文から，アーキテクチャスタイルの実現する関心事の識別や，関心事からロバストネス分析の結果の構文を決定出来ると考えた．
ロバストネス分析の結果の構文の要素に対して拡張を行う．本来のロバストネス分析の結果の構文のみではアーキテクチャスタイルと対応付けることは困難であった．そこで，構文の要素を拡張することで，構文の要素に意味を対応付けた．これにより，意味も考慮してロバストネス分析の結果の構文とアーキテクチャスタイルを対応付けることが可能となった．

2007MI116 熊崎 陽介

沢田 篤史

蜂巣 吉成

研究手順は次の通りである．まず，ロバストネス分析の結果の構文の要素に対しての拡張を定義する．次に仮説からロバストネス分析の結果とアーキテクチャスタイルとの対応関係を提案する．最後に提案する対応関係を事例を用いて検証する．
本研究の結果として，仕様モデルから横断的関心事を識別し，それによるモジュール分割を決定することで，アスペクト指向アーキテクチャ設計が可能となった．このことから，仕様モデルと横断的関心事の対応関係が明確になり，アスペクト指向アーキテクチャ設計を支援出来たと考える．
本研究室は組込みソフトウェアのためのアスペクト指向ソフトウェアアーキテクチャスタイル (以下，EAoSAS++ )[5] を提案している．本研究のアスペクト指向アーキテクチャの記述には E-AoSAS++ を用いた．

2 背景技術
ロバストネス分析，アーキテクチャスタイルについて説明を行う．
2.1 ロバストネス分析
ロバストネス分析とは，オブジェクト指向の分析方法である．ユースケースに記述された機能を実現するために必要な要素とその役割を分析し，ロバストネス図を用いて表現する．ロバストネス図は以下の 3 種類のコンポーネントとユースケースに登場するアクタとその関連による構文で構成される．図 1 はロバストネス図で用いるコンポーネントである．
- バウンダリシステムとそのアクタ間の作用をモデル化- エンティティ
長時間存在する，永続性のある情報をモデル化- コントロール
ほかのコンポーネントの操作をモデル化

図1

ロバストネス図のコンポーネント

アーキテクチャスタイル
アーキテクチャスタイルは，よくあるシステムの構造を分類したものであり，コンポーネントとコネクタの種類とセマンティクスモデルで表現される．アーキテクチャスタイルはその構造により，非機能特性を実現する．
代表的なものに Shaw と Garlan の提唱する 7 つのアー
キテクチャスタイル [2] がある．
- コンポーネント

2.2

計算主体

- コネクタコンポーネント間の相互作用の記述- セマンティクスモデル
全体の特性を決定付ける，部分的な特性

3 仕様モデルと横断的関心事との対応関係
本研究は仕様モデルと横断的関心事の対応関係を明確にする．これにより，アスペクト指向アーキテクチャ設計を支援する．我々は，仕様モデルのロバストネス分析の結果とアーキテクチャスタイルに構文的な関係があるとの仮説を立てた．仮説から，ロバストネス分析の結果の構文とアーキテクチャスタイルの構文，アーキテクチャスタイルの持つ意味との対応関係を明確にする．
我々は，アーキテクチャスタイルの持つ意味が存在するシステムには，そのアーキテクチャスタイルの実現する関心事が存在すると考える．また，アーキテクチャスタ
イルは，その構文により関心事を実現していると考える．
ロバストネス分析の結果に対して構文の拡張を行うこと
で，ロバストネス分析の結果とアーキテクチャスタイルとの対応関係を明確にする．対応関係を明確にすること
で，我々はロバストネス分析の結果の構文から，横断的関心事の識別と横断的関心事によるモジュール分割の決定が出来ると考えた．
3.1 ロバストネス分析の結果の構文の拡張
ロバストネス分析の結果の構文の要素に対する拡張を定義する．本来のロバストネス分析の結果の構文のみではアーキテクチャスタイルとの対応付けは困難であった．そこで，構文の要素に対して拡張を行うことで，構文の要素に意味を対応付ける．これにより，意味も考慮して構文をアーキテクチャスタイルと対応付けることが可能となった．我々は，定義や事例からロバストネス分析の結果の構文の要素に対応しうる意味を分析し整理した．ステレオタイプと 4 種類の矢印を用いてこの整理した意味を構文の要素に対応付ける．
対応付ける意味とその分類方法を表 1 に示す．
表1

タイルの持つ意味が存在するシステムには，そのアーキテクチャスタイルの実現する関心事があると考えている．そこで，アーキテクチャスタイルの持つ意味をロバストネス分析の結果の構文のパターンとして定義した．
アーキテクチャスタイルのコンポーネントとコネクタの持つ責務や，それらの関連をロバストネス分析の結果の構文と対応付けた．これにより，アーキテクチャスタイ
ルの持つ意味とロバストネス分析の結果の構文が対応付くと考えた．アーキテクチャスタイルの持つ意味をロバストネス分析の結果の構文と完全に対応付けることは困難であった．よって，既存のロバストネス分析の結果の構文に対するパターンの照合により導き出せるのは関心事が存在する箇所の候補である．このことから，パターンと一致する構文が現れた時，アーキテクチャスタイルを適用するシステムであるかを設計者が判断する．このように，対応関係を用いて，ロバストネス分析の結果から横断的関心事の識別が出来ると考えた．
各アーキテクチャスタイルの定義からコンポーネントやコネクタの持つ責務を整理し，その責務はロバストネ
ス分析の結果の構文にどのように現れるか整理した．対応関係を表 2 に示す．
表2

ロバストネス分析の結果に対応する意味と拡張案の一覧

アーキテクチャスタイルの構文との対応関係
ロバストネス分析の結果の構文とアーキテクチャスタ
イルの構文を対応付ける．我々は，アーキテクチャスタ
イルはその構文により関心事を実現していると考えた．
よって，アーキテクチャスタイルの構文をロバストネス分析の結果の構文のパターンとして定義した．アーキテ
クチャスタイルのコンポーネントとコネクタ，それらの関連をロバストネス分析の結果の構文と対応付けた．これにより，アーキテクチャスタイルの構文とロバストネス分析の結果の構文が対応付くと考えた．アーキテクチャスタイルの実現する関心事を識別した時，ロバストネス分析の結果の構文を，そのアーキテクチャスタイル

3.3

アーキテクチャスタイルの持つ意味との対応関係
アーキテクチャスタイルの持つ意味をロバストネス分
析の結果の構文と対応付ける．我々はアーキテクチャス

3.2

アーキテクチャスタイルの実現する関心事との対応関係

の構文に対応付く構文にする．これにより，ロバストネ
ス分析の結果の構文から，その関心事を実現するアーキテクチャスタイルのモジュール分割を決定することが出来ると考えた．複数の関心事を識別した時，可能であれば複合アーキテクチャとして実現することで，より適したアーキテクチャ設計を行うことが出来る．
各アーキテクチャスタイルの定義から，コンポーネン
トやコネクタはロバストネス分析の結果の構文にどのように現れるか整理した．対応関係を表 3 に示す．
表3

アーキテクチャスタイルの構造との対応関係を用いて，横断的関心事を識別する．

工程 3. ロバストネス分析の結果の構文の決定
アーキテクチャスタイルの構文との対応関係を用いて，ロバストネス分析の結果の構文を決め，モジュール分割を決定する．

これらにより，ロバストネス分析の結果の構文から横断的関心事の識別とモジュール分割の決定を行い，アスペクト指向アーキテクチャの設計が可能となると考えた．
4.2 横断的関心事の識別とモジュール分割の決定
3 つの工程を用いてロバストネス分析の結果から横断的関心事の識別とモジュール分割の決定を行う．ロバストネス分析の結果の構文から Blackboard，ProcessControl，Pipes and Filters，Event-Based の実現する関心事を横断的関心事として識別した．さらにロバストネス分析の結果の構文を変更し，その構文からアーキテクチャスタイルのモジュール分割を決定することでこれらの関心事を複合アーキテクチャとして実現した．例として Blackboard を用いて説明する．
■Blackboard 工程 2 の結果，ロバストネス分析の結果の構文から Blackboard の関心事を識別した．さらに工程 3 の結果，ロバストネス分析の結果の構文からBlackboard のモジュール分割を決定した．永続データのステレオタイプのエンティティが Shard Data，デー
タ制御のステレオタイプのコントローラが Control，Control が活性化する箇所が KnowledgeSource となる．
最終的にロバストネス分析の結果から識別した関心事を図 2 に示す．識別した関心事を実現するモジュール分割を決定した．このモジュール分割は Process Control,Event-Based, Blackboard，，Pipes and Filters の複合アーキテクチャとなっている．

4 事例検証提案する対応関係を，MDD ロボットチャレンジ 2010の仕様 [3](以下，競技仕様書) に基づく自動航行飛行船制
御ソフトウェア (以下，飛行船) を事例として検証した．
4.1 アスペクト指向アーキテクチャ設計手順
事例に対して行ったアスペクト指向アーキテクチャ設
計手順を示す．まず，仕様モデルに対しロバストネス分析を行った．次に，分析結果から横断的関心事の識別と，関心事を実現するアーキテクチャスタイルのモジュール分割を決定し，アスペクト指向アーキテクチャの設計を行った．
ロバストネス分析の際に我々は 3 つの工程を可能なものから繰り返し行う．
工程 1. 構文に対する拡張
ロバストネス分析の結果の構文の要素に対応する意味は，仕様から分かる場合と，アーキテクチャスタイルを適用する際に決まる場合がある．ロバ
ストネス分析の結果の構文の要素に対応する意味が分かり次第，拡張を行う．

工程 2. ロバストネス分析の結果の構文からの関心事の識別
アーキテクチャスタイルの持つ意味との対応関係

図2

横断的関心事を識別したロバストネス分析の結果

4.3 E-AoSAS++ に基づくアーキテクチャ設計
E-AoSAS++ に基づいてアーキテクチャ設計を行った. 識別した横断的関心事によって分割されたモジュー
ルをそのアーキテクチャスタイルのアスペクトとし，アスペクト指向アーキテクチャ設計を行った．その結果の一部を図 3 に示す.

仕様モデルと横断的関心事の対応関係の考察
ロバストネス分析の結果とアーキテクチャスタイルに構文的な関係があるとの仮説を立て，対応付けを行った．
これにより，仕様モデルと横断的関心事の対応関係が明確となった．対応関係により，ロバストネス分析の結果から横断的関心事を識別し，アスペクト指向アーキテクチャ設計が可能となった．よって，アスペクト指向アーキテクチャ設計を支援することが出来たと言える.
5.4 関連研究と比較した本研究の有用性
本研究室では過去に関連研究 [4] が行われている．これはロバストネス分析の結果と横断的関心事を対応付け，仕様モデルとアスペクト指向アーキテクチャの対応関係の明確化を試みている．本研究とは違い，横断的関心事の基準や，関心事から構造を決定する指針がない．
本研究は横断的関心事の基準をアーキテクチャスタイルとし，関心事の内容が明確であることから，過去の研究に比べ一般性が高いと考える．また，関心事から構造を決定する指針は，より洗練されたアスペクト指向アーキテクチャの設計が可能となる．以上のことから過去の関連研究に比べ本研究は有用性が高い．

5.3

図 3 アスペクト指向アーキテクチャ設計結果(コンポーネント図一部抜粋)

5 考察
ロバストネス分析の結果の構文の拡張の考察
アーキテクチャスタイルとロバストネス分析の結果を対応付けるためにロバストネス分析の結果の構文の拡張を定義した．拡張表現はステレオタイプや関連線の種類分けにより行う．拡張表現は複数の事例から構文の要素に対応する意味を分析しそれを基に定義した．よって定義した拡張表現は，ロバストネス分析の結果のコンポーネントや関連線に対応する意味を構文として付加するものである．以上のことから，ロバストネス分析の本来の意義が拡張表現により失われることなくアーキテクチャスタイルと対応付けることが出来た．
5.2 識別した関心事に関する考察
本 事 例 に お い て 識 別 し た Process Control, EventBased, Blackboard，Pipes and Filters の実現する関心事が妥当であるか以下に考察する．
■Process Control 飛行船は外乱の影響を受ける問題がある．Process Control を適用することで，飛行船のモータへ制御値を送り，飛行船を制御し，この問題を解決する．
■Blackboard 目的地までの自動航行で飛行船が実行する動作は複数存在し，実行する動作が現在の状態に依存する問題がある．Blackboard を適用することで，現在の状態から実行する動作を決定し，目的地まで試行錯誤しながら辿り着かせ，この問題を解決する．
■Event-Based 飛行船の動作の実行する順序関係は現在の飛行船の状態に複雑に関係する．Event-Based を適用することで，動作の実行を一括に管理する．
■Pipes and Filters 飛行船はセンサの入力からモータへの出力までの間に，センス値の解析やモータ出力値の計算などの複数の処理を行う．Pipes and Filters を適用することで，これらの処理毎の独立性を実現する．
以上より，各アーキテクチャスタイルの適用は妥当であると考えた．識別したアーキテクチャスタイルの実現する関心事は妥当であることから，アーキテクチャスタイルの実現する関心事との対応関係は妥当である．

5.1

6 おわりに
本研究では，アスペクト指向アーキテクチャ設計における問題点を挙げ，仕様モデルと横断的関心事との対応関係を明確にすることを目的とした．仕様モデルと横断的関心事の関係の仮説を立て，仮説から対応関係を提案し，飛行船制御ソフトウェアを用いて事例検証と考察を行った．その結果，仕様モデルと横断的関心事の対応関係が明確となった．
今後の課題として，本研究で提案する対応関係の一般性の確認と，洗練を他ドメインの事例を用いて行うことが挙げられる．

参考文献[1] D. Rosenberg and K. Scott, Use Case Driven
Object Modeling with UML: A Practical Approach, Addison-Wesley, 2001.
[2] M. Shaw, D. Garlan, Software Architecture,Perspectives on Emerging. Discipline, PrenticeHall, Inc. , Upper Saddle River, New Jersey,
1996.
[3] MDD ロ ボ ッ ト チ ャ レ ン ジ 2010 実 行 委 員会 ， MDD ロ ボ ッ ト チ ャ レ ン ジ 2010 競
技 仕 様 書 ， 2010; http://sdlab.sys.wakayamau.ac.jp/mdd2010/MDD2010 regulation.pdf.
[4] 江場智文，大石早織， アスペクト指向に基づく飛行船制御ソフトウェア開発， 2008 年南山大学卒
業論文，2008[5] 加藤大地, 蜂巣吉成, 沢田篤史, 野呂昌満, ア
スペクト指向に基づくソフトウェアアーキテク
チャの文書化方式，知能ソフトウェア工学研究会(KBSE), vol.108， no.449，pp55-60，2009．
[6] 野呂昌満， アスペクト指向プログラミング概観，Seamail，vol.13，no11.