Wygeneruj diagram klas UML z projektu Java [zamknięte]

200

Czy istnieje dobre narzędzie, które może pomóc w inżynierii wstecznej klas Java do UML, które pokażą, w jaki sposób moje klasy są ze sobą powiązane? Nie musi dekompilować z pliku JAR, ponieważ mam źródła. Wiem, że jest ich sporo, ale większość z nich może generować tylko indywidualne klasy. Mam nadzieję, że istnieje narzędzie, które może generować diagram klas, który pokazuje przegląd współpracy wszystkich moich obecnych klas i pakietów, dzięki czemu mogę analizować mój obecny projekt architektury. Oczywiście analizowanie to jedno. Drugi służy do celów dokumentacyjnych.

Do tej pory znam kilka. Ale nie mogą zrobić diagramu klasy przeglądowej. Oto lista narzędzi Java UML, które wypróbowałem i które są w stanie wykonać inżynierię wsteczną, ale nie mogą zrobić schematu klas przeglądowych całego mojego projektu:

  • StarUML (Naprawdę dobre narzędzie opensource UML, ale nie można wygenerować schematu klas przeglądów)
  • ArgoUML (jest powolny i powolny i ciągle się zawiesza)
  • UModel (jest to oprogramowanie komercyjne. Użyłem go jakiś czas temu, ale korzystanie z niego było trudne)
  • MS Visio (nie obsługuje inżynierii wstecznej Java UML. Tylko dla VB)

Czy są jakieś inne zalecenia, które należy dodać do tej listy? I miejmy nadzieję, że może wygenerować przegląd diagramu klas Java. Nawiasem mówiąc, używam Eclipse.

Carven
źródło
1
Aby dodać jeszcze kilka możliwości, w Eclipse istnieje Papirus. Niestety wtyczka do generowania kodu nie działała dla mnie. Ma zbyt wiele zależności do zainstalowania. W końcu użyłem eUML2.
Carven
Możesz sprawdzić UML Lab - jest komercyjny - ale ma bardzo wyrafinowaną i konfigurowalną inżynierię wsteczną (i podróż w obie strony).
Christian
Istnieje bezpłatne narzędzie o nazwie JGrasp, które może pomóc.
HRJ,
Używam tej metody: youtube.com/watch?v=HwBep8DmBVw jedynym minusem jest: to nie jest darmowe, ale możesz mieć 30-dniowy okres próbny, co w moim przypadku było wystarczające. UWAGA: To nie jest mój film, właśnie go znalazłem podczas google.
dazito
@ Carven, daj mi znać, której wtyczki użyłeś? Obecnie szukam automatycznego generowania diagramów sekwencji po wykonaniu junit / testu.
User27854 18.04.15

Odpowiedzi:

46

Używam eUML2 wtyczki z Soyatec pod Eclipse i działa dobrze do generowania UML podając kod źródłowy. To narzędzie jest przydatne do wersji Eclipse 4.4.x

Heisenbug
źródło
Czy wersja bezpłatna ma tę funkcję?
Carven
tak. Korzystam z bezpłatnej edycji.
Heisenbug
1
Dzięki! ;) Nie próbowałem tego, ponieważ zawsze myślałem, że darmowa wersja nie ma kodu do generowania UML.
Carven
38
To jest do bani. Ciężko. Instrukcje chcą, aby użytkownicy poprzedzili wszystkie właściwości znakiem „f”, aby je obwąchać. Jest to również destrukcyjne i dodaje garść własnych komentarzy do WSZYSTKICH plików klas. Ponadto instrukcje nie są intuicyjne. Jeśli ktoś może odrzucić moje doświadczenie (na podstawie bieżącej wersji Keplera), zrób to. I tylko trzy tygodnie próby. Odinstalowywanie teraz.
ingyhere
1
nie podobało mi się to. Jego niekompatybilna najnowsza wersja Eclipse / Oxygen.
Tayfun Yaşar
109

Napisałem Class Visualizer , który to robi. To darmowe narzędzie, które ma wszystkie wymienione funkcje - osobiście używam go do tych samych celów, jak opisano w tym poście. Dla każdej przeglądanej klasy pokazuje 2 natychmiast wygenerowane diagramy klas: relacje klas i widok klasy UML. Schemat relacji klas umożliwia przechodzenie przez całą strukturę. Posiada pełne wsparcie dla adnotacji i nazw ogólnych oraz specjalne wsparcie dla podmiotów JPA. Działa bardzo dobrze z dużymi projektami (tysiące klas).

Jonatan Kaźmierczak
źródło
8
Program jest naprawdę dobry. Dziękujemy za utworzenie i link.
Igor Rodriguez
17
Jonatan, dzięki uprzejmości można / powinien dodać zastrzeżenie do odpowiedzi, sugerując produkty, usługi itp., W które się angażuje.
dbm
2
To jest naprawdę fajne. Biorąc pod uwagę nasz dziesięcioleci, bardzo skomplikowany projekt - duża część kodu to JDK 1.1 vintage - zapewnia to doskonały przegląd tego, jak rzeczy się łączą. Jako uzupełnienie kodu źródłowego i Javadoc zapewnia ogromną wartość w niesamowitej cenie.
gerardw
2
Czy Class Visualizer jest wyjątkowym, niewiarygodnym, użytecznym narzędziem? TAK TO JEST. Jak za to płacimy? Do pobrania za darmo! Jak uczymy się go używać? Spędziłem 10 minut na oglądaniu wideo!
Martin Meeser,
2
Mam klasę, która wywołuje metodę innej klasy w tym samym projekcie / folderze, ale ta inna klasa się nie wyświetla. Dodałem wszystkie możliwe zależności, w tym wszystkie słoiki jdk8. przegapiłem coś?
Aquarius Power
2

Co powiesz na wtyczkę Omondo dla środowiska Eclipse. Użyłem go i uważam, że jest całkiem przydatny. Chociaż jeśli generujesz diagramy dla dużych źródeł, być może będziesz musiał uruchomić Eclipse z większą ilością pamięci.

Swaranga Sarma
źródło
Link nie działa
Blip
2

Powiedziałbym, że MoDisco jest zdecydowanie najmocniejszy (choć prawdopodobnie nie najłatwiejszy w obsłudze ).

MoDisco jest ogólną strukturą inżynierii odwrotnej (dzięki czemu możesz dostosować swój projekt inżynierii odwrotnej, dzięki MoDisco możesz nawet dokonać inżynierii wstecznej zachowania metod Java, nie tylko struktury i podpisów), ale także zawiera pewne predefiniowane funkcje, takie jak generowanie klasy diagramy z potrzebnego kodu Java.

Jordi Cabot
źródło