मैं यूएमएल में एक प्लगइन-/घटक-आधारित प्रणाली के समग्र आर्किटेक्चर को दिखाने की कोशिश कर रहा हूं। इस प्रश्न के लिए एक साधारण उदाहरण के रूप में, मैं एक मुख्य एप्लीकेशन दिखाऊंगा जो एक प्लगइन इंटरफ़ेस लाइब्रेरी लोड करता है (जो प्लगइन के लिए सामान्य इंटरफेस को परिभाषित करता है), साथ ही साथ दो अनुकरणीय प्लगइन्स (जिनमें से एक आंतरिक विवरण के साथ आता है) जैसा दिखाया गया है निम्नलिखित यूएमएल वर्ग आरेख :यूएमएल में बाइनरी कलाकृतियों के लिए कक्षाओं के वितरण को इंगित करने का सही तरीका क्या है?
मेरी यूएमएल आरेख में, मैं उजागर करने के लिए कैसे इन वर्गों (और इंटरफेस) अलग binaries को वितरित किया जाता है, ताकि क्या स्पष्ट करने के लिए में चाहते हैं सिस्टम के कुछ हिस्सों को बिना किसी संकलन के बदला जा सकता है।
अब, जबकि मुझे पता है कि यूएमएल काफी कुछ छूट प्रदान करता है और यूएमएल का मुख्य बिंदु एक कठोर नोटेशन पर चिपक नहीं रहा है, लेकिन इसे समझने के तरीके में जानकारी व्यक्त कर रहा है, मुझे अभी भी उम्मीद है कि वहां एक सामान्य अभ्यास होगा यह परिदृश्य जानकारी है कि मैं का एक UML component diagram उपयोग कर रहा है सोचा था का प्रतिनिधित्व करने के
एक सरल तरीके से। Wikipedia cites परिभाषा
एक प्रणाली का एक मॉड्यूलर हिस्सा, जो इसकी सामग्री को समाहित करता है और जिसका अभिव्यक्ति इसके पर्यावरण के भीतर बदलने योग्य है।
एक घटक के लिए। यह फिट लगता है, यह देखते हुए कि मैं जो दिखाना चाहता हूं वह एक प्रतिस्थापन योग्य घटक है। इसलिए, घटकों में से ऊपर प्रकार रखकर, मैं इस पर पहुंचने:
हालांकि यह सुबोध है, मैं थोड़ा शक है इस स्वीकार्य अंकन है, यह देखते हुए कि लगभग सभी संसाधनों (aforementioned Wikipedia article सहित) पर घटक आरेख जो मुझे मिल सकते हैं, आवश्यक और प्रदान किए गए इंटरफेस को परिभाषित करने पर एक बड़ा जोर डालते हैं। औपचारिक रूप से, ऐसा लगता है कि मुझे आरेख में हर जगह छोटे आयताकार बंदरगाहों या लॉलीपॉप-आकार वाले इंटरफेस जोड़ना चाहिए जहां संबंध घटकों के तत्वों को जोड़ते हैं। मुझे उस संभावना की तरह काफी पसंद नहीं है, क्योंकि यह कुछ हद तक बोझिल लगता है, और इससे भी महत्वपूर्ण बात यह है कि यह बिना अतिरिक्त जानकारी प्रदान किए ग्राफिक को अव्यवस्थित करेगा।
वैकल्पिक रूप से, package एक स्वीकार्य नोटेशन हो सकता है। मेरे उद्देश्य क्या Wikipedia
रूप में संबंधित लेख में दूसरी सूची में वर्णन करता है जब स्वामित्व और/या संभावनाओं का पुन: उपयोग के अनुसार समूह के घटक मॉडल, उपयोग संकुल के आयोजन घटकों के साथ मैच के लिए लगता है।
एक पैकेज चित्र के रूप में विचार करेंगे इस प्रकार है:
दूसरी ओर, मैं थोड़ा सावधान कि पैकेज अंकन का उपयोग वास्तविक में-कोड पैकेज के साथ भ्रम की स्थिति पैदा हो सकती है कर रहा हूँ (नामस्थान) , जो असेंबली में वास्तव में ऑर्थोगोनल हैं।दरअसल, there are resources जो यूएमएल पैकेज को जावा पैकेज में 1: 1 मैपिंग के रूप में समझता है, जो कि मैं व्यक्त करने की कोशिश नहीं कर रहा हूं (तर्क के लिए, सभी चित्रित प्रकार बहुत ही नामस्थान के भीतर बहुत अच्छी तरह से रह सकते हैं, MyGreatSystem.Plugins
जैसे कुछ)।
केवल अन्य यूएमएल आरेख प्रकार है कि कुछ हद तक उपयुक्त हो सकता है एक deployment diagram हो सकता है, लेकिन इस तरह के Wikipedia से एक के रूप में परिभाषाओं यह बजाय स्पष्ट कर दूं कि इस तरह के एक चित्र में एक node या तो एक भौतिक मशीन, या एक है निष्पादन पर्यावरण, दोनों अलग-अलग बाइनरी में होने से स्पष्ट रूप से अलग हैं।
एक आखिरी विकल्प है कि मैं है के बारे में सोच सकता है यूएमएल टिप्पणी के साथ प्रकार जोड़ने के द्वारा बाइनरी फ़ाइलें संकेत:
बहरहाल, यह अधिक मेरे लिए एक समाधान की तरह लगता है, और मैं महसूस करें कि अतिरिक्त नोड्स और किनारों (के प्रकार के अंदर असेंबली, जहां वे वास्तव में हैं) के बजाय चित्र कम पठनीय बनाता है।
उचित यूएमएल तरह से संप्रेषित करने के लिए जो प्रकार तैयार उत्पाद में जो बाइनरी में रहते हैं क्या है?
: कक्षाओं और इंटरफेस के लिए कोई भी सदस्य यहां दिखाए जाते हैं, क्योंकि वे समय के लिए प्रासंगिक नहीं हैं। यह मेरे अंतिम आरेख में समान हो सकता है या नहीं भी हो सकता है, क्योंकि फोकस ज्यादातर आंतरिक आंतरिक संरचना पर निर्भर नहीं है।
: मेरे मामले में .NET असेंबली, लेकिन सवाल अन्य वातावरण/प्रौद्योगिकियों के लिए समान रूप से मान्य है।
क्या कोई डाउनवोट समझाएगा, कृपया? –
कोई भी वोट डाउन ट्रॉल्स के लिए कभी भी उपयोग नहीं किया जाता है ... –