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ędzieopensourceUML, 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.
Odpowiedzi:
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
źródło
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).
źródło
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.
źródło
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.
źródło