SWEST15 いま、なぜ、モデル駆動開発なのか (株)富士通コンピュータテクノロジーズ 組込みシステム技術統括部 アーキテクチャ部 江口 亨 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 自己紹介 江口 亨(えぐち http://youtu.be/ cSb7xCaQFO8 とおる) http://www.facebook.com/toru.eguchi.7 twitter @eguchitoru 最近の趣味はクワッドコプター ㈱富士通コンピュータテクノロジーズ 組込みシステム技術統括部 アーキテクチャ部 R&D、開発支援、ツール開発 モデル駆動開発ツール「BricRobo」2012年末リリース ETロボコン2013 開発支援スポンサー Facebookページ:https://www.facebook.com/FujitsuBricRobo BricRobo User Community: https://www.facebook.com/groups/BricRoboUserCommunity/ 2 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデルXXXの種類と知名度 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 扱う対象の抽象度よる定義 実装しない? 半自動 +ハンドコード (ほぼ) コード生成自動 MBSE 人 社会 サブシステム メカ エレキ ソフトウェア エレキ ソフトウェア モデルベース システムズ エンジニアリング MDD モデル駆動開発 MBD モデルベース開発 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 扱う対象の粒度の範囲 MBSE 上流 モデルベース システムズ エンジニアリング MDD モデル駆動開発 MBD モデルベース開発 下流 5 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 単語の知名度 Google UML MBD Simulink IBM Rhapsody モデルベース オブジェクト指向 Amazon SysML MBSE モデルベース開発 UML モデル駆動開発 MBD 1 100 10,000 1,000,000 100,000,000 Simulink 件数 Googleで単語を検索したときのヒット件数 IBM Rhapsody モデルベース オブジェクト指向 SysML MBSE モデルベース開発 モデル駆動開発 1 10 100 1000 10000 件数 Amazonで単語を検索したときのヒット件数 2013年7月現在 6 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデルの流行り廃り C++、Java 実装言語との相性 スクリプト型言語 関数型言語 UML オブジェクト指向 SysML システム of システムズ Simulink ¥ 7 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデル駆動開発の良さ 8 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 従来はドキュメント駆動開発 生産物 要件定義書 コピペ 基本設計書 コピペ 参照 参照 詳細設計書 ? ソースコード 9 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデル駆動開発はモデルが原本 マスター モデル 変換 ソースコード 10 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED トレーサビリティ的な観点で見る 要求1 要求2 テストケース <<verify>> <<refine>> Ac t iv it y 1 Us e C a s e 1 allocate Ac t or1 <<satisfy>> C la s s 1 C la s s 2 o1 :C la s s 1 C la s s 3 o2 :C la s s 2 o3 :C la s s 3 <<instanceOf>> <<instanceOf>> 11 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 階層的な観点で見る Sy s t em1 Sy s t em2 全体を俯瞰 System of Systems レベル Sy s t em3 System レベル SubSy s t em21 SubSy s t em22 HW1 SW1 Element レベル SW2 Component レベル 興味のあるところをクローズアップ 12 C la s s 1 C la s s 2 C la s s 3 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED トレースできるモデル変換が大事 簡素な モデル 時 間 の 流 れ 詳細な モデル + PIM モデル 参照 PSM モデル ある視点の モデル 最初のモデルの 形がわからなくなる 意図が伝わらない ベースの モデル 参照 参照 別の視点の モデル 仕向の モデル 13 ⊿ 元のモデルを 参照しながら、 派生モデルを 開発できることが 重要 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデル駆動開発の導入障壁 14 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 開発手法を切り替えるには 問題 対内的 上司説得 メンバ理解 教育 対外的 工程区分 工程管理 テスト方法 版数管理 計測方法 ドキュメント体系・形式 品質 生産物 水平展開 従来手法 との対比 新手法導入過程 再検討 引き返し限界点 新開発手法 新開発手法 従来開発手法 新手法がうまくいかないとき、 従来に切り替えて間に合う限 界点の設定が重要 《うまくやるためのコツ》 少人数、小規模、顧客との合意、部分適用 15 Copyright 2009 FUJITSU COMPUTER TECHNOLOGIES LIMITED 過去に実践したアジャイル? 要望 信頼関係 上位顧客 価値 開発リーダー 顧客 要件リスト 要件 要件 1回分→ 要件 要件 要件 開発チーム 2週間~1ヶ月 16 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデリングの手順 17 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED システムのモデリングの手順例1 ユースケースを挙げる システムとアクターのやり取り システム Actor1 Us e C a s e1 Act or1 システムの アクティビティを抽出 サブシステムに アクティビティを割り当て 開始 どうやってサブシステムを発見するか? Act iv it y 1 サブシステム1 サブシステム2 サブシステム3 開始 Ac t iv it y 1 Act iv it y 2 Ac t iv it y 2 Act iv it y 3 終了 Ac t iv it y 3 終了 18 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED システムのモデリングの手順例2 ユースケースを挙げる 個々のUCの振る舞い 開始 操作 開始 Ac t iv it y 1 Act or1 Us e C a s e1 St a t e1 イベント Ac t iv it y 2 St a t e1 Requirement1 St a t e1 ユ ー スケー ス記述 終了 アクターとシステムのやり取り 抽象的単語 固有名詞1 固有名詞2 Actor1 単語1 単語2 単語3 操作() 要求・UC記述から 単語を抽出整理 操作() 19 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED サブシステムのモデリング C la s s 1 + 操作() :void Object1 :Class1 Actor1 操作() 操作 Ob ject 1 Act or1 1. オブジェクトに対するクラスを定義 2. オブジェクトに対する操作をクラスに追加 3. シーケンス上の操作をクラスの操作に置き換え 4. クラスをシステムと捉え直し 20 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデル駆動開発の事例 21 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED ETロボコン アーキテクト部門 競技規約 やはり、取っ掛かりはマインドマップ 22 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED ETロボコン アーキテクト部門 競技規約 凡例 優秀な上位N位までを表彰 実行委員会から提供、競技者利用可能 競技者が競技フィールド に持ち込むことができる AC 電 源 利用する 競技者が持ち込める 0..* 優秀な参加者 E T ロ ボ コ ン 2013 ア ー キ テ クト部門 +設置 1 N 1 シ ステ ム 1 参加者 操作台 1 利用する * 0..* 競技者 走行体 1 0..1 コー ス 得点:=a.得点+b.得点 審査 + <<不変条件>> {xor} ベー シ ック・ステ ー ジ スタートする 走行する 得点 坂道 競技会場で当日に実施 第 1中 間 ゲ ー ト 1 第 2中 間 ゲ ー ト 競技会前に事前に実施 第 3中 間 ゲ ー ト +a 第 4中 間 ゲ ー ト 通信する 通過する 1 +b 設置する、 操作する、 撤収する 0..1 E T ロ ボ コ ン 2013ア ー キ テ クト 部門競技規約 競技審査 競技方法 + 企画審査 得点 + + +a +b 競技の魅力審査 + + 審査する 得点 満点 = 200点 得点 満点 = 100点 審査する 企画書と 当日のパフォー マン スの 一致性評価 + + 審査する 審査方法 E T ロ ボ コ ン 2013ア ー キ テ クト 部門審査規約 動作する パ フォー マン ス・ステ ー ジ 1 ガジ ェット 動作する 0..1 競技者 1 審査方法 <<不変条件>> {動作範囲の厳密さを問わない} 審査方法 マイク 得点 満点 = 100点 プレゼンする 0..1 審査する 1 プ レ ゼ ン テ ー シ ョン ビ デ オ ビ デ オプ ロ ジ ェクタ ー 表示する 審査する 1 審査する 1 審査する 1 審判する 1 1 一般審査員 1 実行委員会審査員 特別審査員 実行委員会審査員 表示する 上映する 特別審査員 審判 計 測 シ ステ ム 操作する 1 計測係 一般審査員 審査を投票する 1 審査員 審査員 モデルを作ってから文章をおこすと 言葉を共通にでき、矛盾がない規約を作りやすい 23 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 後付モデルの残念な派生開発 プ ロ ジェクタ ー 1 ゲ ー ム パッド 1 USBハブ USB延長ケー ブ ル 1 1 1..2 1 1 1 1 計測システ ム 1 1 計測係 審判 コー ス :プ ロ ジェクタ ー :計測システ ム 主審 :審判 <<PPTファイル>> 対戦カー ドデ ザイン <<WAVEファイル>> 効果音 再生 <<XMLファイル>> バックア ップ ファ イル 再生 <<WMV、MP4など>> ビ デ オファ イル 生成 :計測係 副審 :審判 アー キ テ クト部門コー ス :コー ス 再生 計測シ ステ ム 読み書き <<EXCELファイル>> 参照 出走表 1 <<EXCELシート>> チー ム 一覧 notes 出場チームの一覧で す。 他地区のチームも含 んでいて構いません。 ゼッケンを付けたチー ムが対象となります。 1 1 <<EXCELシート>> 対戦カー ド notes デベロッパー部門の対戦表 です。INコースとOUTコース の対戦チームをゼッケンで 表します。 <<EXCELシート>> 競技結果 notes デベロッパー部門の 競技結果です。計測 システムが結果を記 録します。 1 <<EXCELシー... 総合結果 notes モデル審査点を入 力すると、調和平 均で総合順位を計 算します。 1 <<EXCELシート>> ア ー キ テ クト出場順 notes アーキテクト部門の 出場順番です。ゼッ ケンで表します。 1 <<EXCELシート>> ア ー キ テ クト部門競技結果 notes アーキテクト部門の競技結果 です。計測システムが記録し ます。 デベロッパー部門専用 アーキテクト部門専用 デベロッパー部門・アーキテクト部門共通 24 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED クワッドコプター自律飛行システム てん と う虫 notes 4枚のローターを持つ小型ヘリコプター。 ラジコンのおもちゃ。 電波によるラジコン。 映像 2.4GHz無線 ステ レ オカメラ プ ロ ポ 筐体 notes notes 物体を2方向から捉えるカメラ。 視差や直行による3次元空間の 計測をする。 ヘリとセットのラジオコントロール 装置。電波を利用する。人が素敵 っくを操作して、ヘリを操縦する仕 組みであるが、改造して、外部か ら電圧を掛けて、人の操縦を模擬 する。 画像 制御電圧 Ard u in o notes PC notes 制御値 一般的なパソコン。 25 8ビットマイコン(Atmel)を搭載する マイコンボード。世界的に有名で 手に入りやすい。 これにDAコンバータを搭載して、 任意の電圧を出来るようにする。 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED ハードウェアハッキング プ ロ ポ 筐体 基板(左) 基板(右) 基板(中) 上下 (throttle) フラットケーブル +VCC 2chレ バー (左) フラットケーブル 2hレ バー (右) 左右 (roll) 前後 (pitch) 回転 (yaw) 電池 USB出力 GND pin0 pin1 pin2 Ard uino pin3 GND 5ピ ン コネクタ オス ユ ニバー サルシー ルド Ch.1 DAC 2ch右 Ch.0 +Vcc GND DAC 2ch左 Ch.0 Ch.1 USBコネクタ スティックを倒すとボリュームが回り、電圧値が変化 ならば、Arduino+DAコンバータで騙せばPCから制御できる? 26 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED SysMLの内部ブロック図(的)な記法 通常、ヘリコプターを人間が操縦する場合 デジタル映像 ヘリコプ タ ー 位置計測器 カメラ image 映像 映像 映像 ヘリコプター3次元位置 image 自動操縦器 position position 4チャネル操縦 4チャネルコマンド 電波 4チャネルコマンド プロポ 直流電圧 電圧 Ard uino 4チャネル操縦 電圧 デジタルステック捌き スティック 映像 CompositionType スティック捌き <<TopLevel>> Pos it ioning Sub Sus t em:: Det ect Bunb unPos it ion 手 操縦者 眼 + DetectBack() :void + GetLocation(int*, int*, int*) :int + Init() :void <<RunnableEntity>> + RunCaptureBack() :void + RunDelImg() :void + RunDetectPosition() :void BricRoboで モデリング http://youtu.be/rMf1NsJ97n8 27 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 位置計測の難しさ http://youtu.be/pZovvBC7NLc 出展: Viola&Jones CVPR2001 http://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/ viola-cvpr-01.pdf 図形でHaar-like検出器 真面目にHaar-like検出器 http://youtu.be/JXIS8SQGL5E 致命的弱点 http://youtu.be/xmpJ9YF7CMw 28 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 位置計測の難しさ http://youtu.be/P3IXsHZHwMc 移動に強いHaar-like検出器 http://youtu.be/wh16kqVCTLQ 背景除去 29 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 位置計測器のBricRoboモデル CompositionType Det ect Bunb unPos it ion + DetectBack() :void + GetLocation(int*, int*, int*) :int + Init() :void <<RunnableEntity>> + RunCaptureBack() :void + RunDelImg() :void + RunDetectPosition() :void C APT URE : BrC v Vid eoC a p t ure camNo = 1 notes カメラから映像をキャ プチャして、1枚の画 /image / image 像を出力する。 BAC K C LONE : BrC v C lone BAC K IMG : BrC v Ima g eBuffer notes notes キャプチャ画像は上 書きされるのでクロ ーンする。 /original /clone OpenCVの機能を部品化 背景画像を溜める。 /in DE LIMG _DIF F : BrC v Relea s eIma g e /out /image DE LIMG _G RAY : BrC v Relea s eIma g e DE LIMG _BIT : BrC v Relea s eIma g e /image /image WINDOW :BrC v Wind ow DIF F :BrC v Ab s Diff notes 背景画像とキャプチャ画像 を絶対値差を得る。 RG B2G RAY : BrC v C v t C olorRG B2G RAY notes 色空間をRGBからグレーに変 換する。 /in1 /out /in2 /out /in G RAY 2BIN : BrC v T hres hold G RAY 2BIN notes threshold = 80 画像をウィンドウに表示する。 notes POSIT ION :BrC v C a lcXY Z XY Z 2ST R :BrC v XY Z 2Sring notes notes notes モーメントからXYZ位置を計 算する。 /image しきい値で、色空間をグレー から2値に変換する。 /outBin /inGray MOME NT :BrC v Moment モーメントを求める。 windowName = "LadyBunBun" XY Z T XT :BrC v Put T ex t XYZ座標値を文字列に変換す る。 /text /image /moment /moment /xyzPosition /string /xyz positionX = 0 positionY = 20 colorB = 0 colorG = 0 colorR = 255 notes 画像に座標テキストを書き 込む。 /outImage /inImage G E T LOC : G et Pos it ion /xyz モデルをFacebookに公開予定 BricRobo User Community https://www.facebook.com/groups/BricRoboUserCommunity/ 30 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED ドメイン固有の知識はモデリングできるのか? 一気に上昇しないと飛び立てない 自動航行 PID? カルマンフィルター? 地表付近の風の跳ね返り 地面 31 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED モデル作成の時間的推移 作成 修正 8月14日 8月14日 7月25日 7月25日 7月5日 7月5日 6月15日 6月15日 モデルが修正されている部分 5月26日 5月26日 5月6日 5月6日 4月16日 4月16日 0 100 200 300 400 0 50 100 150 200 250 300 350 400 Elementの累積個数 32 Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 33 Copyright 2010 FUJITSU COMPUTER TECHNOLOGIES Copyright© 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED
© Copyright 2024 Paperzz