ソースからクラス図を自動生成したいのですが

解決


もいか  2020-10-28 05:46:31  No: 149279

皆様、お世話になっています。もいかです。

タイトルの通りなのですが、Delphi のソースからクラス図を自動生成したいのですが、
なにか良いツール、方法など無いでしょうか?

Delphi は 10.3.3 Professional を使用しています。

よろしくお願いいたします。


igy  2020-10-28 07:09:21  No: 149280

使ったことがないので、もいかさんが希望される機能があるか、わかりませんが、
Doc-O-Matic
Documentation Insight
などのツールがあるようです。


KONNOYA  2020-10-28 09:02:31  No: 149281

間違っていたら申し訳ありませんが、
下層から上層へと辿るのならば下記のコードできます。

procedure TForm1.Button1Click( Sender : TObject );

begin
  CheckClass( Button1.ClassType );
end;

procedure TForm1.CheckClass( AClass : TClass );

begin
  Memo1.Lines.Clear;
  Memo1.Lines.Add( AClass.ClassName );

  // TObjectになるまでループ
  while AClass <> TObject do
  begin
    AClass := AClass.ClassParent;
    Memo1.Lines.Add( AClass.ClassName );
  end;
end;


HFUKUSHI  2020-10-28 17:38:51  No: 149283

普通にIDEの右上のペインにあるモデルビューじゃだめですか?
メインメニュー→プロジェクト→モデリングサポート
からも有効にできます。


もいか  2020-10-28 19:08:09  No: 149284

皆さん、返信ありがとうございます。

まとめての返信で失礼します。

まず、漠然とした質問で失礼しました。

やりたいことは、Delphiのソースコードから自動的に
クラス図(継承関係が図示されたもの)を生成したいと
思っています。
上記を行いたい理由は、どんどん継承関係を増やすような
開発を行っており、ソースを追えばわかるとはいえ
クラス図になっていると少し助かるかなと思ったからです。

igyさん
> Doc-O-Matic
> Documentation Insight

紹介ありがとうございます。
調べてみます。

KONNOYAさん
> 下層から上層へと辿るのならば下記のコードできます。

ソースの提示までいただきありがとうございます。
参考にさせていただきます。

HFUKUSHIさん
> 普通にIDEの右上のペインにあるモデルビューじゃだめですか?

継承関係が図示されていると良いのですが、モデルビューでも
できますでしょうか?
出来ると、それが一番だと思います。

以上です。


HFUKUSHI  2020-10-29 11:04:00  No: 149289

やってみれば10秒でわかりますが、クラス図なので当然継承関係も表示されます。
異なるユニットのクラスはデフォルトで非表示ですが、表示させることも可能です。


もいか  2020-11-01 22:24:28  No: 149304

HFUKUSHIさん

ご教授ありがとうございます。

いろいろやってみて、使い方がようやくわかりました。

(1) 右上のプロジェクトペインの下のタブ「モデルビュー」を選択する。
    (モデル情報作成確認のダイアログはOKで)

(2) 「モデルビュー」から「ダイアグラム」ビューを開く
    ・「モデルビュー」のダイアグラムノードをダブルクリックする。
    ・ダイアグラムノードは「モデルビュー」で{}マークのあるもの
      (例えば、{}Unit1 とか)

(3) 「ダイアグラム」ビューが開かれ、UML準拠のクラス図が表示される。
    ・そのままだとクラスが重なっていたりして見にくいので
      「ダイアグラム」ビューの空白の部分で右クリックして
      レイアウト→レイアウトの実行を選ぶと、自動的に重なりのない
      ように配置してくれる。

(4) 図として保存も出来る。(同じく右クリックで)

こんな感じでしょうか。
もっと便利な使い方があれば、是非教えて下さい。

以上です。
よろしくお願いいたします。


もいか  2020-11-05 09:49:25  No: 149312

特に無いようですので、クローズします。
皆様ありがとうございました。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加