web-dev-qa-db-ja.com

EnterpriseArchitectまたはRationalSoftware Architectを使用してソースコードからクラス図を作成するにはどうすればよいですか?

私はUMLに精通していませんが、既存のC++コードに基づいてクラス図を作成したいと思います。他のStackOverflowの質問は、2つのプログラム(EnterpriseArchitectとRationalSoftware Architect)がC++コードの「リバースエンジニアリング」(つまり、既存のC++コードに基づいてUMLクラス図を作成する)にかなり優れていることを示しています。

これら両方のアプリケーションの試用版をダウンロードしました。ただし、これらのアプリケーションのいずれかでクラス図を作成するために何をすべきかを理解することはできません。

Rational Software Architectで、UMLプロジェクトを作成しましたが、プログラム内で既存のC++コードを選択してリバースエンジニアリングする方法が見つかりません。

Enterprise Architectでは、C++コードをインポートできましたが、すべての要素(クラス)が、図内の役に立たない、重なり合う対角線で表示されました。円などの他の設定を試みましたが、図が非常に大きく(属性とメソッドが多くのスペースを占めるため)、パンやズームの量が役に立たなかったため、これらも同様に読み取ることができませんでした。私が欲しいのは、クラス名以外のすべてを非表示にして(つまり、メソッドや属性を表示しない)、20のクラスすべてが1つの画面に便利かつ読みやすく表示されるようにすることです。

ただし、クラス名以外のすべてを非表示にする方法を見つけることができません。むしろ、(エンタープライズアーキテクトで)クラス名以外のすべてを非表示にする可能性があると思われるオプションを見つけたとき、何らかの理由で要素はすべてクラス図で消え、手順を繰り返したり、パッケージを削除および再追加したりする必要はありませんでした。クラス図を再表示しました。

注:私のC++コード(少なくともEnterprise Architectにインポートするために選択したファイル)は、約20クラスにすぎません。

残念ながら、これらのプログラムの両方のドキュメントを注意深く検索しても、一般的なものしか提供されません。私が知る限り、これらのプログラムのいずれかのリバースエンジニアリングに関する具体的な指示はありません。

を介して読みやすく、ナビゲートしやすい図を作成するための基本的な手順を誰かに教えてもらえれば幸いです。 EnterpriseArchitectまたはRationalSoftware Architectのいずれかを使用して、クラス名のみを表示するリバースエンジニアリング(つまり、C++からUML)により、約20のクラスが1つの画面に(読みやすく)収まります-OR =これを実行できるその他のツール(EAとRationalは、この目的で利用できる最良のプログラムとして他のStackOverflowの回答で強調表示されているためのみ)。

10
Dan Nissenbaum

この回答はEAに適用されます。

個々のファイルまたはディレクトリ全体を再帰的にインポートすることも、インポートしないこともできます。ディレクトリのインポートは、これまでで最も一般的なケースです。単一ファイルのインポートでは、ダイアグラムを自動的に作成することはできません。

ソースディレクトリをインポートするときに、UMLパッケージごとに図を作成するか、図をまったく作成しないかを選択できます。また、ソースコードディレクトリ、名前空間(デフォルト)、またはファイルごとにパッケージを作成するかどうかも決定します。

コードが20のクラスのみで構成されている場合は、それらが単一のディレクトリや名前空間にある可能性が高いため、そのオプション([ソースのインポート]ダイアログの[パッケージ構造])を試して、適切な数の図を取得してください。

同じダイアログに「新しいダイアグラムオプション」ボタンがあり、ダイアグラムにクラスの属性や操作を含めるかどうかを選択できる別の設定ダイアログが開きます。公開メンバーのみを表示するなど、可視性に基づいて決定を下すこともできます。

このダイアログは、作成時に図に表示される内容にのみ影響します。メンバーは引き続きインポートされ、表示されません。これはあなたが求めているもののように聞こえます。

ダイアグラムの空の領域をダブルクリックするか、右クリックして[プロパティ]を選択することにより、ダイアグラムの表示オプションを変更できます。このダイアログに入って何かを変更したようですが、実際には何がわかりません。あなたが説明する状況、つまりディスプレイを元の状態に戻すことができない状況は、私がEAで遭遇したことのない状況です。

ダイアグラムで表示オプションを右クリックして[機能の表示]を選択することにより、クラスごとに表示オプションを選択することもできます。リバースエンジニアリングされた図でこれを使用することはお勧めしません。完全を期すために言及しているだけです。

あなたが説明するレイアウトは、すべてのクラスが無意味な対角線上にあり、作成後に図が適切にレイアウトされていないことを私に示唆しています。ダイアグラムの作成は2段階のプロセスです。最初にすべてのクラスがその上にドロップされ、次にレイアウトが適用されます。

EAは生成された図を自動的にレイアウトし、この動作の選択を解除できるオプションを見つけることができなかったため、これは奇妙なことです。これが続く場合は、バグレポートをSparxSystemsに送信してください。ダイアグラムを開き、トップレベルのダイアグラムメニューから[レイアウトダイアグラム]を選択することで、いつでもダイアグラムをレイアウトできます。

最後に、クラスが異なるパッケージに分散している場合and名前空間で、EAがそれらの複数の図を生成する場合は、それらを手動でマージする必要があります。これを行うには、両方の図を開き、一方の図をすべて選択(Ctrl-A)し、もう一方の図にコピー(Ctrl-C)して貼り付け(Ctrl-V)してから、EAに図のレイアウトを再度依頼します。

そう:

  1. プロジェクトブラウザで空のパッケージを右クリックし、[コードエンジニアリング]-[ソースディレクトリのインポート]を選択します。
  2. ダイアログで、ルートディレクトリとソースタイプを選択します。
  3. 「パッケージごとに論理図を作成する」にチェックマークを付け、ソース構造に最適なパッケージ構造を選択します。
  4. [新しいダイアグラムオプション]をクリックし、新しいダイアログで、[属性の表示]、[操作の表示]、および[プロパティメソッドの表示]のチェックを外します(該当する場合)。
  5. OK両方のダイアログ。
  6. 複数の図が作成されている場合は、すべてのクラスを1つの図にコピーします。
  7. レイアウトが悪い場合は、[図]-[レイアウト図]を選択します。

お役に立てれば。

16
Uffe