Szukałem materiału opisującego, jak generować proste diagramy klas za pomocą doxygen, ale nie mogłem go znaleźć. Czy ktoś może pomóc?
Muszę utworzyć diagramy, jak pokazano poniżej, z zestawu plików C ++.
Jeśli istnieją lepsze narzędzia do łatwiejszego osiągnięcia tego, daj mi znać.
Odpowiedzi:
Doxygen tworzy diagramy dziedziczenia, ale nie sądzę, aby stworzył całą hierarchię klas. Pozwala na użycie narzędzia GraphViz. Jeśli używasz narzędzia frontendu Doxygen GUI, odpowiednie opcje znajdziesz w
Step2: -> Wizard tab -> Diagrams
. Opcje relacji DOT znajdują się na karcie Ekspert.źródło
Cytat z tego posta (napisany przez samego autora doxygen):
run doxygen -g and change the following options of the generated Doxyfile: EXTRACT_ALL = YES HAVE_DOT = YES UML_LOOK = YES run doxygen again
źródło
Hmm, wydaje się, że to trochę stare pytanie, ale odkąd majstrowałem przy konfiguracji Doxygen w ciągu ostatnich kilku dni, podczas gdy moja głowa wciąż jest pełna aktualnych informacji, spróbujmy tego -
Myślę, że poprzednie odpowiedzi prawie to mają:
Brakującą opcją jest dodanie
COLLABORATION_GRAPH = YES
pliku Doxyfile. Zakładam, że możesz zrobić równoważną rzecz gdzieś w doxywizard GUI (nie używam doxywizard).Tak więc, jako bardziej kompletny przykład, typowe opcje „Doxyfile” związane z danymi wyjściowymi UML, których zwykle używam, to:
EXTRACT_ALL = YES CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES UML_LOOK = YES UML_LIMIT_NUM_FIELDS = 50 TEMPLATE_RELATIONS = YES DOT_GRAPH_MAX_NODES = 100 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = YES
Te ustawienia wygenerują zarówno diagramy „dziedziczenia” (
CLASS_GRAPH=YES
), jak i „współpracy” (COLLABORATION_GRAPH=YES
).W zależności od celu "rozmieszczenia" wyjścia doxygen, ustawienie
DOT_IMAGE_FORMAT = svg
może być również przydatne. W przypadku wyjścia svg diagramy są „skalowalne” zamiast stałej rozdzielczości w formatach bitmap, takich jak .png. Najwyraźniej, jeśli przeglądasz wynik w przeglądarkach innych niż IE, istnieje równieżINTERACTIVE_SVG = YES
możliwość „interaktywnego powiększania i przesuwania” wygenerowanych diagramów svg. Próbowałem tego jakiś czas temu, a wyjście svg było bardzo atrakcyjne wizualnie, ale w tamtym czasie obsługa przeglądarki svg była nadal nieco niespójna, więc mam nadzieję, że sytuacja mogła się ostatnio poprawić.Jak wspomniały inne komentarze, niektóre z tych ustawień (
DOT_GRAPH_MAX_NODES
w szczególności) mają potencjalny wpływ na wydajność, więc YMMV.Zwykle nienawidzę odpowiedzi w stylu "RTFM", więc przepraszam za to zdanie, ale w tym przypadku dokumentacja Doxygena naprawdę jest twoim przyjacielem, więc sprawdź dokumentację Doxygen dotyczącą wyżej wymienionych ustawień - ostatnim razem możesz znaleźć szczegóły na http://www.doxygen.nl/manual/config.html .
źródło
RECURSIVE
na TAKEnterprise Architect zbuduje diagram UML z importowanego kodu źródłowego.
źródło
Myślę, że będziesz musiał wyedytować plik doxys i ustawić GENERATE_UML (coś w tym rodzaju) na true. I musisz mieć zainstalowany dot / graphviz.
źródło
2 najwyżej ocenione odpowiedzi są poprawne. Na dzień dzisiejszy jedyną rzeczą, jaką musiałem zmienić (z ustawień domyślnych), było włączenie generowania za pomocą kropki zamiast wbudowanego generatora.
Kilka ważnych uwag:
html/inherits.html
klasach lub (z poziomu nawigacji strony) => hierarchia klas => "Przejdź do tekstowej hierarchii klas".T
.foo
dziedziczy po,T
aT
parametr typu szablonu ma wartość domyślną, zostanie przyjęta taka wartość domyślna. Jeśli istnieje typ,bar
który dziedziczy,foo<U>
skądU
jest inny niż domyślny,bar
będzie miałfoo<U>
rodzica.foo<>
ibar<U>
nie będzie mieć wspólnego rodzica.variant
instancje będą wyświetlane do dziedziczeniavariant<Ts...>
.<...>
w swojej nazwie ciąg reprezentujący parametry typu i inne niż typowe, które nie mają wartości domyślnych.źródło