ฉันค้นหาเนื้อหาบางอย่างที่อธิบายวิธีการสร้างไดอะแกรมคลาสง่ายๆด้วย doxygen แต่ไม่พบ ใครสามารถช่วย?
ฉันต้องการสร้างไดอะแกรมดังที่แสดงด้านล่างจากชุดไฟล์ C ++
หากมีเครื่องมือที่ดีกว่าเพื่อให้ทำได้ง่ายขึ้นโปรดแจ้งให้เราทราบ
ฉันค้นหาเนื้อหาบางอย่างที่อธิบายวิธีการสร้างไดอะแกรมคลาสง่ายๆด้วย doxygen แต่ไม่พบ ใครสามารถช่วย?
ฉันต้องการสร้างไดอะแกรมดังที่แสดงด้านล่างจากชุดไฟล์ C ++
หากมีเครื่องมือที่ดีกว่าเพื่อให้ทำได้ง่ายขึ้นโปรดแจ้งให้เราทราบ
คำตอบ:
Doxygen สร้างแผนภาพการสืบทอด แต่ฉันไม่คิดว่ามันจะสร้างชั้นเรียนทั้งหมด อนุญาตให้คุณใช้เครื่องมือ GraphViz หากคุณใช้เครื่องมือส่วนหน้าของ Doxygen GUI คุณจะพบตัวเลือกที่เกี่ยวข้องในStep2: -> Wizard tab -> Diagrams
. ตัวเลือกความสัมพันธ์ DOT อยู่ภายใต้แท็บผู้เชี่ยวชาญ
อ้างจากโพสต์นี้ (เขียนโดยผู้เขียน doxygen เอง):
run doxygen -g and change the following options of the generated Doxyfile:
EXTRACT_ALL = YES
HAVE_DOT = YES
UML_LOOK = YES
run doxygen again
อืมดูเหมือนจะเป็นคำถามเก่า ๆ แต่เนื่องจากฉันยุ่งเกี่ยวกับการกำหนดค่า Doxygen เมื่อไม่กี่วันที่ผ่านมาในขณะที่หัวของฉันยังคงเต็มไปด้วยข้อมูลปัจจุบันเรามาดูกันดีกว่า -
ฉันคิดว่าคำตอบก่อนหน้านี้เกือบจะมี:
ตัวเลือกที่ขาดหายไปคือการเพิ่มCOLLABORATION_GRAPH = YES
ใน Doxyfile ฉันคิดว่าคุณสามารถทำสิ่งที่เทียบเท่าได้ที่ไหนสักแห่งใน doxywizard GUI (ฉันไม่ได้ใช้ doxywizard)
ดังนั้นเพื่อเป็นตัวอย่างที่สมบูรณ์ยิ่งขึ้นตัวเลือก "Doxyfile" ทั่วไปที่เกี่ยวข้องกับเอาต์พุต UML ที่ฉันมักจะใช้คือ:
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
การตั้งค่าเหล่านี้จะสร้างทั้งไดอะแกรม"การสืบทอด" ( CLASS_GRAPH=YES
) และ "การทำงานร่วมกัน" ( COLLABORATION_GRAPH=YES
)
ขึ้นอยู่กับเป้าหมายของคุณสำหรับ "การปรับใช้" ของเอาต์พุต doxygen การตั้งค่าDOT_IMAGE_FORMAT = svg
อาจใช้งานได้เช่นกัน ด้วยเอาต์พุต svg ไดอะแกรมจะ "ปรับขนาดได้" แทนที่จะเป็นความละเอียดคงที่ของรูปแบบบิตแมปเช่น. png เห็นได้ชัดว่าหากดูผลลัพธ์ในเบราว์เซอร์อื่นที่ไม่ใช่ IE INTERACTIVE_SVG = YES
จะมี "การซูมและการแพนแบบโต้ตอบ" ของไดอะแกรม svg ที่สร้างขึ้นด้วย ฉันได้ลองทำสิ่งนี้เมื่อไม่นานมานี้และเอาต์พุต svg นั้นดึงดูดสายตามาก แต่ในขณะนั้นการรองรับเบราว์เซอร์สำหรับ svg ยังไม่สอดคล้องกันเล็กน้อยดังนั้นหวังว่าสถานการณ์จะดีขึ้นในเร็ว ๆ นี้
ดังที่ความคิดเห็นอื่น ๆ ได้กล่าวไว้การตั้งค่าบางอย่าง ( DOT_GRAPH_MAX_NODES
โดยเฉพาะ) เหล่านี้อาจส่งผลกระทบต่อประสิทธิภาพดังนั้น YMMV
ฉันมักจะเกลียดคำตอบสไตล์ "RTFM" ดังนั้นขอโทษสำหรับประโยคนี้ แต่ในกรณีนี้เอกสาร Doxygen เป็นเพื่อนของคุณจริงๆดังนั้นโปรดตรวจสอบเอกสาร Doxygen ในการตั้งค่าที่กล่าวถึงข้างต้น - ครั้งสุดท้ายที่ฉันดูคุณสามารถดูรายละเอียดได้ที่http://www.doxygen.nl/manual/config.html
RECURSIVE
ยื่นเป็น YES
Enterprise Architect จะสร้างแผนภาพ UML จากซอร์สโค้ดที่นำเข้า
ฉันคิดว่าคุณจะต้องแก้ไขไฟล์ doxys และตั้งค่า GENERATE_UML (อะไรทำนองนั้น) เป็น true และคุณต้องติดตั้ง dot / graphviz
คำตอบที่ได้รับการโหวตสูงสุด 2 คำตอบถูกต้อง ณ วันนี้สิ่งเดียวที่ฉันต้องเปลี่ยน (จากการตั้งค่าเริ่มต้น) คือเปิดใช้งานการสร้างโดยใช้จุดแทนตัวสร้างในตัว
หมายเหตุสำคัญบางประการ:
html/inherits.html
หรือ (จากการนำทางเว็บไซต์) คลาส => ลำดับชั้นของคลาส => "ไปที่ลำดับชั้นคลาสแบบข้อความ"T
โดยเฉพาะอย่างยิ่งถ้าคุณได้รับมรดกจาก
foo
สืบทอดมาจากT
และT
พารามิเตอร์ชนิดเทมเพลตมีค่าดีฟอลต์จะถือว่าค่าดีฟอลต์ดังกล่าว หากมีชนิดbar
ซึ่งสืบทอดมาจากfoo<U>
ที่U
แตกต่างจากการเริ่มต้นที่bar
จะมีfoo<U>
ผู้ปกครอง foo<>
และbar<U>
จะไม่มีพ่อแม่ร่วมกันvariant
instantiation variant<Ts...>
จะปรากฏแก่สืบทอดมาจาก<...>
สตริงในชื่อที่แสดงถึงพารามิเตอร์ประเภทและชนิดที่ไม่ใช่ประเภทซึ่งไม่มีค่าเริ่มต้น