2012-01-19 11 views
5

Czy ktoś zna narzędzie, które jest w stanie tworzyć "diagramy funkcjonalne" z kodu ansi c?Automatyczne tworzenie schematu bloków funkcyjnych z kodu ansi c

Przez "diagram funkcji" rozumiem wykres przedstawiający przegląd plików, funkcji i ich relacji. Wyobrażam sobie, że jest to coś w rodzaju schematu krążenia.

Np. jeśli mają następujący kod:

//MyProgram.c 
int main(int argc, char** argv) 
{ 
    Foo(); 
    Bar(); 
    return 0; 
} 

//Slave.h 
void Foo(); 
void Bar(); 

wykres byłoby coś jak na poniższym rysunku:

Function relation diagram http://i44.tinypic.com/503z7q.png

to ma oficjalną nazwę? Może diagram zależności?

Spojrzałem trochę na Doxygen. Ale ten wyraźnie stwierdza, że: Doxygen ma wbudowaną obsługę generowania diagramów dziedziczenia dla klas C++. To samo z wieloma narzędziami UML. Nie mam żadnych zajęć. Chociaż moje pliki c mogą się zbliżyć.

+0

Być może powinienem dodać, że moim celem na diagramie jest przedstawienie przeglądu danego projektu kodu. Pomocna dłoń w "znalezieniu odpowiedniego miejsca w kodzie". Grupowanie plików i bibliotek jest ważne. A relacje funkcji podadzą rzeczywistą treść. Być może znasz lepszy schemat? Coś na bazie plików/lib? – Illishar

+0

"Wykres zależności" tutaj: http://msdn.microsoft.com/en-us/library/ff657798.aspx, faktycznie wygląda dość dobrze. Po prostu brakuje relacji funkcji. – Illishar

+0

doxygen jest w stanie wyodrębnić wszystkie rodzaje wykresów, nie tylko diagramy dziedziczenia. –

Odpowiedz

5

To, co nazywasz, nazywa się Call Graph.

Jest lista narzędzi do ich generowania: http://en.wikipedia.org/wiki/Call_graph#Software

+0

Większość wykresów wywołań, które widziałem, umieszcza wszystkie funkcje w jednym dużym wiadrze, a następnie generuje drzewo (jeśli ma szczęście). Są bardzo mili podczas tworzenia profili. W tym przypadku bardziej interesuje mnie związek między plikami niż sekwencja wykresu połączeń. UML byłby lepszym hitem, jak sądzę. Ale może masz na myśli konkretny program? – Illishar

+0

Większość IDE obsługuje już wykresy połączeń w tych dniach. – dicaprio

+0

Przejrzałem listę i nie mogę znaleźć żadnego, który byłby w stanie utworzyć "wykresy połączeń uporządkowanych wg plików". To tylko drzewa z funkcją głównego wywołania jako górny węzeł. (I tak naprawdę nie szukam drzew.) – Illishar

3

There kilka oprogramowania, które nie są wolne już np www.scitools.com który posiada narzędzie o nazwie Understand C. To na pewno zrobię to, czego szukasz, są inne narzędzia, takie jak BOUML (to darmowe narzędzie). Poza tym lista dostarczona przez qiao jest dobrym referencją.

+0

BOUML jest dla C++ – Illishar

+0

scitool ma kilka interesujących wykresów. Ich wykres zależności jest blisko: http://www.scitools.com/images/features/dependenciesGraph.png. Nadal nie pokazuje relacji funkcjonalnych i na pewno nie daje przeglądu. Każdy, kto na nie patrzy, ucieknie. (Być może kwestia gustu i złożoności). – Illishar

+0

prawda, ale nadal robi to, czego potrzebujesz. Zakładam, że nie chcesz generować ani odnawiać kodu. – dicaprio

0

Myślę, że znalazłem źródło mojego pomysłu. Wyświetlanie kodu jako "komponentów z podłączonym wejściem/wyjściem" to koncepcja LabVIEW. (Nie jestem kompletnym znawcą szukania tego rodzaju diagramu;)

Z tego co wiem, LabVIEW nie robi tego, co chcę. LabVIEW służy do budowania i łączenia funkcjonalności. Powszechnie używane przez ludzi hw/fw. (Które są również moją grupą docelową). To nie będzie odwrócić kodu inżynierskiego na schematy.

Dziwne, że te diagramy naprawdę nie istnieją. Wydaje mi się, że ludzie tacy jak wbudowani programiści, ansi c, niski poziom, hw itp. Będą ich kochać.

Powiązane problemy