メインコンテンツ

クラス ダイアグラム ビューアー

R2026b

クラスの詳細とクラスの階層をもつダイアグラムの作成

説明

クラス ダイアグラム ビューアー アプリでは、クラス実装の詳細と階層を表示するダイアグラムを作成できます。このアプリを使用してクラス構造体を確認し、クラス ダイアグラムを他のユーザーと共有できます。これらのダイアグラムには、次の詳細を含めることができます。

  • プロパティとメソッドおよびそのアクセス属性を含む、クラスの内部構造

  • 名前空間を含む、継承関係をもつクラスの階層

グラフィカル インターフェイスまたは matlab.diagram.ClassViewer で定義されるコマンド ライン API を使用してクラス ダイアグラムを作成できます。

Class Diagram Viewer app

クラス ダイアグラム ビューアー を開く

  • MATLAB® ツールストリップ: [アプリ] タブの [MATLAB] で、アプリのアイコンをクリックします。

  • MATLAB コマンド プロンプト: 「matlab.diagram.ClassViewer」と入力します。

例

すべて展開する

クラス ダイアグラム ビューアーを開きます。[クラス ブラウザー] ペインで、インポート ボタン を展開して [名前空間のインポート] を選択します。名前空間として「matlab.unittest」と入力し、[OK] をクリックします。unittest のフォルダーが [クラス ブラウザー] に表示されます。

Class Browser with unittest added

unittest フォルダーを展開して InteractiveTestCase クラスを選択します。ツールストリップの [追加] ボタンをクリックし、クラスのカードを [クラス ダイアグラム ビューアー] キャンバスに追加します。同じメソッドを使用して TestCase クラスを追加します。TestCase は InteractiveTestCase のスーパークラスなので、クラス ダイアグラム ビューアーは自動的に InteractiveTestCase から TestCase までの矢印を描画してこの関係を示します。

TestCase and InteractiveTestCase classes on canvas

クラス カードの上部にある青い縞模様の境界は、これらのクラスの両方がハンドル クラスであることを示しています。[凡例] ペインはキャンバス上のグラフィックス効果とアイコンが何を表しているのかを示しています。

Legend pane

[クラス ブラウザー] から直接キャンバスに項目をドラッグすることもできます。ビューアーに Test クラスをドラッグします。カード上部にある green plus button は Test に表示可能なスーパークラスがあることを示しています。

Test class card with green plus button

green plus button をクリックしてスーパークラスをダイアグラムに追加します。Test から TestSuite を指す矢印は TestSuite が Test のスーパークラスであることを示しています。

Test and TestSuite class cards

ドラッグ アンド ドロップによるビューアーでのクラスの移動に加えて、ツールストリップの [ズームとパン] セクションで以下のようなオプションを使用してビューをカスタマイズできます。

  • ズームインおよびズームアウト

  • 現在の画面サイズに合わせたダイアグラムの表示

  • パン

ツールストリップの [ビュー] セクションで、[mixin] チェック ボックスをオンにします。この操作を行っても mixin クラスはダイアグラムに自動的に追加されませんが、この後でスーパークラスを追加するいずれかの操作を実行すると、ビューアーによって mixin クラスが表示に追加されます。

Test のすべてのスーパークラスを追加するには、Test クラス カードを右クリックして [すべてのスーパークラスの追加] を選択します。CustomDisplay mixin が Test のスーパークラスとして表示され、TestSuiteExtension が TestSuite のスーパークラスとして表示されます。CustomDisplay の名前がイタリックで表記され、抽象クラスであることを示します。

CustomDisplay mixin and TestSuiteExtension class cards are visible

スーパークラスとサブクラスの追加には、それぞれ 2 つのオプションがあります。

  • スーパークラスの追加: 指定したクラスの直接的な継承元となるスーパークラスを追加します。

  • すべてのスーパークラスの追加: 指定したクラスの直接的または間接的な継承元となるすべてのスーパークラスを追加します。上記の例では、Test は TestSuiteExpansion から間接的に継承します。

  • サブクラスの追加: 指定したクラスから直接的に継承する既知のサブクラスを追加します。

  • すべてのサブクラスの追加: 指定したクラスから直接的または間接的に継承するすべての既知のサブクラスを追加します。

メモ

MATLAB では、指定したクラスのすべての既存のサブクラスが特定されない可能性があります。その場合、[クラス ブラウザー] を使用して手動でサブクラスを追加します。

クラス階層を表示できるほか、それ自体のクラス定義も確認できます。カードのクラス名の横にある矢印をクリックして、Test のクラス カードを展開します。クラス カードが展開され、クラスで定義されるプロパティとメソッドが表示されます。スーパークラスから継承されたプロパティとメソッドはサブクラス カードに表示されません。

プロパティ名とメソッド名の横にあるアイコンは、プロパティとメソッドのアクセス レベルを識別します。たとえば、ロック アイコンは ExternalFixtures がプライベート プロパティであることを示しています。

Test class card with properties visible

クラス カードでプロパティまたはメソッドを選択すると、[インスペクター] ペインにアクセス情報やその他の情報も表示されます。

1 つ以上のクラスのソース コードを表示するには、そのカードを選択してツールストリップの [ソースに移動] をクリックします。ソース コード ファイルが MATLAB エディターで開きます。

ダイアグラムを保存または共有するには、次の 2 つのオプションのいずれかを使用します。

  • [エクスポート] をクリックしてダイアグラムを静的イメージとして保存します。

  • [保存]、[名前を付けて保存] を選択し、クラス ダイアグラム ビューアー インスタンスで再度開いて編集できる MLDATX ファイルを作成します。

R2024a 以降

クラス ダイアグラム ビューアーでは、クラス間の "関連付け" を表示できます。クラス検証を使用してクラス プロパティの型を別のクラスとして明示的に定義している場合、クラス ダイアグラム ビューアーでこの関連付けを表示できます。

次の 2 つのクラスを MATLAB パスに保存します。

classdef ClassA
    properties
        Property1 ClassB
        PropertySelf ClassA
    end
end
classdef ClassB
    properties
        Property1 double
    end
end

クラス ダイアグラム ビューアーを開きます。[クラス ブラウザー] ペインで、[クラス、名前空間、またはフォルダーのインポート] ボタン を展開して [クラスをインポート] を選択します。「ClassA」と入力し、[OK] をクリックします。この手順を ClassB について繰り返します。両方のクラスが [クラス ブラウザー] に表示されます。

Class Browser with ClassA and ClassB added

[クラス ブラウザー] からキャンバスに ClassA と ClassB をドラッグします。カードのクラス名の横にある矢印をクリックして、ClassA のクラス カードを展開します。クラス カードが展開され、クラスで定義されるプロパティとメソッドが表示されます。

ClassA and ClassB cards visible on canvas, ClassA expanded

ツールストリップの [ビュー] セクションで、[関連付け] チェック ボックスをオンにします。この操作により、識別可能なすべての関連付けの矢印がダイアグラムに追加されます。この場合、

  • ClassA の Property1 の型は ClassB なので、矢印は Property1 を ClassB のクラス カードに接続します。

  • ClassA の PropertySelf の型は ClassA なので、矢印はそのプロパティを元のメイン カード ClassA に接続します。

ClassA with arrows pointing to itself and ClassB

[関連付け] チェック ボックスを使用して、矢印のオンとオフを切り替えることができます。矢印は、クラス カードが折りたたまれている場合でも表示されます。

クラス ダイアグラム ビューアーでは、クラス検証を使用してプロパティを定義している場合にのみ関連付けを識別できます。このように定義している場合、クラス カードにプロパティのクラスが表示されます。詳細については、プロパティのクラスの検証を参照してください。また、関連付けをオンにすると、現在ダイアグラム内にあるクラス間の接続のみが表示されます。たとえば、ClassB がダイアグラムに含まれていない場合、ClassA の Property1 との関連付けを表示するためにこれがアプリによって自動的に追加されることはありません。

プログラムでの使用

matlab.diagram.ClassViewer は、クラスを読み込まずにクラス ダイアグラム ビューアー インスタンスを開きます。

matlab.diagram.ClassViewer(Name=Value) は指定されたクラスを [クラス ブラウザー] ペインとキャンバスの両方に追加します。有効な名前と値の引数は次のとおりです。

  • string またはメタクラス インスタンスとして指定されるクラス名をもつ Classes

  • string として指定されるフォルダー名をもつ Folders

  • string として指定される名前空間名をもつ Namespaces

  • string として指定される MATLAB パッケージ名をもつ Packages

その他の名前と値の引数については、matlab.diagram.ClassViewer を参照してください。引数を Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。

ヒント

  • クラス ダイアグラム ビューアーは、matlab.diagram.ClassViewer クラスのインスタンスです。一度に複数のビューアーを開くには、クラス コンストラクターを使用します。

  • green plus button が 2 つのクラス間の矢印上に表示される場合、追加のクラスはクラス カード自体ではなく、接続されている 2 つのクラス間の階層上にあります。green plus button をクリックし、階層のその部分に表示可能なすべてのクラスを追加します。

  • クラス ダイアグラム ビューアーの使用中にクラス コードに変更を加えた場合、[リフレッシュ] をクリックしてダイアグラムを自動的に更新できます。クラス ファイルが削除されたりアプリで使用できなくなったりした場合、クラスが同期していないがクラス カード自体はダイアグラムから削除されないことがアプリによって示されます。

バージョン履歴

R2021a で導入

すべて展開する