Mevcut Java kodundan nasıl UML diyagramları (özellikle sıra diyagramları) oluşturabilirim?
Mevcut Java kodundan nasıl UML diyagramları (özellikle sıra diyagramları) oluşturabilirim?
Yanıtlar:
Kullandığım şey bu. Depodan kolayca yüklenir :
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
Ve oldukça güzel UML diyagramları üretir:
ObjectAid UML Explorer, diğer UML araçlarından farklıdır. UML gösterimini, mevcut kodun metin düzenleyiciniz kadar doğru ve güncel bir grafik temsilini göstermek için kullanır ve kullanımı çok kolaydır. Birkaç benzersiz özellik bunu mümkün kılar:
- Kaynak kodunuz ve kitaplıklarınız görüntülenen modeldir, tersine farklı bir formata dönüştürülmezler.
- Kodunuzu Eclipse'de güncellerseniz, diyagramınız da güncellenir; mühendis kaynak kodunu tersine çevirmeye gerek yoktur.
- Yeniden düzenleme, diyagramınızın yanı sıra kaynak kodunuzu da günceller. Bir alanı yeniden adlandırdığınızda veya bir sınıfı taşıdığınızda, diyagramınız senkronizasyondan çıkmadan değişiklikleri yansıtır.
- Eclipse çalışma alanınızdaki tüm diyagramlar, uygun şekilde yeniden düzenleme değişiklikleriyle güncellenir. Gerekirse, sürüm kontrol sisteminizden kontrol edilir.
- Diyagramlar Eclipse IDE'ye tamamen entegre edilmiştir. Java sınıflarını başka herhangi bir görünümden diyagrama sürükleyebilirsiniz ve şemaya ilişkin bilgiler, uygun olan yerlerde diğer görünümlerde gösterilir.
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: Eğer bir tasarımcı iseniz Papirüs en iyi seçimdir çok gelişmiş ve özelliklerle dolu, ama sadece bazı UML diyagramları ve kolay kurulum çizmek istiyorsanız , ObjectAid oldukça havalı ve herhangi bir eklenti gerektirmiyor I Eclipse-Java EE üzerine yükledim ve harika çalışıyor !.
GÜNCELLEME 11 Ekim 2013
Orijinal yazım Haziran 2012'de bir çok şey değişti, birçok araç büyüdü ve diğerleri değişmedi. Bazı modellemeler yapmaya ve aynı zamanda gönderiye bazı yanıtlar almaya gittiğim için tekrar papirüs kurmaya karar verdim ve diğer olası UML modelleme çözümlerini tekrar araştıracağım. UML üretimi (senkronizasyon özelliğiyle) yazılım tasarımcısı için değil, ortalama geliştirici için gerçekten önemlidir.
Keşke papirüs Tersine Mühendislik sınıflarını UML sınıf diyagramına çevirmenin kolay bir yolunu olsaydı ve tersine mühendislik bir senkronizasyon özelliğine sahip olsaydı süper havalı olurdu, ama ne yazık ki papirüs projesi özelliklerle dolu ve bence geliştiriciler zaten çok fazla papirüs üzerinde yaptığınız eylemler size herhangi bir yanıt vermeyebilir ve hiçbir şey olmaz, ancak yine de bu soru kapsamı dışındadır.
The Answer (11 Ekim 2013)
Araçlar
adımlar
MyProject_kdm.xmi -> Discovery -> Discoverer -> KDM kodundan UML modelini tekrar sağ tıklayın, MyProject.uml adlı bir dosya oluşturmak için serileştirme propini TRUE olarak ayarlayın.
Kökte oluşturulan oluşturulan MyProject.uml dosyasını UML klasörüne taşıyın, Eclipse size bunu soracaktır Eğer değiştirmek isterseniz evet'e tıklayın. Burada yaptığımız şey, boş bir modeli üretilen modelle değiştirmemizdi.
ALT + W -> görünümü göster -> papirüs -> model gezgini
Bu görünümde, sınıflarınızı resimdeki gibi bulacaksınız
Görünümde Sağ tıklama kök modeli -> Yeni diyagram
Ardından görünümden diyagrama sınıfları yakalamaya başlayın
Bazı özellikler
Sınıf öğelerini (değişkenler, fonksiyonlar vb.) Göstermek için Herhangi bir sınıfa sağ tıklayın -> Filtreler -> içeriği göster / gizle Voila !!
Pencere -> tercihler -> papirüs -> sınıf diyagramından varsayılan kolay renk ayarlarına sahip olabilirsiniz
çok önemli bir ayar, sınıfları düşürdüğünüzde düzenleyin , bir sınıf diyagramındaki herhangi bir boş alana sıkışık bir sağ tıklama alır ve Tümünü Yerleştir'i tıklatın.
Model gezgini görünümündeki oklar, genelleme, gerçekleştirme vb.Göstermek için şemaya alınabilir.
Tüm bunlardan sonra ayarlarınız aşağıdaki gibi diyagramları gösterecektir:
Senkronizasyon, yeni sınıfları manuel olarak içe aktarmanız gerektiğini bildiğim kadarıyla kullanılamıyor.
Hepsi bu, Ve gerçekten ihtiyacınız olmadıkça ticari ürünler satın almayın, papirüs bağışlamak ya da bir şey yerine aslında harika ve sofistike.
Feragatname: Papirüs insanlarıyla hiçbir ilişkim yok, aslında, çok fazla araştırma yapana ve biraz sabırla deneyimleyene kadar ilk başta papirüs sevmedim. Ve diğer ücretsiz araçları denediğimde bu gönderiye tekrar döneceğim.
Kod tabanınız nedir? Java veya C ++?
Java için eUML2, Eclipse'de Java geliştiricisi için tasarlanmış güçlü bir UML modelleyicisidir. Ücretsiz sürüm ticari kullanım için kullanılabilir. Aşağıdaki özellikleri destekler:
- CVS ve Takım Desteği
- Birden çok ve özelleştirilebilir model görünümüne sahip büyük proje için tasarlanmıştır
- Helios Uyumlu
- Gerçek zamanlı kod / model senkronizasyonu
- UML2.1 uyumlu ve OMG XMI desteği
- JDK 1.4 ve 1.5 desteği
Ticari baskı şunları sağlar:
Gelişmiş tersine mühendislik
- Güçlü gerçek bağımlılık analiz araçları
- UML Profili ve MDD
- Veritabanı araçları
- Özelleştirilebilir şablon desteği
Ben yazarlardan biriyim, bu yüzden cevap taraflı olabilir. Açık kaynaklıdır (Apache 2.0), ancak eklenti ücretsiz değildir. Yerel olarak klonlayıp oluşturursanız (açıkçası) ödeme yapmak zorunda değilsiniz.
Intellij IDEA'da ZenUML, Java kodundan dizi diyagramı oluşturabilir.
Https://plugins.jetbrains.com/plugin/12437-zenuml-support adresinden kontrol edin.
Kaynak kodu: https://github.com/ZenUml/jetbrains-zenuml
PlantUML hakkında ne dersiniz ? Tersine mühendislik için değil !!! Kodlamadan önce mühendislik içindir.
Bir eklenti hedefi olarak CLI'den çalıştırılabilir veya bağımlılık olarak içe aktarılabilir ve programlayıcı olarak ayrıştırıcıyı nasıl kullanacağına dair fikir edinmek için maven eklentisi geliştirdim @see Main#main()
.
Bu hale PlantUML yinelemeli istenen paketlerin src kodu (umarım vermeyeceksin) gerekirse elle düzenleyebilirsiniz. Daha sonra, kodu plantUML sayfasına yapıştırarak veya bitkinin kavanozunu indirerek UML diyagramını bir png görüntüsü olarak oluşturabilirsiniz.
Buradan kontrol edin https://github.com/juanmf/Java2PlantUML
Herhangi bir katkı hoş geldiniz daha fazladır. Çıktıyı özelleştiren bir dizi filtreye sahip, ancak bunları henüz eklenti CLI parametrelerinde göstermedim.
* .Java dosyalarınızla sınırlı olmadığını, UML diyagramlarını src'yi sizden maven bağımlılıklarına da dönüştürebileceğini unutmayın. Bu, bağımlı olduğunuz kütüphaneleri anlamak için çok kullanışlıdır. Aslında derlenmiş sınıfları yansıma ile inceler, böylece kaynak gerekmez
GitHub: P'de yıldız atan ilk siz olun
Web projelerimle birkaç ay önce bazı sorunlar yaşadığım halde, genel kullanım için EclipseUML'u Omondo'dan tavsiye ederim . Bir seferde ücretsiz bir sürümleri vardı, ancak bu artık teşvik edilmiyor.
Eğer kaynak kodundan tersine mühendislik sırası diyagramlarına meraklıysanız jTracert'i tavsiye ederim .
Eclipse projelerinin kendilerine gelince, Eclipse UML2 Tools projesi uygulamada daha önce hiç görmemiş olmama rağmen tersine mühendisliği destekleyebilir.
MoDisco (Model Discovery) projesi Eclipse GMT proje Hedefiniz ulaşmada daha net görünüyor. Teknoloji özel araçlar listesi ile başlamak için iyi bir yer olurdu.
jSonde
Yukarıda gösterilen URL'de kullanılamaz. Bir web sitesini ve kaynak kodunu Github'da bulabilirsiniz : github.com/bedrin/jsonde .
Yeşil eklentiyi kullanımı ve kaynak kodundan sınıf diyagramı oluşturmak için çok basit buldum . Bir şans ver :). Eklentiyi eklenti dizininize kopyalamanız yeterlidir.
Netbeans UML modellerini de deneyebilirsiniz. Tutulma projelerimde kullandığım java kodu oluşturmak için kullandım. Eclipse projelerini netbeans'e bile aktarabilir ve eclipse ayarlarını netbeans proje ayarlarıyla senkronize halde tutabilirsiniz.
Tutulma için birkaç UML modellerini denedim ve onlardan memnun kalmadım. Ya dengesiz, karmaşık ya da sadece çirkinlerdi. ;-)
IntelliJ IDEA kullanma. Sınıf diyagramı oluşturmak için paketi seçin ve Ctrl+ Alt+ tuşlarına basın U:
Varsayılan olarak, tüm bağımlılıkları değil, yalnızca sınıf adlarını görüntüler. Değiştirmek için: sağ tıklayın -> Kategorileri Göster ... ve Bağımlılıkları göster:
Bağımlılık şemasını (UML Dağıtım şeması) oluşturmak ve maven gitmek için Görünüm -> Araç Pencereleri -> Maven Projeleri'ni kullanın ve Ctrl+ Alt+ tuşlarına basın U:
Ayrıca başka diyagramlar oluşturmak da mümkündür. Belgelere bakın .
Eclipse 3.5 için 30 günlük EclipseUML değerlendirme derlemesini kullanabilirsiniz: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip Bu en son 3.6 derlemesi değil, oldukça iyi ve test ve tersine mühendislik için satın almanızı gerektirmez.
Tersine mühendislik: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html
Canlı flaş demosu: http://www.ejb3.org/reverse.swf
EclipseUML Omondo, Java için dünyadaki en iyi araçtır. Sadece eUML bu canlı java senkronizasyon pazarında onunla rekabet ediyor gibi görünüyor, ancak eUML gerçekten çok çok kötü olan kodda model etiketleri ekliyor ve kesin bir hayır benim için gitmiyor.
Tersine mühendislik için kullandığım en iyi araç ve yuvarlak açma java -> UML Borland's Together . Eclipse'e dayanır (sadece tek bir eklenti değil) ve gerçekten iyi çalışır.
PlantUML'yi öneririm. bu araçlar çok kullanışlı ve kullanımı kolaydır. PlantUML, Netbeans için java kodunuzdan UML diyagramı oluşturabileceğiniz bir eklentiye sahiptir.
PlantUML eklentisini bu yöntemle netbeans'e yükleyebilirsiniz:
Netbeans Menüsü -> Araçlar -> Eklenti
Şimdi Kullanılabilir Eklentiler'i seçin ve PlantUML'yi bulun ve yükleyin.
Daha fazla bilgi için web sitesine gidin: www.plantuml.com
Intellij için SequenceDiagram eklentisinin de iyi bir seçenek olduğunu fark ettim.
Java için başka bir modelleme aracı (benim) web sitesi GitUML'dir . GitHub depolarında depolanan Java veya Python kodundan UML diyagramları oluşturun.
GitUML ile ilgili temel fikirlerden biri, "dokümantasyon" ile ilgili sorunlardan birini ele almaktır: diyagramlar her zaman güncel değildir. GitUML ile git kullanarak kodu ittiğinizde diyagramlar otomatik olarak güncellenir.
Topluluk UML diyagramlarına göz atın, orada bazı Java tasarım desenleri var. Popüler GitHub depolarında gezinin ve içindeki mimarileri ve desenleri görselleştirin.
İşaretle ve tıkla kullanarak diyagramlar oluşturun. Sürükle bırak editörü yok, sadece görselleştirmek istediğiniz depo ağacındaki sınıfları tıklayın:
Temel teknoloji PlantUML tabanlıdır, yani diyagramlarınızı ek PlantUML işaretlemesi ile hassaslaştırabilirsiniz.
Bir Java yönteminin (kaynak kodu yerine ) üretebileceği veya ( ) kodundan üretebilen binarydoc adlı bir Ücretsiz araç vardır .UML Sequence Diagram
Control Flow Graph
CFG
bytecode
Java yöntemi java.net için oluşturulan bir örnek diyagram binarydoc.AbstractPlainSocketImpl.getInputStream :
java.net.AbstractPlainSocketImpl.getInputStream
:java.net.AbstractPlainSocketImpl.getInputStream
: