SlideShare a Scribd company logo
もやもやを解消する
モデリング技術の紹介
細合 晋太郎
株式会社チェンジビジョン
第3回astah関西勉強会「もやもやを分解しよう」
UMLだけじゃない
組合せ爆発のもやもやを解消する
小規模なら真理値表・星取表でどうにかできなくもな
い
愚直に指数なオーダー(O(2^n))を相手にするとヤバい
如何に爆発する前に刈り取るかが重要
組合せ因子+制約をすっきり書けるモデル
→ フィーチャーモデル
ソフトウェアプロダクトライン、製品系列を持つソフトウェア
の構成管理に用いられるモデル
組合せ生成Plugin
クラス図を拡張したFeature Modelから、組合せを生成す
るツールを試作してみました
製品系列, ソフトウェアプロダクトライン
組合せ定義:フィーチャモデル
ソフトウェアプロダクトラインのバリエーションの因子
を記述できるモデル
従来は、システム内のバリエーションを記述すること
が多いが、今回はシステム外のモデリングにも使う
木構造で、小要素に対しMandatory(必須)、
Optional(選択)、Alternative(N個から1つ)、Or(N個
から0~N個)といった制約や、要素間にrequires、
excludesといった制約を加えることで、組合せを制限
することができる
FM例
2019/08/29 ©Shintaro Hosoai SES2019 いまどき、モデルベースド開発
4
要素技術
FM
A B
A1 A2 B1 B2
mandatory
alternative
requires
excludes
葉要素の組合せとして
・A1 - B1
・A1 - B2
・A2 - B1
・A2 - B2
を取りうるが、requires/excludes制約で、
A1-B1, A2-B1の組合せに限定される
組合せ生成:SAT Solver
組合せ生成の高速化のため、フィーチャモデルを
SATのCNF形式に変換し、フィーチャモデルを充足す
る組合せを導出している
一度出た組合せはCNFとして追加し、それ以外の組
合せを導出する
組合せが数万件になる場合でも数十秒で全組合せ
を導出することができる
2019/08/29 ©Shintaro Hosoai SES2019 いまどき、モデルベースド開発
5
要素技術
ドキュメント生成: JETT
各フィーチャにはステレオタイプを付与でき、これを
元にテンプレートエンジンにより組合せ情報をExcel
に出力することができる
2019/08/29 ©Shintaro Hosoai SES2019 いまどき、モデルベースド開発
6
要素技術
環境
天候 風速
<<Weather>>
晴れ
<<Weather>>
雨
<<Wind>>
強風
<<Wind>>
微風
<<alt>><<alt>>
天候 風速
<jt:forEach ...> ${scenario.Weather} ${scenario.Wind} </jt:forEach>
Template
天候 風速
晴れ 強風
晴れ 微風
雨 強風
雨 微風
output.xlsx
Demo
シナリオ生成
環境バリエーション
組合わせテスト
フィルタ・クエリ・ハイライト1,2、Diff
Feature Model記述補助
Import, Balk
実績
当初は、Excelで人手管理していたものが、次第にモ
デルだけで完結するようになり、基本モデルが成熟
することで確認作業が格段に減った
基本環境
モデル
~100因子
シナリオ 約800件
拡張
モデルA
+50因子 拡張
モデルB
+80因子 シナリオ 約10万件
シナリオ 約250件
拡張
モデルC
+50因子 シナリオ 600件
検証意図の明示化
全体俯瞰
検証したい項目の全体構造が俯瞰しやすい。検証アーキ
テクチャを確認できる
網羅性の担保
子として想定しているものが列挙できる
Mandatory、Alternative, Optionで関係を明示できる
スコープの明示化
何を対象とし、何を除外するのか明示できる
制約の明示化
制約にメモを付与することで、なぜその制約を課すのか
明示できる
必要に応じて、GSNと組み合わせることでより説明的に意
図を記述できる
おわりに
UML以外のモデルにもご興味を持って頂けたでしょ
うか?
今回の案件で、モデルやモデリングツールの可能
性を強く感じました
組合せ生成ツールもご相談頂ければ、ご提供できる
かもしれません
astahやモデルに関する
ご相談お待ちしております!
【宣伝】astah system safety
SysML, SCDL, STAMP/STPA, GSN入りの安全論証パッ
ケージ。2月頃リリース予定

More Related Content

Similar to UMLだけじゃないもやもやを解消するモデリング技術の紹介 その2 Feature Model

Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要
Shintaro Hosoai
 
UMLモデルを使った自動生成
UMLモデルを使った自動生成UMLモデルを使った自動生成
UMLモデルを使った自動生成
Norihito Ohshima
 
機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns
Hironori Washizaki
 
ADO.NET Entity Framework
ADO.NET Entity Framework ADO.NET Entity Framework
ADO.NET Entity Framework
Microsoft
 
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
Keita Onabuta
 
Database Modeling (2018)
Database Modeling (2018)Database Modeling (2018)
Database Modeling (2018)
Kihyun Kim
 
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
株式会社MonotaRO Tech Team
 
Conceptual Data Modeling Level01 Part01
Conceptual Data Modeling Level01 Part01Conceptual Data Modeling Level01 Part01
Conceptual Data Modeling Level01 Part01
HirohideYazaki
 
Modeling by Verb
Modeling by VerbModeling by Verb
Modeling by Verb
ChangeVision
 
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
hiroya akita
 
UML Not Executable, but Understandable
UML Not Executable, but UnderstandableUML Not Executable, but Understandable
UML Not Executable, but Understandable
Kenji Hiranabe
 
ビジネスモデリングによる問題解決型アプローチ
ビジネスモデリングによる問題解決型アプローチ ビジネスモデリングによる問題解決型アプローチ
ビジネスモデリングによる問題解決型アプローチ
Kent Ishizawa
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
Takao Tetsuro
 
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン
HironoriTAKEUCHI1
 
OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)
OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)
OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)
Shigenori Ueda
 
SIGGRAPH2017勉強会 Dynamic Fabrication
SIGGRAPH2017勉強会 Dynamic FabricationSIGGRAPH2017勉強会 Dynamic Fabrication
SIGGRAPH2017勉強会 Dynamic Fabrication
Eisuke Fujinawa
 
Alloy論理データモデル
Alloy論理データモデルAlloy論理データモデル
Alloy論理データモデル
啓 小笠原
 
uniPaaS RIA Pre
uniPaaS RIA PreuniPaaS RIA Pre
uniPaaS RIA Preskudoh
 
ソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリングソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリング
Toru Tamaki
 

Similar to UMLだけじゃないもやもやを解消するモデリング技術の紹介 その2 Feature Model (20)

Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要
 
UMLモデルを使った自動生成
UMLモデルを使った自動生成UMLモデルを使った自動生成
UMLモデルを使った自動生成
 
機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns
 
ADO.NET Entity Framework
ADO.NET Entity Framework ADO.NET Entity Framework
ADO.NET Entity Framework
 
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
 
Database Modeling (2018)
Database Modeling (2018)Database Modeling (2018)
Database Modeling (2018)
 
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
 
Conceptual Data Modeling Level01 Part01
Conceptual Data Modeling Level01 Part01Conceptual Data Modeling Level01 Part01
Conceptual Data Modeling Level01 Part01
 
What is template
What is templateWhat is template
What is template
 
Modeling by Verb
Modeling by VerbModeling by Verb
Modeling by Verb
 
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
 
UML Not Executable, but Understandable
UML Not Executable, but UnderstandableUML Not Executable, but Understandable
UML Not Executable, but Understandable
 
ビジネスモデリングによる問題解決型アプローチ
ビジネスモデリングによる問題解決型アプローチ ビジネスモデリングによる問題解決型アプローチ
ビジネスモデリングによる問題解決型アプローチ
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン
 
OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)
OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)
OpenModelica tutorials_4 Model customization2 (超初級チュートリアル4.モデルのカスタマイズ2)
 
SIGGRAPH2017勉強会 Dynamic Fabrication
SIGGRAPH2017勉強会 Dynamic FabricationSIGGRAPH2017勉強会 Dynamic Fabrication
SIGGRAPH2017勉強会 Dynamic Fabrication
 
Alloy論理データモデル
Alloy論理データモデルAlloy論理データモデル
Alloy論理データモデル
 
uniPaaS RIA Pre
uniPaaS RIA PreuniPaaS RIA Pre
uniPaaS RIA Pre
 
ソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリングソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリング
 

More from Shintaro Hosoai

astah関西勉強会#2 STAMP Workbenchではじめる安全分析
astah関西勉強会#2 STAMP Workbenchではじめる安全分析astah関西勉強会#2 STAMP Workbenchではじめる安全分析
astah関西勉強会#2 STAMP Workbenchではじめる安全分析
Shintaro Hosoai
 
astah関西勉強会
astah関西勉強会astah関西勉強会
astah関西勉強会
Shintaro Hosoai
 
手抜力
手抜力手抜力
手抜力
Shintaro Hosoai
 
Mqttで始めるIoT
Mqttで始めるIoTMqttで始めるIoT
Mqttで始めるIoT
Shintaro Hosoai
 
Xtext入門
Xtext入門Xtext入門
Xtext入門
Shintaro Hosoai
 
Xtext&Xtend documents
Xtext&Xtend documentsXtext&Xtend documents
Xtext&Xtend documents
Shintaro Hosoai
 
Umlとは
UmlとはUmlとは
Umlとは
Shintaro Hosoai
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介Shintaro Hosoai
 
Eclipse con2010 参加報告 upload
Eclipse con2010 参加報告 uploadEclipse con2010 参加報告 upload
Eclipse con2010 参加報告 uploadShintaro Hosoai
 

More from Shintaro Hosoai (10)

astah関西勉強会#2 STAMP Workbenchではじめる安全分析
astah関西勉強会#2 STAMP Workbenchではじめる安全分析astah関西勉強会#2 STAMP Workbenchではじめる安全分析
astah関西勉強会#2 STAMP Workbenchではじめる安全分析
 
astah関西勉強会
astah関西勉強会astah関西勉強会
astah関西勉強会
 
手抜力
手抜力手抜力
手抜力
 
Mqttで始めるIoT
Mqttで始めるIoTMqttで始めるIoT
Mqttで始めるIoT
 
Xtext入門
Xtext入門Xtext入門
Xtext入門
 
Xtext&Xtend documents
Xtext&Xtend documentsXtext&Xtend documents
Xtext&Xtend documents
 
Xtext practice
Xtext practiceXtext practice
Xtext practice
 
Umlとは
UmlとはUmlとは
Umlとは
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
 
Eclipse con2010 参加報告 upload
Eclipse con2010 参加報告 uploadEclipse con2010 参加報告 upload
Eclipse con2010 参加報告 upload
 

UMLだけじゃないもやもやを解消するモデリング技術の紹介 その2 Feature Model