Oop lab/java to uml in eclipse

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
หน้าหลัก 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-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 สร้างไฟล์ผลลัพธ์ออกมา) ดังรูปด้านล่าง

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 สร้างขึ้นมา
    • ลองกดดูเล่นได้ จะเห็นคลาสต่าง ๆ ที่เราเขียน ดังรูปด้านล่าง

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 แสดงดังรูปด้านล่าง

Uml-bullets.png