2010-05-29 17 views
9

Potrzebuję utworzyć schemat klasy UML dla projektu. Użyłem Sparx Enterprise Architect w przeszłości do generowania kodu źródłowego z diagramu, więc używam go.Konwersja Sparx Enterprise Architect (ze źródła na UML)

Projekt jest kompletny, więc cały kod jest zrobiony i naprawdę nie chcę pisać wszystkich klas/funkcji ręcznie, więc próbowałem wygenerować diagram z kodu źródłowego, ale nie mogę go znaleźć sposób na zrobienie tego. Szukałem w Internecie i na ich stronie internetowej, ale nic.

Każda pomoc doceniona.

+0

Jaką wartość dodajesz, robiąc to? Trzymałbym się diagramu pakietów pokazującego obowiązki w modułach i używałbym czegoś takiego jak doxygen do dokumentowania projektu jako zbudowanego. –

+0

Po prostu to zrobiłem, ponieważ musiałem (i nikt mi wcześniej nie powiedział). Zawsze jednak dokumentuję projekty z doxygen. – user228938

+0

Nie jestem pewien, czy ma to sens; Doxygen może generować diagramy klas stylu UML. – Clifford

Odpowiedz

6

Nazywa się "reverse engineering" w celu zaimportowania kodu do modelu. Po tym, jak jest w modelu, możesz tworzyć diagramy.

+1

Koncepcja inżynierii odwrotnej jest przyjemna, ale rzeczywistość jest inna !! Jeśli przyjrzysz się szczegółowo modelowi, wtedy zdasz sobie sprawę, że mniej niż 50% projektu zostało naprawdę zmapowane do modelu. Próbowałem odwrócić java, ale inne rewersy mogłyby być lepsze. –

+0

Nawet warto, ponieważ ponieważ jeśli wygenerujesz kod z modelu, a następnie odtworzysz model z kodu, straciłeś 70% początkowego diagramu klasowego! Problem polega na tym, że nie istnieje możliwość śledzenia między modelem a generowaniem kodu. Tylko EclipseUML Omondo pozwala na tę funkcję, ponieważ mają opcję scalania. –

+1

@ roko-sifredi - Kilka lat temu odkryłem, że Sparx Enterprise Architect sprawdza się w inżynierii w obie strony, używając C#. – ChrisW

10

Dla wersji 8 EA Corporate Edition. Otwórz lub utwórz projekt. Utwórz pusty diagram klas. Menu wyboru: Projekt -> Inżynieria kodu źródłowego -> Pliki importu Okno dialogowe Katalog otwiera się, abyś mógł wybrać pliki.

Mam "inżynierii wstecznej" wiele projektów C++, dużych i małych. Spędzicie dużo czasu na sprzątaniu. Będzie to zależeć od jakości projektu, jego struktury i kodu.

Następnie można wygenerować raport na jego temat (Projekt-> Dokumentacja), który uważam za bardzo przydatny, raport HTML, do poruszania się po kodzie.

1

za to należy najpierw użyć opcji inżynierii odwrotnej, ale jak niektórzy inni użytkownicy wskazali, nie jest to siła ze strony EA. próbowałem w przeszłości (wersja 7.3 wydaje mi się), aby to zrobić przy pomocy projektów C, Python i Java, a wyniki nie zawsze były satysfakcjonujące.

Nie wiem, który język programowania jest zapisany w twoim kodzie, ale jeśli chodzi o C, jeśli korzystasz z instrukcji preprocesora, będziesz miał wiele problemów i niezgodności w wyniku.