SE | × | PE | ○ | EE | ○ | VE | × |
自動レイアウトとは、乱れたオブジェクト配置を自動的に整列するための機能です。
主な使用目的はリバースエンジニアリング後のクラス図作成を支援することにあります。 クラスディクショナリを作成しながらクラス図を作成しているようなケースでは、あまり効果がありません。
以下は自動レイアウトの特徴です。特徴を理解してご使用になるとより快適に利用できます。
1.なるべく現状の形を維持します
自動レイアウトの結果、機械的な配置になることはありません。現状の形を維持しようと試みます。ただし、後述の特徴を除きます。
2.継承関係を上下に並べる
基本クラスはなるべく上に来るように整列します。また、インナークラスの親クラスは右上に来るようにします。集約の親クラスは左上に来るようにします。
3.コネクタで結んでいるオブジェクトは一定の距離に保とうとします
離れすぎていたり近すぎるコネクタは適度な距離になるように調整します。
4.オブジェクトはなるべく重ならないように移動します
重なっていたり近すぎるオブジェクトは離れようとします。ただし、基本クラスに対して派生クラスが多すぎる場合などはどうしても重なる事があります。
5.押しピンで留めたオブジェクトは移動しません
※現在不具合がありプロパティエディタで表示しないようになっています。
クラスを選択してプロパティエディタで「押しピン」をONにした場合はそのクラスは固定されたものとして整列します。
ただし、押しピン以外のオブジェクトが移動しすぎた場合には図全体を適正な位置に戻します。その際には移動したように見えますが、押しピンされたオブジェクト同士の距離は変わりません。
以下のようなケースで自動レイアウトを使用すると効果的です。
- 既にクラス・ディクショナリと関連・ディクショナリがある場合
- リバースエンジニアリング後
クラス・モデルからクラス図を簡単に作成する方法は以下のような方法があります。
- 任意のクラスをクラスビューからドラッグ&ドロップした後に自動レイアウト実行
- クラス図の自動生成(詳しくはこちらを参照)
クラスビューからドラッグ&ドロップする方法についてもう少し詳しく説明します。この方法を使用するにはクラスと関連のディクショナリが必要です。
まず、新しいクラス図をプロジェクトに追加します。
次に、クラスビューからドラッグ&ドロップでクラス図にクラスを配置していきます。配置する場所はあまり気にする必要はありません。
この時、メソッド名や属性が多い場合は非常に大きなサイズのクラスが表示されてクラス図として見にくい事があります。このような場合はクラスの表示属性を変更することで改善できます。メイン画面のクラスの表示制御のアイコン()をON/OFFすることでクラスを追加した際の表示属性を指定できます。
関連・ディクショナリ内にデータがある場合は、クラスビュー内にあるツールバーの[自動コネクタ生成]がONになっている場合はコネクタが自動生成されます。
最後に、メニューから[ダイアグラム操作]-[ダイアグラムの自動レイアウト]を実行することでクラス図内の全てのクラスを対象にして自動レイアウトを行います。
あとは必要に応じて位置を調整するとダイアグラムの完成です。
- 自動レイアウトを複数回実行しないと完全に整形されない事がある
- 親クラスに対して子クラスが多い場合などは整列しきれないことがある(重なるなど)
- 自動レイアウトを実行するたびにコネクタで接続されていないクラスが上または下に少しずつ移動してしまうことがある(押しピン機能で固定することで移動しなくなります)
- 親を持つオブジェクトは自動レイアウトできない(例:パッケージ上に配置されているクラス)(仕様)
- クラス図以外の使用は想定していない
- 押しピン機能に不具合がある
- 野口隆佳氏の論文『インタラクティブ性を考慮した オブジェクト図の自動レイアウト手法』