プロジェクトの依存関係の解析
依存関係アナライザーを使用して、プロジェクトの依存関係の解析を行います。依存関係の解析は、ワークフローのどの時点でも実行できます。共同作業の環境では、通常は次の場合に依存関係をチェックします。
プロジェクトを初めて設定または探索するとき
設計変更を検証するためのテストを実行するとき
プロジェクトのバージョンをソース管理に送信する前
プロジェクトを共有またはパッケージ化する前
プロジェクトを探索し、さまざまなビューを使用してプロジェクトの構造を可視化するには、依存関係グラフ、ビュー、フィルターの探索を参照してください。
プロジェクト内の問題を見つけて修正するには、問題の調査と解決を参照してください。
変更が他のプロジェクト ファイルに与える影響を評価するには、ファイルの依存関係の特定を参照してください。
プロジェクトを適切に実行するために必要なアドオンおよび製品を見つけるには、必要な製品とアドオンの特定を参照してください。
依存関係の解析の実行
依存関係の解析をプロジェクトで実行する前に、すべてのファイルをプロジェクトに追加していることを確認します。詳細については、プロジェクトへのファイルの追加を参照してください。
プロジェクトの解析を開始するには、[プロジェクト] タブの [ツール] ギャラリーで、[依存関係アナライザー] をクリックします。あるいは、プロジェクトの [表示] ペインで、[依存関係アナライザー] を選択して [解析] をクリックします。
特定のファイルの依存関係を解析するには、依存関係グラフでファイルを選択します。[影響解析] セクションで、[すべての依存関係] をクリックするか、コンテキスト メニューを使用して [すべての依存関係の検索] を選択します。
アドオン内での依存関係を解析するには、[解析] 、 [アドオン] を選択します。使用可能なオプションの詳細については、解析範囲 (Simulink)を参照してください。
プロジェクト内で直接依存関係をチェックすることもできます。プロジェクトの [ファイル] ビューで、解析するプロジェクト ファイルを右クリックして [依存関係を検索] を選択します。
依存関係グラフには次が表示されます。
モデル、ライブラリ、関数、データ ファイル、ソース ファイルおよび派生ファイルなどのファイルが互いにどのように関係しているかを含む、プロジェクトの構造とそのファイルの依存関係。
必要な製品とアドオン。
ソース ファイルと派生ファイル間 (
.m
ファイルと.p
ファイル、.slx
と.slxp
、.ssc
と.sscp
または.c
ファイルと.mex
ファイルなど) および C/C++ ソース ファイルとヘッダー ファイル間の関係。各モデルによって生成されるコードを確認し、モデルを変更すると再生成が必要になるコードを特定します。不足しているファイル、プロジェクトに存在しないファイル、未保存の変更があるファイル、期限の切れた派生ファイルなど、問題のあるファイルに関する警告。
プロジェクトの依存関係および問題のあるファイルについては、[ファイル リスト] で調べることができます。ツールストリップで、[ファイル リスト] をクリックします。
プロジェクトの最初の依存関係の解析を実行した後、後続の解析では結果が増分更新されます。依存関係アナライザーは、前回の解析以降に変更があったファイルを特定し、それらのファイルの依存関係データを更新します。ただし、アドオンまたはインストール済み製品を更新する場合にその依存関係の変更を検出するには、完全な解析を実行しなければなりません。完全な解析を実行するには、依存関係アナライザーで、[解析] 、 [すべて再解析] をクリックします。
Simulink® モデルおよびライブラリでの依存関係の解析の実行に関する詳細については、影響解析の実行 (Simulink)を参照してください。
依存関係グラフ、ビュー、フィルターの探索
依存関係グラフには、プロジェクトの構造、依存関係、ファイルの相互関係が表示されます。グラフの各項目は 1 つのファイルを表し、各矢印は 1 つの依存関係を表します。詳細については、2 ファイル間の依存関係の調査を参照してください。
既定では、依存関係グラフにはプロジェクトに必要なすべてのファイルが表示されます。依存関係や特定の問題を調査しやすくするために、以下のいずれかのフィルターを使用してグラフを簡略化することができます。
フィルター処理された [ビュー] を使用して、グラフ内のファイルを、タイプ、クラス、ソース管理ステータス、ラベルごとに色分けします。タイプ、ステータス、ラベル別のファイルの色分けを参照してください。
[凡例] ペインのチェック ボックスを使用して、ファイルのグループをフィルターで除外します。
[影響解析] ツールを使用してグラフを簡略化します。ファイルの依存関係の特定を参照してください。
選択、パン、ズーム
グラフ内の項目を選択するには、項目をクリックします。
複数のファイルを選択するには、Shift キーを押したままファイルをクリックします。
特定のタイプのファイルをすべて選択するには、ポインターを [凡例] ペイン内の対応する項目に合わせて [選択に追加] アイコンをクリックします。
すべての選択をクリアするには、グラフの背景をクリックします。
特定のタイプのファイルを現在の選択からすべて削除するには、ポインターを [凡例] ペイン内の対応する項目に合わせて [選択から削除] アイコンをクリックします。
ファイルを開くには、ファイルをダブルクリックします。
依存関係グラフをパンするには、Space キーを押したまま、マウスをクリックしてドラッグします。あるいは、マウス ホイールを押したままドラッグします。
大きいグラフの場合は、[概要] ペインを使用して移動します。
ズームイン、ズームアウトするには、[ナビゲート] セクションで、[ズームイン] と [ズームアウト] をクリックします。あるいは、マウス ホイールを使用します。
依存関係グラフを中心揃えにしてビューに合わせるには、[ナビゲート] セクションで [ビューに合わせる] をクリックします。あるいは、Space バーを押します。
2 ファイル間の依存関係の調査
2 つのファイルの関係について詳細情報を確認するには、依存関係矢印を選択します。[プロパティ] ペインの [詳細] セクションで、調査対象のファイルの絶対パス、依存関係のタイプ (関数呼び出し、継承、プロパティ タイプなど)、および依存関係の発生場所を確認できます。
ファイルを開いて依存関係の発生場所を強調表示するには、[詳細] セクションで、[影響あり] の下のリンクをクリックします。
タイプ、ステータス、ラベル別のファイルの色分け
依存関係アナライザー ツールストリップの [ビュー] セクションでさまざまなビューを探索し、プロジェクト ファイルの依存関係を確認します。
[MATLAB ファイル] ビューは、ビュー内の MATLAB® ファイル (
.m
、.mlx
、.p
、.mlapp
、.fig
、.mat
、.mex
など) のみを表示し、タイプ別に色分けします。[クラス階層] ビューは、クラスの継承グラフを表示し、タイプ (クラス、列挙型クラス、または抽象クラス) 別にファイルを色分けします。クラスが検索パスにない場合、依存関係アナライザーはクラス タイプを判定できません。
[分類] ビューは、グラフ内のすべてのファイルを表示し、ファイル ラベル (テスト、設計、アーティファクトなど) 別に色分けします。
設計の変更を検証するためにどのテストを実行する必要があるかを特定するには、分類ビューを使用します。詳細については、実行するテストの特定を参照してください。
[ソース管理] ビューは、グラフ内のすべてのファイルを表示し、ソース管理ステータス別に色分けします。このビューは、プロジェクトがソース管理下にある場合にのみ有効です。
プロジェクト内で変更されたファイルを見つけ、それらの変更が残りのプロジェクト ファイルに及ぼす影響を調べるには、ソース管理ビューを使用します。詳細については、変更済みファイルの影響の調査を参照してください。
[プロジェクト階層] ビューでは、プロジェクト階層内のすべてのプロジェクトがグラフで示され、プロジェクト タイプ、最上位プロジェクト、または参照プロジェクト別に色分けされます。このビューは、MATLAB Online™ でのみ使用可能です。
プロジェクト階層ビューを使用して、階層内のプロジェクトの相互関係を調べ、循環依存関係を生じさせるプロジェクトを特定します。
[既定の設定に戻す] ですべてのフィルターがクリアされます。
これは、すべてのフィルターを手動で削除することと等価です。フィルターはグラフの上部に表示されます。たとえば、[ソース管理] ビューを選択している場合は、
をクリックすることによって削除できます。
フィルターの適用とクリア
大規模なプロジェクトでは、問題や依存関係を調査する場合、さまざまなフィルターを使用して調査対象のファイルのみを表示します。
test
のラベルの付いたファイルや変更済みのファイルなど、ファイルのサブグループをグラフからフィルターで除外するには、[凡例] ペインのチェック ボックスを使用します。凡例フィルターを削除するには、[凡例フィルター]をクリックします。
グラフ内のファイルをタイプ、クラス、ラベル、ソース管理ステータス別に色分けするには、[ビュー] を使用します。ビュー フィルターを削除するには、グラフ上部の [ビュー:
viewName
] をクリックします。たとえば、[ソース管理] ビューを選択している場合は、をクリックすることによって削除できます。
特定のファイルの依存関係のみを表示するには、ファイルを選択し、[影響解析] セクションで [すべての依存関係] をクリックします。グラフに、選択したファイルとそのすべての依存関係が表示されます。プロジェクトのすべての依存関係を表示するようにグラフをリセットするには、グラフの上部でフィルターを削除します。たとえば、
timestable.mlapp
のすべての依存関係によってフィルター処理した場合、フィルターを削除するには、をクリックします。
すべてのフィルターをクリアしてプロジェクト内で解析済みのすべての依存関係を表示するようにグラフを復元するには、[既定の設定に戻す] をクリックします。あるいは、グラフの上部で、すべてのフィルターを手動で削除します。
問題の調査と解決
依存関係の解析を実行すると、依存関係アナライザーにより、不足しているファイル、プロジェクトに存在しないファイル、未保存の変更および期限の切れた派生ファイルなどの問題が特定されます。依存関係グラフまたはファイル リストを使用して問題のあるファイルを調べることができます。ファイルが選択されていない場合、右側の [プロパティ] ペインには、アドオンの依存関係と、プロジェクト全体の問題のリストが表示されます。
グラフを使用して、問題のあるファイルをグラフィカルに調査します。
[プロパティ] ペインの [問題] セクションで、問題 (
File not in project
など) をポイントし、拡大鏡アイコンをクリックします。グラフで、この特定の問題をもつファイルが強調表示されます。
これらのファイルを調べるには、検索ボックス ([問題:
File not in project
] など) の矢印を使用します。強調表示を元に戻すには、検索ボックスを閉じます。
特定の問題のあるファイルに関する詳細を確認するには、グラフ内でそのファイルを選択します。[プロパティ] ペインの [問題] セクションで、このファイルのパス、タイプ、および問題を含む詳細を確認できます。
たとえば、ファイルが
File not in project
である場合は、グラフ内で問題のあるファイルを右クリックして [プロジェクトに追加] を選択します。[問題] セクションで次にリストされている問題を調査します。すべての問題を解決するまで、これらの手順を繰り返します。問題の修正方法の詳細については、問題の解決を参照してください。
グラフおよび [問題] リストを更新するには、[解析] をクリックします。
ヒント
大規模なプロジェクトでは、結果をリストで表示すると扱いやすいでしょう。
大規模なプロジェクトの場合は、[ファイル リスト] を使用してプロジェクトの問題のあるファイルを調査します。
依存関係アナライザー ツールストリップで、[ファイル リスト] をクリックします。
[プロパティ] ペインの [問題] セクションで、問題 (
File not in project
など) をポイントし、拡大鏡アイコンをクリックします。
[ファイル リスト] に、特定の問題のあるファイルのみが表示されます。リスト内のすべてのファイルを選択し、コンテキスト メニューを使用して [プロジェクトに追加] します。
[問題] セクションで次にリストされている問題 (
Missing file
など) を調査します。すべての問題を解決するまで、これらの手順を繰り返します。グラフおよび [問題] リストを更新するには、[解析] をクリックします。
問題の解決
問題のあるファイルごとに、問題を解決するアクションを実行します。次の表に、一般的な問題の一覧と、それらの修正方法について説明します。Simulink 固有の問題を解決するには、問題の調査と解決を参照してください。
問題メッセージ | 説明 | 修正法 |
---|---|---|
ファイルがプロジェクト内にありません | ファイルはプロジェクト内にありません。 | グラフ内で問題のあるファイルを右クリックして [プロジェクトに追加] を選択します。 問題リストからファイルを削除して、そのファイルをプロジェクトに追加しないようにする場合は、ファイルを右クリックして [警告を非表示] を選択します。 |
見つからないファイル | ファイルはプロジェクト内にありますがディスク上に存在しません。 | ファイルを作成するか、ソース管理を使用して復元します。 |
ファイルまたは変数が見つかりません。 | このステータスを許容できる場合は、ファイルを右クリックして [警告を非表示] を選択します。 オブジェクト メソッドの呼び出し方法によっては、依存関係アナライザーがメソッドと関数を混同し、依存関係が見つからないと報告する場合があります。解析の制限 (Simulink)を参照してください。 | |
参照されていないプロジェクト内に存在します | ファイルは現在のプロジェクトで参照されていないプロジェクト内にあります。 | ファイルを含むプロジェクトをプロジェクト参照として追加します。 |
プロジェクトのルート外 | ファイルがプロジェクト ルート フォルダーの外部にあります。 | このステータスを許容できる場合は、ファイルを右クリックして [警告を非表示] を選択します。そうでない場合は、プロジェクト ルートの下に移動します。 必須ファイルがプロジェクト ルートの外部にある場合、それらのファイルをプロジェクトに追加することはできません。ファイルがパス上にあり、プロジェクトの一部ではないユーティリティまたはリソースである場合、この依存関係は問題を示していない可能性があります。設計の依存関係を確実に理解するには、依存関係の解析を使用します。 |
未保存の変更 | ファイルには、MATLAB および Simulink エディターに未保存の変更があります。 | ファイルを保存します。 |
無効な派生ファイル | 派生ファイルが派生元のソース ファイルより古いものです。 | 派生ファイルを再生成します。これが ソース ファイルの名前を変更する場合、プロジェクトは派生ファイルへの影響を検出し、これの更新を求めるメッセージが表示されます。 |
ファイルに構文エラーがあります | ファイル内に構文エラーがあるか、依存関係アナライザーでファイルを解析できません。たとえば、構文エラーが含まれている | このステータスを許容できる場合は、ファイルを右クリックして [警告を非表示] を選択します。許容できない場合は、構文エラーを修正してファイルを保存します。 |
インストールされていない製品 | プロジェクトは不足している製品に依存しています。 | 不足している製品をインストールします。 メモ
|
| プロジェクト階層に循環依存関係があります。 | 循環依存関係を解決します。たとえば、
この警告は [プロジェクト階層] ビューに固有であり、MATLAB Online でのみ使用可能です。 |
必要な製品とアドオンの特定
プロジェクトの依存関係の解析を実行すると、グラフにはプロジェクト全体または選択したファイルに必要なアドオンが表示されます。プロジェクトを使用するために必要な製品を確認したり、製品の依存関係を生み出しているファイルを特定することができます。
依存関係アナライザーの [プロパティ] ペインの [製品] セクションに、プロジェクト全体に必要な製品が表示されます。特定のファイルに必要な製品を表示するには、グラフをクリックしてファイルを選択します。
製品の依存関係を生み出しているファイルを特定するには、製品名をポイントして拡大鏡アイコン をクリックします。選択した製品を使用するファイルがグラフで強調表示されます。
これらのファイルを調べるには、検索ボックス ([productName
を使用するファイル] など) の矢印を使用します。
強調表示を元に戻すには、検索ボックスを閉じます。
強調表示を元に戻すには、検索ボックスを閉じます。
さらに調査するために、製品を使用するファイルをリストして、これらのファイルのどこで依存関係が発生しているかを調べることができます。[製品] セクションの [プロパティ] ペインで、製品をポイントして検索フォルダー アイコン をクリックします。
必要な製品が見つからない場合、製品リストで不足というラベルが付けられます。この製品は、[問題] セクションにも [インストールされていない productName
] として表示されます。不足している製品を関連付けるには、製品をインストールして依存関係の解析を再実行します。
ファイルの依存関係の特定
依存関係の解析を実行後にファイルの依存関係を調査するには、依存関係グラフで、ファイルを選択します。
[影響解析] セクションで、[すべての依存関係] をクリックします。グラフに、選択したファイルとそのすべての依存関係が表示されます。
選択したファイルを適切に実行するために必要なファイルのみを表示するには、[必要] をクリックします。
選択したファイルが変更された場合に影響を受けるファイルのみを表示するには、[影響あり] をクリックします。
これらの依存関係を特定することは、変更の影響を特定し、変更をコミットする前に、設計を検証するために実行する必要のあるテストを特定するうえで役立つ可能性があります。
複数のファイルの依存関係を調査するには、Shift キーを押したままファイルをクリックします。[影響解析] セクションに、選択されているファイルの数が表示されます。
グラフをリセットするには、グラフの上部にあるフィルターをクリックします。たとえば、timestable.mlapp
の影響を受けるファイルでフィルター処理した場合は、 をクリックします。
変更済みファイルの影響の調査
変更が残りのプロジェクト ファイルに及ぼす影響を調べるには、プロジェクト内の変更されたファイルに対して影響解析を実行します。
[ビュー] セクションで、[ソース管理] ビューを選択します。グラフでは、ソース管理ステータス別にファイルが色分けされます。変更済みファイルは薄い青で表示されます。
グラフ内ですべての変更済みファイルを選択します。
または、[凡例] ペイン内の項目の [選択に追加] アイコンをクリックして、変更済みファイルをすべて選択に追加します。
ヒント
多数のファイルを変更した場合は、ファイル リストも使用できます。
依存関係アナライザー ツールストリップで、[ファイル リスト] をクリックします。[ステータス] をポイントし、矢印をクリックして、ソース管理ステータスを基準としてリストを並べ替えます。すべての変更済みファイルを選択します。
[影響解析] セクションで、[影響あり] をクリックします。あるいは、コンテキスト メニューを使用して [影響を受けるものを検索] を選択します。
実行するテストの特定
変更をコミットする前に、設計を検証するために実行する必要のあるテストを特定するには、変更したファイルに対する影響解析を実行するときに [分類] ビューを使用します。
[ビュー] セクションで、[分類] ビューを選択します。グラフでは、プロジェクト ラベル別にファイルが色分けされます。
変更したファイル、たとえば
timesTableGame.m
を選択します。[影響解析] セクションで、[影響あり] をクリックします。あるいは、コンテキスト メニューを使用して [影響を受けるものを検索] を選択します。
例のグラフに、
timesTableGame.m
に対する変更を検定するために実行する必要のある 3 つのテストが表示されます。
依存関係の解析結果のエクスポート
依存関係グラフに表示されているすべてのファイルをエクスポートするには、グラフの背景をクリックしてすべてのファイルの選択を解除します。依存関係アナライザー ツールストリップの [エクスポート] セクションで [エクスポート] をクリックします。利用可能なオプションから選択します。
ワークスペースに保存 — ファイル パスをワークスペースの変数に保存します。
依存関係レポートの生成 — 依存関係の解析結果を印刷可能なレポート (HTML、Word または PDF) に保存します。
アーカイブとしてパッケージ化 — グラフ内のファイルをアーカイブとしてエクスポートします。
GraphML として保存 — 依存関係の解析結果を GraphML ファイルとして保存します。
ヒント
解析を繰り返さずに、さまざまな解析結果を比較することができます。以前に保存したグラフを比較するには、MATLAB の [現在のフォルダー] で、2 つの GraphML ファイルを右クリックして [選択したファイル/フォルダーを比較] を選択します。
イメージとして保存 — 依存関係グラフをイメージとして保存します。
グラフ内のファイルのサブセットをエクスポートするには、ファイルを選択して [エクスポート] をクリックします。
グラフを簡略化するには、[凡例] のチェック ボックス、フィルター処理された [ビュー] または [影響解析] ツールを使用します。
複数のファイルを選択するには、Shift キーを押したままファイルを選択します。
フィルター処理されたグラフ内のすべてのファイルを選択するには、Ctrl+A を押します。
選択されたファイル数がメニューに表示されます。依存関係アナライザーは、選択されたファイルのみをエクスポートします。
メモ
[アーカイブとしてパッケージ化] を使用した場合、依存関係アナライザーは、選択されたファイルおよびそれらすべての依存関係をアーカイブに含めます。
ファイルのプロジェクト ツールへの送信
[プロジェクト] メニューを使用して、ファイルを他のプロジェクト ツールに送信することができます。依存関係アナライザーは、現在のフィルター処理されたビュー内で選択されたファイルのみをエクスポートします。
目的のファイルを選択します。依存関係アナライザー ツールストリップの [エクスポート] セクションで [プロジェクト] をクリックします。利用可能なオプションから選択します。
プロジェクト内に表示 — ファイルが選択された状態で、プロジェクトの [ファイル] ビューに切り替えます。
カスタム タスクに送信 — 選択されたファイルに対してプロジェクトのカスタム タスクを実行します。