E-AoSAS++ に基づく飛行船制御ソフトウェア開発
2005MT021 服部 由衣
指導教員

2005MT037 伊藤 英樹

野呂 昌満
トを通知することで協調動作を行う．

1 はじめに

2.1.2 コンセプチュアルアーキテクチャとインプリメハードウェアの高性能化に伴い，組込みシステムに対すンテーションアーキテクチャる要求が高度化し, ソフトウェアの規模や複雑さが増大している．規模や複雑さの増大に対してソフトウェアの

E-AoSAS++ において作成するアーキテクチャは，ソ保守性の高い設計を行うことが重要となっている．外界

フトウェアを概念的に表したコンセプチュアルアーキとの密接な関係のある組込みソフトウェアではリアルテクチャ，システムに散在する関心事をアスペクトとしタイム性や耐故障性といった様々な制約が存在し，ソフてモジュール化したインプリメンテーションアーキテ

トウェア全体に散在する処理となってしまう. 本研究室

クチャである．インプリメンテーションアーキテクチャ

では，アスペクト指向技術を用いて保守性の高いソフト

は，機能や非機能特性をアスペクトとしてモジュール化

ウェアを開発するために，組込みソフトウェアのためのするアスペクト指向によって設計されるアーキテクチャ

アスペクト指向ソフトウェアアーキテクチャスタイルである．コンセプチュアルアーキテクチャでは，静的構(以下,E-AoSAS++) が提案されている．E-AoSAS++造を UML のクラス図により記述し動的振る舞いをシー

では，機能特性，非機能特性に対する記述方法を規定しケンス図，状態マシン図を用いて記述する．インプリメている．本研究室では, 事例として自動販売機や携帯電ンテーションアーキテクチャでは，静的構造をコンポー話等を E-AoSAS++ に基づき開発を行ってきた．しかネント図とクラス図により記述し動的振る舞いをシーケしながら，実際の組込みソフトウェアに存在する複雑なンス図，状態マシン図を用いて記述する．

制御を持つ事例に対する検証が行われていない．本研究2.1.3 グローバルコンサーンとローカルコンサーンの目的は，複雑な制御を持つ組込みソフトウェアにおけグローバルコンサーンは，組込みソフトウェア全体に散る記述方法の妥当性の考察を行うことである．本研究で在する関心事であり，E-AoSAS++ では， 並行処理, 状は，複雑な制御を持つ組込みソフトウェアの事例として態遷移, アクションをグローバルコンサーンとして規定

飛行船制御ソフトウェアを取り上げる．

し，アスペクトとしてモジュール化する．各 CSTM は，本研究において，飛行船制御ソフトウェアを取り上げる

これらの関心事をモジュール化したアスペクトから構理由として，飛行船制御にはモータやセンサの制御，通成され，各アスペクトの関連はアスペクト間記述である

信処理などの様々な制御に関する要件が存在し，複雑なInter Aspect Discription（IAD）に記述される．

制御を持つソフトウェアの例として事例検証を行うこと

ローカルコンサーンは，組込みソフトウェアの特定のが可能であると考えられるからである．また，情報処理コンポーネントに横断する関心事であり，E-AoSAS++

学会の組込みシステム研究会が企画する MDD ロボッ

では，例外処理, 耐故障性, 実時間処理をローカルコン

トチャレンジ 2008 において自動航行飛行船制御ソフトサーンとして規定する．

ウェアが提案されており, 要求仕様が決定している組込2.1.4

E-AoSAS++ に基づく開発支援環境の開発プロセス

みソフトウェアの開発の良い事例となるからである．

E-AoSAS++ に基づく開発支援環境の開発プロセスでは, 要求分析, ドメイン分析を行い仕様モデルを決定し,

2 背景技術
2.1 E-AoSAS++
2.1.1 概要
E-AoSAS++ は，コンポーネントコネクタスタイルに仕様モデルに基づきソフトウェアアーキテクチャを構築基づく組込みシステムのソフトウェアアーキテクチャプロダクトを表すアスペクト指向モデルである.

を構築するためのアーキテクチャスタイルである．組込アーキテクチャの正しさを実行前検査により検証し, 構

みソフトウェアを並行に動作する並行状態遷移機械 (以築されたアスペクト指向モデルのアーキテクチャ記述を下，CSTM) の集合として規定し，各 CSTM は，自分基にコードを作成する. 実行前検査, コード変換はツー自身及び，外部からのイベントに対して状態を遷移させルを用いて実現する.

る．その際，自分自身及び，他の CSTM に対しイベン

実行前検査, コード自動変換についてはツールの整備がする. 構築するアーキテクチャは, 開発するソフトウェ
アを概念的に表したオブジェクト指向モデル, 開発する

1

• 推進力と飛行船の現在地を画面に表示する

十分にされていないので本研究では行わない. コード変換はツールで用いる変換論理に基づき変換を行うことに3.2より実現する.

要求分析，ドメイン分析

要求分析にユースケース図を用いることで，システムの2.2 MVC アーキテクチャ

機能と要求の整理を行った．飛行船制御ソフトウェアのMVC アーキテクチャとは，システムを Model，View，Controller の 3 つのコンポーネントに分類し，各コン本質的な機能を表すことで，システムの全体像を把握することが可能になる．

ポーネントの独立性を高めるアーキテクチャである．

今回対象とした飛行船制御システムは，ハードウェア構よって，保守性の高い設計が可能である．

成についての仕様が MDD ロボットチャレンジの競技

各コンポーネントの責務や各コンポーネント間の関連を仕様として決定していることから，ユースケース図へこ次に示す．システムをこれら 3 つのコンポーネントに分れらのハードウェア仕様を加えたユースケース図を作成類し，システムを設計する．

した．作成したユースケース図を図 2 に示す．図 1 の• Model

ユースケース図を仕様モデルとして飛行船制御ソフトアプリケーションの処理の中核を成すデータとそウェア設計を行った．の処理をおこなうコンポーネント• View

表示，出力に関する責務を持つコンポーネント• Controller

外部からの入力にを受け取り制御を行うコンポーネント

各コンポーネント間の関連は，Controller が入力を受け取り Model に対し処理の依頼をする．Model からの更新通知を受け取った View が表示，出力の処理を行いア

図 1 ユースケース図

プリケーションの機能を実現する．

また，ドメイン分析を行ったシステムの概要を図 2 に示す．

3 E-AoSAS++ に基づく自動航行飛行船制御
ソフトウェア開発
E-AoSAS++ は，組込みソフトウェアのアーキテクチャを作成するための系統的な記述方法を規定している．EAoSAS++ を用いることで組込みソフトウェアを適切な粒度でモジュール化し，ソフトウェアの再利用部品を作成することが可能である． 本研究は以下の手順で進めた．

• 飛行船制御ソフトウェアの要求分析, ドメイン

図2

分析

システムアーキテクチャ

システムアーキテクチャをクラス図を用いて作成するこ• 飛行船制御ソフトウェア設計とで，ハードウェアの関連を意識して構造を表すことが3.1 要求概要
MDD ロボットチャレンジにおいて満たすべき要求を以でき，仕様を整理することができた．また，ハードウェ

下に示す．

3.3

ア毎の責務を責務表を用いて記述した．
コンセプチュアルアーキテクチャ

コンセプチュアルアーキテクチャはソフトウェアの概念• 飛行船を推進させ, 通過地点を二箇所通り, 目的的な構造を示したオブジェクト指向モデルである．コン地へ辿り着く

セプチュアルアーキテクチャもユースケース図と同様，• 飛行船に搭載されたセンサと地上に配置されたセ飛行船制御ソフトウェアの本質的な構造と，システム構

ンサのセンス値を基に飛行船の現在地を計算する成を加味したコンセプチュアルアーキテクチャを作成す• 航行は全て自動で行い飛行船の現在値から航路とる．

推進力を計算し航行する

コンセプチュアルアーキテクチャを作成するにあたり，

2

ロバストネス分析を行い，オブジェクトの候補を抽出しトとして定義した．ハードウェア仕様により View とた．ロバストネス分析は，ユースケース記述を基にオブController の責務が横断する箇所を View Controller

ジェクトの候補を抽出するオブジェクト指向設計のためアスペクトとして定義を行い横断的関心事の分離をのアプローチである．ロバストネス分析に加え，MVC行った．更に，Sensor クラス，Sensor Analyzer クラを適用しモジュール分割を行った．飛行船制御ソフト

ス ，Us Matrix ク ラ ス に リ ア ル タ イ ム 処 理 が 散 在 す

ウェアにはセンサやキーボード，モータやディスプレイ

る の で ，リ ア ル タ イ ム ア ス ペ ク ト と し て 定 義 し た ．

が外界とのインタフェースとして存在し，また位置情報

View Controller アスペクト，リアルタイムアスペクや運動情報などのデータに関する処理が多く存在する．

トとして横断的関心事をモジュール化することで，各モMVC を適用しそれらの責務を適切に分類することが可ジュールの責務を明確にすることができることに加え能になる．MVC を適用しモジュール分割を行ったコンて，モジュール間の関係を疎にすることができ，ソフトセプチュアルアーキテクチャを図 3 に示す．

ウェアの保守性の向上につながると考えられる．作成
したインプリメンテーションアーキテクチャを図 5 に示す．

図3コンセプチュアルアーキテクチャ

今回の対象では，ハードウェアが決定していることから，ハードウェアの制約を考慮し設計を行った．その結果，ハードウェアの制約からセンス入力からモータ出力を行う振る舞いの中で飛行船クラス，基地局クラス，

図5

インプリメンテーションアーキテクチャ

ZigBee クラス間に View と Controller の責務が横断することが分かった．責務が横断している箇所を図 4 に

4 本研究において作成したモデルの考察

示す．

4.1

非機能特性に関する考察

飛行船制御ソフトウェアの非機能特性としてセンシングや計算処理の実時間処理やハードウェアの故障，障害に対する処理が考えられた．これらの処理は，E-AoSAS++ におけるローカルコンサーンとして取り扱うことが可能であると考えられる．E-AoSAS++ では，ローカルコンサーンを UMP により実現する．UMP により通常処理と非機能処理を分離し階層的に記述することで静的構造において複数の視点の処理を一つにパッケージ化する．本事例のローカルコンサーンの例として実時間処理を挙げる．航行を行う振る舞いにおいて
図4

ハードウェア仕様を加味したコンセプ一定周期でセンス値を解析しモータを回転させる処理

チュアルアーキテクチャが存在する．要求分析の結果からセンス値解析を基地

3.4 インプリメンテーションアーキテクチャ局が計算し，モータの回転を飛行船が制御を行うと考インプリメンテーションアーキテクチャは，システムにえられた．それぞれのハードウェアにおいて一定周期横断する関心事をアスペクトとしてモジュール化したア毎に計算，制御を行うことで振る舞いを行う．基地局とスペクト指向モデルである．

飛行船において別々のタイマが存在しそれらを制御す

MVC と E-AoSAS++ で規定するローカルコンサーンることで実時間処理を実現する．これらの静的構造をを関心事として関心事が横断している箇所をアスペク

E-AoSAS++ の記述方法で記述すると図 6 のようにな
3る．図 6 は，コンセプチュアルアーキテクチャにおいてて過去に開発を行った組込みソフトウェアでは，状態遷実時間処理を行うクラスとそれに関連するクラスを抜き移機械の振る舞いによって機能の大半を実現すること出し，E-AoSAS++ におけるリアルタイムアスペクトが可能であった．自動販売機を例に挙げるとボタンの入の記述方法に基づき記述したものである．

力に対し缶を出力することで自動販売機の振る舞いを実現する．しかし本事例のような複雑な制御を持つ組込みソフトウェアは，状態遷移機械による振る舞いだけでなくデータの処理を記述することが必要になってくる．

E-AoSAS++ では，状態遷移機械の振る舞いに関する記述は，アクションアスペクトに記述を行う．アクショ
ンアスペクトを構成するコンポーネントとして，状態遷移機械が処理する手続きを実行する Action と状態遷移機械が保持するデータ構造とデータ構造に対するアクセ
図6スを保持する ApplicationLogic が存在する．本研究でリアルタイム処理の記述方法

基地局のタイマを BTS Timer が制御し，飛行船のタイは，組込みソフトウェアの入出力制御とデータ処理に関マを Airship Timer が制御する．基地局でモータ出力する制御の構造を MVC によって整理を行った．デー

値の計算を行う際には，一定周期でセンス値を解析する

タ処理に関する制御を行うクラスを Model として定義必要がある．図 7 は，基地局においてセンス値解析の動したことで，Model で定義されたクラスのロジックを的振る舞いを表したシーケンス図になる．基地局では，ApplicationLogic に記述することで複雑な制御に関す

タイムアウト後に Controller アスペクトにタイムアウる記述が可能であると考えられる．複雑な制御に関するトイベントを通知しセンス値解析を行う．

記述をアクションアスペクトの ApplicationLogic に記述可能であることから E-AoSAS++ における記述方法が複雑な制御を持つ組込みソフトウェアの記述方法として妥当であると考えられる．

5 おわりに
本研究では E-AoSAS++ に基づいた飛行船制御ソフ
トウェアの開発を行い，作成したモデルについて E-AoSAS++ の記述方法の妥当性を考察した. 飛行船制御
ソフトウェアを例に複雑な制御を持つ組込みソフトウェ
図 7 センス値解析の実時間処理アに対し E-AoSAS++ の記述方法が妥当であることを基地局，飛行船，US マトリクスにおいて実時間性が横断検証し事例検証の蓄積を行った．今後の課題として同様しているので Realtime アスペクトを定義した．これにの特徴を持つ他の組込みソフトウェアに対し本研究で用より Controller アスペクトと Realtime アスペクト間のいた変換方法を基に E-AoSAS++ による記述が可能でイベント通知は，アスペクト間記述によって行われる．

あるかの検証を行うことが挙げられる．

UMP において分離した非機能処理をアスペクトとして参考文献

定義することで非機能処理を正常処理から分離することが可能になり非機能処理の追加や変更に対し正常処理に[1] MDD ロ ボ ッ ト チ ャ レ ン ジ 競 技 仕 様 書, 2008;

影響を及ぼすことがなくなり変更が容易になったと考え

www.ertl.jp/ESS/2008/mdd/file/
MDDchallenge2008 system-requlation sheet.pdf.
[2] M. Shaw and D. Garlan, Software Architecture -られる．一定周期で処理を行う実時間処理は，過去の事
例で扱ったことがなく，本事例において E-AoSAS++

Perspectives on an Emergin Discipline, Prentice
Hall, 1996.の記述方法に基づき動的振る舞いを記述できたことから

E-AoSAS++ の記述が妥当であると考えられる．

[3] M. Noro, A. Sawada, Y. Hachisu, and M. Banno,“E-AoSAS++ and its Software Development Environment,” Proceedings of the 14th Asia-Pacific

4.2 複雑な制御に関する考察
飛行船制御ソフトウェアは，センサ入力に対しモータ出力値を計算しモータ出力を行う．モータ出力が次のセン

Software Engineering Conference, 2007, pp. 206213.

サ入力に影響を与えセンサ入力とモータ出力を繰り返すことで自動航行を可能にする．E-AoSAS++ におい4