Oop lab/java to uml in eclipse
- หน้าหลัก oop lab
เนื้อหาส่วนนี้ อ้างอิงจากโพส Papyrus Java to UML Reverse Engineering
ถ้าเรามีโค้ด Java อยู่ใน Eclipse อยู่แล้ว เราสามารถสร้าง UML class diagram ได้โดยใช้ plugin MoDisco (สำหรับ discovery) และ Papyrus (สำหรับวาด diagram) โดยมีขั้นตอนคร่าว ๆ ดังนี้
ติดตั้ง software ต่าง ๆ: ต้องติดตั้ง Eclipse Modeling, Papyrus, และ MoDisco
- เลือก Help -> Install New Software
- ในช่อง "Work with:" เลือก "--All Available Sites--"
- พิมพ์ "Modeling" ในช่อง Search รอสักพัก จะมีหัวข้อกลุ่ม plug in ชื่อ Modeling ปรากฏขึ้น ให้เลือกทั้งหมด พอลงเสร็จ แล้วให้ Restart Eclipse
- ติดตั้ง Papyrus โดยเลือก Helo -> Install New Software, พิมพ์ Papyrus เลือก Papyrus UML, กดให้ติดตั้ง
- ติดตั้ง MoDisco โดยเลือก Help -> Install Modeling Components, พิมพ์ MoDisco เลือก MoDisco SDK, กดให้ติดตั้ง
Plug-in ที่น่าจะมีน่าจะเป็นดังรูปนี้ (ผมไม่แน่ใจว่าตัวไหนไม่จำเป็นบ้าง T_T)
สร้างไฟล์ข้อมูล uml
ขั้นตอนคร่าว ๆ คือเราจะสร้าง uml diagram เปล่า ๆ โดย papyrus จากนั้นจะให้ MoDisco แกะข้อมูลของคลาสต่าง ๆ ให้เรา เพื่อนำไปเขียนทับข้อมูล uml เหล่านั้น
- สร้าง Papyrus Model ใน project
- ที่ project ใน Package Explorer, เลือก New -> Other -> Papyrus Model
- ตั้งชื่อตามชื่อ project .di (โดย default จะมาเป็น model.di ให้เปลี่ยนชื่อให้เหมือนชื่อ project)
- เลือก language of diagram เป็น UML
- เมื่อเสร็จจะได้ไฟล์สามไฟล์ ชื่อตาม project และมีนามสกุลเป็น .di, .notation, และ .uml
- ในการแสดงผล อาจจะต้องเลือก Perspective เป็น Papyrus แต่ตอนนี้ยังไม่มีข้อมูลอะไรให้แสดง
- ใช้ MoDisco ในการ discover ข้อมูลของคลาสต่าง ๆ
- ที่ project เลือก Discovery -> Discoverers -> Discover Java and Inventory model from Java project...
- จะมี Dialog box ขึ้นมา ให้เลือก SERIALIZE_TARGET เป็น true (เพื่อให้ MoDisco สร้างไฟล์ผลลัพธ์ออกมา) ดังรูปด้านล่าง
- เมื่อสร้างเสร็จจะได้ไฟล์ชื่อ xxx_java.xmi, xxx_java2kdm.xmi, และ xxx_kdm.xmi (เมื่อ xxx แทนชื่อ project)
- Eclipse อาจจะเปิดไฟล์ xxx_java.xmi ขึ้นมา อาจจะกดดูข้อมูลเล่นได้ แต่ไม่จำเป็น
- จากนั้นเราจะให้ MoDisco สร้าง KDM model
- เลือกที่ project จากนั้นเลือก Discovery -> Discoverers -> Discover KDM Code Model From Java Project...
- จะมี Dialog box ขึ้นมา ให้เลือก SERIALIZE_TARGET เป็น true (เพื่อให้ MoDisco สร้างไฟล์ผลลัพธ์ออกมา)
- Eclipse อาจจะเปิดไฟล์ xxx_kdm.xmi ขึ้นมา เราอาจจะกดดูข้อมูลเล่นได้ แต่ไม่จำเป็น
- ขั้นสุดท้าย เราจะให้ MoDisco สร้าง UML model
- เลือกไฟล์ xxx_kdm.xmi, เลือก Discovery -> Discovers -> Discover UML model from KDM model... (ต้องเลือกที่ไฟล์ kdm เท่านั้น จึงจะเห็น option นี้)
- จะมี Dialog box ขึ้นมา ให้เลือก SERIALIZE_TARGET เป็น true (เพื่อให้ MoDisco สร้างไฟล์ผลลัพธ์ออกมา)
- จะได้ไฟล์ xxx.uml ขึ้นมา ไฟล์นี้ควรจะไปทับไฟล์ xxx.uml ว่าง ๆ ที่ Papyrus สร้างขึ้นมา
- ลองกดดูเล่นได้ จะเห็นคลาสต่าง ๆ ที่เราเขียน ดังรูปด้านล่าง
นำเข้าข้อมูลใน Class Diagram
เราจะสร้าง class diagram ดังนั้นให้เปลี่ยน Perspective เป็น Papyrus เสียก่อน
ในช่อง Model Explorer จะเห็น root model เมื่อกดเข้าไป เราควรจะเห็น project ของเราในนั้น ถ้ากดเข้าไปเรื่อย ๆ จะเห็นคลาสต่าง ๆ ของเรา เราจะเริ่มสร้าง class diagram โดยที่จาก root model กดขวาเลือก New Diagram -> Create a new UML Class Diagram จะได้หน้าว่าง ๆ มา
Class: จากนั้นถ้าเราเลือก class แล้ว drag ไปใน diagram เราจะได้คลาสนั้นปรากฏขึ้น เราสามารถเลือกให้แสดง attributes และ operations ได้ โดยกดขวา เลือก Filters -> Show/Hide contents และเลือกให้แสดงของต่าง ๆ ได้ตามต้องการ
Relationship: เราสามารถ drag relationship และ dependency ลงมาใน diagram ได้ หรือเราจะเลือกให้แสดงโดยเลือกที่คลาส แล้วกดขวา เลือก Filters -> Show/Hide Related Link ก็ได้
นอกจากนี้ถ้าเรา drag class association เราก็จะเห็นรายการแสดงขึ้นมาด้วยเช่นกัน
เพื่อความครบถ้วน เราสามารถ drag ข้อมูลทั้งหมดลงมาเลยก็ได้ แต่ diagram เราจะรกมาก ๆ ในกรณีนี้ ถ้าเราไม่ต้องการให้แสดง class ใด ๆ เราสามารถเลือก hide ได้ (อย่าเลือกลบ เพราะว่าลบแล้วข้อมูลของของเหล่านั้นจะหายไปเลย)
ตัวอย่างคลาส Bullet และ DirectionalBullet แสดงดังรูปด้านล่าง