Bagaimana cara membuat diagram UML berdasarkan kelas yang ada di PHP?
Bagaimana cara membuat diagram UML berdasarkan kelas yang ada di PHP?
Jawaban:
Ada juga alat PHP UML yang tersedia dari pir .
PHP_UML:
Instal di baris perintah melalui:
$ pear install pear/php_uml
(Ini dulu $ pear install pear/php_uml-alpha
tetapi paketnya telah stabil.)
Hasilkan xmi Anda:
$ phpuml -o project.xmi
pear install PHP_UML-1.6.1
(lihat pear.php.net/package/PHP_UML/download/All atau pear.php.net/package/PHP_UML )
Saya sangat merekomendasikan BOUML yang:
phUML adalah generator diagram kelas UML otomatis yang ditulis dalam PHP, berlisensi di bawah lisensi BSD. Ia mampu mengurai kode sumber berorientasi objek PHP5 dan membuat representasi gambar yang sesuai dari struktur oo berdasarkan spesifikasi UML.
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
perangkat lunak (Windows) terbaik yang saya temukan untuk melakukan PHP dan UML adalah Sparx Systems Enterprise Architect . selain sejumlah besar fitur , ini mendukung berikut ini untuk PHP:
tidak gratis ($ 199), tetapi pasti bernilai uang.
Ada juga php2xmi . Anda harus melakukan sedikit pekerjaan manual, tetapi ini menghasilkan semua kelas, jadi yang harus Anda lakukan adalah menyeretnya ke diagram kelas di Umbrello .
Jika tidak, membuat diagram dengan menggunakan refleksi dan graphviz, cukup sederhana. Saya memiliki cuplikan di sini , yang dapat Anda gunakan sebagai titik awal.
Inilah cara saya melakukannya (langsung dari kode ke gambar PDF tanpa menggambar manual apa pun):
Berikut adalah contoh baris perintah yang sesuai untuk menggunakan fdp untuk menghasilkan diagram PDF (dengan asumsi bahwa file titik yang dihasilkan oleh pemrosesan XLST argouml-graphviz disimpan sebagai xmi-model.dot):
fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
-Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
-Goverlap=false xmi-model.dot -oxmi-model.pdf
Sebagai alternatif, Anda dapat mencoba PHP_UML atau php2xmi daripada BOUML untuk melakukan bagian "rekayasa balik". Saya belum mencobanya.
(Saya menggunakan frasa "rekayasa balik" karena tampaknya orang-orang UML menggunakan kata-kata itu ketika yang mereka maksud adalah mengekstrak informasi kelas dan metode dari kode sumber . Saya secara pribadi akan menafsirkan kata-kata itu sebagai mengekstrak informasi dari file biner yang dapat dieksekusi atau menangkap mentah data kabel.)
Jika Anda lebih suka menggambar diagram kelas dengan tangan (daripada menggunakan komputer untuk mengerjakan semua gambar), Anda dapat menggunakan BOUML atau ArgoUML untuk menggambar. Menggunakan data "rekayasa terbalik" melalui BOUML akan membantu dalam kasus tersebut.
Jika Anda ingin membuat UML dengan mudah dari Kelas PHP yang ada, Anda mungkin ingin mempertimbangkan IDE PHPStorm 3.0. Itu melakukan pekerjaan yang baik untuk mereplikasi kode yang ada ke dalam UML.
Lihat daftar fitur PHP Storm .
Anda dapat menggunakan Paradigma Visual untuk UML. Ini mungkin bukan produk dengan bayaran terbaik (US $ 699), hanya sebagai pilihan jika ada yang ingin mencoba. Itu dapat membuat diagram kelas dari PHP dan sebaliknya, dan tidak hanya PHP, ada banyak bahasa yang dapat Anda pilih seperti C #, C ++, Ruby, Java, VB.NET, Python, Objective C, Perl, dll. Ada juga uji coba yang dapat Anda periksa.
Secara teori, Anda dapat menggunakan PhpStorm untuk memvisualisasikan kelas Anda menggunakan UML. Generasi ini tidak terlalu hebat tetapi Anda dapat memfaktor ulang secara efektif dan sekali lagi, setidaknya melihat pratinjau orang tua, implementasi, konstanta, atribut, metode, dan visibilitasnya dengan cara yang bagus.
Situasi
Saya ingin memvisualisasikan komunikasi antara komponen yang sudah ada dengan rekan kerja.
Proses menggunakan PHPStorm
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
Keuntungan
Kekurangan
Hasil
Bagaimanapun, setelah beberapa jam kerja yang menyakitkan, saya hanya dapat membuat kotak yang tidak terkait dan harus menggunakan program tambahan untuk menghubungkan hubungan. Sangat buruk. Tapi saya yakin begitu mereka membuatnya berfungsi dengan baik, itu akan menjadi fitur hebat karena saat kode berubah, diagram akan diperbarui secara otomatis!
Untuk saat ini, jangan gunakan PhpStorm untuk diagram UML.
Sejujurnya, pertama dan terpenting Anda tidak boleh membuat model UML dari kode, tetapi kode dari model UML;).
Bahkan jika Anda berada dalam situasi yang jarang terjadi, ketika Anda perlu melakukan rekayasa balik ini, umumnya disarankan agar Anda melakukannya dengan tangan atau setidaknya merapikan diagram, karena UML yang dibuat secara otomatis memiliki visual (= informasi) yang sangat buruk menghargai sebagian besar waktu.
Jika Anda hanya perlu membuat diagram, mungkin ada baiknya Anda bertanya pada diri sendiri mengapa sebenarnya? Siapa audiens yang dituju dan apa tujuannya? Apa yang ditawarkan diagram yang dibuat secara otomatis, kode apa yang tidak?
Pada dasarnya saya hanya menerima satu jawaban untuk pertanyaan itu. Itu terlalu besar dan tidak bisa dimengerti.
Yang lagi-lagi merupakan alasan untuk memulai dengan UML di tempat pertama, sebagai lawan untuk memulai pengkodean;) Ini disebut analisis dan itu menurun, karena setiap orang kedua dalam bisnis berpikir itu agak terlalu mahal dan tidak terlalu diperlukan.