制動系製品のリバースフィーチャモデリングの試み
古一 克也1

中西 恒夫2 大串 和弘1

山田 智司1

1株式会社アドヴィックス
2福岡大学工学部電子情報工学科

2024年5月24日© ADVICS CO.,LTD. All Rights Reserved.

目次

1/22

1．プロダクトライン導入の背景 と 現場の問題
2．フィーチャモデリングの目的 と アンチパターン
3．ドキュメントとコードからマインドマップ生成
１）機能の抽出２）詳細仕様と参照関係の整理
３）目的の抽出
４）ソースコードから仕様差や定数差の補填

4．マインドマップからのフィーチャモデリング
１）対象製品の要求整理
２）機能の構成検討

３）共通部と可変部の局所化

5．まとめ と 所感© ADVICS CO.,LTD. All Rights Reserved.

０．会社紹介

2/22

社名

株式会社アドヴィックス

設立

2001年7月3日

事業内容

自動車用ブレーキシステムおよびそのシステムを構成する部品の開発・生産・販売

資本金122億円（2023年3月31日現在）

売上高

連結 7,518億円
単独 4,001億円（いずれも2022年4月1日～2023年3月31日）

社長

秋山 晃

従業員

連結 13,293名
単独 4,613名（いずれも2023年3月31日現在）

主要

EPB、ESC、ABS、ブレーキブースタ、マスターシリンダ、ディスクブレーキ、ドラムブレーキ、その他関連部品ブレーキシステム全体を手掛ける 世界で唯一のサプライヤーとして誕生© ADVICS CO.,LTD. All Rights Reserved.

目次

3/22

1．プロダクトライン導入の背景 と 現場の問題
2．フィーチャモデリングの目的 と アンチパターン
3．ドキュメントとコードからマインドマップ生成
１）機能の洗い出し
２）詳細仕様と参照関係の整理
３）目的の抽出
４）ソースコードから仕様差や定数差の補填

4．マインドマップからのフィーチャモデリング
１）対象製品の要求整理
２）機能の構成検討

３）共通部と可変部の局所化

5．まとめ と 所感
© ADVICS CO.,LTD. All Rights Reserved.

１．プロダクトライン導入の背景 と 現場の問題

4/22

背景：組み込みソフトウェア開発は、ベースからの差分開発が主流である。
展開や新規機能の増加に伴い、ソフトウェア仕様のバリエーションが増加し、ソフト構造が複雑化している。
問題：現状のやり方だと、仕様・ソフトウェアの変更や管理が容易ではなく、開発工数が増加してしまう。

対策：上記解決に向け、“共通性と可変性を分離し，ソフトウェア資産の再利用性向上を図る“プロダクトライン開発の導入を検討♪～

変更(一部流用)

変更(一部流用)♪～
コア資産

図1.差分開発のイメージ

図2.プロダクトライン開発のイメージ© ADVICS CO.,LTD. All Rights Reserved.

１．プロダクトライン導入の背景 と 現場の問題
本質的な問題点

5/22

機能配置が適切にできない（どこを変えるのが良いかを判断できない）

製品仕様の全体像が把握できない
大量の仕様書はあるけど、どれが何やってるんだ？

指摘が多く、手戻り発生
えっと…

AAA
仕様書

この仕様で良いのか？

仕様変更

そうですね。。。

レビュー

フィーチャモデリングによって仕様はこうなってるのか！

BBB
仕様書

仕様変更

別の仕様が良いのでは？

関係者間のコミュニケーションが円滑になる機能配置の目途付けができる（どこを変えれば良いかが分かる）

製品仕様の全体像が把握できる

なぜこの仕様を変えるの？

目的を考えるとこの仕様がベストです

この仕様が適切だな

なぜこの仕様を変えるの？
いいね

レビュー

フィーチャモデリングによって、現場の『本質的な問題点』も併せて解決したい© ADVICS CO.,LTD. All Rights Reserved.

目次

6/22

1．プロダクトライン導入の背景 と 現場の問題
2．フィーチャモデリングの目的 と アンチパターン
3．ドキュメントとコードからマインドマップ生成
１）機能の抽出２）詳細仕様と参照関係の整理
３）目的の抽出
４）ソースコードから仕様差や定数差の補填

4．マインドマップからのフィーチャモデリング
１）対象製品の要求整理
２）機能の構成検討

３）共通部と可変部の局所化

5．まとめ と 所感
© ADVICS CO.,LTD. All Rights Reserved.

7/22

２．フィーチャモデリングの目的 と アンチパターン
フィーチャモデリングの目的• 製品の共通部と可変部の分離を見える化（記述）する。
• フィーチャは、製品の特徴を特定できる構成要素として捉える。
• アーキテクチャを予備的かつ探索的に構築する。
製品

フィーチャ(特徴)
AAA機能

フィーチャモデルからアーキテクチャの予備設計

BBB機能

CCC設定

Alternative(択一)
a1機能

a2機能

b1機能

c1表示

c2表示

製品
入力処理部

機能演算部

○○センサ
入力

AAA機能

出力処理部

a1機能

□□センサ
入力

a2機能

△△信号
入力

BBB機能

CCC表示
出力

b1機能

××スイッチ
入力
設定部

○○センサ

□□センサ

△△信号××スイッチ

Optional(任意)

CCC設定
c1設定

可変部

共通部
図3.フィーチャモデル例

図4.アーキテクチャ例

プロダクトライン開発において、フィーチャモデリングが重要！！
そのためには、既存の開発資産からのリバースフィーチャモデリングが必要である。
© ADVICS CO.,LTD. All Rights Reserved.

２．フィーチャモデリングの目的 と アンチパターン

8/22

フィーチャモデリングのアンチパターン

アンチパターンに陥っていないか確認し、フィーチャモデリングすることが重要参考文献：中西，久住，福田，「ソフトウェアアーキテクチャ事前設計を目的とするフィーチャモデリングのアンチパターン」，組込みシステムシンポジウム論文集，2009年10月．

© ADVICS CO.,LTD. All Rights Reserved.

目次

9/22

1．プロダクトライン導入の背景 と 現場の問題
2．フィーチャモデリングの目的 と アンチパターン
3．ドキュメントとコードからマインドマップ生成
１）機能の抽出２）詳細仕様と参照関係の整理
３）目的の抽出
４）ソースコードから仕様差や定数差の補填

4．マインドマップからのフィーチャモデリング
１）対象製品の要求整理
２）機能の構成検討

３）共通部と可変部の局所化

5．まとめ と 所感
© ADVICS CO.,LTD. All Rights Reserved.

３．ドキュメントとコードからマインドマップ生成

10/22

制動系製品のリバースフィーチャモデリングの試み
対象製品：電動パーキングブレーキ（EPB：Electromechanical Parking Brake）
EPBとは、スイッチ等の操作により電気モーター(EPBアクチュエータ)でパーキングブレーキをかける装置のこと。

EPBスイッチ

EPBアクチュエータ

次項より、既存開発資産からフィーチャモデル構築（リバースフィーチャモデリング）の手順を紹介
3．ドキュメントとコードからマインドマップ生成
機
能の洗い
出し参
照詳
関細係仕の様整と理目的（抽意出図）の開発資産（仕様）整理

4．マインドマップからのフィーチャモデリング
仕ソ様ー
差ス
補やコ
填定ー
数ド
差かのら

対
要象
求製
整品
理の機
能の
構
成
検討

共通局部
所と化可変部のフィーチャモデルの作成© ADVICS CO.,LTD. All Rights Reserved.

３．ドキュメントとコードからマインドマップ生成

11/22１）機能の抽出• 製品が持つ機能を抽出する。
例）電動パーキングブレーキの場合、「車両停止時にパーキングブレーキを掛ける」、「車両発進時にパーキングブレーキを解除する」 という機能
車両停止時にパーキングブレーキを掛ける

抽出EPBスイッチAPPLY!
EPBアクチュエータ

シフト
製品機能を構成する仕様書群（WordやExcelファイル等）

抽出
図5.既存の開発資産

車両発進時にパーキングブレーキを解除する
図6.製品の機能

リバースフィーチャモデリング対象のシステムが持つ機能を全て抽出© ADVICS CO.,LTD. All Rights Reserved.

12/22

３．ドキュメントとコードからマインドマップ生成
２）詳細仕様と参照関係の整理• 機能を構築する仕様を末端まで全て書き記す。
• 複数の機能で同じ仕様や条件が使われている場合、それに目印をつける。
マインドマップ化（ツール：FreeMind）
車両停止時にパーキングブレーキを掛ける
APPLY!

詳細仕様

製品が持つ機能

EPBスイッチ

EPBアクチュエータ
シフト

目印は後工程のフィーチャモデリングで役立つ
図8.製品機能のマインドマップ例

図7.製品の機能_車両停止時にパーキングブレーキを掛ける

詳細仕様をマインドマップに起こすのは、地道な作業です。
しかし、時間をかけて丁寧に書き記すことが後々効果がでるため、重要！
（USDM化を見越して「～をして、～をして、～する」の形式で記載。）

システムが持つ機能と構成している仕様や情報を１つ１つ確実に書き記す© ADVICS CO.,LTD. All Rights Reserved.

３．ドキュメントとコードからマインドマップ生成

13/22３）目的の抽出• 各機能や仕様の背後にある目的（何のため？）を明確にする。
例えば、「車両停止時にEPBスイッチをApply操作したら、モータを駆動して、パーキングブレーキを掛ける」
機能の目的は、非力な方でも確実にパーキングブレーキを掛ける事ができることである。
目的は、FreeMindのメモ機能で残すと便利！

図8.製品機能のマインドマップ例_目的の明確化

各仕様の目的を明確にし、残しておく⇒フィーチャモデリングでの類似仕様のグルーピング（中間概念の導出 P.17）に役立つ© ADVICS CO.,LTD. All Rights Reserved.

３．ドキュメントとコードからマインドマップ生成

14/22４）ソースコードから仕様差や定数差の補填• 仕様は、メーカや車種などの違いによって異なることがある。
⇒コーディングツール（テキストエディタ）の検索機能を使って、違い＝可変部を見つけ出す。
仕様差
定数差

機能装着メーカ差

図9.製品機能のマインドマップ例_違いの抽出

ソースコードも開発資産！
精密な調査はソースコードの方がし易い

各社向けソースコード群
Source A
Source B
Source C・制御閾値の定数が車種ごとに異なる・機能の装着有無はメーカーごとに異なる
・・・etc

確かな情報を記載するため、ドキュメントだけでなく、ソースコードも使って違いを抽出する© ADVICS CO.,LTD. All Rights Reserved.

15/22４．マインドマップからのフィーチャモデリング
１）対象製品の要求整理• 製品機能の再定義 ：ユーザーが期待する機能の最上位要求をユースケース分析で定義する。
• 機能のシナリオ定義 ：ユーザーが行う具体的な操作やシナリオを検討する。
EPB

アクター
（ドライバー）

駐車
アプライ

アクター
（車両）

リリース
アクター
（他システム_先進安全システムなど）

アクター（通知_ドライバー、工員、他システムなど）

制動力の検査をする
アクター（ディーラー等の工員）

・・・etc
図10.EPBのユースケース図

ID

REL01

名称リリース

目的ID

駐車/停車中にEPBを掛けたい要求により、
PA01
アクチュエータを作動させ、駐車/停車保持する。
名称 また、ユーザーにEPB作動状態を通知する。
駐車アプライ
目的 ドライバ 駐車/停車中にEPBを掛けたい要求により、アクチュエータを作動させ、駐車/停車保持アクタする。また、ユーザーにEPB作動状態を通知する。
事前条件
車両が停車している
アクタ
ドライバー
事後条件
・EPBが作動し、駐車/停車保持していること
事前条件
車両が停車している・EPBの作動完了を通知していること
・EPBが作動し、駐車/停車保持していること
イベント 事後条件
・ユーザーによる停車指示
・EPBの作動完了を通知していること
・他システムによる停車指示
フロー

イベント

フロー

ステップ・ユーザーによるEPB作動操作 アクション
・他システムによるEPB作動要求
1
モータをアプライ側に駆動する
ステップアクション
2
パーキングブレーキのアプライ完了を検知する
1
モータをアプライ側に駆動する
3モータの駆動を停止する
2
パーキングブレーキのアプライ完了を検知する再定義した機能（最上位要求）が、既存機能を適切に配置できるかの確認もすること

3

モータの駆動を停止する

4

パーキングブレーキのアプライ完了を通知する

原点に立ち返り、製品が求められているコト（要求）を定義する© ADVICS CO.,LTD. All Rights Reserved.

16/22４．マインドマップからのフィーチャモデリング２）機能の構成検討
ユースケース分析結果から、機能フィーチャモデルの基本構成を決める機能の親フィーチャ

中間概念
図11.EPBの機能フィーチャモデルの例
機能の振舞いに着目して中間概念を導出した。
例）駐車アプライ機能は、EPBスイッチ操作があった時 に、作動契機_作動開始
EPBモータをアプライ側に駆動 して、作動内容
パーキングブレーキ作動のアプライ完了を検知した 場合、作動契機_作動終了
EPBモータを停止 する。また、 パーキングブレーキのアプライ完了を通知 する。
作動内容
通知

機能のフィーチャ直下は「作動契機」「作動内容」「通知」の構成とする© ADVICS CO.,LTD. All Rights Reserved.

17/22４．マインドマップからのフィーチャモデリング２）機能の構成検討
マインドマップからの配置：マインドマップを使って機能を配置する。
キーワード化：各フィーチャを要素毎にキーワード（名称）化する。
共通部分のまとめ：類似した目的や共通する要素を同じ中間概念でまとめる。

第三者が理解できるまで何度も何度も構成を検討

Alternative(択一)を表すアイコン

中間概念は、仕様の目的(何のため？)や共通キーワードから導出する
・「車両停車」は何のため？
⇒ 機能を作動させる前提条件（事前条件）である。
・「EPBスイッチ操作」や「シフトのPレンジ操作」は何のため？
⇒ 機能を作動させる種類（操作内容）である。

Optional(任意)を表すアイコン

図12.EPBのフィーチャモデル_中間概念の例

マインドマップの結果を整理し、フィーチャーモデルの基本構成を決定する© ADVICS CO.,LTD. All Rights Reserved.

４．マインドマップからのフィーチャモデリング

18/22

３）共通部と可変部の局所化• 差分有り仕様の局所化：可変点が多いフィーチャをまとめ、管理し易くする。
■マインドマップから配置したフィーチャモデル
機能の仕様は、どのメーカ向けも差分は余り無い

可変点が多く出るのは、以下３点が主・入出力信号
・車両の状態を判定する条件
・判定閾値（定数）
入出力信号
車両の状態を判定する条件 は、駐車アプライ機能以外にも参照箇所多数あり。

仕様変更が入った際、参照箇所全ての更新が必要

図13.EPBのマインドマップ⇒フィーチャモデルの例

メンテナンス性が悪くなり、更新モレの懸念が多いに有りフィーチャモデルのメンテナンス性悪化の懸念課題あり、改善の検討が必要© ADVICS CO.,LTD. All Rights Reserved.

４．マインドマップからのフィーチャモデリング19/22３）共通部と可変部の局所化• 差分有り仕様の局所化：可変点が多いフィーチャをまとめ、管理し易くする。
入力では、情報の種類でまとめる。

入出力信号、車両の状態を判定する条件のメンテンス性の課題に、以下対策で解決。
対策1）専用の親フィーチャで集中管理する。（EPBの左側フィーチャ）対策2）機能フィーチャツリーでは対策１の結果を参照とする。
EPBの左側フィーチャに移動⇒ 使用目的ではまとめられない。。。

対策1

対策2

対策2

Alternative(択一)を表すアイコン

図14.EPBのフィーチャモデル全体像の例

判定条件は、USDMに記載し,フィーチャモデルには記載しない方針とした。

自分たちが管理・分かり易い構成を考え、フィーチャーモデルを構築していく© ADVICS CO.,LTD. All Rights Reserved.

目次

20/22

1．プロダクトライン導入の背景 と 現場の問題
2．フィーチャモデリングの目的 と アンチパターン
3．ドキュメントとコードからマインドマップ生成
１）機能の抽出２）詳細仕様と参照関係の整理
３）目的の抽出
４）ソースコードから仕様差や定数差の補填

4．マインドマップからのフィーチャモデリング
１）対象製品の要求整理
２）機能の構成検討

３）共通部と可変部の局所化

5．まとめ と 所感
© ADVICS CO.,LTD. All Rights Reserved.

５．まとめ と 所感
まとめ 制動系製品のリバースフィーチャモデリングの試みは成功した。
成果として、以下のプロセスを構築できた。

21/22

アンチパターンに陥っていない事も確認① 詳細仕様と参照関係を整理してマインドマップ生成 ・・・ P.12
製品が持つ機能と構成している仕様や情報を１つ１つ確実に書き記す。

② 目的の明確化と違いの抽出 ・・・ P.13、14
マインドマップを通じて、各仕様の目的（何のため）の明確化 と 違い（可変部）の抽出。

③ ユースケース分析による製品要求・振舞いの定義 ・・・ P.15
製品本来の最上位要求 と 機能の振舞い を定義する④ 中間概念でのまとめ ・・・ P.16～19
中間概念を、機能の振舞い や 仕様の目的、類似仕様のまとめ 等で導出し、管理・理解し易くする。

所感 形にするまではかなり苦労するが、その後が楽になる目途がたった。
・リバースフィーチャモデリングによって製品仕様のバリエーションを見える化できたことで、仕様構成（全体像）の把握 や 仕様変更の目途付け が容易となった。

© ADVICS CO.,LTD. All Rights Reserved.

22/22

ご清聴ありがとうございました© ADVICS CO.,LTD. All Rights Reserved.

（参考） 使用ツール FreeMind

23/22

フィーチャモデリングは、マインドマップ描画ツール（FreeMind）を使用した。
1) 操作性が高い
キーボードやマウスを使ったシンプルな操作で、フィーチャモデルの木構造を簡単に構築できる。

2) 記述や表現の柔軟性が高い
フィーチャモデルの文法的制約を受けず、アイコンや背景色などでユーザーが自由に属性を表現できる。

フィーチャモデリング中に発見した事実や未解決課題などのメモを該当箇所に配置できる。

3) 別アプリケーションでの汎用性が高いマインドマップをXML形式で保存可能。
スクリプトによるインポート／エクスポート／機械的処理が容易。

4) 全体を俯瞰できるため、可読性が高い
限られたPC画面だったとしても大きなマインドマップを記述でき、図14.製品機能のマインドマップ例

全体を把握しやすくできる。

我々のチームでは、何度も作り直しが発生すると予想されたため、操作性と柔軟性があるFreeMindでの作成を選択
参考文献：中西，山田，大串，古一，「制動系製品群のプロダクトライン開発のためのアプリケーションエンジニアリング自動化」，情処研報，Vol.2023-SE-214，No.9，2023年7月.

© ADVICS CO.,LTD. All Rights Reserved.