SPL「プロダクトライン開発」における可変性の決定に基づく製品導出の仕組み紹介
PL(プロダクトライン)開発では、コア資産から製品用資産を「導出」することで、製品の開発を行います。
このため、如何に効率良く導出を行うことができるかで、PL開発の効果は大きく変わってきます。
ここでは、開発における主要な成果物である要求仕様/設計・実装資産(モデル及びコード/テスト資産の導出の仕組みについて紹介します。
コア資産の中で可変性を実現する方法については、「可変性の実現」のページを参照して下さい。
※ここで取り上げるのは一例であり、他にも様々な方法があります。
要求資産の導出
設計・実装成果物と異なり、要求仕様の管理方法や成果物の形態は企業によって様々ですが、ここでは要求管理システムを利用している場合を想定して説明します(他の場合でも応用できます)。
大抵の要求管理システムは、要求仕様をデータベースに登録する形式を採っています。この時、各要求仕様には一意となるIDが振られているため、これをキーに製品用の要求仕様を導出することができます。その方法は、概ね以下のようになります。
1. 可変性の決定に基づいて、製品に該当する要求仕様IDを列挙したリストを生成
2. リスト中のIDに対応する要求仕様を要求管理システムで検索し、要求仕様書として出力
また、ほとんどの製品開発では製品固有の要求仕様が存在するため、これについては製品毎に作成します。
こうして導出された要求仕様を用いて、製品開発やシステムテスト設計を行うことができます。
※ここで取り上げたものは一例であり、他にも様々な実現方法があります。
UMLモデルの導出
UMLによるモデルベース開発で、コア資産から製品用のモデルを導出する方法は、コード生成をどの程度自動化できているかで方式が変わってきます。なお、コア資産は「可変性の実現」のページで紹介されている技術を用いて開発されているものとします。
モデルベース開発(full code generation)の場合
この場合は、モデルを直接コンフィグレーションすることで、製品用のモデルを導出します。その方法は、概ね以下のようになります。
1. 可変性の決定に基づいて、製品に必要なUMLモデルを選択
2. 選択されたコア資産のUMLモデルをコンフィグレーション
上記の手順で導出されたモデルは、既に製品用にコンフィグレーションされているため、そのモデルからコード生成を行うことで、製品用のコードを得ることができます。また、通常の製品開発では、製品固有部分の開発も必要となることがありますが、これについては製品毎に開発します。
モデルベース開発(partial code generation)の場合
UMLモデルからスケルトンコード(クラス定義のみ)を生成するようなケースがこれに相当します。この場合、コア資産のコードの一部は手作業で開発されているため、コア資産のモデルを編集してコード生成を行っても、手作業で開発された部分は自動的にコンフィグレーションされません。よって、モデルを直接コンフィグレーションするのではなく、モデルと一緒に管理されているコードに対してコンフィグレーションを行うことで、製品用の資産を導出します。その方法は、概ね以下のようになります。
1. 可変性の決定に基づいて、製品に必要なコードを選択
2. 選択されたコア資産のコードをコンフィグレーションするためのパラメタファイルを生成(makefileやヘッダファイル等)
こうして導出されたコードをビルドすることで、個々の製品を構築することができます。また、通常の製品開発では、製品固有部分の開発も必要となることがありますが、これについては製品毎に開発します。
※ここで取り上げたものは一例であり、他にも様々な実現方法があります。
C/C++コードの導出
C/C++言語を用いたコードベース開発で、コア資産から製品用のコードを導出する方法は、概ね以下のようになります。なお、コア資産は「可変性の実現」のページで紹介されている技術を用いて開発されているものとします。
1. 可変性の決定に基づいて、製品に必要なC/C++コード及びAspectC/C++コードを選択
2. 選択されたC/C++コードに、AspectC/C++コードをウィ―ビング
3. コードをコンフィグレーションするためのパラメタファイルを生成(makefileやヘッダファイル等)
こうして導出されたコードをビルドすることで、個々の製品を構築することができます。また、通常の製品開発では、製品固有部分の開発も必要となることがありますが、これについては製品毎に開発します。
※ここで取り上げたものは一例であり、他にも様々な実現方法があります。
Simulinkモデルの導出
MATLAB/Simulinkによるモデルベース開発で、コア資産から製品用のモデルを導出する方法は、概ね以下のようになります。なお、コア資産は「可変性の実現」のページで紹介されている技術を用いて開発されているものとします。
1. 可変性の決定に基づいて、製品に必要なSimulinkモデルを選択
2. 選択されたコア資産のSimulinkモデルをコンフィグレーションするためのMスクリプトを生成
3. Mスクリプトを実行し、コア資産のSimulinkモデルから製品用のSimulinkモデルを生成
こうして導出されたモデルを用いてコード生成することで、製品用の実装コードを得ることができます。また、通常の製品開発では、製品固有部分の開発も必要となることがありますが、これについては製品毎に開発します。
※ここで取り上げたものは一例であり、他にも様々な実現方法があります。
テスト資産の導出
テストする対象によって、テストには様々な種類のものがありますが、ここでは要求仕様に対するテスト、すなわちシステムテストの資産を例に説明します(他の場合でも応用できます)。また、ここでのテスト資産とは、テストに関する全ての資産(テスト仕様、テストプログラム、ツール等)を含みます。
システムテストは要求仕様に対して設計されるため、どのテスト項目を実施する必要があるかは、製品に該当する要求仕様から特定することができます。このため、コア資産から製品用のテスト資産を導出する方法は、概ね以下のようになります。ここで、テスト資産は他の設計成果物と同様に、構成管理システムで管理されているものとします。
1. 可変性の決定に基づいて、製品に該当する要求仕様IDを列挙したリストを生成(要求資産の導出を参照)
2. 要求仕様IDをキーに、製品に該当するテスト項目のリストを生成
3. テスト項目リストに記載されている項目のテスト資産を、構成管理システムから取得
また、製品固有の要求仕様に対しては、そのテスト資産も製品毎に開発します。
こうして導出されたテスト資産を用いて製品用資産のテストを実施することで、製品の品質保証を行うことが可能になります。
※ここで取り上げたものは一例であり、他にも様々な実現方法があります。
SPL専門コンサルタント
【専門分野】
SPL、自動車、開発プロセス
サービスに関するご相談は
こちらからお願いします
こちらからお願いします