2010-01-11 17 views
25

यूएमएल का उपयोग आमतौर पर सी ++ का उपयोग करके मॉडलिंग सिस्टम के लिए किया जाता है। मेरी परियोजनाओं में सी कार्यान्वयन भाषा है। मैं यूएमएल रणनीतियों पर संसाधनों की तलाश में हूं जो सी के लिए लागू हैं। मैं डिजाइन के दौरान यूएमएल का उपयोग करना चाहता हूं और सिस्टम के विभिन्न पहलुओं का प्रतिनिधित्व करना चाहता हूं।सी प्रोग्रामिंग भाषा के लिए यूएमएल

+1

मेरा प्रश्न इस बारे में नहीं है कि ओओपी सी में कैसे किया जा सकता है इसके लिए हमारे पास www.state-machine.com/devzone/cplus_3.0_manual.pdf और www.planetpdf.com/codecuts/pdfs/ooc जैसी कई विधियां हैं .pdf। स्टीवन का उल्लेख है, सी में हम केवल अनुक्रम आरेख और घटक आरेख का उपयोग करना चाह सकते हैं। मैं कुछ संसाधनों की तलाश में हूं जो इन रणनीतियों का वर्णन करते हैं। मेरे पास कुछ विचार है, फ़ाइल एक मॉड्यूल का प्रतिनिधित्व करती है और इसे अनुक्रम आरेख में ऑब्जेक्ट के बजाय उपयोग किया जा सकता है। और मैं इस रणनीति का उपयोग करके विभिन्न मॉड्यूल के बीच प्रवाह दिखाता हूं। – Andy

+0

लिंक के लिए धन्यवाद, एंडी। –

उत्तर

29

मुझे किसी भी मौजूदा संसाधनों के बारे में पता नहीं है जो विशेष रूप से सी के लिए यूएमएल का उपयोग करने पर चर्चा करते हैं। जैसा कि अन्य ने उल्लेख किया है, यूएमएल भाषा-अज्ञेयवादी है।

ध्यान रखें कि यूएमएल के साथ, आप समस्या डोमेन के लिए एक मॉडल हो सकते हैं, और दूसरा कार्यान्वयन के लिए। सी के संदर्भ में समस्या डोमेन का मॉडल न करने का प्रयास करें, बल्कि उच्च स्तरीय ओओ के रूप में। एक बार जब आप समस्या डोमेन को पर्याप्त रूप से पर्याप्त समझते हैं, तो आप कार्यान्वयन को मॉडलिंग शुरू कर सकते हैं।

प्रक्रियात्मक शैली सी कार्यान्वयन मॉडलिंग के लिए, निम्न चित्र उपयोगी हो सकता है:

  • वर्ग रेखाचित्र:
    • दिखाएँ सी मॉड्यूल एपीआई
    • सी शो मॉड्यूल रिश्तों (ज्यादातर गैर निर्भरता ओओ)
    • संरचनाएं और गणनाएं दिखाएं (< < स्टीरियोटाइप>>)
  • पैकेज चित्र: सामग्री दिखाएँ (मॉड्यूल) पुस्तकालयों में से, और पुस्तकालयों के बीच निर्भरता रिश्तों
  • गतिविधि आरेख: flowcharting गैर तुच्छ एल्गोरिदम
  • अनुक्रम/सहयोग आरेख: दिखाएँ कैसे घटनाओं/बीच मॉड्यूल/संस्थाओं संदेश/इनपुट/आउटपुट समय
  • स्टेटचार्ट आरेख: राज्य मशीनों के लिए, बिल्कुल!

वर्ग चित्र पर विस्तार, आप कर सकते हैं "दुरुपयोग" उन्हें प्रक्रियात्मक शैली सी के लिए निम्नलिखित तरीके से:

  • वैश्विक extern कार्यों -> सार्वजनिक तरीकों
  • स्थानीय स्थिर कार्यों -> निजी तरीकों
  • वैश्विक extern चर -> सार्वजनिक सदस्यों
  • स्थानीय स्थैतिक चर -> निजी सदस्यों
  • Structs -> "struct" stereotyp साथ वर्ग ई
  • #define स्थिरांक -> "गणन" स्टीरियोटाइप

प्रयोग, और आप यूएमएल गाली देने के लिए अपने स्वयं के सम्मेलनों मिल जाएगा के साथ वर्ग।

6

सी के साथ समस्या यह है कि यह एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। एक सी आवेदन के साथ ठीक दाग डिजाइन पाने के लिए यह कठिन है। यदि आप सी के साथ काम कर रहे हैं तो आप अनुक्रम आरेखों और घटक आरेखों के साथ रहना चाहेंगे, क्योंकि वे निर्भरता और बातचीत के ग्राफ के बजाए क्या हो रहा है इसका वर्णन और अवलोकन करते हैं।

+0

सी एक "कार्यात्मक" प्रोग्रामिंग भाषा नहीं है। मेरा मानना ​​है कि जिस शब्द की मांग की गई थी वह "प्रक्रियात्मक" है। – coobird

+0

आप इसके बारे में सही हैं, मैं सोच रहा था ... कार्यों लेकिन कक्षाओं = कार्यात्मक नहीं ... लेकिन सख्त परिभाषा से यह कार्यात्मक है ... यह काम करता है: पी – monksy

+1

मैं मानता हूं कि यूएमएल सी के लिए उपयुक्त नहीं है , यह देखते हुए कि यूएमएल ऑब्जेक्ट ओरिएंटेड स्कूल ऑफ सोचा से लिया गया था। लेकिन आप * कम से कम रिश्ते-आधारित एक साथ हैक कर सकते हैं, फोकस पॉइंटर्स युक्त structs का उपयोग कर सी में ऑब्जेक्ट-जैसे निर्माण को कम कर सकते हैं ... हालांकि विरासत और बहुरूपता उतनी सरल नहीं है। किसी भी तरह से, यूएमएल सी –

5

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

+0

यह साफ डिजाइन के लिए बाधा नहीं है ... लेकिन आपके पास ओओपी भाषा के साथ अबास्ट्रक्शन का स्तर नहीं होगा, और घटक डिज़ाइन होगा। यही वजह है कि ओओपी बनाया गया था। – monksy

+0

ओओपी सी में भी किया जा सकता है: जीटीके इसके लिए एक अच्छा उदाहरण है। यह मैक्रोज़ का भारी उपयोग करता है, ठीक है, लेकिन वाक्य रचनात्मक रूप से यह काफी साफ है। मैं मानता हूं कि अन्य भाषाएं इसे अपने वाक्यविन्यास में बेहतर बनाती हैं और कोड शायद थोड़ा क्लीनर दिखता है लेकिन सी के साथ आप एक ही लक्ष्य तक पहुंच सकते हैं। एब्स्ट्रक्शन डिजाइन में है, कोड बस इसे कम या ज्यादा अच्छी तरह से दर्शाता है। – jdehaan

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