第 3 章 問題
4.2 システムプロダクトラインによる構成管理
本章では,段階的なフィーチャモデルの導出によるシステムプロダクトライン 開発について述べる.
4.2.1 段階的なフィーチャモデル導出のプロセス
ハードウェ ア 選択モデル
ソ フト ウェ ア 選択モデル 制約された ソフトウェア
フ ィー チャモデル ソ フト ウェ ア
フ ィー チャモデル
ハードウェ ア フ ィー チャモデル
導 出
導 制約 出
1
依存
高性能 MCU
MCU 通信
低性能
MCU Blueto
USB oth 高性能
MCU MCU 通信
低性能
MCU Blueto
USB oth 高性能
MCU MCU 通信
低性能
MCU Blueto
USB oth 高性能MCU
MCU 通信
低性能
MCU Blueto
USB oth 高性能MCU
MCU 通信
低性能
MCU Blueto
USB oth 依存 依存
ソ フト ウェ ア プ ロダ クト
ハードウェ ア プ ロダ クト 製造
製造
2
3
4
5 6
7
1
図
4.2:
段階的なフィーチャモデルの導出プロセス図
4.2
に段階的なフィーチャモデル導出のプロセスを示す.本プロセスでは,ハー ドウェアフィーチャモデル(⃝ 1
,以降⃝ 1
は図中ピンク色の二重丸の番号を指 す)とソフトウェアフィーチャモデル(⃝ 2
)の二種類のフィーチャモデルを用 いる.加えて,ソフトウェアフィーチャモデルからハードウェアフィーチャモデル の依存関係を定義する(⃝ 3
).従来のシステムプロダクトライン開発でも多層のフィーチャモデルや複数のフィー チャモデルは用いられてきたが,層間の依存関係を考慮しながらフィーチャを選 択するのは煩雑であるとともに,ハードウェアプロダクトの構成によっては,無 効なソフトウェアプロダクトが導出されてしまう問題もあった.
本研究では,ハードウェアフィーチャモデルからハードウェア選択モデルを導 出し(
⃝ 4
),ハードウェア選択モデルに含まれる依存関係を辿り,無効なソフト ウェアフィーチャを排除した,制約されたソフトウェアフィーチャモデルを導出 する(⃝ 5
).制約されたソフトウェアフィーチャモデルでは,現在選択されて いるハードウェアプロダクトでは無効なソフトウェアフィーチャが除外され,有 効なソフトウェアフィーチャしか選択できない.このため,制約されたソフトウェ アフィーチャモデルではプロダクトの組み合わせ数が削減され,整合したソフト ウェアプロダクトを導出することができる.(⃝ 6
,⃝ 7
)4.2.2 ハードウェアフィーチャモデル
ハードウェアフィーチャモデルは,ハードウェア製品系列の共通性と可変性を フィーチャの観点から記述したモデルである.一般にハードウェアはソフトウェア の機能やサービスを実現するためのプラットフォーム的な役割を果たすことが多 いため,システム全体をひとつのフィーチャモデルで表現した場合の
FORM[20]
の
Operational Environment Layer
やImplementation Technique Layer
に相当す るフィーチャの多くがこのハードウェアフィーチャモデルに現れる.本研究では,一つのハードウェアフィーチャがひとつのハードウェアデバイスに対応する程度 の記述粒度を想定している.
4.2.3 ソフトウェアフィーチャモデル
ソフトウェアフィーチャモデルは,ソフトウェアの製品系列の共通性と可変性 をフィーチャの観点から記述したモデルである.一般にシステムの外見えの機能 やサービスはソフトウェアで実現されるため,システム全体をひとつのフィーチャ モデルで表現した場合の,
FORM
のCapability Layer
に相当するフィーチャの多 くがこのソフトウェアフィーチャモデルに現れる.4.2.4 ハードウェアフィーチャとソフトウェアフィーチャの依存関係
ハードウェアを利用するソフトウェアフィーチャは,ハードウェアフィーチャに 対して依存関係を持つ.ソフトウェアフィーチャからハードウェアフィーチャへの 依存関係は,両モデル間に依存関係を表すモデルを付与することで定義する.依 存関係はソフトウェアからハードウェアの一方向であるが,ハードウェアの構成 からそれに基づくソフトウェアフィーチャを識別できるように,モデル上では双 方向にモデルが辿れるように定義を行う.
ソフトウェアフィーチャモデルからソフトウェア製品のフィーチャを選択する際 には,依存関係の一覧とハードウェア製品モデルで選択されたハードウェアフィー チャのセットを用いて,選択されていないハードウェアフィーチャへの依存関係 を持つソフトウェアフィーチャを除外する形で制約を加える.
4.2.5 2 つのフィーチャモデルの定義と利用
システムプロダクトラインを構成する際は,ハードウェアフィーチャモデルを 作成する.この際ハードウェアフィーチャに対応するハードウェア部品モデルを 関連付ける.続いて,ソフトウェアフィーチャモデルを作成する.ハードウェア に依存するソフトウェアフィーチャは対応するハードウェアフィーチャに対して 依存関係を定義する.
製品導出の際は,まずハードウェアフィーチャモデルからハードウェア選択モ デルを導出する.
続いてそのハードウェア選択モデル中のハードウェアフィーチャ以外に依存し ているソフトウェアフィーチャを削除する.これにより,選択されたハードウェア 製品で動作しないソフトウェアフィーチャは選べなくなる.
以上のように制約されたソフトウェアフィーチャモデルからはソフトウェア製 品を導出する.以上の手順で,ハードウェア製品の構成情報とそのハードウェア 上で動作するソフトウェアの構成情報の
2
つが得られる.2
ゲートウェ イ ド ライ バ
ハードウェ ア プ ロダ クト ソ フト ウェ ア プ ロダ クト ハードウェ ア構成管 理
ハードウェ ア 部品
モ デル ハード
ウェア モ デル ハードウェ ア部
品情報
ハードウェ ア構 成情報
ゲートウェ イドライ バ導 出 参照
HW製造 ハードウェ
ア 部品 モ デル ハードウェ
ア 部品 モ デル ハードウェ
ア 部品 モ デル
回路図 モ デル ブ ロッ ク図
モ デル ハードウェ ア
フ ィー チャモデル
ハードウェ ア 選択モデル 選
択
合成 変換
ブ ロッ ク図
ブ ロッ ク図 MCU データ シ ート デバイス データシー ト
ゲート ウェイ モ デル
1
2
3
4
5
コー ド 生 成 DSL
6
入力 DSL 入力
入力DSL 入力DSL
図