मैं एक UML गतिविधि आरेख में नेस्टेड क्रियाओं का प्रतिनिधित्व कैसे करूं?


16

यह सवाल इस एक के समान है , लेकिन जवाब मेरी जरूरतों से मेल नहीं खाता है। यह एक विशिष्ट यूएमएल टूल (पैपीरस) पर केंद्रित है जबकि मेरा सवाल यूएमएल के बारे में अधिक सामान्य है।

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

नीचे दिए गए उदाहरण पर, जो एक गतिविधि आरेख है जो कुछ प्रकार की " बैक होम " गतिविधि दिखा रहा है , नेस्टेड क्रियाएं Pet the catकार्रवाई में हैं। ध्यान दें कि इस आरेख में एक और संभावित त्रुटि है, प्रश्न के अंत में इरेटा देखें।

अंत में घर लौट आया

मैंने संरचित नोड का उपयोग किया है, लेकिन मुझे यकीन नहीं है कि यह सही तरीका है, इसलिए प्रश्न। एक स्टेटचार्ट में समतुल्य एक समग्र राज्य होगा, लेकिन मैं अभी एक समग्र कार्रवाई के बारे में कुछ भी नहीं पा सकता हूं। संरचित नोड के बारे में, इसके बारे में कुछ दस्तावेज़ों को पढ़ने के बाद भी मुझे वास्तव में ऐसा नहीं लगता कि इसका उपयोग कैसे किया जाना चाहिए, इसलिए मैं इस चित्र के साथ पूरी तरह से गलत हो सकता हूं।

मुझे यह भी पता है कि त्रिशूल प्रतीक के साथ एक और उप-गतिविधि को संदर्भित करने की संभावना है, जैसा कि नीचे की छवि में है, लेकिन यह मेरी जरूरतों से मेल नहीं खाता है क्योंकि मैं एक ही चित्र पर पूरी जानकारी चाहूंगा (इसलिए मैं प्रिंट कर सकता हूं सूचना के किसी भी नुकसान के बिना):

त्रिशूल उप-गतिविधि

तो ऐसी नेस्टेड कार्रवाई का प्रतिनिधित्व करने का मानक तरीका क्या है ? मानक रूप से, मेरा मतलब वैध यूएमएल है, आमतौर पर देखा जाता है और यदि संभव हो तो अधिकांश यूएमएल डिजाइन टूल पर संभव है।

असंबंधित इरेटा: मेरे आरेखों में एक और बात गलत है, जो तीर एक ही क्रिया में आते हैं ( Scratch behind the ears) कार्रवाई में प्रवेश करने से पहले एक विलय नोड पर जाना चाहिए। नीचे दिए गए टिप्पणियों को देखें, जिसमें JOT का यह उद्धरण भी शामिल है


आपने इस बारे में नहीं पूछा, लेकिन मैं यह बताना चाहता हूं कि कार्रवाई "कान के पीछे खरोंच" कभी भी निष्पादित नहीं कर सकती है। क्या किसी को पता है कि यह क्यों सच है?
जिम एल।

वैसे मुझे नहीं पता, लेकिन मुझे उम्मीद है कि यह सिर्फ बिल्ली का स्वभाव है, क्योंकि मैंने अपने बॉस को जो आरेख दिया है वह इस तरह दिखता है: /
टिम

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

@ JimL। क्या आपका मतलब है कि इस स्थिति में प्रवेश करने के लिए दोनों शर्तें सही होनी चाहिए? फिर जो व्यक्त करने का इरादा है उसे व्यक्त करने का तरीका क्या होगा? राज्य प्रवेश से पहले एक मर्जिंग डायमंड नोड?
टिम

हम एक कार्रवाई के बारे में बात कर रहे हैं, राज्य नहीं; लेकिन हां, इस समस्या को ठीक करने के लिए एक मर्ज की आवश्यकता होती है।
जिम एल।

जवाबों:


23

दोनों "मानक" हैं। UML चश्मा के अनुसार पहली तस्वीर है

संरचित गतिविधि नोड्स

एक स्ट्रक्चर्डएक्टिविटी नोइड एक एक्शन है जो एक एक्टिविटीग्रुप (उप खंड 15.6 देखें) और जिसका व्यवहार एक्टिविटीनोड्स द्वारा निर्दिष्ट किया गया है और एक्टिविटीज इसमें शामिल हैं। अन्य प्रकार के एक्टिविटीग्रुप के विपरीत, एक स्ट्रक्चर्डएक्टिविटी नोयोड के पास एक्टिविटीनॉड्स और एक्टिविटी एडजेस होते हैं, और इसलिए एक नोड या एज केवल एक स्ट्रक्चर्डएक्टीविटी नोड में सीधे निहित हो सकता है। स्ट्रक्चर्डएक्टिविटी नाइट्स को नेस्टेड किया जा सकता है (स्ट्रक्चर्ड एक्टिविटीनीटोड के रूप में, एक्शन के रूप में, एक एक्टिविटीनोड भी है), हालांकि, एक किनारे या नोड अप्रत्यक्ष रूप से नेस्टेड स्ट्रक्चर्ड एसेटिविटी नोड्स की संख्या में हो सकते हैं।

गतिविधि समूह

एक्टिविटीगौड्स एक्टिविटीनॉड्स और एक्टिविटी एज के लिए एक ग्रुपिंग कंस्ट्रक्शन हैं। नोड्स और किनारे एक से अधिक समूहों से संबंधित हो सकते हैं। इस उप खंड में दो ठोस प्रकार के एक्टिविटी ग्रुप्स, एक्टिविटीपार्टीशंस और इंटरप्टिबल एक्टिविटी रीजन्स का वर्णन है। स्ट्रक्चर्डएक्टिविटी नाइट्स एक तीसरी तरह की एक्टिविटी ग्रुप है, लेकिन वे भी एक्टीशंस हैं और एक्ट्स पर क्लॉज 16 के उप खंड 16.11 में चर्चा की गई है।

दूसरी तस्वीर है

मंगलाचरण क्रिया

एक मंगलाचरण एक क्रिया है जिसके परिणामस्वरूप, प्रत्यक्ष या अप्रत्यक्ष रूप से, व्यवहार के आह्वान में (उप खंड 13.2 देखें)। InvocationActions में ऑपरेशन या व्यवहार को कॉल करने के लिए CallActions शामिल हैं और व्यवहार को शुरू करने के लिए जो पहले त्वरित किया गया है। अतिरिक्त प्रकार के InvocationActions संकेतों और अन्य वस्तुओं के लक्षित भेजने और उपलब्ध रिसीवरों को संकेतों को प्रसारित करने की क्षमता के लिए अनुमति देते हैं।

दोनों मामलों के बीच मुख्य अंतर पुन: उपयोग है। जबकि पहली जगह में आपको सिर्फ एक ही जगह पर कुछ जटिलता होती है (आपकी)Pet the cat ) दूसरा तब होता है जब आप कई जगहों पर एक निश्चित कार्रवाई का उपयोग करते हैं। हालांकि, मैं आह्वान संस्करण का उपयोग करने की प्रवृत्ति रखता हूं, भले ही यह केवल एक ही उपयोग के लिए हो। यहां मैं एक समग्र आरेख जोड़ता हूं (जो ईए में डीबी-क्लिक पर खुलता है) तदनुसार कार्रवाई का विवरण दिखाने के लिए। मुख्य प्रवाह सिर्फ अवलोकन दिखाता है और यदि विवरण की आवश्यकता होती है, तो वे केवल एक dbl-click दूर हैं।

अब, EA में एक समग्र आरेख बनाना अलग (फिर से) है। आपको पैकेज स्तर पर AD बनाने की आवश्यकता है और फिर इसे आह्वान तत्व में खींचें। अब, जब आप dbl- पर क्लिक करते हैं, तो एम्बेडेड आरेख खुल जाएगा।


आपके उत्तर के लिए धन्यवाद। क्या आप इस बात पर अधिक जानकारी दे सकते हैं कि आप किस संभावना का उपयोग करते हैं? मुझे यूएमएल कल्पना पढ़ने में बहुत कठिन लगती है, उपयोगकर्ता-पक्ष।
टिम

यह कोई बेड-टाइम लेक्चर नहीं है :-) मैं कुछ और स्पष्टीकरण जोड़ने की कोशिश करूंगा।
क्यूवर्टी_सो

मैंने एक और EAUI पर एक टिप्पणी के साथ एक अद्यतन किया।
qwerty_so
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.