モデル保守性メトリクス
モデル保守性ダッシュボードは、MATLAB® コード、Simulink® モデル、Stateflow® チャートなどのプロジェクト内のモデル設計アーティファクトからメトリクス データを収集するモデル設計ダッシュボードです。メトリクス データを使用して、モデル開発ライフサイクル全体で設計内のユニットおよびコンポーネントの保守性および複雑度を評価します。ダッシュボードの各メトリクスは、設計の保守性のさまざまな側面を測定します。モデル保守性ダッシュボード内のウィジェットを使用して、概要レベルのメトリクス結果を確認し、設計内のユニットおよびコンポーネントの複雑度を評価します。
あるいは、API 関数を使用して、プログラムによってメトリクス結果を収集できます。API を使用する場合は、メトリクス識別子 (メトリクス ID) を使用して各メトリクスを参照します。関数getAvailableMetricIds
を使用して、使用可能なメトリクス識別子のリストを返すことができます。
使用可能なモデル保守性メトリクスを以下に示します。モデル保守性ダッシュボードに表示されるセクション別にグループ分けしています。
コンポーネントの構造およびインターフェイス
メトリクス | 説明 |
---|---|
Overall Design Cyclomatic Complexity | ユニットまたはコンポーネントで可能な実行パスの数。 |
Halstead Difficulty | MATLAB コード、Stateflow チャート、および Simulink 設計の全体的な Halstead 難易度を計算。 |
層の深度 | モデル コンポーネントがモデルの階層構造内の何レイヤーの深さにあるのか。 |
Maximum Layer Depth | ユニットまたはコンポーネントのモデルの階層構造内にあるレイヤーの最大数。 |
Layer Breadth | 各アーティファクトに含まれる子モデル コンポーネントの数。 |
Maximum Layer Breadth | ユニットまたはコンポーネント内の単一のモデル レイヤーに含まれる子モデル コンポーネントの最大数。 |
Input and Output Component Interface Ports | コンポーネント インターフェイスへの入力端子および出力端子の数。 |
Input and Output Component Interface Signals | コンポーネント インターフェイスに接続される入力信号および出力信号の数。 |
判定および設計の循環的複雑度
メトリクス | 説明 |
---|---|
Simulink Decision Count | ユニットまたはコンポーネントの各レイヤー内の Simulink 判定の数。 |
Simulink Decision Distribution | ユニットまたはコンポーネント内の Simulink 判定の分布。 |
Simulink Design Cyclomatic Complexity | ユニットまたはコンポーネント内の Simulink モデル コンポーネントを介して可能な実行パスの数。 |
Stateflow Decision Count | ユニットまたはコンポーネント内のチャートに含まれている Stateflow 判定の数。 |
Stateflow Decision Distribution | ユニットまたはコンポーネント内の Stateflow 判定の分布。 |
Stateflow Design Cyclomatic Complexity | ユニットまたはコンポーネント内のチャートを介して可能な実行パスの数。 |
MATLAB Decision Count | ユニットまたはコンポーネントに関連付けられている MATLAB コード内の判定の数。 |
MATLAB Decision Distribution | ユニットまたはコンポーネント内の MATLAB 判定の分布。 |
MATLAB Design Cyclomatic Complexity | ユニットまたはコンポーネント内の MATLAB コードを介して可能な実行パスの数。 |
Halstead 難易度の内訳
メトリクス | 説明 |
---|---|
Halstead Difficulty | MATLAB コード、Stateflow チャート、および Simulink 設計の全体的な Halstead 難易度を計算。 |
Simulink Halstead Complexity | Halstead 複雑度メトリクスを使用して、Simulink モデル内の演算子とオペランドをカウントし、モデルのボリュームと難易度を計算。 |
Simulink Halstead Difficulty | ユニットおよびコンポーネント内の Simulink モデルの Halstead 難易度。 |
Simulink Halstead Difficulty Distribution | ユニットおよびコンポーネント内の Simulink モデル全体での Halstead 難易度の分布。 |
Stateflow Halstead Complexity | Halstead 複雑度メトリクスを使用して、Stateflow チャート内の演算子とオペランドをカウントし、設計のボリュームと難易度を計算。 |
Stateflow Halstead Difficulty | ユニットおよびコンポーネント内の Stateflow チャートの Halstead 難易度。 |
Stateflow Halstead Difficulty Distribution | ユニットおよびコンポーネント内の Stateflow チャート全体での Halstead 難易度の分布。 |
MATLAB Halstead Complexity | Halstead 複雑度メトリクスを使用して、MATLAB コード内の演算子とオペランドをカウントし、コードのボリュームと難易度を計算。 |
MATLAB Halstead Difficulty | ユニットおよびコンポーネント内の MATLAB コードの Halstead 難易度。 |
MATLAB Halstead Difficulty Distribution | ユニットおよびコンポーネント内の MATLAB コード全体での Halstead 難易度の分布。 |
Simulink アーキテクチャ
メトリクス | 説明 |
---|---|
Overall Blocks | ユニットまたはコンポーネント内のブロックの全体的な数。 |
Simulink Blocks | ユニットまたはコンポーネントの各レイヤー内の Simulink ブロックの数。 |
Simulink Blocks Distribution | ユニットまたはコンポーネントの各レイヤー内の Simulink ブロックの数の分布。 |
Overall Signal Lines | ユニットまたはコンポーネント内の Simulink 信号線の全体的な数。 |
Simulink Signal Lines | ユニットまたはコンポーネントの各レイヤー内の Simulink 信号線の数。 |
Simulink Signal Lines Distribution | ユニットまたはコンポーネント内の Simulink 信号線の数の分布。 |
Overall Goto Blocks | ユニットまたはコンポーネント内の Goto ブロックの全体的な数。 |
Simulink Goto Blocks | ユニットまたはコンポーネントの各レイヤー内の Goto ブロックの数。 |
Simulink Goto Blocks Distribution | ユニットまたはコンポーネントの各レイヤー内の Goto ブロックの数の分布。 |
Stateflow アーキテクチャ
メトリクス | 説明 |
---|---|
Overall Transitions | ユニットまたはコンポーネント内の Stateflow 遷移の全体的な数。 |
Stateflow Transitions | ユニットまたはコンポーネント内のチャートに含まれている Stateflow 遷移の数。 |
Stateflow Transitions Distribution | ユニットまたはコンポーネント内のチャートに含まれている Stateflow 遷移の数の分布。 |
Overall States | ユニットまたはコンポーネント内の Stateflow ステートの全体的な数。 |
Stateflow States | ユニットまたはコンポーネント内のチャートに含まれている Stateflow ステートの数。 |
Stateflow States Distribution | ユニットまたはコンポーネント内のチャートに含まれている Stateflow ステートの数の分布。 |
MATLAB アーキテクチャ
メトリクス | 説明 |
---|---|
Overall MATLAB Effective Lines of Code (eLOC) | ユニットまたはコンポーネント内の MATLAB コードの全体的な有効行数。 |
MATLAB Effective Lines of Code (eLOC) | MATLAB コードの有効行数。 |
MATLAB Effective Lines of Code (eLOC) Distribution | MATLAB コードの有効行数の分布。 |