สร้างแผนภาพคลาส UML จากโครงการ Java [ปิด]


200

มีเครื่องมือที่ดีที่สามารถช่วยในการย้อนกลับวิศวกร Java คลาสกับ UML ที่จะแสดงภาพรวมของวิธีการที่ชั้นเรียนของฉันมีความสัมพันธ์กัน? ไม่จำเป็นต้องแปลจากไฟล์ JAR เพราะฉันมีที่มา ฉันรู้ว่ามีไม่กี่ที่นั่น แต่ส่วนใหญ่สามารถสร้างชั้นเรียนเฉพาะบุคคล ฉันหวังว่าจะมีเครื่องมือที่สามารถสร้างคลาสไดอะแกรมที่แสดงภาพรวมว่าคลาสและแพ็กเกจปัจจุบันทั้งหมดของฉันทำงานร่วมกันได้อย่างไรเพื่อให้ฉันสามารถวิเคราะห์การออกแบบสถาปัตยกรรมปัจจุบันของฉันได้ แน่นอนการวิเคราะห์เป็นสิ่งหนึ่ง ส่วนอื่น ๆ มีไว้เพื่อวัตถุประสงค์ด้านเอกสาร

ฉันรู้ไม่กี่จนถึง แต่พวกเขาไม่สามารถทำแผนภาพคลาสภาพรวมได้ นี่คือรายการเครื่องมือ Java UML ที่ฉันได้ลองและสามารถทำ reverse engine ได้ แต่ไม่สามารถทำไดอะแกรมคลาสภาพรวมของโครงการทั้งหมดของฉัน:

  • StarUML ( เครื่องมือOpensource UML ดีจริง ๆแต่ไม่สามารถสร้างไดอะแกรมคลาสภาพรวมไม่ได้)
  • ArgoUML (ช้าและอืดและยังคงพังอยู่)
  • UModel (เป็นซอฟต์แวร์เชิงพาณิชย์ฉันใช้มาก่อนหน้านี้แล้ว แต่มันยากที่จะใช้)
  • MS Visio (ไม่รองรับวิศวกร Java UML reverse เท่านั้นสำหรับ VB)

มีคำแนะนำอื่น ๆ ที่จะเพิ่มในรายการนี้หรือไม่? และหวังว่าจะสามารถสร้างไดอะแกรมคลาส Java ภาพรวมได้ ฉันกำลังใช้ Eclipse อยู่ดี


1
เพียงเพิ่มความเป็นไปได้อีกสองสามอย่างใน Eclipse มี Papyrus แต่น่าเสียดายที่ปลั๊กอินสำหรับการสร้างโค้ดนั้นไม่ได้ผลสำหรับฉัน มีการพึ่งพาการติดตั้งมากเกินไป ฉันใช้ eUML2 ในตอนท้าย
Carven

คุณสามารถตรวจสอบ UML Lab - เชิงพาณิชย์ - แต่มันมีวิศวกรรมย้อนกลับที่ซับซ้อนและปรับแต่งได้ (และไปกลับ)
คริสเตียน

มีเครื่องมือฟรีที่เรียกว่าJGraspซึ่งอาจช่วยได้
HRJ

ฉันใช้วิธีนี้: youtube.com/watch?v=HwBep8DmBVwข้อเสียเพียงอย่างเดียวคือ: มันไม่ฟรี แต่คุณสามารถทดลองใช้ได้ 30 วันซึ่งเพียงพอในกรณีของฉัน หมายเหตุ: มันไม่ใช่วิดีโอของฉันฉันเพิ่งพบมันในขณะที่ Google
dazito

@ Carven โปรดแจ้งให้เราทราบว่าคุณใช้ปลั๊กอินตัวไหน ขณะนี้ฉันกำลังมองหาการสร้างไดอะแกรมลำดับโดยอัตโนมัติเมื่อดำเนินการ Junit / ทดสอบ
27854

คำตอบ:


46

ฉันใช้ปลั๊กอินeUML2จาก Soyatec ภายใต้ Eclipse และทำงานได้ดีสำหรับการสร้าง UML ที่ให้รหัสต้นฉบับ เครื่องมือนี้มีประโยชน์มากถึง Eclipse 4.4.x


รุ่นฟรีมีคุณสมบัตินี้หรือไม่?
Carven

ใช่. ฉันใช้รุ่นฟรี
Heisenbug

1
ขอบคุณ! ;) ฉันไม่ได้ลองเพราะฉันคิดเสมอว่าเวอร์ชันฟรีไม่มีรหัสสำหรับการสร้าง UML
Carven

38
มันแย่มาก ยาก คำแนะนำต้องการให้ผู้ใช้นำหน้าคุณสมบัติทั้งหมดด้วยอักขระ 'f' เพื่อดมกลิ่น มันเป็นอันตรายเช่นกันและเพิ่มความคิดเห็นของตัวเองลงในไฟล์คลาสทั้งหมด นอกจากนี้คำแนะนำยังไม่ใช้งานง่าย หากใครบางคนสามารถปฏิเสธประสบการณ์ของฉันได้ (อ้างอิงจากเวอร์ชันปัจจุบันใน Kepler) โปรดทำเช่นนั้น และเพียงสามสัปดาห์ของการทดลอง ถอนการติดตั้งตอนนี้
ingyhere

1
ฉันไม่ชอบมัน มันไม่รองรับ eclipse / oxygen เวอร์ชันล่าสุด
Tayfun Yaşar

109

ฉันเขียนClass Visualizerซึ่งทำได้ เป็นเครื่องมือฟรีที่มีฟังก์ชั่นดังกล่าวทั้งหมด - ฉันใช้เพื่อวัตถุประสงค์เดียวกันตามที่อธิบายไว้ในโพสต์นี้ สำหรับแต่ละคลาสที่เรียกดูจะแสดง 2 ไดอะแกรมคลาสที่สร้างขึ้นทันที: ความสัมพันธ์ของคลาสและมุมมอง UML ของคลาส แผนภาพความสัมพันธ์ระดับช่วยให้สามารถสำรวจผ่านโครงสร้างทั้งหมด มีการสนับสนุนอย่างสมบูรณ์สำหรับคำอธิบายประกอบและข้อมูลทั่วไปรวมถึงการสนับสนุนพิเศษสำหรับเอนทิตี JPA ทำงานได้ดีมากกับโครงการขนาดใหญ่ (หลายพันชั้น)


8
โปรแกรมดีจริงๆ ขอบคุณสำหรับการสร้างมันและสำหรับลิงค์
Igor Rodriguez

17
Jonatan, เป็นการกระทำของมารยาทหนึ่งสามารถ / ควรเพิ่มการปฏิเสธคำตอบเมื่อแนะนำผลิตภัณฑ์, บริการอื่น ๆ ที่เกี่ยวข้อง.
dbm

2
นี่มันเจ๋งจริงๆ ด้วยโครงการเก่าที่ซับซ้อนมานานหลายทศวรรษของเรา - รหัสส่วนใหญ่เป็น JDK 1.1 vintage - นี่เป็นภาพรวมที่ยอดเยี่ยมของการเชื่อมต่อสิ่งต่าง ๆ ในฐานะที่เป็นส่วนเสริมของซอร์สโค้ดและ Javadoc มันให้คุณค่าอันยิ่งใหญ่ในราคาที่ยอดเยี่ยม
gerardw

2
Class Visualizer เป็นเครื่องมือที่มีประโยชน์เพิ่มขึ้นได้อย่างโดดเด่น? ใช่แล้ว. เราจะจ่ายให้มันได้อย่างไร ดาวน์โหลดได้ฟรี! เราเรียนรู้การใช้งานได้อย่างไร? ใช้เวลา 10 นาทีในการดูวิดีโอ!
Martin Meeser

2
ฉันมีคลาสที่เรียกใช้เมธอดของคลาสอื่นในโครงการ / โฟลเดอร์เดียวกัน แต่คลาสอื่นนั้นไม่ปรากฏขึ้น ฉันเพิ่มการพึ่งพาทั้งหมดที่เป็นไปได้รวมถึง jdk8 ทั้งหมด ฉันพลาดอะไรไปหรือเปล่า
กุมภ์กำลัง

2

วิธีการเกี่ยวกับปลั๊กอินOmondoสำหรับ Eclipse ฉันใช้มันและฉันคิดว่ามันมีประโยชน์มาก แม้ว่าคุณจะสร้างไดอะแกรมสำหรับแหล่งข้อมูลขนาดใหญ่คุณอาจต้องเริ่ม Eclipse ด้วยหน่วยความจำเพิ่มเติม


ลิงก์ไม่ทำงาน
Blip

2

ฉันว่าโมดิสโกเป็นผู้ที่มีประสิทธิภาพมากที่สุด (แม้ว่าอาจไม่ใช่คนที่ง่ายที่สุดในการทำงานด้วย)

MoDisco เป็นกรอบวิศวกรรมทั่วไปแบบย้อนกลับ (เพื่อให้คุณสามารถปรับแต่งโครงการวิศวกรรมย้อนกลับของคุณด้วย MoDisco คุณสามารถย้อนกลับวิศวกรรมพฤติกรรมของวิธีการจาวาไม่เพียง แต่โครงสร้างและลายเซ็น) แต่ยังมีคุณสมบัติที่กำหนดไว้ล่วงหน้าเช่นรุ่นของคลาส ไดอะแกรมจากโค้ด Java ที่คุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.