第6回 SPL開発、体重計を例に4つの工程の成果物を順に解説
![第6回 SPL開発、体重計を例に4つの工程の成果物を順に解説](https://www.eureka-box.com/dcms_media/image/AdobeStock_395662283.jpeg)
【第6回 SPL(SPL開発の成果物)解説 コラム】
SPL開発では、各工程でさまざまな成果物を作成します。ここでは、体重計という製品群を例に、それらの成果物を簡単に紹介します。
PLスコーピング、可変性分析、コア資産作成、再利用の4つの工程に分けて、順にみていきましょう。
このコラムでは、SPL開発の成果物についてご紹介します。
目次
SPL開発の成果物
PLスコーピング
![SPL開発オンライン学習 PLスコーピング](/dcms_media/image/PL%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%94%E3%83%B3%E3%82%B0.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
PLスコーピングの工程では、製品群のスコープを示すために、製品ロードマップと製品マップを作成します。
製品ロードマップ
![SPL開発オンライン学習 製品ロードマップ](/dcms_media/image/%E8%A3%BD%E5%93%81%E3%83%AD%E3%83%BC%E3%83%89%E3%83%9E%E3%83%83%E3%83%97.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
SPL開発は、将来まで見越して再利用しやすいコア資産を作りこむ活動です。そのため、まずは自分達が将来的にどのような製品を作ろうとしているのか、その戦略を明らかにする必要があります。製品群に含まれる製品の、現在から将来まで見据えたフィーチャの進化の過程を表したものが、製品ロードマップです。
製品マップ
![SPL開発オンライン学習 製品ロードマップ](/dcms_media/image/%E8%A3%BD%E5%93%81%E3%83%9E%E3%83%83%E3%83%97.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
製品ロードマップが定まったら、ロードマップ上に定義された各製品にどのような機能が搭載されるのかを分析します。それを、製品マップとして表形式で表現します。
ここで、全製品に搭載される機能が共通の機能で、一部の製品に搭載される機能が可変な機能という扱いになります。
可変性分析
![SPL開発オンライン学習 可変性分析](/dcms_media/image/%E5%8F%AF%E5%A4%89%E6%80%A7%E5%88%86%E6%9E%90.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
次に、可変性分析の工程では、製品全体の共通部分と可変部分をフィーチャという単位で整理して、フィーチャモデルを作成します。
フィーチャモデル
![SPL開発オンライン学習 フィーチャモデル](/dcms_media/image/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%81%E3%83%A3%E3%83%BC%E3%83%A2%E3%83%87%E3%83%AB.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
たとえばCBFM記法などを使って、共通のフィーチャ、可変のフィーチャ、排他関係などを表現します。
フィーチャモデル:例
![SPL開発オンライン学習 フィーチャモデル](/dcms_media/image/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%81%E3%83%A3%E3%83%BC%E3%83%A2%E3%83%87%E3%83%AB%E5%8F%AF%E5%A4%89%E6%80%A7%E5%88%86%E6%9E%90.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
先ほどの図とは縦横が逆になっていますが、体重計のフィーチャモデルはこのようになります。製品のグレードや仕向け国などのバリエーション、要求や機能のバリエーション、システム設計結果のバリエーション、ソフトウェア設計結果のバリエーションを、それぞれフィーチャとして定義します。それに加えて、「高機能版」であれば「マイデータ管理」や「音声ナビ」が選択される、のような、フィーチャ間の関係も定義します。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
コア資産作成
![SPL開発オンライン学習 コア資産作成](/dcms_media/image/%E3%82%B3%E3%82%A2%E8%B3%87%E7%94%A3%E4%BD%9C%E6%88%90.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
次に、コア資産作成工程です。コア資産とは、SPL開発の中心となる、再利用可能な共通資産の一式を指します。
フィーチャとの対応付け
![SPL開発オンライン学習 フィーチャとの対応付け](/dcms_media/image/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%81%E3%83%A3%E3%83%BC%E3%81%A8%E3%81%AE%E5%AF%BE%E5%BF%9C%E3%81%A5%E3%81%91.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
SPL開発における「再利用可能」とは、「フィーチャモデルを頼りに、再利用する開発資産を選択・取得できる」という意味です。つまり、可変性分析で作成したフィーチャモデル内のフィーチャに対応付けながら、コア資産を作り込む必要があります。
たとえば体重計の場合、測定の完了を知らせる方法に音声ナビとメロディーがあるとすると、それらのフィーチャと関連する開発資産とを対応付けて管理します。
コア資産に含まれる成果物
![SPL開発オンライン学習 コア資産に含まれる成果物](/dcms_media/image/%E3%82%B3%E3%82%A2%E8%B3%87%E7%94%A3%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E6%88%90%E6%9E%9C%E7%89%A9.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
コア資産作成時にはさまざまな成果物を作成します。システム要求分析工程ではシステム要求仕様書、システム方式設計工程ではシステムアーキテクチャモデルやシミュレーションモデル、ソフトウェア要求分析工程ではソフトウェア要求仕様書、ソフトウェア方式設計工程ではソフトウェアアーキテクチャモデル、ソフトウェア詳細設計工程では詳細設計書、コーディング工程ではコードなど、さまざまなものを作成します。
また、V字右側のテスト工程ではテスト資産を作成しますし、それ以外に技術情報やノウハウ、ドキュメントなどもコア資産に含まれます。
それでは体重計の具体例を見ていきましょう。
システム要求仕様書
![SPL開発オンライン学習 システム要求仕様書](/dcms_media/image/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E8%A6%81%E6%B1%82%E4%BB%95%E6%A7%98%E6%9B%B8.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
システム要求仕様書は、製品群のシステム要求仕様を分析・整理したものです。コア資産作成時には、すべてのバリエーションを含む要求仕様書を作成します。
この体重計の例は、USDM形式で記述されています。また、一般的なUSDM形式にフィーチャ列を追加して、フィーチャとの対応を示しています。
この「全バリエーションを含む」という点と「フィーチャと対応付ける」という点は、コア資産作成工程におけるどの成果物にも共通する特徴です。ソフトウェア要求仕様書も同様に、USDMなどを使って作成します。
システムアーキテクチャモデル
![SPL開発オンライン学習 システムアーキテクチャモデル](/dcms_media/image/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%83%A2%E3%83%87%E3%83%AB.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
次に、システムアーキテクチャモデルです。
こちらは体重計のシステムアーキテクチャを示す階層構造図です。SysMLのブロック定義図を使って、製品群のシステムを構成する全要素について、要素間の親子関係を定義しています。やはり、各要素とフィーチャとの対応も定義します。
そのほかに、要素間のインタフェースを表す内部構造図や、システムの振る舞いを示す振る舞い図なども作成します。
ソフトウェアアーキテクチャの場合も、同様の図を使ってソフトウェアアーキテクチャモデルを作成します。
シミュレーションモデル
![SPL開発オンライン学習 シミュレーションモデル](/dcms_media/image/%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%A2%E3%83%87%E3%83%AB.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
シミュレーションモデルは、設計結果をシミュレーションすることで設計を早期検証することを目的としたモデルです。図は、MathWorks社製のMATLAB/SimulinkというMBDツールを使用しています。各種演算ブロックを配置して、シミュレーションを実施します。
シミュレーションモデルも、全バリエーションを記述し、フィーチャと対応付けて作成します。
詳細設計書
![SPL開発オンライン学習 詳細設計書](/dcms_media/image/%E8%A9%B3%E7%B4%B0%E8%A8%AD%E8%A8%88%E6%9B%B8.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
そして、詳細設計書も…
コード
![SPL開発オンライン学習 コード](/dcms_media/image/%E3%82%B3%E3%83%BC%E3%83%89.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
コードも…
テスト資産
![SPL開発オンライン学習 テスト資産](/dcms_media/image/%E3%83%86%E3%82%B9%E3%83%88%E8%B3%87%E7%94%A3.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
テスト資産も…
その他ドキュメント
![SPL開発オンライン学習 その他ドキュメント](/dcms_media/image/%E3%81%9D%E3%81%AE%E4%BB%96%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
それ以外のドキュメントも、考え方は同じで、全バリエーションを記載して、フィーチャと関連付けます。
再利用
![SPL開発オンライン学習 再利用](/dcms_media/image/%E5%86%8D%E5%88%A9%E7%94%A8.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
そして最後に、再利用工程です。再利用工程では、これまでに蓄積したコア資産を再利用し、製品を開発します。
コンフィグレーションモデル
![SPL開発オンライン学習 コンフィグレーションモデル](/dcms_media/image/%E3%82%B3%E3%83%B3%E3%83%95%E3%82%A3%E3%82%AE%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%A2%E3%83%87%E3%83%AB.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
再利用工程では、まずコンフィグレーションモデルを作成します。
コンフィグレーションモデルとは、フィーチャモデルの中から、製品に含めるフィーチャを選択した結果を表すモデルです。フィーチャモデルは製品群に対して作成しますが、コンフィグレーションモデルは1つの製品に対応します。
コア資産から導出した資産一式
![SPL開発オンライン学習 コア資産から導出した資産一式](/dcms_media/image/%E3%82%B3%E3%82%A2%E8%B3%87%E7%94%A3%E3%81%8B%E3%82%89%E5%B0%8E%E5%87%BA%E3%81%97%E3%81%9F%E8%B3%87%E7%94%A3%E4%B8%80%E5%BC%8F.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
コンフィグレーションモデルを製品ごとに定義したら、その情報をもとに、コア資産から製品に必要な資産だけを一式取得します。 これが、コア資産から再利用する部分です。
個別製品
![SPL開発オンライン学習 個別製品](/dcms_media/image/%E5%80%8B%E5%88%A5%E8%A3%BD%E5%93%81.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
そして、コア資産から取得した資産一式と、製品固有に作り込む部分とを合わせて、最終成果物である個別製品を作成します。
これからのSPL開発に求められる技術を知るには
SPL(Software Product Line Engineering)の技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習プラットフォームを準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
SPLを正しく理解した上で、最大限の効果を得られるようスキルアップしたい方にもEureka Boxでの学習はお勧めで、無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
まとめ
![SPL開発オンライン学習 まとめ](/dcms_media/image/%E3%81%BE%E3%81%A8%E3%82%81SPL.png)
https://member.eureka-box.com/products/10/categories/2150178948/posts/2159042398
このコラムでは、SPL開発の4つの工程について、代表的な成果物を取り上げ、駆け足でご紹介しました。これらの成果物の多くは通常の開発でも作成するものですが、SPL開発に特徴的な成果物として、フィーチャモデルとコンフィグレーションモデルを作成します。
そして、コア資産に登録する成果物は、「全バリエーションを含む」、「フィーチャと対応付ける」という特徴を持っています。
これらの成果物をどのように作成するかは、次回以降にご紹介します。
デジタル人材が不足している今の時代、特にソフトウェア開発の現場では「上流技術」のスキルを持つ人が必要とされています。
そのスキルが効率よく身につくように設計されたのが「オンライン学習のEureka Box(ユーリカボックス)」
Eureka Boxの運営企業であるエクスモーションは、日本を代表する大手自動車メーカー、医療機器メーカー等、ソフトウェア開発の支援を実際に行っている企業だからこそ、現場で活かせる学びに焦点をあてたプログラムに構成されています。
「Eureka Box(ユーリカボックス)」を是非ご活用ください。