2009-05-26 17 views
8

HI Wszystko, co mam na końcu wydania mojego projektu. Aby kontynuować pracę, nasz menadżer poprosił nas o wygenerowanie diagramów klas dla kodu, który napisaliśmy. Jest to średni projekt z 3500 plikami java. Myślę, że musimy generować diagramy klas. Najpierw muszę wiedzieć, jak działa tutaj inżynieria odwrotna. Szukałem też narzędzi w Google (zielony, fioletowy), ale nie jestem pewien, czy są one przydatne. Proszę zasugerować mi, jak postępować. Również dobry tutorial początkowy jest mile widziany.Generowanie diagramu klas

Odpowiedz

7

Gorąco polecamBOUML. Obsługa Java Reverse jest absolutnie ROCK SOLID.

BOUML ma wiele pozostałe informacje i zalety:

  • jest bardzo szybki (najszybszym narzędziem UML, jakie kiedykolwiek stworzono, sprawdź benchmarks)
  • ma rock solid C++, Java, PHP i inne importować wsparcia,
  • jest wieloplatformowy (Linux, Windows, inne systemy operacyjne),
  • ma świetne wsparcie eksportu SVG, co jest ważne, ponieważ oglądanie dużych wykresów w formacie wektorowym, które szybko skaluje się w np. Firefox jest bardzo wygodny (możesz szybko przełączać między widokiem "oka ptaka" a widokiem szczegółów klasy),
  • jest w pełni funkcjonalny, imponująco intensywnie rozwijany (spójrz na development history, trudno uwierzyć, że taki szybki postęp jest możliwy).
  • obsługuje wtyczek, posiada modułową architekturę (pozwala to user contributions, wygląda BOUML społeczność formuje się)
+0

Jest to przyjemne i naprawdę łatwe w użyciu. Jednak diagramy są brzydkie. –

+0

I sekundę zalecenia BOUML. Jest napisany w Qt, więc działa w dowolnym miejscu Qt działa, i użyłem go na Mac OS X i Windows i działa dobrze. To jest najbardziej zbliżona do mojej wypróbowanej i prawdziwej ulubionej, Rational Rose, ale działa znacznie lepiej! Rose cały czas się zawiesza, chociaż teraz, po konwersji na RAD/Eclipse, wydaje się to lepsze. Nie jestem pewien co do komentarza, że ​​diagramy są "brzydkie", są one w zasadzie standardowymi modelami UML i są bardzo podobne do "Rose". – michaelok

0

Dostępne są pewne narzędzia, które pomogą Ci wygenerować te diagramy. Te koszty.

W przeciwnym razie można spróbować przetworzyć pliki Java. Może to być proste utworzenie prostego analizatora składni, który odczytuje pliki Java i zapisuje nazwę klasy oraz wszystkie instrukcje importowania do pliku i generuje tam diagram klas, graphviz.

+0

Można połączyć to podejście z bezpłatnym generatorem diagramów UML http://yuml.me. Ludzie [już to robią] (http://yuml.me/wildthing) dla klas Powershell i Ruby on Rails. Ponieważ masz tak wiele zajęć, musisz trochę przerwać schematy, aby pokazać 10-50 klas. – tobinharris

3

To jest bardziej toolchain niż narzędzie i sam go nie wypróbowałem. Ale może to punkt wyjścia. Korzystanie z ,, aby otrzymać. Objaśnienie krok po kroku: in this article.

1

Paradygmat wizualny dla UML Standard Edition (lub Better) będzie odwzorowywał pliki Java na Diagramy klas.

6

Narzędzie, którego chcesz użyć, to Doxygen. Jest podobny do Javadoc, ale działa w wielu językach. Jeśli wyliczy zależności i może wywołać graphviz, aby wyrenderować diagramy klas. Oto przykład kilku Java classes run through Doxygen.

+0

WOW. Działa świetnie. – Epaga

2

Użyłem Visual Paradigm dla UML do tego, co chcesz zrobić i było całkiem dobrze.

Aby uzyskać szczegółowe informacje, patrz: here.

Po prostu idź Narzędzia -> Natychmiastowy zwrot i wybierz swoje pakiety.

1

Zgaduję, że jeśli twój szef chce tylko być zajęty, dopóki nie rozpocznie się następny projekt, nie ma w nim nic złego, ale szybko odkryjesz, że stworzenie diagramu klas z 3500 klasami powie dokładnie NIC na temat twojego systemu. W rzeczywistości nie potrzebujesz diagramu zawierającego więcej niż 10 klas. Więc gdy już odwrócisz cały kod do swojego narzędzia do modelowania, będziesz chciał zacząć organizować i organizować, aby znaleźć znaczenie. Utwórz nowy diagram, upuść na nim jedną ważną klasę i wprowadź wszystkie klasy bezpośrednio związane z tą klasą. Powtórz dla może 300 najważniejszych klas. Nie martw się, to nie jest tak straszne, jak mogłoby się wydawać, może tygodniowa praca.

Dla mojego rekordu, moim narzędziem do modelowania jest Enterprise Architect, Sparx Systems. Zamiana źródeł java lub plików .jar. Dostępna jest bezpłatna 30-dniowa wersja próbna.

+0

Zgadzam się, że generowanie do wszystkich klas jest bolesną pracą. To ćwiczenie polega na utrzymywaniu ludzi w dobrej pozycji.:) – GustyWind

0

Używam Enterprise Architect od wielu lat. Deweloper JBoss zaproponował mi to. Działa bardzo dobrze dla wszystkich typów modelowania UML, w tym inżynierii odwrotnej modeli klas (Java, C# i inne). Podstawowa wersja kosztuje obecnie 120 USD za miejsce, ale ma większość możliwości znacznie droższych narzędzi i jest znacznie łatwiejsza do nauczenia. Szczególnie podoba mi się jego zdolność do generowania dokumentacji HTML i RTF.

Synchronizacja kodu między narzędziem a kodem źródłowym jest bardzo łatwa. Nawet dwukierunkowe, jeśli chcesz.

Twój szef może również polubić wykresy aktywności i sekwencje, które może utworzyć. Często korzystam również z diagramów wdrażania. Bardzo pomocne jest posiadanie tego wszystkiego w jednym narzędziu.

1

ObjectAid jest bardzo ładne. Możesz przeciągać klasy na diagram i układać je tak, jak chcesz.

Powiązane problemy