Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
フィーチャツリー入門
井芹 洋輝
2016/9/01
2016/9/01 1
このセッションについて
• 目的
• フィーチャツリーの概要と描き方を知る
• フィーチャツリーの描き方を体験する
• 想定読者
• テーマについて学びたい人
• (あれば)UMLの基本知識を持っている人
2016/9/01 2
セッションのアウトライン
• フィーチャツリーの概要
• フィーチャツリーの記法
• 課題
• フィーチャツリーの作り方
• Appendix
2016/9/01 3
フィーチャツリーの概要
2016/9/01 4
前提となる基本用語:フィーチャ
• フィーチャ
• 広義
• 「ユーザ視点でのシステムの特性である」(SQuBOK V2.0)
• SPLD(ソフトウェアプロダクトライン開発)での定義
• 各ドメインのユーザから見たシステムの特性
• 「広義の...
前提となる基本用語:
フィーチャモデル、フィーチャツリー
• SPLDでのフィーチャモデル
• プロダクトラインの複数のフィーチャの関係性や可変性をモデリングしたもの
• 一般的なドメインモデルの一種
• フィーチャツリー
• フィーチャモデル...
フィーチャツリーの例
カメラ
静止画撮影 動画撮影
AE AF
ファインダー
光学
ファインダー
電子
ファインダー
2016/9/01 7
フィーチャツリーの例(カメラの場合)
2016/9/01 8
露出設定
0 +1-1
設定と設定選択肢
明度計算
アルゴリズム
スポット 中央重点 平均
実現アルゴリズムの種類
信号補正処理
CbCr係数
補正
輝度補正
ガンマ
補正
デジタル...
フィーチャツリーの例(カメラの場合)
2016/9/01 9
露出設定
0 +1-1
設定と設定選択肢
明度計算
アルゴリズム
スポット 中央重点 平均
実現アルゴリズムの種類
信号補正処理
CbCr係数
補正
輝度補正
ガンマ
補正
デジタル...
フィーチャツリーの用途
• フィーチャを分析する
• 分析のコミュニケーションに用いる
• フィーチャを識別する
• フィーチャを分析(分類、整理、関連付け)する
• フィーチャを定義する
• ドメインや製品の仕様としてフィーチャを定義する
•...
フィーチャツリーの主要なバリエーション
手法・文献 概要 記法の特徴
FODA(Feature-Oriented
Domain Analysis)
・分析手法
FORM(Feature-Oriented
Reuse Method)
※今回はFO...
フィーチャツリーの記法
2016/9/01 12
フィーチャモデルの全体構造
カメラ
静止画撮影 動画撮影
AE AF
・フィーチャをツリー形式(分類木)
で記述する
・複数のツリーを作成し、参照で関連
付けて良い
2016/9/01 13
フィーチャモデルの構成要素
【四角枠で囲ったもの】
フィーチャ
モデリングしたい対象をツリーのトップに記述
カメラ
静止画撮影 動画撮影
AE AF
2016/9/01 14
フィーチャモデルの関係(親子ノードの関係)
関係 内容 関係性の例
composed of
包含・コンポジションの
関係
・親フィーチャが子フィー
チャを保持する
・親フィーチャが子フィー
チャを必要とする
is a
継承(一般化・具体化)
関...
フィーチャモデルの関係(親子ノードの可変関係)
関係 内容 記法の例
必須 ・親フィーチャにとって子
フィーチャは必須である
選択 ・親フィーチャにとって子
フィーチャと関係するか選
択できる
XOR ・親フィーチャは子フィー
チャのどれかから...
フィーチャモデルでの可変性の表現
カメラ
静止画撮影 動画撮影
AE AF
ファインダー
光学
ファインダー
電子
ファインダー
選択フィーチャは可変部。製品によって搭載するか変わる
(動画撮影できる機種・できない機種がある)
XORは可変部。...
演習1
• 以下をフィーチャツリーで表現しよう
2016/9/01 18
八
王
子
家
ラ
ー
メ
ン
•
追
加
ト
ッ
ピ
ン
グ
•
味
玉
•
ほ
う
れ
ん
草
•
チ
ャ
ー
シ
ュ
ー
•
ラ
ー
メ
ン
の
好
み
選
択
•...
演習1 回答例
2016/9/01 19
八王子家
ラーメン
ラーメンの
好み選択
追加
トッピング
味玉 ほうれん草 チャーシュー
麺のかたさ 味
こいふつうかため ふつう
フィーチャツリーの作り方
2016/9/01 20
ソフトウェアプロダクトライン開発での
フィーチャツリーの位置づけ(FORMの場合)
ユーザ
要求
要求を分析す
る
(フィーチャ
を選択する)
フィーチャ
モデル
ドメインを
分析する
リファレンス
アーキテクチャ
リファレンス
アーキテクチャ...
フィーチャモデル作成の流れ(FORMの場合)
1. フィーチャの特定
• 将来のため未知の製品を想定する場合の情報源
• プロダクトラインの戦略や計画からの情報
• ドメインエキスパートの知見、文献、カタログ、類似製品などからの情報
• 特定製...
フィーチャモデル作成の流れ(FORMの場合)
1. フィーチャの特定
• 将来のため未知の製品を想定する場合の情報源
• プロダクトラインの戦略や計画からの情報
• ドメインエキスパートの知見、文献、カタログ、類似製品などからの情報
• 特定製...
• 上位のフィーチャから、分析の観点やモデルを用いて詳細なフィーチャ
を求める
レンズ研磨
入力 出力 貯蔵
論理的機能構造の観点
レンズ研磨
・・・
グラインダー
制御
レンズ配置
制御
光学パラメー
タ表示
貯蔵入力
出力
2016/9/0...
フィーチャツリーにまとめるアプローチ
トップダウン、ボトムアップ、作り込み
• 抽出したフィーチャをツリーに関連付ける
バグ追跡
テスト実行メ
トリクス計算
レポート生成
テスト管理
ツール
バグ追跡
テスト実施
サポート
レポート生成
テスト...
• ツリーとしての漏れや冗長性の解消、粒度合わせなどを行う
カメラ
静止画撮影 動画撮影
AE AF
ファインダー
光学
ファインダー
電子
ファインダー
兄弟のMECE性の確認・調整
親子の詳細度や飛躍の確認・修正
2016/9/01 26
...
共通フィーチャ、可変フィーチャの識別
• 製品ごとに異なるフィーチャを可変フィーチャとして識別する
• プロジェクトリスクに応じて将来的な可変フィーチャや可変点(可変部
のIF)を設ける
• Q:可変メカニズムが複雑で品質低下が大きいなら共通フ...
Appendix
2016/9/01 28
フィーチャツリーで考えるときはクラスベースでも考える
• ツリー形式のモデリングの限界に留意が必要
• クラスベースでも考えてツリーで描き漏らした概念を把握する
ラーメン
家系ラーメン
二郎系
ラーメン
麺
量 かたさ
麺
量 かたさ
同じもの...
フィーチャモデルのツール
• 有償/無償複数存在
• Eclipseプラグイン
• EMF Feature Model/Feature Diagram Editor, Xfeature, FeatureMapper等
• 有償ツール
• ZIP...
参考文献
• Kang, K.他, Feature-Oriented Domain Analysis (FODA) Feasibility
Study
• Kang, K.他, FORM: A Feature-Oriented Reuse Me...
Upcoming SlideShare
Loading in …5
×

フィーチャモデルの描き方

5,710 views

Published on

内部勉強会用

Published in: Technology
  • Be the first to comment

フィーチャモデルの描き方

  1. 1. フィーチャツリー入門 井芹 洋輝 2016/9/01 2016/9/01 1
  2. 2. このセッションについて • 目的 • フィーチャツリーの概要と描き方を知る • フィーチャツリーの描き方を体験する • 想定読者 • テーマについて学びたい人 • (あれば)UMLの基本知識を持っている人 2016/9/01 2
  3. 3. セッションのアウトライン • フィーチャツリーの概要 • フィーチャツリーの記法 • 課題 • フィーチャツリーの作り方 • Appendix 2016/9/01 3
  4. 4. フィーチャツリーの概要 2016/9/01 4
  5. 5. 前提となる基本用語:フィーチャ • フィーチャ • 広義 • 「ユーザ視点でのシステムの特性である」(SQuBOK V2.0) • SPLD(ソフトウェアプロダクトライン開発)での定義 • 各ドメインのユーザから見たシステムの特性 • 「広義のフィーチャ」「環境構成」「ドメイン技術」「実装技法」なども含めた、製品の特 性・機能・構成情報を指す • 共通フィーチャ • プロダクトラインで共通するフィーチャ • 可変フィーチャ • 製品仕様に応じて取捨選択できるフィーチャ 2016/9/01 5
  6. 6. 前提となる基本用語: フィーチャモデル、フィーチャツリー • SPLDでのフィーチャモデル • プロダクトラインの複数のフィーチャの関係性や可変性をモデリングしたもの • 一般的なドメインモデルの一種 • フィーチャツリー • フィーチャモデルの記法の一つ ツリー形式でフィーチャの関係をモデリングする 2016/9/01 6
  7. 7. フィーチャツリーの例 カメラ 静止画撮影 動画撮影 AE AF ファインダー 光学 ファインダー 電子 ファインダー 2016/9/01 7
  8. 8. フィーチャツリーの例(カメラの場合) 2016/9/01 8 露出設定 0 +1-1 設定と設定選択肢 明度計算 アルゴリズム スポット 中央重点 平均 実現アルゴリズムの種類 信号補正処理 CbCr係数 補正 輝度補正 ガンマ 補正 デジタル ゲイン AGC ゲイン RGB変換 係数補正 色補正 機能の段階的詳細化 AE機構 電子シャッタ AGC メカ絞り ハードウェア(実行環境)の構成
  9. 9. フィーチャツリーの例(カメラの場合) 2016/9/01 9 露出設定 0 +1-1 設定と設定選択肢 明度計算 アルゴリズム スポット 中央重点 平均 実現アルゴリズムの種類 信号補正処理 CbCr係数 補正 輝度補正 ガンマ 補正 デジタル ゲイン AGC ゲイン RGB変換 係数補正 色補正 機能の段階的詳細化 AE機構 電子シャッタ AGC メカ絞り ハードウェア(実行環境)の構成 製品の様々な要素を表現して良い 用途に応じてパースペクティブを絞ったり、レイヤ分けしたりする
  10. 10. フィーチャツリーの用途 • フィーチャを分析する • 分析のコミュニケーションに用いる • フィーチャを識別する • フィーチャを分析(分類、整理、関連付け)する • フィーチャを定義する • ドメインや製品の仕様としてフィーチャを定義する • 開発のインプットに用いる 2016/9/01 10
  11. 11. フィーチャツリーの主要なバリエーション 手法・文献 概要 記法の特徴 FODA(Feature-Oriented Domain Analysis) ・分析手法 FORM(Feature-Oriented Reuse Method) ※今回はFORMを紹介 ・開発手法 ・FODAを拡張した記法を用 いる ・親子ノードの関係を具体化 CBFM(Cardinality Based Feature Model) ・モデリング手法 ・FORMを拡張した記法を用 いる ・親子ノード、兄弟ノードの 記法を詳細化 ファインダー 光学 ファインダー 電子 ファインダー ・フィーチャを枠で囲む ・排他の記法追加 ファインダー 光学 ファインダー ファインダー 光学 ファインダー ・必須フィーチャの記法追加 ・ORの記法追加 ・多重度の記法追加 [1:1] 2016/9/01 11 ・フィーチャを枠で囲わない
  12. 12. フィーチャツリーの記法 2016/9/01 12
  13. 13. フィーチャモデルの全体構造 カメラ 静止画撮影 動画撮影 AE AF ・フィーチャをツリー形式(分類木) で記述する ・複数のツリーを作成し、参照で関連 付けて良い 2016/9/01 13
  14. 14. フィーチャモデルの構成要素 【四角枠で囲ったもの】 フィーチャ モデリングしたい対象をツリーのトップに記述 カメラ 静止画撮影 動画撮影 AE AF 2016/9/01 14
  15. 15. フィーチャモデルの関係(親子ノードの関係) 関係 内容 関係性の例 composed of 包含・コンポジションの 関係 ・親フィーチャが子フィー チャを保持する ・親フィーチャが子フィー チャを必要とする is a 継承(一般化・具体化) 関係 ・親フィーチャを具体化し たものが子フィーチャであ る implemented by クラス・オブジェクトの 関係 ・親フィーチャのインスタ ンスが子フィーチャである ※上記の違いは明記しない。親子関係は3種類のいずれかで統一されていなければならない(e.g.兄弟ノードの うち、Is aとComposed ofが共存してはならない) ラーメン 麺 ラーメン 温度 麺量 ラーメン 家系ラーメン 二郎系 ラーメン ラーメン 昨日食べた Aのラーメン 2016/9/01 15
  16. 16. フィーチャモデルの関係(親子ノードの可変関係) 関係 内容 記法の例 必須 ・親フィーチャにとって子 フィーチャは必須である 選択 ・親フィーチャにとって子 フィーチャと関係するか選 択できる XOR ・親フィーチャは子フィー チャのどれかから1つ選べ る ラーメン 麺 ラーメン 海苔トッピング 白丸を記述 ラーメン 豚骨 スープ 味噌 スープ 線を曲線で囲む 2016/9/01 16
  17. 17. フィーチャモデルでの可変性の表現 カメラ 静止画撮影 動画撮影 AE AF ファインダー 光学 ファインダー 電子 ファインダー 選択フィーチャは可変部。製品によって搭載するか変わる (動画撮影できる機種・できない機種がある) XORは可変部。製品によって切り替える (光学ファインダーの機種か、電子ファインダーの機種がある) 選択フィーチャや排他関係以外は必須フィーチャ。 どの機種にも搭載する(静止画撮影はどの機種にもある) 2016/9/01 17
  18. 18. 演習1 • 以下をフィーチャツリーで表現しよう 2016/9/01 18 八 王 子 家 ラ ー メ ン • 追 加 ト ッ ピ ン グ • 味 玉 • ほ う れ ん 草 • チ ャ ー シ ュ ー • ラ ー メ ン の 好 み 選 択 • 麺 の か た さ • か た め 、 ふ つ う • 味 • こ い 、 ふ つ う ほうれん草 味玉 チャーシュー
  19. 19. 演習1 回答例 2016/9/01 19 八王子家 ラーメン ラーメンの 好み選択 追加 トッピング 味玉 ほうれん草 チャーシュー 麺のかたさ 味 こいふつうかため ふつう
  20. 20. フィーチャツリーの作り方 2016/9/01 20
  21. 21. ソフトウェアプロダクトライン開発での フィーチャツリーの位置づけ(FORMの場合) ユーザ 要求 要求を分析す る (フィーチャ を選択する) フィーチャ モデル ドメインを 分析する リファレンス アーキテクチャ リファレンス アーキテクチャ を開発する 共通部コン ポーネントを 開発する 共通部コン ポーネント フィーチャ 選択仕様 アプリケー ション・ アーキテク チャ アプリケー ション・ アーキテク チャを選択 する アプリケー ションソフ トウェアを 開発する アプリケー ションソフト ウェア ドメイン・エンジニアリング(ドメインの共通資産を開発する) アプリケーション・エンジニアリング(製品を開発する) フィーチャツリーは ここで作る 2016/9/01 21
  22. 22. フィーチャモデル作成の流れ(FORMの場合) 1. フィーチャの特定 • 将来のため未知の製品を想定する場合の情報源 • プロダクトラインの戦略や計画からの情報 • ドメインエキスパートの知見、文献、カタログ、類似製品などからの情報 • 特定製品を開発する場合の情報源 • 製品の要求仕様、過去のフィーチャ情報 2. フィーチャの分類 • FORMでは、製品の能力、動作環境、ドメイン技術、実装技法の4つのレイヤ分 けでフィーチャを整理 3. フィーチャの体系付けと分析 • フィーチャツリーにまとめる • 共通フィーチャ、可変フィーチャを識別する 2016/9/01 22
  23. 23. フィーチャモデル作成の流れ(FORMの場合) 1. フィーチャの特定 • 将来のため未知の製品を想定する場合の情報源 • プロダクトラインの戦略や計画からの情報 • ドメインエキスパートの知見、文献、カタログ、類似製品などからの情報 • 特定製品を開発する場合の情報源 • 製品の要求仕様、過去のフィーチャ情報 2. フィーチャの分類 • FORMでは、製品の能力、動作環境、ドメイン技術、実装技法の4つのレイヤ分 けでフィーチャを整理 3. フィーチャの体系付けと分析 • フィーチャツリーにまとめる • 共通フィーチャ、可変フィーチャを識別する 2016/9/01 23
  24. 24. • 上位のフィーチャから、分析の観点やモデルを用いて詳細なフィーチャ を求める レンズ研磨 入力 出力 貯蔵 論理的機能構造の観点 レンズ研磨 ・・・ グラインダー 制御 レンズ配置 制御 光学パラメー タ表示 貯蔵入力 出力 2016/9/01 24 フィーチャツリーにまとめるアプローチ トップダウン、ボトムアップ、作り込み
  25. 25. フィーチャツリーにまとめるアプローチ トップダウン、ボトムアップ、作り込み • 抽出したフィーチャをツリーに関連付ける バグ追跡 テスト実行メ トリクス計算 レポート生成 テスト管理 ツール バグ追跡 テスト実施 サポート レポート生成 テスト実行メ トリクス計算 2016/9/01 25
  26. 26. • ツリーとしての漏れや冗長性の解消、粒度合わせなどを行う カメラ 静止画撮影 動画撮影 AE AF ファインダー 光学 ファインダー 電子 ファインダー 兄弟のMECE性の確認・調整 親子の詳細度や飛躍の確認・修正 2016/9/01 26 フィーチャツリーにまとめるアプローチ トップダウン、ボトムアップ、作り込み
  27. 27. 共通フィーチャ、可変フィーチャの識別 • 製品ごとに異なるフィーチャを可変フィーチャとして識別する • プロジェクトリスクに応じて将来的な可変フィーチャや可変点(可変部 のIF)を設ける • Q:可変メカニズムが複雑で品質低下が大きいなら共通フィーチャにする • C:実現が用意な可変メカニズムがあるならそこを可変部にする • リスク分析の形式 • フィーチャベースの分析 • フィーチャごとにリスクとフィーチャモデルでのコントロール手段を検討 • リスク要因ベースの分析 • リスク要因ごとにリスクとフィーチャモデルでのコントロール手段を検討 2016/9/01 27
  28. 28. Appendix 2016/9/01 28
  29. 29. フィーチャツリーで考えるときはクラスベースでも考える • ツリー形式のモデリングの限界に留意が必要 • クラスベースでも考えてツリーで描き漏らした概念を把握する ラーメン 家系ラーメン 二郎系 ラーメン 麺 量 かたさ 麺 量 かたさ 同じものが2箇所に出る 2016/9/01 29 クラスベースでのモデル 本来一つだけ ツリーベースでのモデル
  30. 30. フィーチャモデルのツール • 有償/無償複数存在 • Eclipseプラグイン • EMF Feature Model/Feature Diagram Editor, Xfeature, FeatureMapper等 • 有償ツール • ZIPC Feature等 • 開発はあまり活発ではない • ソフトウェアプロダクトライン開発は世界的にも根強いテーマ • フィーチャモデリングツールはキラーアプリ不在 • 日本ではZIPCが精力的にツール開発 • プロセスや方法論のサービス・ツールチェーンの一部としてフィーチャツリー ツールを提供。ただし、かなり高価で個人では手を出せない 2016/9/01 30
  31. 31. 参考文献 • Kang, K.他, Feature-Oriented Domain Analysis (FODA) Feasibility Study • Kang, K.他, FORM: A Feature-Oriented Reuse Method with Domain- Specific Reference Architectures • Quinton, C.他, Cardinality-Based Feature Models With Constraints: APragmatic Approach • 野田夏子他, プロダクトライン開発における可変性のモデル化手法 2016/9/01 31

×