2012-09-14 12 views
8

मैं यूएमएल में धाराप्रवाह नहीं हूं, लेकिन मैं मौजूदा सी ++ कोड के आधार पर एक क्लास आरेख बनाना चाहता हूं। अन्य स्टैक ओवरफ्लो प्रश्नों से संकेत मिलता है कि दो कार्यक्रम - एंटरप्राइज़ आर्किटेक्ट और तर्कसंगत सॉफ्टवेयर आर्किटेक्ट - "रिवर्स इंजीनियरिंग" सी ++ कोड (यानी, मौजूदा सी ++ कोड के आधार पर यूएमएल क्लास आरेख बनाने) में काफी अच्छे हैं।एंटरप्राइज़ आर्किटेक्ट या तर्कसंगत सॉफ़्टवेयर आर्किटेक्ट का उपयोग कर स्रोत कोड से क्लास आरेख कैसे बनाएं?

मैंने इन दोनों अनुप्रयोगों के लिए परीक्षण संस्करण डाउनलोड किया है। हालांकि, मैं इन अनुप्रयोगों में से किसी एक में कक्षा आरेख बनाने के लिए क्या करना है, यह समझने में कोई रास्ता नहीं बना सकता।

तर्कसंगत सॉफ्टवेयर आर्किटेक्ट में, मैंने एक यूएमएल प्रोजेक्ट बनाया है, लेकिन मुझे प्रोग्राम के भीतर कोई भी तरीका नहीं मिल रहा है, और मेरे मौजूदा सी ++ कोड को रिवर्स इंजीनियर।

एंटरप्राइज़ आर्किटेक्ट में, मैं अपना सी ++ कोड आयात करने में सक्षम था, लेकिन सभी तत्व (वर्ग) आरेख के भीतर एक बेकार, ओवरलैपिंग विकर्ण रेखा में दिखाई दिए। मैंने सर्कल जैसे अन्य सेटिंग्स का प्रयास किया, लेकिन ये पढ़ने के लिए समान रूप से असंभव थे क्योंकि आरेख इतने बड़े थे (गुणों और विधियों के बहुत सारे स्थान लेने के कारण) कि पैनिंग और ज़ूमिंग की कोई मात्रा उपयोगी नहीं थी। मैं क्या चाहता हूं कि कक्षा के नामों को छोड़कर सब कुछ छिपाना है (यानी, किसी भी तरीके या विशेषताओं को प्रदर्शित न करें) ताकि सभी 20 वर्ग एक स्क्रीन में आसानी से और सुगम रूप से दिखाई दे सकें।

हालांकि, मैं वर्ग के नाम को छोड़कर सबकुछ छिपाने का कोई तरीका नहीं ढूंढ पा रहा हूं। इसके बजाय, जब मुझे एक विकल्प (एंटरप्राइज़ आर्किटेक्ट में) लगता था, ऐसा लगता है कि यह कक्षा के नामों के अलावा सबकुछ छुपा सकता है, किसी कारण से तत्व सभी कक्षा आरेख में गायब हो जाते हैं, और & चरणों को दोहराने और फिर से जोड़ने के चरणों को दोहराने की कोई मात्रा नहीं कक्षा आरेख फिर से दिखाई दिया।

नोट: मेरा सी ++ कोड (कम से कम उन फ़ाइलों को जिन्हें मैंने एंटरप्राइज़ आर्किटेक्ट में आयात के लिए चुना है) केवल 20 वर्गों की राशि है।

दुःख की बात है इन कार्यक्रमों दोनों के लिए दस्तावेज़ीकरण का एक बहुत सावधान खोज केवल सामान्योक्तियां प्रदान करता है - कोई विशेष निर्देश इन कार्यक्रमों में से किसी के लिए रिवर्स इंजीनियरिंग के बारे में दिया जाता है, अब तक के रूप में मैं मिल सकता है।

यदि कोई मुझे एक सुगम, आसानी से नेविगेट आरेख बनाने के लिए बुनियादी कदम बता सकता है तो मैं आभारी रहूंगा। रिवर्स इंजीनियरिंग (यानी, सी ++ - टू-यूएमएल) केवल वर्ग के नाम से पता चलता है, तो है कि या तो एन्टरप्राइज़ आर्किटेक्ट, या वाजिब सॉफ्टवेयर आर्किटेक्ट का उपयोग कर के बारे में 20 कक्षाएं, फिट (स्पष्ट रूप से) एक स्क्रीन पर - या कि किसी भी अन्य उपकरण के लिए सक्षम है ऐसा करने (मैं केवल ईए और तर्कसंगत सुझाव देता हूं क्योंकि इस उद्देश्य के लिए उपलब्ध सर्वोत्तम कार्यक्रमों के रूप में उन्हें अन्य स्टैक ओवरफ्लो उत्तरों में हाइलाइट किया गया है)।

+0

मुझे उन कार्यक्रमों के बारे में कुछ भी पता नहीं है, हालांकि आप डॉक्सिजन में देखना चाहते हैं जो मुफ्त सॉफ्टवेयर है और आपकी ज़रूरतों को पूरा कर सकता है, यहां एक सरल [उदाहरण यहां] है (http://stackoverflow.com/questions/9484879/Graphviz-Doxygen करने वाली उत्पन्न-यूएमएल-वर्ग आरेख)। –

उत्तर

12

यह उत्तर ईए पर लागू होता है।

आप अलग-अलग फ़ाइलों या पूरे निर्देशिका, रिकर्सिवली या कोई आयात कर सकते हैं। निर्देशिका आयात अब तक का सबसे आम मामला है; एकल फ़ाइल आयात आपको स्वचालित रूप से आरेख बनाने की अनुमति नहीं देता है।

जब आप एक स्रोत निर्देशिका आयात करते हैं, आप सभी पर प्रत्येक यूएमएल पैकेज के लिए आरेख, या कोई चित्र बनाने का विकल्प। आप प्रत्येक स्रोत कोड निर्देशिका, नाम स्थान (डिफ़ॉल्ट) या फ़ाइल के लिए संकुल बनाने के लिए है कि क्या निर्णय लेते हैं।

तो केवल 20 वर्गों के अपने कोड constists तो यह संभावना है कि वे एक ही निर्देशिका और/या नाम स्थान में हो, तो चित्र की सही संख्या प्राप्त करने के लिए उस विकल्प (आयात स्रोत संवाद में पैकेज संरचना) के साथ चारों ओर खेलते हैं।

उसी संवाद में, एक बटन "नया आरेख विकल्प" है, जो एक और कॉन्फ़िगरेशन संवाद खोलता है जहां आप चुन सकते हैं कि चित्रों में कक्षाओं के गुण और/या संचालन होना चाहिए या नहीं। आप दृश्यता के आधार पर भी निर्णय ले सकते हैं, उदाहरण के लिए केवल सार्वजनिक सदस्यों को दिखाएं।

यह संवाद केवल प्रभावित करता है क्या चित्र में दिखाया गया है, जब वे बनाए गए हैं। सदस्यों को अभी भी आयात किया गया है, बस प्रदर्शित नहीं किया गया है। ऐसा लगता है कि आप क्या कर रहे हैं।

आप किसी भी चित्र के लिए रिक्त स्थान को डबल-क्लिक करके, या राइट-क्लिक करके और गुणों का चयन करके डिस्प्ले विकल्प बदल सकते हैं। ऐसा लगता है जैसे आप इस संवाद में आए और कुछ बदल दिया, लेकिन मैं वास्तव में क्या नहीं बता सकता। जिस परिस्थिति का आप वर्णन करते हैं, जहां आप डिस्प्ले को जिस तरह से वापस नहीं प्राप्त कर सकते हैं, वह ऐसा नहीं है जिसे मैंने कभी ईए में सामना किया है।

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

एक व्याख्याहीन विकर्ण में सभी वर्गों के साथ आप जिस लेआउट का वर्णन करते हैं, वह मुझे बताता है कि सृजन के बाद आरेख ठीक से नहीं रखा जा रहा है। आरेख निर्माण दो चरणों की प्रक्रिया है; पहले सभी वर्गों को उस पर गिरा दिया जाता है, फिर लेआउट लागू होता है।

यह अजीब बात है, क्योंकि ईए स्वचालित रूप से जनरेट किए गए आरेखों को बताता है और मैं एक ऐसा विकल्प नहीं ढूंढ पा रहा हूं जो आपको इस व्यवहार को अचयनित करने की अनुमति देता है। यदि यह बनी रहती है, तो स्पैक्स सिस्टम को एक बग रिपोर्ट भेजें। आप इसे खोलकर और शीर्ष-स्तरीय आरेख मेनू से लेआउट आरेख का चयन करके चित्र को हमेशा रख सकते हैं।

यदि अंततः, आपकी कक्षा और नामस्थानों के बीच फैली हुई है ताकि ईए उनके लिए एकाधिक आरेख उत्पन्न कर सके, तो आपको उन्हें मैन्युअल रूप से मर्ज करना होगा। , प्रतिलिपि (Ctrl-C) चिपकाने (Ctrl-V) दूसरे में दोनों चित्र खोलने, एक में सभी (Ctrl-A) का चयन करके और कर ऐसा करें, उसके बाद फिर से लेआउट आरेख को ईए पूछना।

तो:

  1. परियोजना ब्राउज़र में एक खाली पैकेज राइट-क्लिक करें, कोड इंजीनियरिंग का चयन - आयात स्रोत निर्देशिका।
  2. संवाद में, रूट निर्देशिका और स्रोत प्रकार का चयन।
  3. टिक "प्रत्येक पैकेज के लिए तार्किक आरेख बनाएँ" और पैकेज संरचना जो सबसे अच्छा अपने स्रोत संरचना फिट बैठता है का चयन करें।
  4. "नया आरेख विकल्प" पर क्लिक करें और नए संवाद में लागू होने पर "गुण दिखाएं," "संचालन दिखाएं" और "संपत्ति के तरीके दिखाएं" अनचेक करें।
  5. ठीक दोनों संवाद।
  6. यदि एकाधिक आरेख बनाए गए हैं, तो सभी वर्गों को एक आरेख में कॉपी करें।
  7. यदि लेआउट खराब दिखता है, तो आरेख - लेआउट आरेख का चयन करें।

उम्मीद है कि इससे मदद मिलती है।

संबंधित मुद्दे