Saya telah mencari beberapa materi yang menjelaskan cara membuat diagram kelas sederhana dengan doxygen, tetapi tidak dapat menemukannya. Ada yang bisa membantu?
Saya perlu membuat diagram seperti yang ditunjukkan di bawah ini dari satu set file C ++.
Jika ada alat yang lebih baik untuk melakukannya dengan lebih mudah, beri tahu saya.
Jawaban:
Doxygen membuat diagram pewarisan tetapi saya tidak berpikir itu akan membuat seluruh hierachy kelas. Itu memungkinkan Anda untuk menggunakan alat GraphViz. Jika Anda menggunakan alat frontend Doxygen GUI, Anda akan menemukan opsi yang relevan di
Step2: -> Wizard tab -> Diagrams
. Opsi relasi DOT ada di bawah Tab Pakar.sumber
Kutipan dari posting ini (ditulis oleh penulis doxygen sendiri):
run doxygen -g and change the following options of the generated Doxyfile: EXTRACT_ALL = YES HAVE_DOT = YES UML_LOOK = YES run doxygen again
sumber
Hmm, ini sepertinya pertanyaan lama, tapi karena saya telah mengotak-atik konfigurasi Doxygen beberapa hari terakhir, sementara kepala saya masih penuh dengan info saat ini, mari kita coba -
Saya pikir jawaban sebelumnya hampir memilikinya:
Opsi yang hilang adalah menambahkan
COLLABORATION_GRAPH = YES
Doxyfile. Saya berasumsi Anda dapat melakukan hal yang setara di suatu tempat di doxywizard GUI (Saya tidak menggunakan doxywizard).Jadi, sebagai contoh yang lebih lengkap, opsi "Doxyfile" umum yang terkait dengan keluaran UML yang cenderung saya gunakan adalah:
EXTRACT_ALL = YES CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES UML_LOOK = YES UML_LIMIT_NUM_FIELDS = 50 TEMPLATE_RELATIONS = YES DOT_GRAPH_MAX_NODES = 100 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = YES
Pengaturan ini akan menghasilkan diagram "warisan" (
CLASS_GRAPH=YES
) dan "kolaborasi" (COLLABORATION_GRAPH=YES
).Bergantung pada target Anda untuk "penyebaran" keluaran doxygen, pengaturan
DOT_IMAGE_FORMAT = svg
mungkin juga berguna. Dengan keluaran svg, diagramnya "dapat diskalakan" daripada resolusi tetap dari format bitmap seperti .png. Rupanya, jika melihat output di browser selain IE, ada jugaINTERACTIVE_SVG = YES
yang akan memungkinkan "zoom dan panning interaktif" dari diagram svg yang dihasilkan. Saya sudah mencobanya beberapa waktu lalu, dan keluaran svg sangat menarik secara visual, tetapi pada saat itu, dukungan browser untuk svg masih agak tidak konsisten, jadi semoga situasi tersebut mungkin membaik belakangan ini.Seperti yang telah disebutkan oleh komentar lain, beberapa pengaturan ini (
DOT_GRAPH_MAX_NODES
khususnya) memang memiliki potensi dampak kinerja, jadi YMMV.Saya cenderung membenci jawaban bergaya "RTFM", jadi mohon maaf atas kalimat ini, tetapi dalam hal ini dokumentasi Doxygen benar-benar adalah teman Anda, jadi periksa dokumen Doxygen pada pengaturan yang disebutkan di atas- terakhir kali saya melihat Anda dapat menemukan detailnya di http://www.doxygen.nl/manual/config.html .
sumber
RECURSIVE
menjadi YAArsitek Perusahaan akan membangun diagram UML dari kode sumber yang diimpor.
sumber
Saya pikir Anda perlu mengedit file doxys dan mengatur GENERATE_UML (sesuatu seperti itu) menjadi true. Dan Anda harus sudah menginstal dot / graphviz.
sumber
2 jawaban positif tertinggi benar. Untuk hari ini, satu-satunya hal yang perlu saya ubah (dari pengaturan default) adalah mengaktifkan pembuatan menggunakan titik, bukan generator bawaan .
Beberapa catatan penting:
html/inherits.html
atau (dari navigasi situs web) kelas => hierarki kelas => "Pergi ke hierarki kelas tekstual".T
.foo
diwarisi dariT
danT
parameter jenis template memiliki default, default seperti itu akan dianggap. Jika ada tipebar
yang mewarisi darifoo<U>
manaU
berbeda dari default,bar
akan memilikifoo<U>
induk.foo<>
danbar<U>
tidak akan memiliki orang tua yang sama.variant
Instansiasi akan ditampilkan untuk mewarisi darivariant<Ts...>
.<...>
string dalam namanya yang mewakili parameter tipe dan non-tipe yang tidak memiliki default.sumber