Bagaimana saya bisa menghasilkan diagram UML (terutama diagram urutan) dari kode Java yang ada?
Bagaimana saya bisa menghasilkan diagram UML (terutama diagram urutan) dari kode Java yang ada?
Jawaban:
Apakah yang saya gunakan. Mudah diinstal dari repositori:
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
Dan menghasilkan diagram UML yang cukup bagus:
ObjectAid UML Explorer berbeda dari alat UML lainnya. Ini menggunakan notasi UML untuk menunjukkan representasi grafis dari kode yang ada yang seakurat dan mutakhir dengan editor teks Anda, sementara sangat mudah digunakan. Beberapa fitur unik memungkinkan ini:
- Kode sumber dan pustaka Anda adalah model yang ditampilkan, mereka tidak direkayasa balik menjadi format yang berbeda.
- Jika Anda memperbarui kode di Eclipse, diagram Anda juga diperbarui; tidak perlu membalikkan kode sumber insinyur.
- Refactoring memperbarui diagram Anda serta kode sumber Anda. Saat Anda mengganti nama bidang atau memindahkan kelas, diagram Anda hanya mencerminkan perubahan tanpa keluar dari sinkronisasi.
- Semua diagram di ruang kerja Eclipse Anda diperbarui dengan perubahan refactoring yang sesuai. Jika perlu, mereka diperiksa dari sistem kontrol versi Anda.
- Diagram sepenuhnya terintegrasi ke dalam Eclipse IDE. Anda dapat menyeret kelas Java dari tampilan lain ke diagram, dan informasi terkait diagram ditampilkan di tampilan lain di mana pun berlaku.
An error occurred while installing the items session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.objectaid.uml 1.1.3, action=). Failed to prepare partial IU: [R]com.objectaid.uml 1.1.3.
EDIT: Jika Anda seorang desainer maka Papyrus adalah pilihan terbaik Anda, itu sangat canggih dan penuh fitur, tetapi jika Anda hanya ingin membuat sketsa beberapa diagram UML dan pemasangan yang mudah maka ObjectAid cukup keren dan tidak memerlukan plugin apa pun. baru saja menginstalnya di Eclipse-Java EE dan berfungsi dengan baik!
PEMBARUAN 11 Oktober 2013
Posting asli saya adalah pada Juni 2012 banyak hal telah berubah banyak alat telah berkembang dan yang lainnya tidak. Karena saya akan kembali untuk melakukan beberapa pemodelan dan juga mendapatkan beberapa balasan untuk posting saya memutuskan untuk menginstal papyrus lagi dan akan menyelidiki kemungkinan solusi pemodelan UML lainnya. Generasi UML (dengan fitur sinkronisasi) sangat penting bukan untuk perancang perangkat lunak tetapi bagi pengembang rata-rata.
Saya berharap papirus memiliki cara langsung ke kelas Reverse Engineer ke dalam diagram kelas UML dan itu akan sangat keren jika rekayasa terbalik memiliki fitur sinkronisasi, tapi sayangnya proyek papirus penuh dengan fitur dan saya pikir pengembang sudah memiliki banyak di tangan karena juga banyak tindakan yang Anda lakukan terhadap papirus mungkin tidak memberi Anda respons apa pun dan tidak ada apa-apa yang terjadi, tetapi hal itu di luar cakupan pertanyaan ini.
Jawabannya (11 Oktober 2013)
Alat
Langkah
Klik kanan pada MyProject_kdm.xmi -> Discovery -> Discoverer -> Temukan model UML dari kode KDM lagi Anda akan mendapatkan dialog properti mengatur prop serialisasi ke TRUE untuk menghasilkan file bernama MyProject.uml
Pindahkan MyProject.uml yang dihasilkan yang dihasilkan di root, ke folder UML, Eclipse akan bertanya kepada Anda Jika Anda ingin menggantinya klik ya. Apa yang kami lakukan di sini adalah bahwa kami mengganti model kosong dengan yang dihasilkan.
ALT + W -> tampilkan tampilan -> papyrus -> model explorer
Dalam tampilan itu, Anda akan menemukan kelas Anda seperti pada gambar
Pada tampilan Klik kanan model root -> Diagram baru
Kemudian mulailah mengambil kelas ke diagram dari tampilan
Beberapa fitur
Untuk menampilkan elemen kelas (variabel, fungsi, dll) Klik kanan pada sembarang kelas -> Filter -> tampilkan / sembunyikan konten Voila !!
Anda dapat memiliki pengaturan warna ramah standar dari Window -> pereferences -> papyrus -> diagram kelas
satu pengaturan yang sangat penting adalah Atur ketika Anda menjatuhkan kelas mereka mendapatkan klik kanan sempit pada ruang kosong di diagram kelas dan klik Atur Semua
Panah dalam tampilan model explorer dapat diambil ke diagram untuk menunjukkan generalisasi, realisasi dll
Setelah semua itu, pengaturan Anda akan menampilkan diagram seperti
Sinkronisasi tidak tersedia sejauh yang saya tahu Anda perlu mengimpor kelas baru secara manual.
Itu saja, Dan jangan membeli produk komersial kecuali Anda benar-benar membutuhkannya, papirus sebenarnya hebat dan canggih, bukan sumbangan atau semacamnya.
Penafian: Saya tidak punya hubungan dengan orang-orang papirus, pada kenyataannya, saya tidak suka papirus pada awalnya sampai saya melakukan banyak penelitian dan mengalaminya dengan sabar. Dan akan kembali ke posting ini lagi ketika saya mencoba alat gratis lainnya.
Apa basis kode Anda? Java atau C ++?
eUML2 untuk Java adalah pemodel UML kuat yang dirancang untuk Java developper di Eclipse. Edisi gratis dapat digunakan untuk penggunaan komersial. Ini mendukung fitur-fitur berikut:
- CVS dan Dukungan Tim
- Dirancang untuk proyek besar dengan tampilan model yang banyak dan dapat disesuaikan
- Helios Compliant
- Sinkronisasi kode / model waktu-nyata
- Sesuai UML2.1 dan dukungan OMG XMI
- Dukungan JDK 1.4 dan 1.5
Edisi komersial menyediakan:
Rekayasa terbalik yang canggih
- Alat analisis ketergantungan benar yang kuat
- Profil UML dan MDD
- Alat basis data
- Dukungan template yang dapat disesuaikan
Saya adalah salah satu penulisnya, jadi jawabannya bisa bias. Ini open-source (Apache 2.0), tetapi plugin ini tidak gratis. Anda tidak perlu membayar (jelas) jika Anda mengkloning dan membangunnya secara lokal.
Pada Intellij IDEA, ZenUML dapat menghasilkan diagram urutan dari kode Java.
Lihat di https://plugins.jetbrains.com/plugin/12437-zenuml-support
Kode sumber: https://github.com/ZenUml/jetbrains-zenuml
Bagaimana dengan PlantUML ? Ini bukan untuk rekayasa terbalik !!! Ini untuk rekayasa sebelum Anda kode.
Saya mengembangkan plugin pakar yang dapat keduanya, dijalankan dari CLI sebagai tujuan plugin, atau impor sebagai ketergantungan dan secara terprogram menggunakan parser, @see Main#main()
untuk mendapatkan ide tentang caranya.
Ini membuat kode PlantUML src paket yang diinginkan secara rekursif yang dapat Anda edit secara manual jika diperlukan (mudah-mudahan Anda tidak akan). Kemudian, dengan menempelkan kode di halaman plantUML, atau dengan mengunduh toples plant Anda dapat merender diagram UML sebagai gambar png.
Lihat di sini https://github.com/juanmf/Java2PlantUML
Setiap kontribusi lebih dari diterima. Ini memiliki satu set filter yang mengkustomisasi output tetapi saya belum memaparkan ini di params plugin CLI.
Penting untuk dicatat bahwa ini tidak terbatas pada file * .java Anda, dapat membuat diagram UML src dari maven dependensi Anda juga. Ini sangat berguna untuk memahami perpustakaan yang Anda andalkan. Ini benar-benar memeriksa kelas yang dikompilasi dengan refleksi sehingga tidak diperlukan sumber
Jadilah yang pertama memberi bintang di GitHub: P
Saya akan merekomendasikan EclipseUML dari Omondo untuk penggunaan umum, meskipun saya mengalami beberapa masalah beberapa bulan lalu, dengan proyek web saya. Mereka memiliki edisi gratis pada satu titik waktu, tetapi itu seharusnya tidak lagi dipromosikan.
Jika Anda benar-benar tertarik pada diagram urutan rekayasa terbalik dari kode sumber, saya akan merekomendasikan jTracert .
Sejauh menyangkut proyek Eclipse sendiri, proyek Eclipse UML2 Tools mungkin mendukung reverse engineering, meskipun saya belum pernah melihat penggunaannya dalam praktik.
Proyek MoDisco (Model Discovery) proyek Eclipse GMT proyek tampaknya lebih jelas dalam mencapai tujuan Anda. The daftar alat khusus teknologi akan menjadi tempat yang baik untuk memulai dengan.
jSonde
tersedia di URL yang ditunjukkan di atas. Anda dapat menemukan situs web dan kode sumber di Github: github.com/bedrin/jsonde .
Saya menemukan plugin Green sangat mudah digunakan dan untuk menghasilkan diagram kelas dari kode sumber. Cobalah :). Cukup salin plugin ke dir plugin Anda.
Anda juga bisa mencoba pemodel Ube netbeans. Saya telah menggunakannya untuk menghasilkan javacode yang saya gunakan dalam proyek gerhana saya. Anda bahkan dapat mengimpor proyek gerhana di netbeans dan menjaga pengaturan gerhana disinkronkan dengan pengaturan proyek netbeans.
Saya mencoba beberapa pemodel UML untuk gerhana dan tidak puas dengan mereka. Mereka tidak stabil, rumit atau hanya jelek. ;-)
Menggunakan IntelliJ IDEA. Untuk menghasilkan diagram kelas pilih paket dan tekan Ctrl+ Alt+ U:
Secara default, ini hanya menampilkan nama kelas dan tidak semua dependensi. Untuk mengubahnya: klik kanan -> Tampilkan Kategori ... dan Tampilkan dependensi:
Untuk membuat diagram dependensi (UML Deployment diagram) dan Anda menggunakan maven go Lihat -> Alat Windows -> Proyek Maven dan tekan Ctrl+ Alt+ U:
Juga dimungkinkan untuk menghasilkan lebih banyak diagram orang lain. Lihat dokumentasi .
Anda dapat menggunakan versi evaluasi 30 hari EclipseUML untuk Eclipse 3.5: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip Ini bukan versi 3.6 terbaru, tetapi cukup bagus dan tidak mengharuskan Anda membelinya untuk pengujian dan rekayasa terbalik.
Rekayasa terbalik: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html
Demo flash langsung: http://www.ejb3.org/reverse.swf
EclipseUML Omondo adalah alat terbaik di dunia untuk Jawa. Hanya eUML yang tampaknya bersaing dengannya di pasar sinkronisasi java langsung ini, tetapi eUML menambahkan tag model dalam kode yang benar-benar sangat sangat buruk dan tidak masuk akal bagi saya.
Sejauh ini alat terbaik yang saya gunakan untuk teknik reverse, dan round tripping java -> UML adalah Borland's Together . Ini didasarkan pada Eclipse (bukan hanya satu plugin) dan benar-benar berfungsi dengan baik.
Saya sarankan PlantUML. alat ini sangat bermanfaat dan mudah digunakan. PlantUML memiliki plugin untuk Netbeans yang dapat Anda buat diagram UML dari kode java Anda.
Anda dapat menginstal plugin PlantUML di netbeans dengan metode ini:
Menu Netbeans -> Tools -> Plugin
Sekarang pilih Plugins yang Tersedia dan kemudian temukan PlantUML dan instal.
Untuk informasi lebih lanjut, kunjungi situs web: www.plantuml.com
Saya perhatikan plugin SequenceDiagram untuk Intellij juga merupakan opsi yang baik.
Alat pemodelan lain untuk Java adalah (saya) situs web GitUML . Hasilkan diagram UML dari Java atau kode Python yang disimpan dalam repositori GitHub.
Satu ide kunci dengan GitUML adalah untuk mengatasi salah satu masalah dengan "dokumentasi": bahwa diagram selalu ketinggalan zaman. Dengan GitUML, diagram secara otomatis diperbarui ketika Anda mendorong kode menggunakan git.
Jelajahi diagram UML komunitas, ada beberapa pola desain Java di sana. Jelajahi melalui repositori GitHub yang populer dan visualisasikan arsitektur dan pola di dalamnya.
Buat diagram menggunakan titik dan klik. Tidak ada editor drag drop, cukup klik pada kelas di pohon repositori yang ingin Anda visualisasikan:
Teknologi yang mendasari adalah PlantUML berbasis, yang berarti Anda dapat memperbaiki diagram Anda dengan markup PlantUML tambahan.
Ada alat gratis bernama binarydoc yang dapat menghasilkan UML Sequence Diagram
, atau Control Flow Graph
( CFG
) dari bytecode
(alih-alih kode sumber) dari metode Java.
Berikut adalah contoh diagram binarydoc yang dihasilkan untuk metode java java.net.AbstractPlainSocketImpl.getInputStream :
java.net.AbstractPlainSocketImpl.getInputStream
:java.net.AbstractPlainSocketImpl.getInputStream
: