2012-09-14 24 views
8

Nie jestem biegły w UML, ale chciałbym stworzyć schemat klasy oparty na istniejącym kodzie C++. Inne pytania dotyczące StackOverflow wskazują, że dwa programy - Enterprise Architect i Rational Software Architect - są dość dobre w "C++" (tzn. Tworzenie diagramów klas UML na podstawie istniejącego kodu C++).Jak utworzyć diagram klasowy z kodu źródłowego przy użyciu Enterprise Architect lub Rational Software Architect?

Mam pobraną wersję próbną dla obu tych aplikacji. Jednak nie mogę zrobić nic, aby zrozumieć, co zrobić, aby utworzyć schemat klas w jednej z tych aplikacji.

W produkcie Rational Software Architect utworzyłem projekt UML, ale nie mogę znaleźć żadnego sposobu w programie do wybrania i inżynierii wstecznej istniejącego kodu C++.

W Enterprise Architect, udało mi się zaimportować mój kod C++, ale wszystkie elementy (klasy) pojawiły się w bezużytecznej, zachodzącej na siebie linii przekątnej na schemacie. Próbowałem innych ustawień, takich jak koło, ale te były równie niemożliwe do odczytania, ponieważ diagramy były tak duże (ze względu na atrybuty i metody zajmujące dużo miejsca), że żadne przesunięcie i powiększenie nie było użyteczne. Chciałbym ukryć wszystko oprócz nazw klas (tj. Nie wyświetlać żadnych metod ani atrybutów), aby wszystkie 20 klas wyglądało wygodnie i czytelnie na jednym ekranie.

Jednak nie jestem w stanie znaleźć sposobu na ukrycie wszystkiego oprócz nazw klas. Raczej, gdy znalazłem opcję (w Enterprise Architect), która zdawała się ukrywać wszystko poza nazwami klas, z jakiegoś powodu wszystkie elementy zniknęły na diagramie klasowym i żadna ilość powtarzania kroków nie usuwała i nie dodawała pakietów ponownie pojawił się diagram klas.

Uwaga: Mój kod C++ (przynajmniej te pliki, które wybrałem do zaimportowania do Enterprise Architect) wynosi tylko około 20 klas.

Niestety, bardzo dokładne przeszukiwanie dokumentacji obu tych programów zapewnia jedynie ogólniki - nie ma konkretnych instrukcji dotyczących inżynierii wstecznej dla żadnego z tych programów, o ile mogłem znaleźć.

Byłbym wdzięczny, gdyby ktoś mógł mi powiedzieć podstawowe kroki w celu stworzenia czytelnego, łatwego w obsłudze diagramu za pośrednictwem. inżynieria odwrotna (tzn. C++ - to-UML), która pokazuje tylko nazwy klas, dzięki czemu około 20 klas pasuje (czytelnie) na jednym ekranie, używając Enterprise Architect lub Rational Software Architect - LUB dowolnego innego narzędzia, które jest w stanie robiąc to (proponuję EA i Rational tylko dlatego, że zostały wyróżnione w innych odpowiedziach StackOverflow jako najlepsze programy dostępne do tego celu).

+0

Nie wiem nic na temat tych programów, jednak możesz zajrzeć do doxygen, które jest wolnym oprogramowaniem i może pasować do twoich potrzeb, jest prosty [przykład tutaj] (http://stackoverflow.com/questions/9484879/graphviz-doxygen-to-generate-uml-class-diagrams). –

Odpowiedz

12

Ta odpowiedź dotyczy EA.

Można importować pojedyncze pliki lub całe katalogi, rekurencyjnie lub nie. Import do katalogu jest zdecydowanie najczęstszym przypadkiem; import pojedynczego pliku nie pozwala na automatyczne utworzenie diagramu.

Po zaimportowaniu katalogu źródłowego można utworzyć schematy dla każdego pakietu UML lub w ogóle nie tworzyć diagramów. Ty także decydujesz, czy tworzyć pakiety dla każdego katalogu kodu źródłowego, przestrzeni nazw (domyślnie) czy pliku.

Jeśli twój kod zawiera tylko 20 klas, prawdopodobnie znajduje się w jednym katalogu i/lub przestrzeni nazw, więc warto się z nimi bawić (Struktura pakietu w oknie dialogowym Źródło importu), aby uzyskać odpowiednią liczbę diagramów.

W tym samym oknie dialogowym znajduje się przycisk "Nowe opcje diagramu", który otwiera kolejne okno dialogowe konfiguracji, w którym można wybrać, czy diagramy powinny zawierać atrybuty i/lub operacje klas. Możesz także podjąć decyzję na podstawie widoczności, np. Pokazać tylko członków publicznych.

To okno dialogowe wpływa tylko na to, co widać na diagramach po ich utworzeniu. Członkowie są nadal importowani, po prostu nie są wyświetlani. To brzmi jak to, czego szukasz.

Możesz zmienić opcje wyświetlania dla dowolnego diagramu, klikając dwukrotnie pusty obszar lub klikając prawym przyciskiem myszy i wybierając Właściwości. Wygląda na to, że dostałeś się do tego okna dialogowego i coś zmieniłeś, ale tak naprawdę nie potrafię powiedzieć co. Sytuacja, którą opisujesz, w której nie możesz uzyskać ekranu z powrotem tak, jak była, nie jest taka, jaką kiedykolwiek spotkałem w EA.

Można również wybrać opcje wyświetlania dla poszczególnych klas, klikając je prawym przyciskiem myszy na diagramie i wybierając opcję Widoczność elementu. Nie polecam używania tego w diagramach inżynierii odwrotnej, wspominam o tym tylko dla kompletności.

Układ, który opisujesz, ze wszystkimi klasami w pozbawionej znaczenia przekątnej, sugeruje mi, że diagram nie jest prawidłowo ułożony po utworzeniu. Tworzenie diagramu jest procesem dwuetapowym; najpierw wszystkie klasy są na niego upuszczane, a następnie układ jest stosowany.

To dziwne, ponieważ EA automatycznie tworzy wygenerowane diagramy i nie mogłem znaleźć opcji, która pozwoli ci odznaczyć to zachowanie. Jeśli to się powtórzy, wyślij zgłoszenie błędu do Sparx Systems. Zawsze możesz ułożyć diagram, otwierając go i wybierając Diagram układu z menu schematu najwyższego poziomu.

Jeśli, na koniec, twoje klasy są rozłożone między różne pakiety i przestrzenie nazw tak, że EA generuje dla nich wiele diagramów, musisz je scalić ręcznie. Wykonaj to, otwierając oba diagramy, wybierając wszystkie (Ctrl-A) w jednym, kopiując (Ctrl-C) i wklejając (Ctrl-V) do drugiego, a następnie ponownie poproś EA do Arkusza układu.

Więc:

  1. prawym przyciskiem myszy pusty pakiet w przeglądarce projektu, wybierz inżynierii kodu - import katalogu źródłowego.
  2. W oknie dialogowym wybierz katalog główny i typ źródła.
  3. Zaznacz "Utwórz schemat logiczny dla każdego pakietu" i wybierz strukturę pakietu, która najlepiej pasuje do twojej struktury źródłowej.
  4. Kliknij "Nowe opcje diagramu" iw nowym oknie dialogowym odznacz "Pokaż atrybuty", "Pokaż operacje" i "Pokaż metody właściwości", jeśli dotyczy.
  5. OK oba okna dialogowe.
  6. Jeśli utworzono wiele diagramów, skopiuj wszystkie klasy do jednego diagramu.
  7. Jeśli układ wygląda źle, wybierz opcję Diagram - Schemat układu.

Mam nadzieję, że to pomoże.

Powiązane problemy