2012-01-19 6 views
5

से स्वचालित रूप से फ़ंक्शन ब्लॉक आरेख बनाएं क्या कोई भी ऐसे टूल को जानता है जो ansi c कोड से "फ़ंक्शन आरेख" बनाने में सक्षम है?ansi c कोड

"फ़ंक्शन आरेख" से मेरा मतलब एक चार्ट है जो फ़ाइलों, कार्यों और उनके संबंधों के अवलोकन का प्रतिनिधित्व करता है। मुझे लगता है कि यह एक सर्कट आरेख की तरह कुछ है।

ईजी। यदि निम्न कोड है:

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

यह एक आधिकारिक नाम है:

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

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

चार्ट निम्न चित्र की तरह कुछ हो सकता है? निर्भरता आरेख, शायद?

मैंने डॉक्सिजन पर थोड़ा सा देखा है। लेकिन वह स्पष्ट रूप से बताता है कि: डॉक्सिजन ने सी ++ कक्षाओं के लिए विरासत आरेख उत्पन्न करने के लिए अंतर्निहित समर्थन किया है। कई यूएमएल उपकरणों के साथ वही बात। मेरे पास कोई कक्षा नहीं है। हालांकि मेरी सी फाइलें करीब आ सकती हैं।

+0

शायद मुझे आरेख के साथ अपना उद्देश्य जोड़ना चाहिए, किसी दिए गए कोड प्रोजेक्ट का अवलोकन प्रस्तुत करना है। "कोड में देखने के लिए सही जगह ढूंढने" में एक सहायक हाथ। फाइलों और libs का समूह महत्वपूर्ण के लिए हैं। और समारोह संबंध वास्तविक सामग्री देंगे। शायद आप एक बेहतर आरेख जानते हैं? कुछ फाइल/lib आधारित? – Illishar

+0

"निर्भरता ग्राफ" यहां: http://msdn.microsoft.com/en-us/library/ff657798.aspx, वास्तव में काफी अच्छा दिखता है। इसमें केवल कार्य संबंधों की कमी है। – Illishar

+0

डॉक्सिजन सभी प्रकार के ग्राफ निकालने में सक्षम है, न कि केवल उत्तराधिकारी आरेख। –

उत्तर

5

जो आप संदर्भित करते हैं उसे Call Graph कहा जाता है। www.scitools.com जो एक उपकरण Understand C कहा जाता है http://en.wikipedia.org/wiki/Call_graph#Software

+0

मैंने देखा है कि अधिकांश कॉल ग्राफ, सभी कार्यों को एक बड़ी बाल्टी में डाल दिया और फिर एक पेड़ (यदि भाग्यशाली) उत्पन्न करता है। प्रोफाइलिंग करते समय वे बहुत अच्छे होते हैं। इस मामले में, मैं कॉल ग्राफ़ के अनुक्रम की तुलना में फ़ाइलों के बीच संबंधों में अधिक रुचि रखता हूं। मुझे लगता है कि यूएमएल एक बेहतर हिट होगा। लेकिन शायद आपके मन में एक विशिष्ट कार्यक्रम है? – Illishar

+0

अधिकांश आईडीई इन दिनों पहले ही कॉल ग्राफ का समर्थन करते हैं। – dicaprio

+0

मैंने सूची को देखा है और मुझे ऐसा कोई भी नहीं मिला है जो "फ़ाइल ऑर्डर कॉल ग्राफ़" बनाने में सक्षम हो। वे मुख्य नोड फ़ंक्शन के साथ पेड़ हैं जो शीर्ष नोड के रूप में हैं। (और मैं वास्तव में पेड़ों की तलाश नहीं कर रहा हूं।) – Illishar

3

सॉफ्टवेयर के वहाँ जोड़े जो स्वतंत्र नहीं हैं अब और उदाहरण के लिए:

उनमें उत्पन्न करने के लिए उपकरणों की एक सूची है। यह मुझे यकीन है कि आप जो भी खोज रहे हैं वह करेंगे, BOUML जैसे अन्य टूल हैं (यह निःशुल्क टूल है)। इसके अलावा qiao द्वारा प्रदान की गई सूची अच्छी संदर्भ है।

+0

BOUML सी ++ – Illishar

+0

स्किटूल के लिए कुछ दिलचस्प ग्राफ हैं। उनका निर्भरता ग्राफ निकट है: http://www.scitools.com/images/features/dependenciesGraph.png। फिर भी यह फ़ंक्शन संबंध नहीं दिखाता है और यह निश्चित रूप से एक सिंहावलोकन नहीं देता है। इन्हें देखकर कोई भी डरावना भाग जाएगा। (स्वाद और जटिलता का मामला शायद।) – Illishar

+0

सच है, लेकिन यह अभी भी आपको जो चाहिए वह करता है। मुझे लगता है कि आप कोड उत्पन्न या पुन: उत्पन्न नहीं करना चाहते हैं। – dicaprio

0

मुझे लगता है कि मुझे अपने विचार की उत्पत्ति मिली है। "कनेक्टेड इनपुट/आउटपुट वाले घटक" के रूप में कोड प्रदर्शित करना एक लैबव्यू अवधारणा है। (मैं इस तरह के आरेख को खोजने के लिए एक पूर्ण पोषक नहीं हूं;)

हालांकि जहां तक ​​मुझे पता है, लैबव्यू वह नहीं करता जो मैं चाहता हूं। प्रयोगशाला निर्माण और कनेक्टिंग कार्यक्षमता के लिए है। व्यापक रूप से एचडब्ल्यू/एफडब्ल्यू लोगों द्वारा उपयोग किया जाता है। (जो मेरे लक्षित दर्शकों भी हैं।) यह चित्रकार कोड को आरेखों में विपरीत नहीं करेगा।

अजीब बात यह है कि ये चित्र वास्तव में मौजूद नहीं हैं। ऐसा लगता है कि एम्बेडेड प्रोग्रामर, ansi सी, निम्न स्तर, एचडब्ल्यू आदि जैसे लोग उन्हें प्यार करेंगे।