南山大学 数理情報学部 情報通信学科 2007 年度卒業論文要旨集

自動車組込みシステムにおけるサービス指向開発技術に関する研究
2004MT062 宮脇 聡,

2004MT070 中野 泰宏

指導教員 青山 幹雄

1. はじめに自動車組込みシステムでは，開発の生産性と品質を向上させるためにソフトウェアの再利用が望まれている．しかし，自動車組込みシステムの機能は，相互に密接に関係しているため再利用が困難となる．この問題を解決するために SOA(Service-Oriented Architecture)の適用が考えられる．
SOA を適用するため本研究では，自動車組込みシステムからのサービス抽出方法を提案する．

2. 自動車組込みへの SOA 適用の現状
2.1. SOA 適用状況
自動車組込みシステムに SOA を適用では，アンロックシステム[6]や遠隔ロックシステム[2]の例がある．これらの研究では，モデル作成と CASE ツールの利用が提案されている．
2.2. SOA 適用の問題と研究の現状
自動車組込みシステムに SOA を適用する際の問題として下記の 4 つの問題が考えられる．
(1) Web サービスの適用範囲が不明確(2) SOA を適用する基盤技術が未整備(3) サービスの粒度，サービスの定義が未確立(4) サービスの抽出方法が未確立問題(1)では，自動車組込みシステムと外部システムとの通信に SOA を適用する研究がある[4]．問題(2)は，SOA を適用可能な基盤技術の研究が行われており[3]，自動車組込みシステムにも適用可能になると考えられる．問題(3)では，Web サービスの定義を用いた研究はあるが，粒度に関する明確な基準は規定されていない．問題(4)では，既存の自動車組込みシステムからサービスを抽出する具体的な手法は扱われていない．本研究では，SOA の自動車組込みシステムへの適用を推進するため，問題(4)を解決するサービス抽出方法を提案する．

3. サービスのモデル化
3.1. 適用システムについて
本研究では，クルーズコントロールシステム(以下 CC)を事例として，CC からサービスを抽出する．CC とは，設定速度で自動走行する速度制御である．ただし，自動でブレーキ制御は行わない．アダプティブクルーズコントロールシス
テム（以下 ACC）は，CC をより発展させたものである．ACC
では，CC に追従制御機能を追加したものである．また，自動でブレーキ制御を行う．本稿で用いる CC と ACC は，仕様[6]に基づく．
3.2. サービスについて
本研究では，文献[2, 3, 4, 6]を参考にサービスの条件として以下のものを用いる．
(1) 意味のある機能を持つ(2) 相互作用を行う
意味のある機能とは，あるまとまった働きをし，システムを構成する要素である．相互作用を行うとは，システムに機能を提供する機器間で協調して機能を示すことである．
UML を用いて分析し，この 2 つの条件を満たすものをサービスとして抽出する．
3.3. サービス抽出試行
システムの挙動に基づいてサービス抽出を行う．図 1 でサービス抽出試行の流れを示す．サービス抽出は以下の点を確認する．
(1) CC の 2 つの異なる仕様に基づくステートマシン図を比較し，同様の状態を抽出．
(2) (1)の状態でサービスの条件を満たす状態をサービスとして抽出．
(3) CC と同様に ACC を分析し，CC で抽出したサービスが再利用可能か確認．
仕様の抽出：挙動に関する記述を抽出
UML分析
機能分析 - ユースケース図、ユースケース記述
順序に着目した相互作用分析- シーケンス図
状態分析 - ステートマシン図
サービス抽出

図 1 サービス抽出試行の流れ
3.4. 試行から得られたサービス抽出の問題
この分析によりサービス抽出をできたが，以下の問題があることがわかった．
(1) サービスを抽出するために仕様が 2 つ必要(2) 状態と実装レベルの関係が不明確(3) システムへの参加要素とサービスの関係が不明確(1)については，1つの仕様よりサービス抽出が可能でなくてはならない．(2)については，サービスとソフトウェアの関係が不明確なことである．(3)については，サービス抽出を南山大学 数理情報学部 情報通信学科 2007 年度卒業論文要旨集
行ったステートマシン図でサービスと参加要素との関係が示せなかった．また，サービスの条件である相互作用をより明確にする必要がある．そのため，分析に用いる UML を変更し，状態ではなく機能と相互作用に着目しなければならない．

機能を提供するものである．(3)は，(1)と(2)以外のものである．図 4 でサービス抽出の流れを示す．自動車組込みシス
テムで既存システムを新規開発するシステムで利用することがある．そのためトップダウンによる開発であるが，既存システムと協調動作を行う制約がある．

4. サービス抽出プロセス

仕様書から機能抽出

4.1. サービス抽出の流れ
問題点を改善するために，機能と協調関係に着目する．
図 2 でサービス抽出の流れと分析に用いる UML を示す．
サービス抽出は，ボトムアップとトップダウンがある．実装したECUに着目したサービス抽出と実装とは独立した仕様書の機能に着目したサービス抽出が考えられる．ECU 着目は，既存システムの分析のためボトムアップであり，仕様書の機能着目は新規システムの分析のためトップダウンである．
機能分析

ユースケース図
ユースケース記述

相互作用分析

シーケンス図
コミュニケーション図

サービス抽出

図 2 サービス抽出の流れ
4.2. ボトムアップによるサービス抽出
ある機能を持ち相互作用を行う ECU に着目してサービス抽出を行う(図 3)．今日の高級車の ECU は少なくとも 70ある[1]ため，すべての ECU をサービスとすると煩雑になる．
そのため ECU をサービスとするときに，1 つの ECU の機能と複数の ECU 間の協調制御により機能を実現することを考慮する必要がある．また，ECU は単独でその機能を実現するわけではない．センサを用いてその機能を実現している．
センサと ECU を含めてサービスとする必要がある．サービスとならない ECU も存在する．
ECUから機能を抽出

UML分析

1つのECUによる機能
ECU間の協調制御の機能
ECU間，ECUとセンサ間の分析

機能分析

相互作用分析

サービス抽出(ECU・センサをまとめて)

図 3 ボトムアップサービス抽出プロセス
4.3. トップダウンによるサービス抽出
実装とは独立した機能は，仕様書から抽出を行う．その機能間で相互作用を行うものをサービスとして抽出する．仕様書から多くの機能が抽出されることがある．そのため仕様書から抽出した機能を以下の 3 つに分類する．
(1) システムの主要な機能(2) 主要な機能に一部の機能を提供するもの(3) 外部システムの機能(1)は，新規に開発する機能である．(2)は，(1)に一部のUML分析

機能分類
機能間の分析

機能分析

相互作用分析

サービス抽出

図 4 トップダウンサービス抽出プロセス
4.4. ボトムアップとトップダウンの比較
トップダウンプロセスとボトムアッププロセスを比較して
図 5 で示す．異なるのは，機能の抽出先と分析において着目するものである．文献[1]によると ECU は，20 から 30%において 3 年後に生産が中止されているとある．新しい ECUに変更されるため，ECU から抽出したサービスの変更が考えられる．しかし仕様書から抽出した機能では，実装技術による変更が少ないので抽出したサービスの変更も少ないと考えられる．よって本研究で用いるプロセスは，機能に着目したトップダウンによるサービス抽出がより適切である．
変更が少ない
仕様書から機能抽出

3年以内で変更する可能性あり
ECUから機能抽出
UML分析

UML分析
機能間の分析

サービス抽出トップダウンプロセス

ECU間，ECUとセンサ間の分析

サービス抽出(ECU・センサをまとめて)ボトムアッププロセス

サービスの変更あり

図 5 サービス抽出プロセスの比較

5. トップダウンによるサービス抽出
5.1. 機能分析
CC の仕様[6]から機能を抽出した．機能分析では，システム全体で提供する機能を明らかにする．その中の主要な機能を抽出し，詳細に示す．CCの主要な機能は，モード切替，速度制御，記憶である．モード切替の機能分析を行い，起動と CC 走行ユースケースを抽出した．CC 走行と関連する復帰ユースケースも同時に得た．速度制御の分析も同様に行い，加速，減速，速度維持ユースケースを抽出した．
主要な機能を詳細化したユースケースを図 6 で示す．抽出した機能で主要な機能は，モード切替(起動，CC 走行)，速度制御(減速，定速維持，加速)，記憶，復帰である．ブレー
キは，一部の機能を提供する機能である．外部システムの機能は，表示である．ユースケース図を基にユースケース記述でシナリオを作成した．

南山大学 数理情報学部 情報通信学科 2007 年度卒業論文要旨集
メインSW

キャンセルSW

セットSW

SW:スイッチ

起動
記憶<<relation>>

ドライバ<<relation>>

モード切替

CC走行

<<relation>><<relation>><<include>>

復帰

スロットル

減速
定速維持
<<relation>>

スピードセンサ

加速表示

ブレーキ

速度制御

スロットル

凡例
：インタフェース

調整

速度サービス

パネル

スピードセンサ
ブレーキペダル

レジュームSW

起動

CC走行

記憶

解除

復帰

スピードセンサ

速度メインsw
CC_on

更新・破棄
踏む

解除

CC走行
サービス

ブレーキ

走行終了

解除

レジューム
SW

起動サービス
表示

起動・終了

開始
終了

メータ表示

ブレーキ
ペダル

加速
復帰

CC走行

セットSW

記憶サービス

速度

速度
解除

達成

減速

5.2. 実行順序に着目した相互作用分析
ユースケースを参加要素とするシーケンス図を作成した(図 7)．抽出した機能に着目するためスイッチ(SW)などは，UI でまとめて示した．
UI

速度キャンセルSW

図 6 ユースケース図

ドライバてサービスは，CC 起動，CC 走行，減速，速度維持，加速，車速記憶である．減速，速度維持，加速は，同じメッセージの送受信を行うため速度サービスとしてまとめる．また，サービス間にインタフェースを介してメッセージ交換を行う．
図 9 は複数の参加要素と協調関係が存在する起動サービ
スと CC 走行サービスにインタフェースを用いて示す．

外部システムメインSW

図 9 CC のサービスを含むコミュニケーション図

6. 抽出したサービスの妥当性確認

セットsw
CC走行
レジュームsw

開始

速度通知
スロットル維持

速度記憶
加速

速度通知

セットsw

速度更新

スロットル調整

速度更新

スロットル調整

減速

速度通知

図 7 シーケンス図の一部
5.3. 協調に着目した相互作用分析
シーケンス図のメッセージ交換を基にコミュニケーション図を用いて参加要素間を協調関係で示した(図 8)．この図
でドライバは，示されていない．ドライバと関係するSWなど
は，ドライバとその SW によりメッセージを送信するため SWなどで示した．外部システムは，CC が他のシステムに影響を及ぼすことが考えられるために追加した．抽出した機能を図 8 ですべて示した．しかし復帰の機能は，レジューム
SW からのメッセージを起動に伝えるだけである．この機能は，起動に含むべきである．
調整

スロットル

速度
解除

スピード
センサ

達成
速度

調整

セットSW

達成

達成
速度
解除

CC走行

減速

解除

CC走行

メータ表示

調整

記憶サービス

キャンセル
SW

車間
走行

加速
速度
速度
解除

車速記憶更新
破棄

破棄
更新
解除

加速

起動・終了

メインSW

外部システム

ブレーキ
ペダル

レジューム
SW

復帰

復帰

開始
終了

ブレーキ
サービス

速度サービス
速度解除

車間走行
CC走行
サービス 開始・ サービス
解除

CC走行

スピードセンサ

ブレーキ
ペダル

解除

達成
動作終了

速度

速度

踏む

解除

加速

レジューム
SW

車間

走行
終了

距離開始

レーダー

警報

復帰

起動サービス
踏む

ブレーキ

走行
終了

CC起動
表示

スロットル

：インタフェース

セットSW

解除

解除

キャンセル
SW

速度維持

凡例

減速

調整

減速

6.1. サービスの再利用性の検証
CC で抽出したサービスが ACC で再利用可能か確認した．再利用可能は，メッセージの変更が無い場合，メッセー
ジの変更によりサービスの変更が無い場合とする．このときサービスとして妥当といえる．CC と ACC のサービスを比較するために，ACCの分析を5章の分析と同様の流れで行った．この結果，起動，CC 走行，車間走行，記憶，速度，ブレーキをサービスとして抽出した．同じメッセージが CC 走行と車間走行へ送られているためインタフェースを介してメッセージ交換を行う．複数の参加要素と協調関係が存在するため，起動もインタフェースを用いて示した．ACC の抽出したサービスとインタフェースを図 10 で示す．

CC走行

モードSW

開始
終了

起動・終了
表示

メインSW メータ表示

外部システム図 10 ACC のサービスを含むコミュニケーション図復帰

図 8 コミュニケーション図
5.4. サービス抽出
図8より3.2節の条件を満たすサービスを抽出した．従っ6.2. 再利用性の評価
CC と ACC に共通するサービスは，起動，CC 走行，記憶，速度である．ACC にのみ存在するサービスは，車間走行，ブレーキである．以下でサービスの再利用性の評価を行う．

南山大学 数理情報学部 情報通信学科 2007 年度卒業論文要旨集(1) 起動サービスの再利用性
図 11 で起動サービスのメッセージ変更点を示す．起動サービスへの入力メッセージの変更は，モード SW によるメッセージの追加とセット SW のメッセージである．SW のメッ
セージの変更により起動サービスからのメッセージに車間走行のメッセージが追加された．入出力ともに変更されるため，再利用できない．よってサービスとして妥当出でない．
CC
レジューム
SW

走行
終了

復帰

起動サービス

CC走行

セットSW

開始
終了

表示

メインSW メータ表示

ACC
レジューム
SW

復帰
車間走行

セットSW
CC走行

追加

モードSW

変更された
メッセージ

解除
起動・終了

CC走行 CC走行

走行
終了

サービス
CC走行
解除

起動サービス
開始
終了

表示

メインSW メータ表示

8. 今後の課題

CC走行
サービス

外部システム

変更された
メッセージ

解除
起動・終了

車間

ECU に着目したサービスよりサービスの変更が発生しにく
い．そのため再利用性が高いサービス抽出が可能なプロセスといえる．
(2) 抽出したサービスの再利用
外部入力の変更によりサービスに変更が生じた．外部入力とサービスを分離する必要がある．検証では，サービスの妥当性確認できない場合があるため再考が必要である．

車間走行サービス

外部システム図 11 起動サービスのメッセージ変更点(2) CC 走行サービスの再利用性
図 12 で CC 走行のメッセージ変更点を示す．異なるメッセージは，車間走行サービスからの CC 走行，解除のメッセージである．CC走行メッセージは，起動サービスからのメッセージと同じである．解除メッセージは，キャンセル SW などからのメッセージと同じである．この 2 つのメッセージは，CC 走行サービスに元からあるメッセージと同じである．変
更せずに再利用可能であるためサービスとして妥当といえる．
(3) 記憶，速度サービスの再利用性
これらは，CC と ACC においてメッセージの送り先や送り主に変更がある．しかしメッセージに変更がないため再利用可能である．従って，サービスとして妥当である．
(4) 車間走行，ブレーキサービスの再利用性
CC においてサービスでないため今回の検証では妥当か確認できない．

(1) サービスへの非機能要求の追加サービスに対して安全性や時間制約などの非機能要求に関する分析が必要である．インタフェースを介して行われるため，サービス間での制約を明確に示す必要がある．
(2) サービスの実装
ECU に実装する際に，抽出したサービスが複数の ECUにまたがることが考えられるため機能の分割を考慮する必要がある．
(3) インタフェースの分析
コミュニケーション図に対してインタフェースを介してメッセージの送受信を行うとした．そのインタフェースについて詳細な分析が必要である．例えば，コンポーネント図を用いて示すことが考えられる．

9. まとめ本研究では，自動車組込みシステムにサービス指向を適用するためにサービス抽出方法を提案した．仕様書から機能を抽出し，その機能をモデルで分析しサービスを抽出するトップダウンプロセスを用いた．抽出したサービスの再利用性を検証，評価した．

参考文献
[1]

CC
スピード
記憶サービス 速度サービス
速度センサ
速度 更新 達成 速度 解除
キャンセル 解除
破棄
ブレーキ
解除
SW
走行
減速
CC走行
セットSW
終了
加速
サービス
起動サービス
レジューム
解除
SW

ACC
記憶サービス 速度サービス レーダー
スピード速度更新
速度センサ
距離 開始 解除
速度
破棄 達成 解除
キャンセル 解除
ブレーキ
動作終了
SW
サービス
CC走行 追加車間
減速
セットSW
走行
加速
終了
CC走行
CC走行 車間走行
レジューム
起動サービスサービス 解除
サービスSW

[2]

[3]

[4]

解除

図 12 CC 走行サービスのメッセージ変更点

[5]

7. 考察
(1) サービス抽出プロセス
仕様書からの機能に着目してサービス抽出を行うために[6]

M. Broy, Challenges in Automotive Software
Engineering, Proc. of ICSE, May. 2006, pp. 761-767.
M. Deubler, et al, Tool Supported Development ofService-Based Systems, Proc. of APSEC, Dec. 2004, pp.
98-108.
V. Ermagan, et al, A Service-Oriented Blueprint for
COTS Integration: the Hidden Part of the Iceberg, Proc.
of IWICSS, May. 2007, p. 10(CD-ROM).
C. Ghezzi, et al, Validation of Component and Service
Federations in Automotive Software Applications, Proc.
of ASWSD, LNCS Vol. 4147, Jan. 2004, pp. 57-73.
I. H. Krüger, et al, Towards a Process and Tool-Chainfor Service-Oriented Automotive Software Engineering,
Proc. of ICSE , May. 2004, pp. 33-41.
トヨタ自動車, CROWN MAJESTA 新型車解説書,
2004.