<< 目次を表示 >> ページ位置: その他の記法のモデリング > チャート > チャートの内容の設定 > ヒートマップ |
棒グラフや円グラフのような一般的な形式の他に、Enterprise Architectでは「ヒートマップ」と呼ばれる形式でモデルの状況を表現できます。このヒートマップとは、対象のデータについて、色や大きさが異なる四角形を組み合わせて構成されます。
ヒートマップは、一般的には戦略レベルやプロジェクトレベルでの決定に影響するような関係のあル情報を可視化するために利用します。例えば、要求を要求の種類ごとにグループ化し、さらにそれぞれの要求の状態ごとに四角形で表現します。それぞれの状態ごとの要求の数が、四角形の大きさを決定します。さらに、それぞれの四角形の色に追加の意味を持たせることもできます。例えば、それぞれの要求に関係する、想定されるコストの和に基づいて計算するコスト値から色を決めることもできます。他の形式のチャートのように、既存のプロパティの値を対象とすることもできますし、独自のSQLを定義してその結果から生成できます。
下の例は、ソフトウェアプラットフォーム内のさまざまな要素の相対的なコストを表現しています。同時に、製品のライフサイクルにおける状況を各セルの色として表現しています。
ヒートマップの利用は、現在のモデルに対して視覚的に異なる視点を示すために利用すると効果的です。例えば、ヒートマップをコスト分析に活用できます。この場合には、タグ付き値や既存のプロパティにコストを示す値を保存し、その値を元に作成します。
利用手順:
ダイアグラム内あるいはモデルブラウザ内のチャート要素を選択し、以下のいずれかの方法でプロパティダイアログを表示します。
リボン |
モデル > 要素 > サブウィンドウ > プロパティダイアログ > ソース |
コンテキストメニュー |
要素を右クリック | プロパティ | プロパティ | ソース |
キーボード |
Alt+Enter | ソース |
その他 |
要素をダブルクリック | ソース |
ヒートマップの設定
チャート要素のプロパティダイアログのソースタブからは、基本的な設定を行うことができます。
項目 |
説明 |
種類 |
ドロップダウンリストから「ヒートマップ」を選択してください。 |
大きさ |
設定ボタンを押し、ヒートマップのそれぞれのセルが示す値を指定してください。セルは、指定した項目の値ごとに作成され、そのセルの大きさはその項目の出現回数で決まります。 例えば、要素の作者を選択した場合には、それぞれのセルの名前は要素の作者名となります。セルのサイズは、それぞれの作者が作成した要素の個数で決まります。 |
グループ |
(任意) 設定ボタンを押して、グループ化する対象の項目を選択してください。 例えば、対象をバグの状態、グループを要素の作者とすると、要素の作者ごとにグループが作成され、その中にその作者が関係するバグ要素が、状態ごとにセルで表示されます。 |
色 |
(任意) 設定ボタンを押して、セルの色を決めるための項目を選択してください。 グループと対象に指定した項目だけでヒートマップを作成する場合には、この項目には何も設定しないでください。 セルの色は、「書式設定」タブにある「定義済みの色の設定」の一覧で指定します。 |
チャートの集計対象 |
チャートの集計対象の範囲を指定します。モデル全体とすることもできますし、特定のパッケージのみを対象とできます。 パッケージを追加するには、「追加」ボタンを押して対象のパッケージを指定してください。 |
ヒートマップの対象をSQLで定義する
ヒートマップに対して、対象のプロパティやパッケージを指定するのではなく、カスタムSQLタブを利用して対象の内容をSQLで取得できます。このタブを選択した場合には、対象やグループなどの選択肢は設定不可能となります。
カスタムSQLタブで定義するSQLでは、以下のような別名を取得結果に設定する必要があります。
独自のSQLクエリの例
例 |
説明 |
例1 |
この例では、それぞれのセルは作者であり、その作者が作成したコンポーネント要素の数で大きさが決まります。
Select t_object.Author AS Series, count(*) AS ChartValue FROM t_object WHERE t_object.Object_Type = 'Component' Group By t_Object.Author |
例2 |
この例では、それぞれのセルはバグの状態を示しています。それぞれのセルは作者でグループ化され、優先度によって色分けされます。この例では、優先度の値の文字列が「高」「普通」「低」によって色分けしています。
Select t_objectproblems.Status AS Series, t_object.Author AS GroupName, t_objectproblems.Priority AS Color,count(*) AS ChartValue FROM t_object, t_objectproblems WHERE t_object.Object_ID = t_objectproblems.Object_ID AND (t_objectproblems.ProblemType='Defect') group by t_objectproblems.Priority, t_object.Author, t_objectproblems.Status order by 1,2,3 |
参照: