ผลต่างระหว่างรุ่นของ "Oop lab/java to uml in eclipse"
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 5 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 5: | แถว 5: | ||
ถ้าเรามีโค้ด Java อยู่ใน Eclipse อยู่แล้ว เราสามารถสร้าง UML class diagram ได้โดยใช้ plugin MoDisco (สำหรับ discovery) และ Papyrus (สำหรับวาด diagram) โดยมีขั้นตอนคร่าว ๆ ดังนี้ | ถ้าเรามีโค้ด Java อยู่ใน Eclipse อยู่แล้ว เราสามารถสร้าง UML class diagram ได้โดยใช้ plugin MoDisco (สำหรับ discovery) และ Papyrus (สำหรับวาด diagram) โดยมีขั้นตอนคร่าว ๆ ดังนี้ | ||
− | + | == ติดตั้ง software ต่าง ๆ: ต้องติดตั้ง Eclipse Modeling, Papyrus, และ MoDisco == | |
** เลือก Help -> Install New Software | ** เลือก Help -> Install New Software | ||
** ในช่อง "Work with:" เลือก "--All Available Sites--" | ** ในช่อง "Work with:" เลือก "--All Available Sites--" | ||
แถว 15: | แถว 15: | ||
[[Image:Uml-eclipse-plugins.png]] | [[Image:Uml-eclipse-plugins.png]] | ||
+ | |||
+ | == สร้างไฟล์ข้อมูล 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 สร้างไฟล์ผลลัพธ์ออกมา) ดังรูปด้านล่าง | ||
+ | |||
+ | [[Image:Uml-modisco1.png]] | ||
+ | |||
+ | ** เมื่อสร้างเสร็จจะได้ไฟล์ชื่อ 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 สร้างขึ้นมา | ||
+ | ** ลองกดดูเล่นได้ จะเห็นคลาสต่าง ๆ ที่เราเขียน ดังรูปด้านล่าง | ||
+ | |||
+ | [[Image:Uml-modisco2.png]] | ||
+ | |||
+ | == นำเข้าข้อมูลใน 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 แสดงดังรูปด้านล่าง | ||
+ | |||
+ | [[Image:Uml-bullets.png]] |
รุ่นแก้ไขปัจจุบันเมื่อ 13:36, 19 ตุลาคม 2557
- หน้าหลัก 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 แสดงดังรูปด้านล่าง