Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
フィーチャー図とBricRoboで 簡単プロダクトライン
2014/11/19~21 (株)富士通コンピュータテクノロジーズ 伊澤 松太朗
ET2014 ミニセミナー
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
1294karch01
目 次
1. 当社のご紹介
2. 派生開発でよくある課題
3. フィーチャー図のススメ
4. フィーチャー図とBricRoboによる 簡単プロダクトライン開発
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED 1
会社概要
株式会社 富士通コンピュータテクノロジーズ
設立 1983年
事業所 川崎本社、豊橋事業所、長野事業所
事業内容
サーバ、ストレージ
モバイル端末、車載/FA機器、画像認識
ハードウェア、ネットワーク、検証ソリューション
従業員数 536名
組込みソフトウェア開発 300名
組込みハードウェア開発 50名
組込みプラットフォーム 35名
テストプログラム 開発/検証評価 100名
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED 3
増大するバリエーションへの対応
製品ファミリーの増加や海外向け対応などにより、 製品や機能のバリエーションが煩雑になっている
顧客毎に変わるニーズに対応するため類似製品を開発
既存製品のバージョンアップによる機能追加/変更対応
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
類似製品を個別に開発して苦労していませんか?
製品毎にバラバラに管理しているから 仕様変更対応が大変
ソースコードがifdefだらけで 間違いが起こりがち
5
無駄なモノを作らないために
類似する製品や機能の個別開発から脱却するために製品の共通な部分は流用し、固有な部分だけを開発
製品や機能を特徴づける要素間の関係をツリー状に表した図に「フィーチャー図」がある
プロダクトライン開発では良く使われる
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
製品や機能の共通な部分や固有な部分を 簡潔に表現できる方法は無いのか?
フィーチャー図を使って共通性・可変性を可視化
6
フィーチャー図とは
例えば、以下のような機能検討中のネットワーク機器製品に対して機能をフィーチャー図で表現
Wi-Fi対応機能がある製品と無い製品がある
ポート数は4個または8個
Wi-Fi対応機能がある製品はポート数が4個の製品のみ
8
<<TopLevelFeature>>ネットワーク機器製品
<<MandatoryFeature>>ポート数
<<Feature>>4ポート
<<Feature>>8ポート
<<OptionalFeature>>Wi-F i機能
フィーチャー図で表現
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
選択しても 選択しなくても良い
フィーチャー
必須なフィーチャー
排他的な選択
ドメインとなる フィーチャー
製品のフィーチャー
フィーチャー図で表現したものの、これが製品戦略的に正しい?
9
検討後のフィーチャー図
Wi-Fi機能はポート数に関わらず選択可能に検討
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
<<TopLevelFeature>>ネットワーク機器製品
<<MandatoryFeature>>ポート数
<<OptionalFeature>>Wi-F i機能
<<Feature>>4ポート
<<Feature>>8ポート
製品ファミリーの要求分析・検討が容易に行える
10
ドメインはETロボコン走行体
従来はNXT素材の走行体だったが、来年(2015年)から 次世代機のEV3が使用可能予定
NXTとEV3の共通部分の開発工数を削減したい
NXTの資産を有効活用したい
プロダクトライン開発として分析
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
光センサ
マイコン
NXT EV3
モータ
ジャイロセンサ
カラーセンサ
マイコン
モータ
ジャイロセンサ
記載されている製品名などの固有名詞は、各社の商標または登録商標です。
12
プロダクトライン全体を可視化
フィーチャー図で分析や検討し、共通・固有部品を抽出
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
可変性を考慮した柔軟性の高い設計が可能 13
表形式だと製品バリエーションのフィーチャーを管理できる
ツリー形式だと論理的な構造を整理しやすい
製品毎のフィーチャーを選択
フィーチャー図を参考に製品バリエーション(NXT/EV3)のフィーチャーを選択する
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED 14
CompositionType
ETROBO
Λ /in
EV3_RIGHT_MOTOR: Mot orBricEV3
Λ /in
Λ /in
EV3_LEFT_MOTOR: Mot orBricEV3
Λ /in
▲/out
EV3_GYRO: GyroSensorBricEV3
▲/out
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
CON: Cont rol ler
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR▲/outTacho
EV3_TACHO_RIGHT: Mot orTachoBricEV3
▲/outTacho
▲/outTacho
EV3_TACHO_LEFT: Mot orTachoBricEV3
▲/outTacho
CompositionType
ETROBO
Λ /in
NXT_LEFT_MOTOR: Mot orBricNXT02
Λ /in
Λ /in
NXT_RIGHT_MOTOR: Mot orBricNXT02
Λ /in
▲/out
NXT_GYRO: GyroSensorBricNXT
▲/out
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
CON: Cont rol ler
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR▲/outTacho
NXT_TACHO_RIGHT: Mot orTachoBricNXT
▲/outTacho
▲/outTacho
NXT_TACHO_LEFT: Mot orTachoBricNXT
▲/outTacho
個別製品モデルの開発
製品バリエーション管理表から個別製品モデル(NXT/EV3)を開発
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
NXT用モデル
EV3用モデル
手作業
手作業
手作業
手作業
手作業
15
EA上でフィーチャー図が描ける
フィーチャー図が他のモデルと混在可
操作性を統一
フィーチャー図からバリエーション管理表を自動生成
相互にデータ連携
バリエーション定義はフィーチャー図・Excelどちらからも可能
新開発のEAアドインによる効率化
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
Enterprise Architect ファイル
UML SysML
フィーチャー図 etc...
ツールにより 相互変換可能
16
抽出ツールによる個別製品モデルの作成
バリエーション管理表(Excel)と全体設計モデルから 個別製品モデルを自在に抽出
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
CompositionType
ETROBO
Λ /in
NXT_LEFT_MOTOR: Mot orBricNXT02
Λ /in
Λ /in
NXT_RIGHT_MOTOR: Mot orBricNXT02
Λ /in
Λ /in
EV3_RIGHT_MOTOR: Mot orBricEV3
Λ /in
Λ /in
EV3_LEFT_MOTOR: Mot orBricEV3
Λ /in
▲/out
NXT_GYRO: GyroSensorBricNXT
▲/out
▲/out
EV3_GYRO: GyroSensorBricEV3
▲/out
▲/outValue
FORWARD: Cons tVa lue
▲/outValue
▲
/outValue
TUIRN: Cons tVa lue
▲
/outValue
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
CON: Cont rol ler
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
▲/outTacho
EV3_TACHO_RIGHT: Mot orTachoBricEV3
▲/outTacho
▲/outTacho
EV3_TACHO_LEFT: Mot orTachoBricEV3
▲/outTacho
▲/outTacho
NXT_TACHO_RIGHT: Mot orTachoBricNXT
▲/outTacho
▲/outTacho
NXT_TACHO_LEFT: Mot orTachoBricNXT
▲/outTacho
CompositionType
ETROBO
Λ /in
NXT_LEFT_MOTOR: Mot orBricNXT02
Λ /in
Λ /in
NXT_RIGHT_MOTOR: Mot orBricNXT02
Λ /in▲/out
NXT_GYRO: GyroSensorBricNXT
▲/out
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
CON: Cont rol ler
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
▲/outTacho
NXT_TACHO_RIGHT: Mot orTachoBricNXT
▲/outTacho
▲/outTacho
NXT_TACHO_LEFT: Mot orTachoBricNXT
▲/outTacho
NXT用モデル
CompositionType
ETROBO
Λ /in
EV3_RIGHT_MOTOR: Mot orBricEV3
Λ /in
Λ /in
EV3_LEFT_MOTOR: Mot orBricEV3
Λ /in
▲/out
EV3_GYRO: GyroSensorBricEV3
▲/out
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
CON: Cont rol ler
▲/outMotorL
▲/outMotorR
Λ /inGyro
Λ /inTachoL
Λ /inTachoR
▲/outTacho
EV3_TACHO_RIGHT: Mot orTachoBricEV3
▲/outTacho
▲/outTacho
EV3_TACHO_LEFT: Mot orTachoBricEV3
▲/outTacho
EV3用モデル
NXTとEV3混合 全体設計モデル
個別製品向けモデル抽出ツール
17
モデル駆動開発ツール BricRobo
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED
CompositionType
<<TopLevel>>SensorNode
<<RunnableEntity>>+ Initialize() :void
<<BricRoboKeyElement>>SendTask :Task
elapse = 1000initTimer = 0
<<BricRoboKeyElement>>SenseTask :Task
elapse = 1initTimer = 0
Λ<<RPortEv>>in
led :Led
Λ<<RPortEv>>in
▲
<<PPortEv>>recv
Λ
<<RPortEv>>senduart :Uart
▲
<<PPortEv>>recv
Λ
<<RPortEv>>send
▲<<PPortEv>>count
in fraredSensor :Ceramic In fraredSensor
▲<<PPortEv>>count
<<BricRoboKeyElem...LedTask :Task
elapse = 100initTimer = 0
Λ<<RPortEv>>in ▲
<<PPortEv>>led
parser :RecvPacketParser
Λ<<RPortEv>>in ▲
<<PPortEv>>led
Λ
<<RPortEv>>count
▲<<PPortEv>>packetOut
Λ
<<RPortEv>>temperature
packetBu i lder :SendPacketBu i lder
Λ
<<RPortEv>>count
▲<<PPortEv>>packetOut
Λ
<<RPortEv>>temperature
▲<<PPortEv>>temperature
temperatureSensor :TemperatureSensor
▲<<PPortEv>>temperature
<<BricRoboKeyElement>>SendTask :Task
uart :UartinfraredSensor:CeramicInfraredSensor
packetBuilder:SendPacketBuilder
temperatureSensor:TemperatureSensor
Run()
Run()
Run()
RunSend()
BricRobo コードジェネレータ
ソース コード
BricRobo 検索
FUJITSU Embedded System BricRobo
UMLと似たモデル図から コード生成するツール
BricRoboモデル
18
最後に
BricRoboの展示ブースでは今回ご紹介したツールのデモを ご覧いただけます
デモカーをドメインとしたフィーチャー図
フィーチャー図からバリエーション管理表(Excel)の自動生成
フィーチャー図とバリエーション管理表(Excel)の相互連携
全体設計モデルから個別製品向けモデルの抽出
Copyright 2014 FUJITSU COMPUTER TECHNOLOGIES LIMITED 19