Comments
Description
Transcript
モデルの可読性について
モデルの可読性について JMAABメトリクスWG,可読性分析WG JMAABメトリクスWG 可読性分析WG 取り組み内容報告 2014 / 12 / 18 MBD中部コンファレンス 三菱自動車工業株式会社 電子技術部 水谷 将和 自己紹介 現在、モデル開発環境構築担当 モデルガイドラインチェックツール モデルガイドラインチ ックツ ル プロセス改善 JMAABには2007年から参加 レポート標準WG ACG WG Simulink API WG メトリクスWG(2013年度から幹事) 可読性分析WG(幹事) (幹事) 可読性分析 All Rights Reserved by JMAAB 1 目次 モデルの可読性について JMAAB WG活動内容紹介 メトリクスWG 可読性分析WG 今後の活動 All Rights Reserved by JMAAB 2 モデルの可読性について-はじめに <はじめに> モデルがどのようなブロックで、どのように表現したかをレビュー するとき以下の経験はありませんか。 するとき以下の経験はありませんか ・「なんとなくこのモデル分かりにくい」と感じたこと ・「なんとなくこのモデル分かりにくい」と感じたこと、 言われたこと、言ったこと。ただし、何が悪いか不明。 ・膨大なモデルを長時間かけてレビュー。 何をモデルで表現しているか分からず、多くの時間を要した。 これらの問題点を何らかの方法で解消したい これらの問題点を何らかの方法で解消したい。 ・問題を表現したい 簡単 短時間で検証したい ・簡単・短時間で検証したい All Rights Reserved by JMAAB 3 モデルの可読性について-事例 分岐に着目した例 分岐が多く見づらい ・ブロック:14個 ・分岐 分岐 :17個 個 ・注釈 :なし 間違いないかチェック。 All Rights Reserved by JMAAB 4 モデルの可読性について-事例 分岐に着目した例 分岐が多く見づらい ・ブロック:14個 ・分岐 分岐 :17個 17個 ・注釈 :なし 間違 な かチ ク 間違いないかチェック。 実際、怪しい箇所が存在。 分岐元を間違えている。 見づらいモデルは問題も入り込みやすい。モデルレビューによるチェックも大変。 All Rights Reserved by JMAAB 5 モデルの可読性について-事例 分岐に着目した例 見易さ 改善 数値比較 変更後 変更前 ブロック数 10 14 分岐数 9 17 最大論理入力数 2 4 改善されたモデルは、ブロック数などが減少。 モデルデータからモデルの改善箇所が分かる。品質を表す指標となる。 All Rights Reserved by JMAAB 6 モデルの可読性について-まとめ サブシステム単位の領域で取得したデータが、 モデル品質の指標(メトリクス)となる。 数値比較 変更後 変更前 ブロック数 10 14 分岐数 9 17 最大論理入力数 2 4 プ グラムの分野ではソフトウ ア品質特性とその指標(メトリクス)が プログラムの分野ではソフトウェア品質特性とその指標(メトリクス)が ソフトウェア品質特性 ISO/IEC9126に規定されている。 機能性 効率性 信頼性 保守性 使用性 移植性 ただし、モデルはコードより可視的。(同じ処理でも見た目が大きく変わる) モデル特有の品質特性があるはず モデルの品質特性と指標(メトリクス)を検討。 デ 質特性と指標 ク を検討 品質の点数化を目指す。 All Rights Reserved by JMAAB 7 メトリクスWG-目的 モデル品質を数値化し、検証の指標として利用する。 - スタイルガイドラインの OK/NG 判定でなく、 着目点の個数や組合わせによる数値化。 - 人ではなく、ツールによる自動計測。 - モデル独自の評価指標の検討。 All Rights Reserved by JMAAB 8 メトリクスWG-参加メンバー 会社名 11年度 12年度 13年度 アイシン・エィ・ダブリュ株式会社 ○ ○ ○ アイシン精機株式会社 ○ ○ ○ いすゞ自動車株式会社 自 車株 ○ オムロンオートモーティブエレクトロニクス株式会社 ○ ジヤトコ株式会社 ○ ○ スズキ株式会社 ○ トヨタ自動車株式会社 ○ 日立オートモーティブシステムズ株式会社 ○ ○ 現代自動車株式会社 ○ ○ 富士重工業株式会社 ○ 株式会社本田技術研究所 ○ ○ ○ ○ マツダ株式会社 ○ ○ 株式会社ミツバ・株式会社両毛システムズ ○ ○ ○ 三菱自動車工業株式会社 ○ ○ ○ 三菱電機株式会社 ○ ○ ○ 三菱ふそうトラック・バス株式会社 ○ ○ ○ ○ ○ ○ ○ 15社 13社 ヤ ヤマハ発動機株式会社 発動機株式会社 マスワークスジャパン 合計 ○ All Rights Reserved by JMAAB 12社 9 メトリクスWG-活動概要 以下の活動を実施した を実施 ・着眼点の決定(可読性の重要度確認) ・サンプルモデルから重要項目洗い出し ・モデルから測定可能な情報洗い出し ・重点項目の追加と絞込み 重点項 追加と絞込 ・メトリクス測定仕様の作成 ・メトリクス測定方法及び検証 リク 測定方法及 検証 ・流派特定の検討 All Rights Reserved by JMAAB 10 メトリクスWG-可読性の重要性確認 着眼点の決定 ・WGメンバーが測定したいことを集約。 ・ソフトウェア品質特性を参考にマッピング。 ・ソフトウェア品質特性を参考にマッピング ⇒他特性も可読性に関係 ・まずは可読性をテーマにメトリクス検討 まずは可読性をテ マにメトリクス検討 再利用性 移植性 保守性 拡張性 検証容易性 設計解析性 (解析性) 検証解析性 信頼性 成熟性 試験性 可読性 All Rights Reserved by JMAAB 11 メトリクスWG-可読性関連項目 サンプルモデルから重要項目洗い出し プ ・サンプルモデルから可読性の項目リストアップ Inport,Outportブロックの配置が左右端に配置されているほうが分かりやすい ブ が左右端 され る うが分 す 構造レイヤとデータフローレイヤが混在していると分かりにくい All Rights Reserved by JMAAB 12 メトリクスWG-可読性関連項目 モデルから測定可能な情報洗い出し ・モデルから取得可能な情報をリストアップ <Simulinkで取得可能な情報> ・サブシステム内ブロック数 ・処理系を除いたブロック数 ・ブロック種類の数 ・特定ブロックの数 ・信号名 信号名 ・ライン数 ・ドキュメントとのリンク数 など <Stateflowで取得可能な情報> ・チャートの数 ・チャート内の変数の数 チ ト内の変数の数 ・チャート内の状態数 ・チャート内の条件数 ・アノテーションの文字数 アノテ ションの文字数 など All Rights Reserved by JMAAB 13 メトリクスWG-可読性関連項目 重点項目の追加と絞込み ・サンプルモデルから抽出した可読性項目(全59項目)と モデルから取得可能な情報を関連付け。 ・新規の重点項目追加と 新規の重点項目追加と 重点項目の絞込みを実施。(全43項目) 測定項目 測定に必要な 情報と関連 All Rights Reserved by JMAAB 重要項目 判定 キー テクノロジー 14 メトリクスWG-メトリクス測定仕様 メトリクス測定仕様の作成 ・重点項目について点数算出に必要な情報をまとめた。 項目は、ID、メトリクスカテゴリ、項目名、OK基準、測定対象、 チューニング要素(測定と点数化)、メトリクス算出単位、 メトリクス評価式、補足図。 All Rights Reserved by JMAAB 15 メトリクスWG-メトリクス測定仕様事例 メトリクス測定仕様事例 項目 : 入出力ポートが左右に配置されていると分かりやすい 判定方法 : Inportが緑枠に入っているか。Outportが青枠に入っているか。 メトリクス評価式 : 枠内に入らなかったポート数 枠内に入らなかったポ ト数 ÷ (Inport総数 (I t総数 + Outport総数 O t t総数 ) NG (x1, y1) NG (x2, y2) ユーザ指定幅 ユ ザ指定幅 xd ユーザ指定幅 ザ指定幅 xd xd = デフォルトのポート幅のK倍 K : ユーザ指定値 All Rights Reserved by JMAAB 16 メトリクスWG-メトリクス測定仕様事例 メトリクス測定仕様事例 項目 : 分岐やジャンクションの数が多すぎるとわかりにくい 判定方法 : 条件分岐とジャンクション数をそのまま点数化 メトリクス評価式 : 条件分岐 条件分岐、ジャンクションと点数のマップにより点数化 ジャンクションと点数のマップにより点数化 マップ 点数 分岐が多い 条件分岐 ジャンクシ ン ジャンクション ジャンクションの総数が多い All Rights Reserved by JMAAB 17 メトリクスWG-メトリクス測定仕様まとめ ID 項目 SLL_01 信号線の引き方 SLL_02 信号線の分岐が見づらくないこと D 11 ID 項目 担当サブWG 旧(Excel)No モデルの階層ごとの 信号線の数の比率が大きすぎないこと モデルの階層ごとの、信号線の数の比率が大きすぎないこと A 68 SML_01 構造レイヤとデータフローレイヤを混在させないこと B 13 信号線が無意味に折れ曲がっていないこと D 10 SML_02 冗長的な部分がないこと D 43 信号線の引き方 D 4 項目 SML_03 ID 意図が不明な無駄なモデリングをしないこと C 担当サブWG 44 旧(Excel)No Stateflowの遷移線 D 12 BLK 01 サブシステム名 Inport Outportブロック名称は意味のある名称を命名すること サブシステム名、Inport,Outportブロック名称は意味のある名称を命名すること SML 04 BLK_01 SML_04 A:同じ動作をしているサブシステムやレイヤはマスク化・ライブラリ化等をすること A 30 B:類似する機能のブロックは極力ライブラリ化されていること 信号命名はルール化されていること B 41 23 D BLK_02 文字やアイコン表示が確認できるサイズに調整すること B 22 分岐点が規定値以下である A 65 BLK_03 無駄な処理がないこと C 42 SML_05 ・意味の無いレイヤを設けないこと C 24 上位要求が判ること D 56 BLK_04 (一つのブロックに接続する)信号線が多すぎないこと C 9 SML_06 同じ組み合わせの入力信号を使って演算している、サブシステムの数 A 69 パラメ タ設定(定数)は物理単位ベ スで表示 パラメータ設定(定数)は物理単位ベースで表示 C 55 BLK_05 ブロック、信号を未接続のままにしないためにGround、Terminatorを使っている箇所では A 8 、その理由が判るようにコメントすること SML_07 サブシステム内部のブロック数の傾向と、第2階層以下、或いは別のモデルとの傾向の B 62 ずれ BLK_06 処理順序、優先度が理解できように番号がつけられていること C 37 SLL 03 SLL_03 SLL_04 SLL_05 SLL_06 SLL_07 SLL_08 OTR_01 OTR 02 OTR_02 担当サブWG 旧(Excel)No C 3 SML_08 BLK_07 必要の無いサブシステム階層の発見 定数の直書きは極力せず、適合変数化されていること SML_09 GRL_01 信号名が適切に表示されていること 型を小さくする目的でSaturationを利用しないこと GRL_02 データフローの流れが左から右に流れるようにすること 複雑なフィードバック線はないこと SML_10 GRL_03 A:条件分岐やジャンクションが多すぎないか B:フローチャートの基本パターンどおりか B:フロ チャ トの基本パタ ンどおりか GRL GRL_04 04 ブロックや状態の(隣との)間隔が狭すぎないこと C A 63 A D A 21 64 B B A 54 14 6 66 18 SML_11 GRL_05 ライブラリ化の割合 A:色はルールを決めて遵守すること B:色使いの意味が明確になっていること ANT_01 A:レイヤに対する説明があること B:サブモデルの処理機能が記載されていること GRL_06 レイヤ全体を見るためにかなり縮小しないといけないほどレイヤを大きくしないこと C ANT 02 GRL_07 ANT_02 なぜ なぜ、ブロック間でその信号を渡しているのかが分かること。 ク間でその信号を渡しているのかが分かること GRL 07 ブロ全体としてのバランスや見易さの人の感覚の定量化 B C 59 71 ANT_03 GRL_08 意味のある遷移線にコメントがあること 条件付実行サブシステムの重構造 B D 29 60 ANT_04 GRL_09 重要なパラメータはブロックアノテーションで表示すること Inport,Outportブロックの配置 B C 26 1 All Rights Reserved by JMAAB GRL_10 レイヤ内のブロックやアノテーションの配置が、無意味に散らばっていないこと B D A A 67 28 32 46 19 メトリクスWG-メトリクス測定仕様検証ツール メトリクス測定方法の検討 ・アイシンAW様で作成中のメトリクスツールをベースに検討。 ・検証モデルのデータや結果は、Excelで表現。 (ワ クス (ワークスペース上にも保存) ス上にも保存) ・メトリクス仕様の妥当性をツールを使用して評価した。 Excel Excel ブロック プロパティ 情報 モデル 対象箇所 モデル 中間 デ タ データ Excel Excel メトリクス 計算必要 情報 メトリクス 計算結果 中間 デ タ データ All Rights Reserved by JMAAB 中間 デ タ データ 結果 (点数) 点数 19 メトリクスWG-メトリクス測定仕様の検証 項目:データフローの流れが左から右に流れるとよい <評価観点> -モデルの表示領域 -フィードバック線 フィ ドバック線 トレードオフを意識してサンプルモデルを作成し、検証。 同じ処理を表現のみ変更し検証。 ・データの流れを左から右 デ ・縮小表示 表 収まる ・100%表示で収まる ・逆走線で接続 All Rights Reserved by JMAAB ・100%表示で収まる 表 収まる ・逆走線を消去 20 メトリクスWG-メトリクス評価検証 項目:データフローの流れが左から右に流れるとよい トレードオフ項目の違いが比較できるように、モデル作成した。 <トレ ドオ 項目> <トレードオフ項目> -モデルの表示領域 -フィードバック線 フィ ドバック線 ランキング モデル概要 全て接続(縮小しない と全体表示不可) 100%表示にするため逆走 線で折り曲げた 100%表示、逆走線消去 (Goto/From利用) 作成者観点 3位 2位 1位 ツール結果 2位 1位 3位 ・作成者観点の結果とツールで異なる結果。 作成者観点の結果と で異なる結果 ・原因はGoto/Fromブロックに関する影響が大きい。 ・モデル全体の点数は、トレードオフ関係となるものを考慮し、 全仕様の影響確認と点数の調整が必要となる。⇒調整困難。 All Rights Reserved by JMAAB 21 メトリクスWG-メトリクス評価検証 モデル … 逆走数 逆走の長さ … -0.25 -0.21 … 0 0 … 合計 … -12.36 … -11.9 各測定項目同士の比較は有効。 ただし、同じモデルの小修正でなどは比較可能だが、 内容や書き方が異なるモデルは 結果判断ができなか た 内容や書き方が異なるモデルは、結果判断ができなかった。 All Rights Reserved by JMAAB 22 メトリクスWG-メトリクス評価検証 <点数評価のまとめ> ・絶対評価は困難、相対比較は有効な場合がある。 ・相対比較が困難な場合は、 比較するものの規模や内容がまったく異なる。 比較するものの規模や内容がま たく異なる モデルの記載方法がまったく異なる。 ・ある程度のモデル記載方法(流派)を統一する必要がある。 ・流派の混在を測定する。 流派の混在を測定する All Rights Reserved by JMAAB 23 メトリクスWG-流派特定の検証 流派をグラフで表現。ブロックサイズと信号線の折れ曲がりに着目。 <ブロックサイズ統一モデル> <信号線直線モデル> 信号線の始点と終点の角度 (円の大きさが対象の線の数) 角度0° Productブロックの ブ ク 高さと入力ポート数の関係 ポート数 2 ブロック高さ All Rights Reserved by JMAAB 24 メトリクスWG-流派特定検証の考察 判定(閾値決定)やパターンの具体的な検出は困難。 実際に結果は以下の図があるのみ(同じモデル内しか比較できない) 角度0° この結果はOK?,NG? ブロックサイズ統一化の観点 での、複数のサブシステムを まとめて測定 ズレは何パタ ン? ズレは何パターン? でも作成観点は同じ All Rights Reserved by JMAAB 25 メトリクスWG-まとめ • モデルの点数化や流派の特定は課題が残った。 • モデルの可読性は自由度高いため モデルの可読性は自由度高いため、ガイドラインを守ったとしても ガイドラインを守ったとしても 様々なパターンの有効な書き方が存在することが分かった。 (下の例、ブ ックサイズ統 化vs信号線の直線化) (下の例、ブロックサイズ統一化vs信号線の直線化) • モデルでどの様な記載パターンがあるのか、まとめるべき。 <Inport/Outportの配置について> サブシステム脇に配置 階層の左右に配置 TmpOutE1 InputA All Rights Reserved by JMAAB 26 可読性分析WG-WGの目的 <目的> • モデルの記載ばらつきをなくす。 • モデルの読み書きに迷いを減らす。 • 自動変換機能を作成することにより、統一化を容易とする。 <ゴール> • モデルの記載パターンをまとめる。 • パターンのメリットやデメリットを明確にする。 All Rights Reserved by JMAAB 27 可読性分析WG-メンバー 1. 2. 3 3. 4. 5 5. 6. 7. 8. 9. 10 10. 11. アイシン・エィ・ダブリュ株式会社 株式会社コマツ製作所 スズキ株式会社 日立オートモーティブシステムズ株式会社 マスワークスジャパン マスワ クスジャパン マツダ株式会社 株式会社ミツバ・株式会社両毛システムズ 三菱自動車工業株式会社 三菱電機株式会社 三菱ふそうトラック・バス株式会社 ヤマハ発動機株式会社 All Rights Reserved by JMAAB 可読性分析WG-まとめ方法 メトリクスWGでまとめた可読性メトリクス仕様を題材とした。42項目。 様 ID SLL_01 SLL_02 SLL_03 SLL 04 SLL_04 SLL_05 SLL_06 SLL_07 SLL_08 OTR_01 OTR_02 項目 担当サブWG 旧(Excel)No ID 項目 担当サブWG 旧(Excel)No 信号線の引き方 C 3 SML_01 構造レイヤとデータフローレイヤを混在させないこと B 13 信号線の分岐が見づらくないこと D 11 項目 SML_02 ID 冗長的な部分がないこと D 担当サブWG 43 旧(Excel)No モデルの階層ごとの、信号線の数の比率が大きすぎないこと A 68 p p と サブシステム名、Inport,Outportブロック名称は意味のある名称を命名すること 意図が不明な無駄なモデリングをしないこと 意図が不明な無駄な デリングをしな SML_03 BLK_01 A 30 C 44 信号線が無意味に折れ曲が ていないこと 信号線が無意味に折れ曲がっていないこと D 10 文字やアイコン表示が確認できるサイズに調整すること SML_04 BLK_02 A:同じ動作をしているサブシステムやレイヤはマスク化・ライブラリ化等をすること B 22 信号線の引き方 D 4 B:類似する機能のブロックは極力ライブラリ化されていること B 23 BLK_03 無駄な処理がないこと C 42 Stateflowの遷移線 D 12 BLK_04 (一つのブロックに接続する)信号線が多すぎないこと C 9 SML_05 ・意味の無いレイヤを設けないこと 信号命名はルール化されていること C 41 24 D BLK_05 ブ ブロック、信号を未接続のままにしないためにGround、Terminatorを使っている箇所では SML_06 同じ組み合わせの入力信号を使って演算している、サブシステムの数 分岐点が規定値以下である A 8 A 65 、その理由が判るようにコメントすること A 69 上位要求が判ること D 56 BLK_06 処理順序、優先度が理解できように番号がつけられていること C 37 SML_07 サブシステム内部のブロック数の傾向と、第2階層以下、或いは別のモデルとの傾向の B 62 パラメータ設定(定数)は物理単位ベースで表示 C 55 ずれ BLK_07 定数の直書きは極力せず、適合変数化されていること A 54 SML_08 必要の無いサブシステム階層の発見 GRL_01 信号名が適切に表示されていること SML_09 GRL_02 データフローの流れが左から右に流れるようにすること 型を小さくする目的でSaturationを利用しないこと GRL_03 複雑なフィードバック線はないこと C A 63 A D B 21 14 64 6 GRL_04 GRL 04 ブロックや状態の(隣との)間隔が狭すぎないこと ブ ックや状態の(隣との)間隔が狭すぎないこと A 条件分岐やジャンクションが多すぎないか A:条件分岐やジャンクションが多すぎないか B:フローチャートの基本パターンどおりか GRL_05 A:色はルールを決めて遵守すること B:色使いの意味が明確になっていること ライブラリ化の割合 GRL_06 レイヤ全体を見るためにかなり縮小しないといけないほどレイヤを大きくしないこと A:レイヤに対する説明があること B:サブモデルの処理機能が記載されていること GRL GRL_07 07 全体としてのバランスや見易さの人の感覚の定量化 C ANT_02 なぜ、ブロック間でその信号を渡しているのかが分かること。 GRL_08 条件付実行サブシステムの重構造 B D 59 60 ANT_03 意味のある遷移線にコメントがあること GRL_09 Inport,Outportブロックの配置 B C 29 1 重要なパラメータはブロックアノテーションで表示すること GRL_10 レイヤ内のブロックやアノテーションの配置が、無意味に散らばっていないこと B A 26 19 SML 10 SML_10 SML_11 ANT_01 ANT_04 All Rights Reserved by JMAAB A B 18 66 D 32 67 A B C 46 28 71 29 可読性分析WG-進捗 • 15個のパターンを作成した。以下観点でまとめた。 項目(メトリクス仕様の観点) パターン検出時の着目点 パターン内容 パタ ン内容 利点となる場面 All Rights Reserved by JMAAB 30 可読性分析WG-パターン事例 メトリクス仕様での観点:1ブロックに接続する信号線が多すぎると分かりづらい ブ ぎ づ パターンA パターンB 着目点 演算ブロックの接続信号の数 内容 一定以上の数の入力を制限し、 カスケード接続 入力数を制限せず、 1ブロックで表現 利点となる 場面 実行順序を指定する場合 沢山の信号のANDや演算を1ブロッ 沢山の信号のA や演算を1ブ クで表現可能となり、単純化され見 やすい。 モデル 事例 All Rights Reserved by JMAAB 31 可読性分析WG-パターン事例 メトリクス仕様での観点:条件分岐やジャンクションが多すぎると分かりづらい ぎ づ パターンA パターンB 着目点 条件の記載方法 内容 条件を一纏めにする [ AA && BB && CC] アンド条件をひとつずつ ジャンクションで区切る 利点となる 場面 モデルを読むときにまとまった形で デルを読むときにまとま た形で 読みやすい。線が少なく単純。 シミュレーションの時、どの条件が シミ レ シ ンの時 どの条件が 成立したかがわかりやすい。 モデル 事例 All Rights Reserved by JMAAB 32 可読性分析WG-今後 <パターン検討項目の拡大> • JMAABガイドラインの各ル JMAABガイドラインの各ルールに対して検討する ルに対して検討する。 (ガイドラインWGと連携) <期待> • JMAABガイドライン発行時に 各ルールに対するパターン案を提供したい。 • 単独でパターン集が存在するより、 ル ルと紐づいたほうが MBD関係者にと て利用しやすい環境 ルールと紐づいたほうが、MBD関係者にとって利用しやすい環境。 All Rights Reserved by JMAAB 33