フィーチャー図と
BricRoboで
簡単プロダクトライン
2014/11/19~21
(株)富士通コンピュータテクノロジーズ
伊澤 松太朗
ET2014 ミニセミナー
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
1294karch01
目 次
1.
当社のご紹介
2.
派生開発でよくある課題
3.
フィーチャー図のススメ
4.
フィーチャー図と
BricRoboによる
簡単プロダクトライン開発
当社のご紹介
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
2
会社概要
株式会社 富士通コンピュータテクノロジーズ
設立
1983年
事業所
川崎本社、豊橋事業所、長野事業所
事業内容
サーバ、ストレージ
モバイル端末、車載/FA機器、画像認識
ハードウェア、ネットワーク、検証ソリューション
従業員数 536名
組込みソフトウェア開発 300名
組込みハードウェア開発 50名
組込みプラットフォーム 35名
テストプログラム
開発/検証評価 100名
派生開発によくある課題
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
4
増大するバリエーションへの対応
製品ファミリーの増加や海外向け対応などにより、
製品や機能のバリエーションが煩雑になっている
顧客毎に変わるニーズに対応するため類似製品を開発
既存製品のバージョンアップによる機能追加/変更対応
類似製品を個別に開発して苦労していませんか?
製品毎にバラバラに管理しているから
仕様変更対応が大変
ソースコードが
ifdefだらけで
間違いが起こりがち
無駄なモノを作らないために
類似する製品や機能の個別開発から脱却するために
製品の共通な部分は流用し、固有な部分だけを開発
製品や機能を
特徴づける要素間の関係をツリー状
に
表した図に「フィーチャー図」がある
プロダクトライン開発では良く使われる
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
製品や機能の共通な部分や固有な部分を
簡潔に表現できる方法は無いのか?
フィーチャー図を使って共通性・可変性を可視化
フィーチャー図とは
例えば、以下のような機能検討中のネットワーク機器
製品に対して機能をフィーチャー図で表現
Wi-Fi対応機能がある製品と無い製品がある
ポート数は4個または8個
Wi-Fi対応機能がある製品はポート数が4個の製品のみ
8
<<TopLevelFeature>>
ネッ トワ ーク 機器製品
<<MandatoryFeature>>
ポート数
<<Feature>>
4 ポート
<<Feature>>
8 ポート
<<OptionalFeature>>
Wi- F i機能
フィーチャー図で表現
選択しても
選択しなくても良い
フィーチャー
必須なフィーチャー
排他的な選択
ドメインとなる
フィーチャー
製品のフィーチャー
フィーチャー図で表現したものの、これが製品戦略的に正しい?
検討後のフィーチャー図
Wi-Fi機能はポート数に関わらず選択可能に検討
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
<<TopLevelFeature>>
ネッ トワ ーク 機器製品
<<MandatoryFeature>>
ポート数
<<OptionalFeature>>
Wi-F i機能
<<Feature>>
4ポート
<<Feature>>
8ポート
製品ファミリーの要求分析・検討が容易
に行える
フィーチャー図と
BricRoboによる
簡単プロダクトライン開発
ドメインは
ETロボコン走行体
従来は
NXT素材の走行体だったが、来年(2015年)から
次世代機の
EV3が使用可能予定
NXTとEV3の共通部分の開発工数を削減したい
NXTの資産を有効活用したい
プロダクトライン開発として分析
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
光センサ
マイコン
NXT
EV3
モータ
ジャイロセンサ
カラーセンサ
マイコン
モータ
ジャイロセンサ
記載されている製品名などの固有名詞は、各社の商標または登録商標です。
12
プロダクトライン全体を可視化
フィーチャー図で分析や検討し、共通・固有部品を抽出
表形式だと製品バリエーションの
フィーチャーを管理できる
ツリー形式だと論理的な構造を
整理しやすい
製品毎のフィーチャーを選択
フィーチャー図を参考に製品バリエーション
(NXT/EV3)のフィーチャーを選択する
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
14
CompositionType E T ROBO
Λ /in E V3_RIG HT _MOT OR:
Mot orBricE V3 Λ /in
Λ /in E V3_LE F T _MOT OR:
Mot orBricE V3 Λ /in ▲ /out E V3_G Y RO: G y roSens orBricE V3 ▲ /out ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR
C ON: C ont roller ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR ▲ /outTacho E V3_T AC HO_RIG HT : Mot orT a choBricE V3 ▲ /outTacho
▲ /outTacho E V3_T AC HO_LE F T : Mot orT a choBricE V3 ▲ /outTacho
CompositionType E T ROBO
Λ /in NXT _LE F T _MOT OR:
Mot orBricNXT 02 Λ /in Λ /in
NXT _RIG HT _MOT OR: Mot orBricNXT 02 Λ /in ▲ /out NXT _G Y RO: G y roSens orBricNXT ▲ /out ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR
C ON: C ont roller ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR ▲ /outTacho NXT _T AC HO_RIG HT : Mot orT a choBricNXT ▲ /outTacho
▲ /outTacho NXT _T AC HO_LE F T : Mot orT a choBricNXT ▲ /outTacho
個別製品モデルの開発
製品バリエーション管理表から個別製品モデル
(NXT/EV3)を開発
NXT用モデル
EV3用モデル
手作業
手作業
手作業
手作業
手作業
EA上でフィーチャー図が描ける
フィーチャー図が他のモデルと混在可
操作性を統一
フィーチャー図からバリエーション管理表を自動生成
相互にデータ連携
バリエーション定義はフィーチャー図・Excelどちらからも可能
新開発のEAアドインによる効率化
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
Enterprise Architect ファイル
UML
SysML
フィーチャー図
etc...
ツールにより
相互変換可能
16
抽出ツールによる個別製品モデルの作成
バリエーション管理表
(Excel)と全体設計モデルから
個別製品モデルを自在に抽出
CompositionType E T ROBO Λ /in NXT _LE F T _MOT OR:Mot orBricNXT 02 Λ /in Λ /in
NXT _RIG HT _MOT OR: Mot orBricNXT 02 Λ /in Λ /in
E V3_RIG HT _MOT OR: Mot orBricE V3 Λ /in
Λ /in E V3_LE F T _MOT OR:
Mot orBricE V3 Λ /in ▲ /out NXT _G Y RO: G y roSens orBricNXT ▲ /out ▲ /out E V3_G Y RO: G y roSens orBricE V3 ▲ /out ▲ /outValue F ORWARD: C ons t Va lue ▲ /outValue ▲ /outValue T UIRN: C ons t Va lue ▲ /outValue ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR
C ON: C ont roller ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR ▲ /outTacho E V3_T AC HO_RIG HT : Mot orT a choBricE V3 ▲ /outTacho
▲ /outTacho E V3_T AC HO_LE F T : Mot orT a choBricE V3 ▲ /outTacho
▲ /outTacho NXT _T AC HO_RIG HT : Mot orT a choBricNXT ▲ /outTacho
▲ /outTacho NXT _T AC HO_LE F T : Mot orT a choBricNXT ▲ /outTacho
CompositionType E T ROBO
Λ /in NXT _LE F T _MOT OR:
Mot orBricNXT 02 Λ /in Λ /in
NXT _RIG HT _MOT OR: Mot orBricNXT 02 Λ /in ▲ /out NXT _G Y RO: G y roSens orBricNXT ▲ /out ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR
C ON: C ont roller ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR ▲ /outTacho NXT _T AC HO_RIG HT : Mot orT a choBricNXT ▲ /outTacho NXT _T AC HO_LE F T : CompositionType E T ROBO Λ /in E V3_RIG HT _MOT OR:
Mot orBricE V3 Λ /in
Λ /in E V3_LE F T _MOT OR:
Mot orBricE V3 Λ /in ▲ /out E V3_G Y RO: G y roSens orBricE V3 ▲ /out ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR
C ON: C ont roller ▲ /outMotorL ▲ /outMotorR Λ /inGyro Λ /inTachoL Λ /inTachoR ▲ /outTacho E V3_T AC HO_RIG HT : Mot orT a choBricE V3 ▲ /outTacho
▲ /outTacho E V3_T AC HO_LE F T : Mot orT a choBricE V3 ▲ /outTacho